From c72bbdce9ea597fe4785496ebfd153ac3deb2b39 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Thu, 14 Nov 2024 14:18:30 +0530 Subject: [PATCH 01/22] e2e framework change to find empty throttler config (#17228) Signed-off-by: Harshit Gangal --- go/vt/vttablet/endtoend/framework/server.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/go/vt/vttablet/endtoend/framework/server.go b/go/vt/vttablet/endtoend/framework/server.go index 2cd3ccc354c..0124bb992ba 100644 --- a/go/vt/vttablet/endtoend/framework/server.go +++ b/go/vt/vttablet/endtoend/framework/server.go @@ -65,11 +65,16 @@ func StartCustomServer(ctx context.Context, connParams, connAppDebugParams mysql TabletType: topodatapb.TabletType_PRIMARY, } TopoServer = memorytopo.NewServer(ctx, "") + // Create the serving keyspace for throttler. + err := TopoServer.UpdateSrvKeyspace(ctx, "", "vttest", &topodatapb.SrvKeyspace{}) + if err != nil { + return vterrors.Wrap(err, "could not create serving keyspace in topo") + } srvTopoCounts := stats.NewCountersWithSingleLabel("", "Resilient srvtopo server operations", "type") Server = tabletserver.NewTabletServer(ctx, vtenv.NewTestEnv(), "", cfg, TopoServer, &topodatapb.TabletAlias{}, srvTopoCounts) Server.Register() - err := Server.StartService(Target, dbcfgs, nil /* mysqld */) + err = Server.StartService(Target, dbcfgs, nil /* mysqld */) if err != nil { return vterrors.Wrap(err, "could not start service") } From 3499a77294a36bc61a7f139dd5737194312f9f23 Mon Sep 17 00:00:00 2001 From: Harshit Gangal Date: Thu, 14 Nov 2024 15:44:49 +0530 Subject: [PATCH 02/22] go mod update (#17227) Signed-off-by: Harshit Gangal --- go.mod | 170 +- go.sum | 354 +- go/vt/mysqlctl/s3backupstorage/s3_test.go | 2 +- go/vt/proto/binlogdata/binlogdata.pb.go | 730 +- .../proto/binlogdata/binlogdata_vtproto.pb.go | 2 +- go/vt/proto/binlogservice/binlogservice.pb.go | 2 +- go/vt/proto/logutil/logutil.pb.go | 26 +- go/vt/proto/logutil/logutil_vtproto.pb.go | 2 +- go/vt/proto/mysqlctl/mysqlctl.pb.go | 444 +- go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go | 2 +- go/vt/proto/query/query.pb.go | 1500 +---- go/vt/proto/query/query_vtproto.pb.go | 2 +- go/vt/proto/queryservice/queryservice.pb.go | 2 +- .../replicationdata/replicationdata.pb.go | 114 +- .../replicationdata_vtproto.pb.go | 2 +- go/vt/proto/tableacl/tableacl.pb.go | 48 +- go/vt/proto/tableacl/tableacl_vtproto.pb.go | 2 +- .../tabletmanagerdata/tabletmanagerdata.pb.go | 3282 ++------- .../tabletmanagerdata_vtproto.pb.go | 2 +- .../tabletmanagerservice.pb.go | 2 +- go/vt/proto/throttlerdata/throttlerdata.pb.go | 246 +- .../throttlerdata/throttlerdata_vtproto.pb.go | 2 +- .../throttlerservice/throttlerservice.pb.go | 2 +- go/vt/proto/topodata/topodata.pb.go | 488 +- go/vt/proto/topodata/topodata_vtproto.pb.go | 2 +- go/vt/proto/vschema/vschema.pb.go | 356 +- go/vt/proto/vschema/vschema_vtproto.pb.go | 2 +- go/vt/proto/vtadmin/vtadmin.pb.go | 2908 ++------ go/vt/proto/vtadmin/vtadmin_vtproto.pb.go | 2 +- go/vt/proto/vtctldata/vtctldata.pb.go | 5988 +++-------------- go/vt/proto/vtctldata/vtctldata_vtproto.pb.go | 2 +- go/vt/proto/vtctlservice/vtctlservice.pb.go | 2 +- go/vt/proto/vtgate/vtgate.pb.go | 422 +- go/vt/proto/vtgate/vtgate_vtproto.pb.go | 2 +- go/vt/proto/vtgateservice/vtgateservice.pb.go | 2 +- go/vt/proto/vtrpc/vtrpc.pb.go | 48 +- go/vt/proto/vtrpc/vtrpc_vtproto.pb.go | 2 +- go/vt/proto/vttest/vttest.pb.go | 70 +- go/vt/proto/vttest/vttest_vtproto.pb.go | 2 +- go/vt/proto/vttime/vttime.pb.go | 48 +- go/vt/proto/vttime/vttime_vtproto.pb.go | 2 +- 41 files changed, 3351 insertions(+), 13937 deletions(-) diff --git a/go.mod b/go.mod index 1d2d9201f04..ccc4cc32b3b 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module vitess.io/vitess go 1.23.3 require ( - cloud.google.com/go/storage v1.43.0 + cloud.google.com/go/storage v1.46.0 github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 github.com/Azure/azure-pipeline-go v0.2.3 github.com/Azure/azure-storage-blob-go v0.15.0 @@ -15,9 +15,9 @@ require ( github.com/corpix/uarand v0.1.1 // indirect github.com/dave/jennifer v1.7.1 github.com/evanphx/json-patch v5.9.0+incompatible - github.com/fsnotify/fsnotify v1.7.0 + github.com/fsnotify/fsnotify v1.8.0 github.com/go-sql-driver/mysql v1.7.1 - github.com/golang/glog v1.2.2 + github.com/golang/glog v1.2.3 github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 github.com/google/go-cmp v0.6.0 @@ -27,28 +27,28 @@ require ( github.com/gorilla/mux v1.8.1 github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 - github.com/hashicorp/consul/api v1.29.4 + github.com/hashicorp/consul/api v1.30.0 github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/serf v0.10.1 // indirect github.com/icrowley/fake v0.0.0-20180203215853-4178557ae428 - github.com/klauspost/compress v1.17.9 + github.com/klauspost/compress v1.17.11 github.com/klauspost/pgzip v1.2.6 github.com/krishicks/yaml-patch v0.0.10 github.com/magiconair/properties v1.8.7 // indirect github.com/minio/minio-go v0.0.0-20190131015406-c8a261de75c1 github.com/montanaflynn/stats v0.7.1 github.com/olekukonko/tablewriter v0.0.5 - github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8 + github.com/opentracing-contrib/go-grpc v0.1.0 github.com/opentracing/opentracing-go v1.2.0 github.com/patrickmn/go-cache v2.1.0+incompatible - github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986 // indirect + github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect github.com/pierrec/lz4 v2.6.1+incompatible - github.com/pires/go-proxyproto v0.7.0 + github.com/pires/go-proxyproto v0.8.0 github.com/pkg/errors v0.9.1 github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a - github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 - github.com/prometheus/client_golang v1.20.3 - github.com/prometheus/common v0.59.1 + github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87 + github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/common v0.60.1 github.com/sjmudd/stopwatch v0.1.1 github.com/soheilhy/cmux v0.1.5 github.com/spf13/cobra v1.8.1 @@ -56,32 +56,32 @@ require ( github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 github.com/tchap/go-patricia v2.3.0+incompatible - github.com/tidwall/gjson v1.17.3 - github.com/tinylib/msgp v1.2.1 // indirect + github.com/tidwall/gjson v1.18.0 + github.com/tinylib/msgp v1.2.4 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 github.com/z-division/go-zookeeper v1.0.0 - go.etcd.io/etcd/api/v3 v3.5.16 - go.etcd.io/etcd/client/pkg/v3 v3.5.16 - go.etcd.io/etcd/client/v3 v3.5.16 + go.etcd.io/etcd/api/v3 v3.5.17 + go.etcd.io/etcd/client/pkg/v3 v3.5.17 + go.etcd.io/etcd/client/v3 v3.5.17 go.uber.org/mock v0.2.0 - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/mod v0.21.0 // indirect - golang.org/x/net v0.29.0 - golang.org/x/oauth2 v0.23.0 - golang.org/x/sys v0.25.0 - golang.org/x/term v0.24.0 - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 - golang.org/x/tools v0.25.0 - google.golang.org/api v0.197.0 - google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/grpc v1.66.2 + golang.org/x/crypto v0.29.0 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.31.0 + golang.org/x/oauth2 v0.24.0 + golang.org/x/sys v0.27.0 + golang.org/x/term v0.26.0 + golang.org/x/text v0.20.0 // indirect + golang.org/x/time v0.8.0 + golang.org/x/tools v0.27.0 + google.golang.org/api v0.205.0 + google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/grpc v1.68.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b - google.golang.org/protobuf v1.34.2 - gopkg.in/DataDog/dd-trace-go.v1 v1.67.1 + google.golang.org/protobuf v1.35.1 + gopkg.in/DataDog/dd-trace-go.v1 v1.69.1 gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect gopkg.in/ldap.v2 v2.5.1 sigs.k8s.io/yaml v1.4.0 @@ -89,12 +89,12 @@ require ( require ( github.com/DataDog/datadog-go/v5 v5.5.0 - github.com/Shopify/toxiproxy/v2 v2.9.0 - github.com/aws/aws-sdk-go-v2 v1.30.4 - github.com/aws/aws-sdk-go-v2/config v1.27.31 - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15 - github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 - github.com/aws/smithy-go v1.20.4 + github.com/Shopify/toxiproxy/v2 v2.11.0 + github.com/aws/aws-sdk-go-v2 v1.32.4 + github.com/aws/aws-sdk-go-v2/config v1.28.3 + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 + github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 + github.com/aws/smithy-go v1.22.0 github.com/bndr/gotabulate v1.1.2 github.com/gammazero/deque v0.2.1 github.com/google/safehtml v0.1.0 @@ -107,48 +107,58 @@ require ( github.com/spf13/jwalterweatherman v1.1.0 github.com/xlab/treeprint v1.2.0 go.uber.org/goleak v1.3.0 - golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 - golang.org/x/sync v0.8.0 + golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/sync v0.9.0 gonum.org/v1/gonum v0.14.0 modernc.org/sqlite v1.33.1 ) require ( - cloud.google.com/go v0.115.1 // indirect - cloud.google.com/go/auth v0.9.4 // indirect - cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect - cloud.google.com/go/compute/metadata v0.5.1 // indirect - cloud.google.com/go/iam v1.2.1 // indirect - github.com/DataDog/appsec-internal-go v1.7.0 // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0 // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0 // indirect - github.com/DataDog/go-libddwaf/v3 v3.4.0 // indirect - github.com/DataDog/go-sqllexer v0.0.14 // indirect + cel.dev/expr v0.18.0 // indirect + cloud.google.com/go v0.116.0 // indirect + cloud.google.com/go/auth v0.10.2 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.5 // indirect + cloud.google.com/go/compute/metadata v0.5.2 // indirect + cloud.google.com/go/iam v1.2.2 // indirect + cloud.google.com/go/monitoring v1.21.2 // indirect + github.com/DataDog/appsec-internal-go v1.9.0 // indirect + github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 // indirect + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 // indirect + github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect + github.com/DataDog/go-sqllexer v0.0.17 // indirect github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect github.com/DataDog/sketches-go v1.4.6 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.30 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.44 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect + github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect github.com/coreos/go-semver v0.3.1 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/ebitengine/purego v0.7.1 // indirect - github.com/fatih/color v1.17.0 // indirect + github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 // indirect + github.com/ebitengine/purego v0.8.1 // indirect + github.com/envoyproxy/go-control-plane v0.13.1 // indirect + github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -156,15 +166,18 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/google/s2a-go v0.1.8 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.4 // indirect - github.com/googleapis/gax-go/v2 v2.13.0 // indirect + github.com/googleapis/gax-go/v2 v2.14.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-hclog v1.6.3 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 // indirect + github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect + github.com/hashicorp/go-sockaddr v1.0.7 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.1-vault-5 // indirect + github.com/hashicorp/hcl v1.0.1-vault-7 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-ieproxy v0.0.12 // indirect @@ -182,8 +195,9 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sagikazarmark/locafero v0.6.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect @@ -193,22 +207,26 @@ require ( github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 // indirect - go.opentelemetry.io/otel v1.30.0 // indirect - go.opentelemetry.io/otel/metric v1.30.0 // indirect - go.opentelemetry.io/otel/trace v1.30.0 // indirect + go.opentelemetry.io/contrib/detectors/gcp v1.32.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 // indirect + go.opentelemetry.io/otel v1.32.0 // indirect + go.opentelemetry.io/otel/metric v1.32.0 // indirect + go.opentelemetry.io/otel/sdk v1.32.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect + go.opentelemetry.io/otel/trace v1.32.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f // indirect + google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect - modernc.org/libc v1.60.1 // indirect + modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect + modernc.org/libc v1.61.0 // indirect modernc.org/mathutil v1.6.0 // indirect modernc.org/memory v1.8.0 // indirect modernc.org/strutil v1.2.0 // indirect diff --git a/go.sum b/go.sum index 5258e8f05fa..167a620da78 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,27 @@ +cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo= +cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.115.1 h1:Jo0SM9cQnSkYfp44+v+NQXHpcHqlnRJk2qxh6yvxxxQ= -cloud.google.com/go v0.115.1/go.mod h1:DuujITeaufu3gL68/lOFIirVNJwQeyf5UXyi+Wbgknc= -cloud.google.com/go/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI= -cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA= -cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= -cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= -cloud.google.com/go/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs= -cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= -cloud.google.com/go/iam v1.2.1 h1:QFct02HRb7H12J/3utj0qf5tobFh9V4vR6h9eX5EBRU= -cloud.google.com/go/iam v1.2.1/go.mod h1:3VUIJDPpwT6p/amXRC5GY8fCCh70lxPygguVtI0Z4/g= -cloud.google.com/go/longrunning v0.6.0 h1:mM1ZmaNsQsnb+5n1DNPeL0KwQd9jQRqSqSDEkBZr+aI= -cloud.google.com/go/longrunning v0.6.0/go.mod h1:uHzSZqW89h7/pasCWNYdUpwGz3PcVWhrWupreVPYLts= -cloud.google.com/go/storage v1.43.0 h1:CcxnSohZwizt4LCzQHWvBf1/kvtHUn7gk9QERXPyXFs= -cloud.google.com/go/storage v1.43.0/go.mod h1:ajvxEa7WmZS1PxvKRq4bq0tFT3vMd502JwstCcYv0Q0= +cloud.google.com/go v0.116.0 h1:B3fRrSDkLRt5qSHWe40ERJvhvnQwdZiHu0bJOpldweE= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= +cloud.google.com/go/auth v0.10.2 h1:oKF7rgBfSHdp/kuhXtqU/tNDr0mZqhYbEh+6SiqzkKo= +cloud.google.com/go/auth v0.10.2/go.mod h1:xxA5AqpDrvS+Gkmo9RqrGGRh6WSNKKOXhY3zNOr38tI= +cloud.google.com/go/auth/oauth2adapt v0.2.5 h1:2p29+dePqsCHPP1bqDJcKj4qxRyYCcbzKpFyKGt3MTk= +cloud.google.com/go/auth/oauth2adapt v0.2.5/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/iam v1.2.2 h1:ozUSofHUGf/F4tCNy/mu9tHLTaxZFLOUiKzjcgWHGIA= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= +cloud.google.com/go/logging v1.12.0 h1:ex1igYcGFd4S/RZWOCU51StlIEuey5bjqwH9ZYjHibk= +cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= +cloud.google.com/go/longrunning v0.6.2 h1:xjDfh1pQcWPEvnfjZmwjKQEcHnpz6lHjfy7Fo0MK+hc= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= +cloud.google.com/go/monitoring v1.21.2 h1:FChwVtClH19E7pJ+e0xUhJPGksctZNVOk2UhMmblmdU= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= +cloud.google.com/go/storage v1.46.0 h1:OTXISBpFd8KaA2ClT3K3oRk8UGOcTHtrZ1bW88xKiic= +cloud.google.com/go/storage v1.46.0/go.mod h1:lM+gMAW91EfXIeMTBmixRsKL/XCxysytoAgduVikjMk= +cloud.google.com/go/trace v1.11.2 h1:4ZmaBdL8Ng/ajrgKqY5jfvzqMXbrDcBsUGXOT9aqTtI= +cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/azure-pipeline-go v0.2.3 h1:7U9HBg1JFK3jHl5qmo4CTZKFTVgMwdFHMVtCdfBE21U= @@ -32,25 +40,33 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DataDog/appsec-internal-go v1.7.0 h1:iKRNLih83dJeVya3IoUfK+6HLD/hQsIbyBlfvLmAeb0= -github.com/DataDog/appsec-internal-go v1.7.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0 h1:5hk3X9Ymna7RqYzoR3K15AZNgASJ89LvJY48tpTsjj0= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.57.0/go.mod h1:Po5HwoDd4FmT/EqgrE9x7Zz4LjxtGBSIuNY1C1lppBQ= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0 h1:LplNAmMgZvGU7kKA0+4c1xWOjz828xweW5TCi8Mw9Q0= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.57.0/go.mod h1:4Vo3SJ24uzfKHUHLoFa8t8o+LH+7TCQ7sPcZDtOpSP4= +github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw= +github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0 h1:uX6/XoKMS7KYXe+R+vwgw+eRdmn16xfa9PDF5dxgumE= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.59.0/go.mod h1:ATVw8kr3U1Eqz3qBz9kS6WFDKji9XyoAsHKSlj3hPTM= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0 h1:9C8TVNz0IiNoD6tuEKPY/vMIUjB7kN0OaLyImhatWjg= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.59.0/go.mod h1:c4th0IFaP0Q1ofRa0GcPB9hJWN+cmUoEfOI1Ub0O50A= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU= github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-libddwaf/v3 v3.4.0 h1:NJ2W2vhYaOm1OWr1LJCbdgp7ezG/XLJcQKBmjFwhSuM= -github.com/DataDog/go-libddwaf/v3 v3.4.0/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4= -github.com/DataDog/go-sqllexer v0.0.14 h1:xUQh2tLr/95LGxDzLmttLgTo/1gzFeOyuwrQa/Iig4Q= -github.com/DataDog/go-sqllexer v0.0.14/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= +github.com/DataDog/go-libddwaf/v3 v3.5.1 h1:GWA4ln4DlLxiXm+X7HA/oj0ZLcdCwOS81KQitegRTyY= +github.com/DataDog/go-libddwaf/v3 v3.5.1/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4= +github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM= +github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc= github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4= github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/gostackparse v0.7.0 h1:i7dLkXHvYzHV308hnkvVGDL3BR4FWl7IsXNPz/IGQh4= github.com/DataDog/gostackparse v0.7.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM= github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I= github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 h1:3c8yed4lgqTt+oTQ+JNMDo+F4xprBf+O/il4ZC0nRLw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0 h1:o90wcURuxekmXrtxmYWTyNla0+ZEHhud6DI1ZTxd1vI= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.49.0/go.mod h1:6fTWu4m3jocfUZLYF5KsZC1TUfRvEjs7lM4crme/irw= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0 h1:jJKWl98inONJAr/IZrdFQUWcwUO95DLY1XMD1ZIut+g= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.49.0/go.mod h1:l2fIqmwB+FKSfvn3bAD/0i+AXAxhIZjTK2svT/mgUXs= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0 h1:GYUJLfvd++4DMuMhCFLgLXvFwofIxh/qOwoGuS/LTew= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.49.0/go.mod h1:wRbFgBQUVm1YXrvWKofAEmq9HNJTDphbAaJSSX01KUI= github.com/HdrHistogram/hdrhistogram-go v0.9.0 h1:dpujRju0R4M/QZzcnR1LH1qm+TVG3UzkWdp5tH1WMcg= github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4= github.com/Masterminds/glide v0.13.2/go.mod h1:STyF5vcenH/rUqTEv+/hBXlSTo7KYwg2oc2f4tzPWic= @@ -59,8 +75,8 @@ github.com/Masterminds/vcs v1.13.0/go.mod h1:N09YCmOQr6RLxC6UNHzuVwAdodYbbnycGHS github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/Shopify/toxiproxy/v2 v2.9.0 h1:DIaDZG2/r/kv3Em6UxYBUVnnWl1mHlYTGFv+sTPV7VI= -github.com/Shopify/toxiproxy/v2 v2.9.0/go.mod h1:2uPRyxR46fsx2yUr9i8zcejzdkWfK7p6G23jV/X6YNs= +github.com/Shopify/toxiproxy/v2 v2.11.0 h1:iXm78nBN50T2BTs1Z8w1fdC0Y1kltkJZQEyMcYyCgGQ= +github.com/Shopify/toxiproxy/v2 v2.11.0/go.mod h1:EPnGLFvhpcwVKCsbFZwyOq4PxnGg9cFbhMrVT3ROBEo= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -73,44 +89,44 @@ github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJ github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aws/aws-sdk-go-v2 v1.30.4 h1:frhcagrVNrzmT95RJImMHgabt99vkXGslubDaDagTk8= -github.com/aws/aws-sdk-go-v2 v1.30.4/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= -github.com/aws/aws-sdk-go-v2/config v1.27.31 h1:kxBoRsjhT3pq0cKthgj6RU6bXTm/2SgdoUMyrVw0rAI= -github.com/aws/aws-sdk-go-v2/config v1.27.31/go.mod h1:z04nZdSWFPaDwK3DdJOG2r+scLQzMYuJeW0CujEm9FM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.30 h1:aau/oYFtibVovr2rDt8FHlU17BTicFEMAi29V1U+L5Q= -github.com/aws/aws-sdk-go-v2/credentials v1.17.30/go.mod h1:BPJ/yXV92ZVq6G8uYvbU0gSl8q94UB63nMT5ctNO38g= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12 h1:yjwoSyDZF8Jth+mUk5lSPJCkMC0lMy6FaCD51jm6ayE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.12/go.mod h1:fuR57fAgMk7ot3WcNQfb6rSEn+SUffl7ri+aa8uKysI= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15 h1:ijB7hr56MngOiELJe0C5aQRaBQ11LveNgWFyG02AUto= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.15/go.mod h1:0QEmQSSWMVfiAk93l1/ayR9DQ9+jwni7gHS2NARZXB0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16 h1:TNyt/+X43KJ9IJJMjKfa3bNTiZbUP7DeCxfbTROESwY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.16/go.mod h1:2DwJF39FlNAUiX5pAc0UNeiz16lK2t7IaFcm0LFHEgc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16 h1:jYfy8UPmd+6kJW5YhY0L1/KftReOGxI/4NtVSTh9O/I= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.16/go.mod h1:7ZfEPZxkW42Afq4uQB8H2E2e6ebh6mXTueEpYzjCzcs= +github.com/aws/aws-sdk-go-v2 v1.32.4 h1:S13INUiTxgrPueTmrm5DZ+MiAo99zYzHEFh1UNkOxNE= +github.com/aws/aws-sdk-go-v2 v1.32.4/go.mod h1:2SK5n0a2karNTv5tbP1SjsX0uhttou00v/HpXKM1ZUo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6 h1:pT3hpW0cOHRJx8Y0DfJUEQuqPild8jRGmSFmBgvydr0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.6/go.mod h1:j/I2++U0xX+cr44QjHay4Cvxj6FUbnxrgmqN3H1jTZA= +github.com/aws/aws-sdk-go-v2/config v1.28.3 h1:kL5uAptPcPKaJ4q0sDUjUIdueO18Q7JDzl64GpVwdOM= +github.com/aws/aws-sdk-go-v2/config v1.28.3/go.mod h1:SPEn1KA8YbgQnwiJ/OISU4fz7+F6Fe309Jf0QTsRCl4= +github.com/aws/aws-sdk-go-v2/credentials v1.17.44 h1:qqfs5kulLUHUEXlHEZXLJkgGoF3kkUeFUTVA585cFpU= +github.com/aws/aws-sdk-go-v2/credentials v1.17.44/go.mod h1:0Lm2YJ8etJdEdw23s+q/9wTpOeo2HhNE97XcRa7T8MA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19 h1:woXadbf0c7enQ2UGCi8gW/WuKmE0xIzxBF/eD94jMKQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.19/go.mod h1:zminj5ucw7w0r65bP6nhyOd3xL6veAUMc3ElGMoLVb4= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37 h1:jHKR76E81sZvz1+x1vYYrHMxphG5LFBJPhSqEr4CLlE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.37/go.mod h1:iMkyPkmoJWQKzSOtaX+8oEJxAuqr7s8laxcqGDSHeII= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23 h1:A2w6m6Tmr+BNXjDsr7M90zkWjsu4JXHwrzPg235STs4= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.23/go.mod h1:35EVp9wyeANdujZruvHiQUAo9E3vbhnIO1mTCAxMlY0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23 h1:pgYW9FCabt2M25MoHYCfMrVY2ghiiBKYWUVXfwZs+sU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.23/go.mod h1:c48kLgzO19wAu3CPkDWC28JbaJ+hfQlsdl7I2+oqIbk= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18 h1:tJ5RnkHCiSH0jyd6gROjlJtNwov0eGYNz8s8nFcR0jQ= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.18/go.mod h1:++NHzT+nAF7ZPrHPsA+ENvsXkOO8wEu+C6RXltAG4/c= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 h1:mx2ucgtv+MWzJesJY9Ig/8AFHgoE5FwLXwUVgW/FGdI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.5 h1:zCsFCKvbj25i7p1u94imVoO447I/sFv8qq+lGJhRN0c= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.5/go.mod h1:ZeDX1SnKsVlejeuz41GiajjZpRSWR7/42q/EyA/QEiM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5 h1:SKvPgvdvmiTWoi0GAJ7AsJfOz3ngVkD/ERbs5pUnHNI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.5/go.mod h1:20sz31hv/WsPa3HhU3hfrIet2kxM4Pe0r20eBZ20Tac= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.5 h1:OMsEmCyz2i89XwRwPouAJvhj81wINh+4UK+k/0Yo/q8= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.5/go.mod h1:vmSqFK+BVIwVpDAGZB3CoCXHzurt4qBE8lf+I/kRTh0= -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23 h1:1SZBDiRzzs3sNhOMVApyWPduWYGAX0imGy06XiBnCAM= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.23/go.mod h1:i9TkxgbZmHVh2S0La6CAXtnyFhlCX/pJ0JsOvBAS6Mk= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0 h1:TToQNkvGguu209puTojY/ozlqy2d/SFNcoLIqTFi42g= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.0/go.mod h1:0jp+ltwkf+SwG2fm/PKo8t4y8pJSgOCO4D8Lz3k0aHQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4 h1:aaPpoG15S2qHkWm4KlEyF01zovK1nW4BBbyXuHNSE90= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.4/go.mod h1:eD9gS2EARTKgGr/W5xwgY/ik9z/zqpW+m/xOQbVxrMk= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4 h1:tHxQi/XHPK0ctd/wdOw0t7Xrc2OxcRCnVzv8lwWPu0c= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.4/go.mod h1:4GQbF1vJzG60poZqWatZlhP31y8PGCCVTvIGPdaaYJ0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4 h1:E5ZAVOmI2apR8ADb72Q63KqwwwdW1XcMeXIlrZ1Psjg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.4/go.mod h1:wezzqVUOVVdk+2Z/JzQT4NxAU0NbhRe5W8pIE72jsWI= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3 h1:neNOYJl72bHrz9ikAEED4VqWyND/Po0DnEx64RW6YM4= +github.com/aws/aws-sdk-go-v2/service/s3 v1.66.3/go.mod h1:TMhLIyRIyoGVlaEMAt+ITMbwskSTpcGsCPDq91/ihY0= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.5 h1:HJwZwRt2Z2Tdec+m+fPjvdmkq2s9Ra+VR0hjF7V2o40= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.5/go.mod h1:wrMCEwjFPms+V86TCQQeOxQF/If4vT44FGIOFiMC2ck= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4 h1:zcx9LiGWZ6i6pjdcoE9oXAB6mUdeyC36Ia/QEiIvYdg= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.4/go.mod h1:Tp/ly1cTjRLGBBmNccFumbZ8oqpZlpdhFf80SrRh4is= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.4 h1:yDxvkz3/uOKfxnv8YhzOi9m+2OGIxF+on3KOISbK5IU= +github.com/aws/aws-sdk-go-v2/service/sts v1.32.4/go.mod h1:9XEUty5v5UAsMiFOBJrNibZgwCeOma73jgGwwhgffa8= +github.com/aws/smithy-go v1.22.0 h1:uunKnWlcoL3zO7q+gG2Pk53joueEOsnNB28QdMsmiMM= +github.com/aws/smithy-go v1.22.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -122,6 +138,8 @@ github.com/bndr/gotabulate v1.1.2/go.mod h1:0+8yUgaPTtLRTjf49E8oju7ojpU11YmXyvq1 github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -129,6 +147,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/codegangsta/cli v1.20.0/go.mod h1:/qJNoX69yVSKu5o4jLyXAENLRyk1uhi7zkbQ3slBdOA= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= @@ -136,8 +156,9 @@ github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/corpix/uarand v0.1.1 h1:RMr1TWc9F4n5jiPDzFHtmaUXLKLNUFK0SgCLo4BhX/U= github.com/corpix/uarand v0.1.1/go.mod h1:SFKZvkcRoLqVRFZ4u25xPmp6m9ktANfbpXZ7SJ0/FNU= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo= github.com/dave/jennifer v1.7.1/go.mod h1:nXbxhEmQfOZhWml3D1cDK5M1FLnMSozpbFN/m3RmGZc= @@ -150,22 +171,25 @@ github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUn github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4 h1:8EXxF+tCLqaVk8AOC29zl2mnhQjwyLxxOTuhUazWRsg= github.com/eapache/queue/v2 v2.0.0-20230407133247-75960ed334e4/go.mod h1:I5sHm0Y0T1u5YjlyqC5GVArM7aNZRUYtTjmJ8mPJFds= -github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA= -github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= +github.com/ebitengine/purego v0.8.1 h1:sdRKd6plj7KYW33EH5As6YKfe8m9zbN9JMrOjNVF/BE= +github.com/ebitengine/purego v0.8.1/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.13.1 h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE= +github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= -github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= @@ -174,12 +198,10 @@ github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHk github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gammazero/deque v0.2.1 h1:qSdsbG6pgp6nL7A0+K/B7s12mcCY/5l5SIUpMOl+dC0= github.com/gammazero/deque v0.2.1/go.mod h1:LFroj8x4cMYCukHJDbxFCkT+r9AndaJnFMuZDV34tuU= -github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= -github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -200,8 +222,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= -github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.3 h1:oDTdz9f5VGVVNGu/Q7UXKWYsD0873HXLHdJUNBsSEKM= +github.com/golang/glog v1.2.3/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -254,8 +276,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.4 h1:XYIDZApgAnrN1c855gTgghdIA6Stxb52D5RnLI1SLyw= github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= -github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s= -github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A= +github.com/googleapis/gax-go/v2 v2.14.0 h1:f+jMrjBPl+DL9nI4IQzLUxMq7XrAqFYB7hBPqMNIe8o= +github.com/googleapis/gax-go/v2 v2.14.0/go.mod h1:lhBCnjdLrWRaPvLWhmc8IS24m9mr07qSYnHncrgo+zk= github.com/gopherjs/gopherjs v0.0.0-20181103185306-d547d1d9531e/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= @@ -265,10 +287,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDa github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/hashicorp/consul/api v1.29.4 h1:P6slzxDLBOxUSj3fWo2o65VuKtbtOXFi7TSSgtXutuE= -github.com/hashicorp/consul/api v1.29.4/go.mod h1:HUlfw+l2Zy68ceJavv2zAyArl2fqhGWnMycyt56sBgg= -github.com/hashicorp/consul/proto-public v0.6.2 h1:+DA/3g/IiKlJZb88NBn0ZgXrxJp2NlvCZdEyl+qxvL0= -github.com/hashicorp/consul/proto-public v0.6.2/go.mod h1:cXXbOg74KBNGajC+o8RlA502Esf0R9prcoJgiOX/2Tg= +github.com/hashicorp/consul/api v1.30.0 h1:ArHVMMILb1nQv8vZSGIwwQd2gtc+oSQZ6CalyiyH2XQ= +github.com/hashicorp/consul/api v1.30.0/go.mod h1:B2uGchvaXVW2JhFoS8nqTxMD5PBykr4ebY4JWHTTeLM= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= github.com/hashicorp/consul/sdk v0.16.1/go.mod h1:fSXvwxB2hmh1FMZCNl6PwX0Q/1wdWtHJcZ7Ea5tns0s= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -292,13 +312,13 @@ github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9 github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7 h1:UpiO20jno/eV1eVZcxqWnUohyKRe1g8FPV/xH1s/2qs= -github.com/hashicorp/go-secure-stdlib/parseutil v0.1.7/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8 h1:iBt4Ew4XEGLfh6/bPk4rSYmuZJGizr6/x/AEizP0CQc= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.8/go.mod h1:aiJI+PIApBRQG7FZTEBx5GiiX+HbOHilUdNxUZi4eV0= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= -github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-sockaddr v1.0.7 h1:G+pTkSO01HpR5qCxg7lxfsFEZaG+C0VssTy/9dbT+Fw= +github.com/hashicorp/go-sockaddr v1.0.7/go.mod h1:FZQbEYa1pxkQ7WLpyXJ6cbjpT8q0YgQaK/JakXqGyWw= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -311,8 +331,8 @@ github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iP github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.1-vault-5 h1:kI3hhbbyzr4dldA8UdTb7ZlVVlI2DACdCfz31RPDgJM= -github.com/hashicorp/hcl v1.0.1-vault-5/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= +github.com/hashicorp/hcl v1.0.1-vault-7 h1:ag5OxFVy3QYTFTJODRzTKVZ6xvdfLLCA1cy/Y6xGI0I= +github.com/hashicorp/hcl v1.0.1-vault-7/go.mod h1:XYhtn6ijBSAj6n4YqAaf7RBPS4I06AItNorpy+MoQNM= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM= @@ -330,8 +350,8 @@ github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVY github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -411,8 +431,8 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.23.0 h1:/oxKu9c2HVap+F3PfKort2Hw5DEU+HGlW8n+tguWsys= github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg= -github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8 h1:gHTSPFezGeYzTWCvpPM6lBanwXfuksik5Hy5MEHtvUA= -github.com/opentracing-contrib/go-grpc v0.0.0-20240724223109-9dec25a38fa8/go.mod h1:z1k3YVSdAPSXtMUPS1TBWG5DaNWlT+VCbB0Qm3QJe74= +github.com/opentracing-contrib/go-grpc v0.1.0 h1:9JHDtQXv6UL0tFF8KJB/4ApJgeOcaHp1h07d0PJjESc= +github.com/opentracing-contrib/go-grpc v0.1.0/go.mod h1:i3/jx/TvJZ/HKidtT4XGIi/NosUEpzS9xjVJctbKZzI= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= @@ -425,12 +445,12 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= -github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986 h1:jYi87L8j62qkXzaYHAQAhEapgukhenIMZRBKTNRLHJ4= -github.com/philhofer/fwd v1.1.3-0.20240612014219-fbbf4953d986/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY= +github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pires/go-proxyproto v0.7.0 h1:IukmRewDQFWC7kfnb66CSomk2q/seBuilHBYFwyq0Hs= -github.com/pires/go-proxyproto v0.7.0/go.mod h1:Vz/1JPY/OACxWGQNIRY2BeyDmpoaWmEP40O9LbuiFR4= +github.com/pires/go-proxyproto v0.8.0 h1:5unRmEAPbHXHuLjDg01CxJWf91cw3lKHc/0xzKpXEe0= +github.com/pires/go-proxyproto v0.8.0/go.mod h1:iknsfgnH8EkjrMeMyvfKByp9TiBZCKZM0jx2xmKqnVY= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -438,8 +458,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a h1:y0OpQ4+5tKxeh9+H+2cVgASl9yMZYV9CILinKOiKafA= github.com/planetscale/pargzip v0.0.0-20201116224723-90c7fc03ea8a/go.mod h1:GJFUzQuXIoB2Kjn1ZfDhJr/42D5nWOqRcIQVgCxTuIE= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87 h1:ejBLlgnQdFWS/QGVdGYBRKsorfWl8rOysCC6aUOlCZc= +github.com/planetscale/vtprotobuf v0.6.1-0.20241011083415-71c992bc3c87/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -448,8 +468,8 @@ github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSg github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -458,8 +478,8 @@ github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0= -github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0= +github.com/prometheus/common v0.60.1 h1:FUas6GcOw66yB/73KC+BOZoFJmbo/1pojoILArPAaSc= +github.com/prometheus/common v0.60.1/go.mod h1:h0LYf1R1deLSKtD4Vdg8gy4RuOvENW2J/h19V5NADQw= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= @@ -473,8 +493,8 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -534,15 +554,15 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/tchap/go-patricia v2.3.0+incompatible h1:GkY4dP3cEfEASBPPkWd+AmjYxhmDkqO9/zg7R0lSQRs= github.com/tchap/go-patricia v2.3.0+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= -github.com/tidwall/gjson v1.17.3 h1:bwWLZU7icoKRG+C+0PNwIKC6FCJO/Q3p2pZvuP0jN94= -github.com/tidwall/gjson v1.17.3/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= +github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= -github.com/tinylib/msgp v1.2.1 h1:6ypy2qcCznxpP4hpORzhtXyTqrBs7cfM9MCCWY8zsmU= -github.com/tinylib/msgp v1.2.1/go.mod h1:2vIGs3lcUo8izAATNobrCHevYZC/LMsJtw4JPiYPHro= +github.com/tinylib/msgp v1.2.4 h1:yLFeUGostXXSGW5vxfT5dXG/qzkn4schv2I7at5+hVU= +github.com/tinylib/msgp v1.2.4/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= @@ -557,26 +577,30 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/z-division/go-zookeeper v1.0.0 h1:ULsCj0nP6+U1liDFWe+2oEF6o4amixoDcDlwEUghVUY= github.com/z-division/go-zookeeper v1.0.0/go.mod h1:6X4UioQXpvyezJJl4J9NHAJKsoffCwy5wCaaTktXjOA= -go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0= -go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28= -go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q= -go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E= -go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE= -go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50= +go.etcd.io/etcd/api/v3 v3.5.17 h1:cQB8eb8bxwuxOilBpMJAEo8fAONyrdXTHUNcMd8yT1w= +go.etcd.io/etcd/api/v3 v3.5.17/go.mod h1:d1hvkRuXkts6PmaYk2Vrgqbv7H4ADfAKhyJqHNLJCB4= +go.etcd.io/etcd/client/pkg/v3 v3.5.17 h1:XxnDXAWq2pnxqx76ljWwiQ9jylbpC4rvkAeRVOUKKVw= +go.etcd.io/etcd/client/pkg/v3 v3.5.17/go.mod h1:4DqK1TKacp/86nJk4FLQqo6Mn2vvQFBmruW3pP14H/w= +go.etcd.io/etcd/client/v3 v3.5.17 h1:o48sINNeWz5+pjy/Z0+HKpj/xSnBkuVhVvXkjEXbqZY= +go.etcd.io/etcd/client/v3 v3.5.17/go.mod h1:j2d4eXTHWkT2ClBgnnEPm/Wuu7jsqku41v9DZ3OtjQo= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 h1:hCq2hNMwsegUvPzI7sPOvtO9cqyy5GbWt/Ybp2xrx8Q= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0/go.mod h1:LqaApwGx/oUmzsbqxkzuBvyoPpkxk3JQWnqfVrJ3wCA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0 h1:ZIg3ZT/aQ7AfKqdwp7ECpOK6vHqquXXuyTjIO8ZdmPs= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.55.0/go.mod h1:DQAwmETtZV00skUwgD6+0U89g80NKsJE3DCKeLLPQMI= -go.opentelemetry.io/otel v1.30.0 h1:F2t8sK4qf1fAmY9ua4ohFS/K+FUuOPemHUIXHtktrts= -go.opentelemetry.io/otel v1.30.0/go.mod h1:tFw4Br9b7fOS+uEao81PJjVMjW/5fvNCbpsDIXqP0pc= -go.opentelemetry.io/otel/metric v1.30.0 h1:4xNulvn9gjzo4hjg+wzIKG7iNFEaBMX00Qd4QIZs7+w= -go.opentelemetry.io/otel/metric v1.30.0/go.mod h1:aXTfST94tswhWEb+5QjlSqG+cZlmyXy/u8jFpor3WqQ= -go.opentelemetry.io/otel/sdk v1.29.0 h1:vkqKjk7gwhS8VaWb0POZKmIEDimRCMsopNYnriHyryo= -go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= -go.opentelemetry.io/otel/trace v1.30.0 h1:7UBkkYzeg3C7kQX8VAidWh2biiQbtAKjyIML8dQ9wmc= -go.opentelemetry.io/otel/trace v1.30.0/go.mod h1:5EyKqTzzmyqB9bwtCCq6pDLktPK6fmGf/Dph+8VI02o= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0 h1:P78qWqkLSShicHmAzfECaTgvslqHxblNE9j62Ws1NK8= +go.opentelemetry.io/contrib/detectors/gcp v1.32.0/go.mod h1:TVqo0Sda4Cv8gCIixd7LuLwW4EylumVWfhjZJjDD4DU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0 h1:qtFISDHKolvIxzSs0gIaiPUPR0Cucb0F2coHC7ZLdps= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.57.0/go.mod h1:Y+Pop1Q6hCOnETWTW4NROK/q1hv50hM7yDaUTjG8lp8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0 h1:DheMAlT6POBP+gh8RUH19EOTnQIor5QE0uSRPtzCpSw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0/go.mod h1:wZcGmeVO9nzP67aYSLDqXNWK87EZWhi7JWj1v7ZXf94= +go.opentelemetry.io/otel v1.32.0 h1:WnBN+Xjcteh0zdk01SVqV55d/m62NJLJdIyb4y/WO5U= +go.opentelemetry.io/otel v1.32.0/go.mod h1:00DCVSB0RQcnzlwyTfqtxSm+DRr9hpYrHjNGiBHVQIg= +go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= +go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= +go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= +go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= +go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= +go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= +go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= @@ -600,11 +624,11 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 h1:e66Fs6Z+fZTbFBAxKfP3PALWBtpfqks2bwGcexMxgtk= -golang.org/x/exp v0.0.0-20240909161429-701f63a606c0/go.mod h1:2TbTHSBQa924w8M6Xs1QcRcFwyucIwBGpK1p2f1YFFY= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -612,8 +636,8 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.21.0 h1:vvrHzRwRfVKSiLrG+d4FMl/Qi4ukBCE6kZlTUkDYRT0= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -636,12 +660,12 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -649,8 +673,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -688,19 +712,19 @@ golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/term v0.26.0 h1:WEQa6V3Gja/BhNxg540hBip/kkaYtRg3cxg4oXSw4AU= +golang.org/x/term v0.26.0/go.mod h1:Si5m1o57C5nBNQo5z1iq+XDijt21BDBDp2bK0QI8e3E= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -713,8 +737,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.25.0 h1:oFU9pkj/iJgs+0DT+VMHrx+oBKs/LJMV+Uvg78sl+fE= -golang.org/x/tools v0.25.0/go.mod h1:/vtpO8WL1N9cQC3FN5zPqb//fRXskFHbLKk4OW1Q7rg= +golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= +golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -723,8 +747,8 @@ golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da h1:noIWHXmPHxILtqtCOPIhS golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.14.0 h1:2NiG67LD1tEH0D7kM+ps2V+fXmsAnpUeec7n8tcr4S0= gonum.org/v1/gonum v0.14.0/go.mod h1:AoWeoz0becf9QMWtE8iWXNXc27fK4fNeHNf/oMejGfU= -google.golang.org/api v0.197.0 h1:x6CwqQLsFiA5JKAiGyGBjc2bNtHtLddhJCE2IKuhhcQ= -google.golang.org/api v0.197.0/go.mod h1:AuOuo20GoQ331nq7DquGHlU6d+2wN2fZ8O0ta60nRNw= +google.golang.org/api v0.205.0 h1:LFaxkAIpDb/GsrWV20dMMo5MR0h8UARTbn24LmD+0Pg= +google.golang.org/api v0.205.0/go.mod h1:NrK1EMqO8Xk6l6QwRAmrXXg2v6dzukhlOyvkYtnvUuc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -732,12 +756,12 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 h1:BulPr26Jqjnd4eYDVe+YvyR7Yc2vJGkO5/0UxD0/jZU= -google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:hL97c3SYopEHblzpxRL4lSs523++l8DYxGM1FQiYmb4= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= -google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f h1:zDoHYmMzMacIdjNe+P2XiTmPsLawi/pCbSPfxt6lTfw= +google.golang.org/genproto v0.0.0-20241113202542-65e8d215514f/go.mod h1:Q5m6g8b5KaFFzsQFIGdJkSJDGeJiybVenoYFMMa3ohI= +google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f h1:M65LEviCfuZTfrfzwwEoxVtgvfkFkBUbFnRbxCXuXhU= +google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f/go.mod h1:Yo94eF2nj7igQt+TiJ49KxjIH8ndLYPZMIRSiRcEbg0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f h1:C1QccEa9kUwvMgEUORqQD9S17QesQijxjZ84sO82mfo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -745,12 +769,14 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b h1:D/GTYPo6I1oEo08Bfpuj3xl5XE+UGHj7//5fVyKxhsQ= google.golang.org/grpc/examples v0.0.0-20210430044426-28078834f35b/go.mod h1:Ly7ZA/ARzg8fnPU9TyZIxoz33sEUuWX7txiqs8lPTgE= +google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3 h1:hUfOButuEtpc0UvYiaYRbNwxVYr0mQQOWq6X8beJ9Gc= +google.golang.org/grpc/stats/opentelemetry v0.0.0-20241028142157-ada6787961b3/go.mod h1:jzYlkSMbKypzuu6xoAEijsNVo9ZeDF1u/zCfFgsx7jg= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -761,10 +787,10 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/DataDog/dd-trace-go.v1 v1.67.1 h1:frgcpZ18wmpj+/TwyDJM8057M65aOdgaxLiZ8pb1PFU= -gopkg.in/DataDog/dd-trace-go.v1 v1.67.1/go.mod h1:6DdiJPKOeJfZyd/IUGCAd5elY8qPGkztK6wbYYsMjag= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/DataDog/dd-trace-go.v1 v1.69.1 h1:grTElrPaCfxUsrJjyPLHlVPbmlKVzWMxVdcBrGZSzEk= +gopkg.in/DataDog/dd-trace-go.v1 v1.69.1/go.mod h1:U9AOeBHNAL95JXcd/SPf4a7O5GNeF/yD13sJtli/yaU= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= @@ -803,10 +829,10 @@ modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= modernc.org/gc/v2 v2.5.0 h1:bJ9ChznK1L1mUtAQtxi0wi5AtAs5jQuw4PrPHO5pb6M= modernc.org/gc/v2 v2.5.0/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= -modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a h1:CfbpOLEo2IwNzJdMvE8aiRbPMxoTpgAJeyePh0SmO8M= -modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= -modernc.org/libc v1.60.1 h1:at373l8IFRTkJIkAU85BIuUoBM4T1b51ds0E1ovPG2s= -modernc.org/libc v1.60.1/go.mod h1:xJuobKuNxKH3RUatS7GjR+suWj+5c2K7bi4m/S5arOY= +modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 h1:IYXPPTTjjoSHvUClZIYexDiO7g+4x+XveKT4gCIAwiY= +modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= +modernc.org/libc v1.61.0 h1:eGFcvWpqlnoGwzZeZe3PWJkkKbM/3SUGyk1DVZQ0TpE= +modernc.org/libc v1.61.0/go.mod h1:DvxVX89wtGTu+r72MLGhygpfi3aUGgZRdAYGCAVVud0= modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= diff --git a/go/vt/mysqlctl/s3backupstorage/s3_test.go b/go/vt/mysqlctl/s3backupstorage/s3_test.go index 1acfddcce1e..84ef8de6e48 100644 --- a/go/vt/mysqlctl/s3backupstorage/s3_test.go +++ b/go/vt/mysqlctl/s3backupstorage/s3_test.go @@ -53,7 +53,7 @@ func (sfc *s3FakeClient) PutObject(ctx context.Context, in *s3.PutObjectInput, o _ = apiOption(stack) } - handler := middleware.DecorateHandler(smithyhttp.NewClientHandler(&fakeClientDo{delay: sfc.delay}), stack) + handler := middleware.DecorateHandler(smithyhttp.NewClientHandlerWithOptions(&fakeClientDo{delay: sfc.delay}), stack) _, _, err := handler.Handle(ctx, in) if err != nil { return nil, err diff --git a/go/vt/proto/binlogdata/binlogdata.pb.go b/go/vt/proto/binlogdata/binlogdata.pb.go index 544a45d3656..35e738f772e 100644 --- a/go/vt/proto/binlogdata/binlogdata.pb.go +++ b/go/vt/proto/binlogdata/binlogdata.pb.go @@ -19,7 +19,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: binlogdata.proto @@ -562,11 +562,9 @@ type Charset struct { func (x *Charset) Reset() { *x = Charset{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Charset) String() string { @@ -577,7 +575,7 @@ func (*Charset) ProtoMessage() {} func (x *Charset) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -628,11 +626,9 @@ type BinlogTransaction struct { func (x *BinlogTransaction) Reset() { *x = BinlogTransaction{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BinlogTransaction) String() string { @@ -643,7 +639,7 @@ func (*BinlogTransaction) ProtoMessage() {} func (x *BinlogTransaction) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -688,11 +684,9 @@ type StreamKeyRangeRequest struct { func (x *StreamKeyRangeRequest) Reset() { *x = StreamKeyRangeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamKeyRangeRequest) String() string { @@ -703,7 +697,7 @@ func (*StreamKeyRangeRequest) ProtoMessage() {} func (x *StreamKeyRangeRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -750,11 +744,9 @@ type StreamKeyRangeResponse struct { func (x *StreamKeyRangeResponse) Reset() { *x = StreamKeyRangeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamKeyRangeResponse) String() string { @@ -765,7 +757,7 @@ func (*StreamKeyRangeResponse) ProtoMessage() {} func (x *StreamKeyRangeResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -803,11 +795,9 @@ type StreamTablesRequest struct { func (x *StreamTablesRequest) Reset() { *x = StreamTablesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamTablesRequest) String() string { @@ -818,7 +808,7 @@ func (*StreamTablesRequest) ProtoMessage() {} func (x *StreamTablesRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -865,11 +855,9 @@ type StreamTablesResponse struct { func (x *StreamTablesResponse) Reset() { *x = StreamTablesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamTablesResponse) String() string { @@ -880,7 +868,7 @@ func (*StreamTablesResponse) ProtoMessage() {} func (x *StreamTablesResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -916,11 +904,9 @@ type CharsetConversion struct { func (x *CharsetConversion) Reset() { *x = CharsetConversion{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CharsetConversion) String() string { @@ -931,7 +917,7 @@ func (*CharsetConversion) ProtoMessage() {} func (x *CharsetConversion) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1013,11 +999,9 @@ type Rule struct { func (x *Rule) Reset() { *x = Rule{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Rule) String() string { @@ -1028,7 +1012,7 @@ func (*Rule) ProtoMessage() {} func (x *Rule) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1129,11 +1113,9 @@ type Filter struct { func (x *Filter) Reset() { *x = Filter{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Filter) String() string { @@ -1144,7 +1126,7 @@ func (*Filter) ProtoMessage() {} func (x *Filter) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1228,11 +1210,9 @@ type BinlogSource struct { func (x *BinlogSource) Reset() { *x = BinlogSource{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BinlogSource) String() string { @@ -1243,7 +1223,7 @@ func (*BinlogSource) ProtoMessage() {} func (x *BinlogSource) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1359,11 +1339,9 @@ type RowChange struct { func (x *RowChange) Reset() { *x = RowChange{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RowChange) String() string { @@ -1374,7 +1352,7 @@ func (*RowChange) ProtoMessage() {} func (x *RowChange) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1426,11 +1404,9 @@ type RowEvent struct { func (x *RowEvent) Reset() { *x = RowEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RowEvent) String() string { @@ -1441,7 +1417,7 @@ func (*RowEvent) ProtoMessage() {} func (x *RowEvent) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1521,11 +1497,9 @@ type FieldEvent struct { func (x *FieldEvent) Reset() { *x = FieldEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FieldEvent) String() string { @@ -1536,7 +1510,7 @@ func (*FieldEvent) ProtoMessage() {} func (x *FieldEvent) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1611,11 +1585,9 @@ type ShardGtid struct { func (x *ShardGtid) Reset() { *x = ShardGtid{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardGtid) String() string { @@ -1626,7 +1598,7 @@ func (*ShardGtid) ProtoMessage() {} func (x *ShardGtid) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1680,11 +1652,9 @@ type VGtid struct { func (x *VGtid) Reset() { *x = VGtid{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VGtid) String() string { @@ -1695,7 +1665,7 @@ func (*VGtid) ProtoMessage() {} func (x *VGtid) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1729,11 +1699,9 @@ type KeyspaceShard struct { func (x *KeyspaceShard) Reset() { *x = KeyspaceShard{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyspaceShard) String() string { @@ -1744,7 +1712,7 @@ func (*KeyspaceShard) ProtoMessage() {} func (x *KeyspaceShard) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1807,11 +1775,9 @@ type Journal struct { func (x *Journal) Reset() { *x = Journal{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Journal) String() string { @@ -1822,7 +1788,7 @@ func (*Journal) ProtoMessage() {} func (x *Journal) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1935,11 +1901,9 @@ type VEvent struct { func (x *VEvent) Reset() { *x = VEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VEvent) String() string { @@ -1950,7 +1914,7 @@ func (*VEvent) ProtoMessage() {} func (x *VEvent) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2086,11 +2050,9 @@ type MinimalTable struct { func (x *MinimalTable) Reset() { *x = MinimalTable{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MinimalTable) String() string { @@ -2101,7 +2063,7 @@ func (*MinimalTable) ProtoMessage() {} func (x *MinimalTable) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2154,11 +2116,9 @@ type MinimalSchema struct { func (x *MinimalSchema) Reset() { *x = MinimalSchema{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MinimalSchema) String() string { @@ -2169,7 +2129,7 @@ func (*MinimalSchema) ProtoMessage() {} func (x *MinimalSchema) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2202,11 +2162,9 @@ type VStreamOptions struct { func (x *VStreamOptions) Reset() { *x = VStreamOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamOptions) String() string { @@ -2217,7 +2175,7 @@ func (*VStreamOptions) ProtoMessage() {} func (x *VStreamOptions) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2263,11 +2221,9 @@ type VStreamRequest struct { func (x *VStreamRequest) Reset() { *x = VStreamRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamRequest) String() string { @@ -2278,7 +2234,7 @@ func (*VStreamRequest) ProtoMessage() {} func (x *VStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2353,11 +2309,9 @@ type VStreamResponse struct { func (x *VStreamResponse) Reset() { *x = VStreamResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamResponse) String() string { @@ -2368,7 +2322,7 @@ func (*VStreamResponse) ProtoMessage() {} func (x *VStreamResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2406,11 +2360,9 @@ type VStreamRowsRequest struct { func (x *VStreamRowsRequest) Reset() { *x = VStreamRowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamRowsRequest) String() string { @@ -2421,7 +2373,7 @@ func (*VStreamRowsRequest) ProtoMessage() {} func (x *VStreamRowsRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2499,11 +2451,9 @@ type VStreamRowsResponse struct { func (x *VStreamRowsResponse) Reset() { *x = VStreamRowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamRowsResponse) String() string { @@ -2514,7 +2464,7 @@ func (*VStreamRowsResponse) ProtoMessage() {} func (x *VStreamRowsResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2599,11 +2549,9 @@ type VStreamTablesRequest struct { func (x *VStreamTablesRequest) Reset() { *x = VStreamTablesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamTablesRequest) String() string { @@ -2614,7 +2562,7 @@ func (*VStreamTablesRequest) ProtoMessage() {} func (x *VStreamTablesRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2673,11 +2621,9 @@ type VStreamTablesResponse struct { func (x *VStreamTablesResponse) Reset() { *x = VStreamTablesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamTablesResponse) String() string { @@ -2688,7 +2634,7 @@ func (*VStreamTablesResponse) ProtoMessage() {} func (x *VStreamTablesResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2756,11 +2702,9 @@ type LastPKEvent struct { func (x *LastPKEvent) Reset() { *x = LastPKEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LastPKEvent) String() string { @@ -2771,7 +2715,7 @@ func (*LastPKEvent) ProtoMessage() {} func (x *LastPKEvent) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2811,11 +2755,9 @@ type TableLastPK struct { func (x *TableLastPK) Reset() { *x = TableLastPK{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TableLastPK) String() string { @@ -2826,7 +2768,7 @@ func (*TableLastPK) ProtoMessage() {} func (x *TableLastPK) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2871,11 +2813,9 @@ type VStreamResultsRequest struct { func (x *VStreamResultsRequest) Reset() { *x = VStreamResultsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamResultsRequest) String() string { @@ -2886,7 +2826,7 @@ func (*VStreamResultsRequest) ProtoMessage() {} func (x *VStreamResultsRequest) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2943,11 +2883,9 @@ type VStreamResultsResponse struct { func (x *VStreamResultsResponse) Reset() { *x = VStreamResultsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamResultsResponse) String() string { @@ -2958,7 +2896,7 @@ func (*VStreamResultsResponse) ProtoMessage() {} func (x *VStreamResultsResponse) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3009,11 +2947,9 @@ type BinlogTransaction_Statement struct { func (x *BinlogTransaction_Statement) Reset() { *x = BinlogTransaction_Statement{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BinlogTransaction_Statement) String() string { @@ -3024,7 +2960,7 @@ func (*BinlogTransaction_Statement) ProtoMessage() {} func (x *BinlogTransaction_Statement) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3071,11 +3007,9 @@ type RowChange_Bitmap struct { func (x *RowChange_Bitmap) Reset() { *x = RowChange_Bitmap{} - if protoimpl.UnsafeEnabled { - mi := &file_binlogdata_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_binlogdata_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RowChange_Bitmap) String() string { @@ -3086,7 +3020,7 @@ func (*RowChange_Bitmap) ProtoMessage() {} func (x *RowChange_Bitmap) ProtoReflect() protoreflect.Message { mi := &file_binlogdata_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3759,404 +3693,6 @@ func file_binlogdata_proto_init() { if File_binlogdata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_binlogdata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Charset); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*BinlogTransaction); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*StreamKeyRangeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*StreamKeyRangeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*StreamTablesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*StreamTablesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*CharsetConversion); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*Rule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*Filter); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*BinlogSource); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*RowChange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*RowEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*FieldEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*ShardGtid); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*VGtid); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*KeyspaceShard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*Journal); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*VEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*MinimalTable); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*MinimalSchema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*VStreamOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*VStreamRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*VStreamResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*VStreamRowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*VStreamRowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*VStreamTablesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*VStreamTablesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*LastPKEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*TableLastPK); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*VStreamResultsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*VStreamResultsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*BinlogTransaction_Statement); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_binlogdata_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*RowChange_Bitmap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go b/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go index fd76576fcb5..98fba617973 100644 --- a/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go +++ b/go/vt/proto/binlogdata/binlogdata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: binlogdata.proto package binlogdata diff --git a/go/vt/proto/binlogservice/binlogservice.pb.go b/go/vt/proto/binlogservice/binlogservice.pb.go index 5ad07fcb3ea..9ac93adc872 100644 --- a/go/vt/proto/binlogservice/binlogservice.pb.go +++ b/go/vt/proto/binlogservice/binlogservice.pb.go @@ -19,7 +19,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: binlogservice.proto diff --git a/go/vt/proto/logutil/logutil.pb.go b/go/vt/proto/logutil/logutil.pb.go index ffba4cc2ad7..fff477ddf27 100644 --- a/go/vt/proto/logutil/logutil.pb.go +++ b/go/vt/proto/logutil/logutil.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: logutil.proto @@ -110,11 +110,9 @@ type Event struct { func (x *Event) Reset() { *x = Event{} - if protoimpl.UnsafeEnabled { - mi := &file_logutil_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_logutil_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Event) String() string { @@ -125,7 +123,7 @@ func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { mi := &file_logutil_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -232,20 +230,6 @@ func file_logutil_proto_init() { if File_logutil_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_logutil_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Event); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/logutil/logutil_vtproto.pb.go b/go/vt/proto/logutil/logutil_vtproto.pb.go index aeca94981f9..208d652cdaf 100644 --- a/go/vt/proto/logutil/logutil_vtproto.pb.go +++ b/go/vt/proto/logutil/logutil_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: logutil.proto package logutil diff --git a/go/vt/proto/mysqlctl/mysqlctl.pb.go b/go/vt/proto/mysqlctl/mysqlctl.pb.go index eaceeabad3e..1e7ca88f5fe 100644 --- a/go/vt/proto/mysqlctl/mysqlctl.pb.go +++ b/go/vt/proto/mysqlctl/mysqlctl.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: mysqlctl.proto @@ -111,11 +111,9 @@ type StartRequest struct { func (x *StartRequest) Reset() { *x = StartRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartRequest) String() string { @@ -126,7 +124,7 @@ func (*StartRequest) ProtoMessage() {} func (x *StartRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -156,11 +154,9 @@ type StartResponse struct { func (x *StartResponse) Reset() { *x = StartResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartResponse) String() string { @@ -171,7 +167,7 @@ func (*StartResponse) ProtoMessage() {} func (x *StartResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -197,11 +193,9 @@ type ShutdownRequest struct { func (x *ShutdownRequest) Reset() { *x = ShutdownRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShutdownRequest) String() string { @@ -212,7 +206,7 @@ func (*ShutdownRequest) ProtoMessage() {} func (x *ShutdownRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -249,11 +243,9 @@ type ShutdownResponse struct { func (x *ShutdownResponse) Reset() { *x = ShutdownResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShutdownResponse) String() string { @@ -264,7 +256,7 @@ func (*ShutdownResponse) ProtoMessage() {} func (x *ShutdownResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -287,11 +279,9 @@ type RunMysqlUpgradeRequest struct { func (x *RunMysqlUpgradeRequest) Reset() { *x = RunMysqlUpgradeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunMysqlUpgradeRequest) String() string { @@ -302,7 +292,7 @@ func (*RunMysqlUpgradeRequest) ProtoMessage() {} func (x *RunMysqlUpgradeRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -325,11 +315,9 @@ type RunMysqlUpgradeResponse struct { func (x *RunMysqlUpgradeResponse) Reset() { *x = RunMysqlUpgradeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunMysqlUpgradeResponse) String() string { @@ -340,7 +328,7 @@ func (*RunMysqlUpgradeResponse) ProtoMessage() {} func (x *RunMysqlUpgradeResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -367,11 +355,9 @@ type ApplyBinlogFileRequest struct { func (x *ApplyBinlogFileRequest) Reset() { *x = ApplyBinlogFileRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyBinlogFileRequest) String() string { @@ -382,7 +368,7 @@ func (*ApplyBinlogFileRequest) ProtoMessage() {} func (x *ApplyBinlogFileRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -426,11 +412,9 @@ type ApplyBinlogFileResponse struct { func (x *ApplyBinlogFileResponse) Reset() { *x = ApplyBinlogFileResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyBinlogFileResponse) String() string { @@ -441,7 +425,7 @@ func (*ApplyBinlogFileResponse) ProtoMessage() {} func (x *ApplyBinlogFileResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -466,11 +450,9 @@ type ReadBinlogFilesTimestampsRequest struct { func (x *ReadBinlogFilesTimestampsRequest) Reset() { *x = ReadBinlogFilesTimestampsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadBinlogFilesTimestampsRequest) String() string { @@ -481,7 +463,7 @@ func (*ReadBinlogFilesTimestampsRequest) ProtoMessage() {} func (x *ReadBinlogFilesTimestampsRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -520,11 +502,9 @@ type ReadBinlogFilesTimestampsResponse struct { func (x *ReadBinlogFilesTimestampsResponse) Reset() { *x = ReadBinlogFilesTimestampsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadBinlogFilesTimestampsResponse) String() string { @@ -535,7 +515,7 @@ func (*ReadBinlogFilesTimestampsResponse) ProtoMessage() {} func (x *ReadBinlogFilesTimestampsResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -586,11 +566,9 @@ type ReinitConfigRequest struct { func (x *ReinitConfigRequest) Reset() { *x = ReinitConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReinitConfigRequest) String() string { @@ -601,7 +579,7 @@ func (*ReinitConfigRequest) ProtoMessage() {} func (x *ReinitConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -624,11 +602,9 @@ type ReinitConfigResponse struct { func (x *ReinitConfigResponse) Reset() { *x = ReinitConfigResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReinitConfigResponse) String() string { @@ -639,7 +615,7 @@ func (*ReinitConfigResponse) ProtoMessage() {} func (x *ReinitConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -662,11 +638,9 @@ type RefreshConfigRequest struct { func (x *RefreshConfigRequest) Reset() { *x = RefreshConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshConfigRequest) String() string { @@ -677,7 +651,7 @@ func (*RefreshConfigRequest) ProtoMessage() {} func (x *RefreshConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -700,11 +674,9 @@ type RefreshConfigResponse struct { func (x *RefreshConfigResponse) Reset() { *x = RefreshConfigResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshConfigResponse) String() string { @@ -715,7 +687,7 @@ func (*RefreshConfigResponse) ProtoMessage() {} func (x *RefreshConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -738,11 +710,9 @@ type VersionStringRequest struct { func (x *VersionStringRequest) Reset() { *x = VersionStringRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VersionStringRequest) String() string { @@ -753,7 +723,7 @@ func (*VersionStringRequest) ProtoMessage() {} func (x *VersionStringRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -778,11 +748,9 @@ type VersionStringResponse struct { func (x *VersionStringResponse) Reset() { *x = VersionStringResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VersionStringResponse) String() string { @@ -793,7 +761,7 @@ func (*VersionStringResponse) ProtoMessage() {} func (x *VersionStringResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -823,11 +791,9 @@ type HostMetricsRequest struct { func (x *HostMetricsRequest) Reset() { *x = HostMetricsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HostMetricsRequest) String() string { @@ -838,7 +804,7 @@ func (*HostMetricsRequest) ProtoMessage() {} func (x *HostMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -865,11 +831,9 @@ type HostMetricsResponse struct { func (x *HostMetricsResponse) Reset() { *x = HostMetricsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HostMetricsResponse) String() string { @@ -880,7 +844,7 @@ func (*HostMetricsResponse) ProtoMessage() {} func (x *HostMetricsResponse) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -922,11 +886,9 @@ type BackupInfo struct { func (x *BackupInfo) Reset() { *x = BackupInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupInfo) String() string { @@ -937,7 +899,7 @@ func (*BackupInfo) ProtoMessage() {} func (x *BackupInfo) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1023,11 +985,9 @@ type HostMetricsResponse_Metric struct { func (x *HostMetricsResponse_Metric) Reset() { *x = HostMetricsResponse_Metric{} - if protoimpl.UnsafeEnabled { - mi := &file_mysqlctl_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_mysqlctl_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HostMetricsResponse_Metric) String() string { @@ -1038,7 +998,7 @@ func (*HostMetricsResponse_Metric) ProtoMessage() {} func (x *HostMetricsResponse_Metric) ProtoReflect() protoreflect.Message { mi := &file_mysqlctl_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1322,248 +1282,6 @@ func file_mysqlctl_proto_init() { if File_mysqlctl_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_mysqlctl_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*StartRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*StartResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ShutdownRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ShutdownResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*RunMysqlUpgradeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*RunMysqlUpgradeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ApplyBinlogFileRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*ApplyBinlogFileResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ReadBinlogFilesTimestampsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ReadBinlogFilesTimestampsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ReinitConfigRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ReinitConfigResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*RefreshConfigRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*RefreshConfigResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*VersionStringRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*VersionStringResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*HostMetricsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*HostMetricsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*BackupInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_mysqlctl_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*HostMetricsResponse_Metric); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go b/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go index 656ace2bf36..f0c77770d50 100644 --- a/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go +++ b/go/vt/proto/mysqlctl/mysqlctl_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: mysqlctl.proto package mysqlctl diff --git a/go/vt/proto/query/query.pb.go b/go/vt/proto/query/query.pb.go index 68f99522584..8c4bcb93f47 100644 --- a/go/vt/proto/query/query.pb.go +++ b/go/vt/proto/query/query.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: query.proto @@ -984,11 +984,9 @@ type Target struct { func (x *Target) Reset() { *x = Target{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Target) String() string { @@ -999,7 +997,7 @@ func (*Target) ProtoMessage() {} func (x *Target) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1061,11 +1059,9 @@ type VTGateCallerID struct { func (x *VTGateCallerID) Reset() { *x = VTGateCallerID{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VTGateCallerID) String() string { @@ -1076,7 +1072,7 @@ func (*VTGateCallerID) ProtoMessage() {} func (x *VTGateCallerID) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1126,11 +1122,9 @@ type EventToken struct { func (x *EventToken) Reset() { *x = EventToken{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EventToken) String() string { @@ -1141,7 +1135,7 @@ func (*EventToken) ProtoMessage() {} func (x *EventToken) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1189,11 +1183,9 @@ type Value struct { func (x *Value) Reset() { *x = Value{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Value) String() string { @@ -1204,7 +1196,7 @@ func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1247,11 +1239,9 @@ type BindVariable struct { func (x *BindVariable) Reset() { *x = BindVariable{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BindVariable) String() string { @@ -1262,7 +1252,7 @@ func (*BindVariable) ProtoMessage() {} func (x *BindVariable) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1313,11 +1303,9 @@ type BoundQuery struct { func (x *BoundQuery) Reset() { *x = BoundQuery{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BoundQuery) String() string { @@ -1328,7 +1316,7 @@ func (*BoundQuery) ProtoMessage() {} func (x *BoundQuery) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1413,11 +1401,9 @@ type ExecuteOptions struct { func (x *ExecuteOptions) Reset() { *x = ExecuteOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteOptions) String() string { @@ -1428,7 +1414,7 @@ func (*ExecuteOptions) ProtoMessage() {} func (x *ExecuteOptions) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1582,11 +1568,9 @@ type Field struct { func (x *Field) Reset() { *x = Field{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Field) String() string { @@ -1597,7 +1581,7 @@ func (*Field) ProtoMessage() {} func (x *Field) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1706,11 +1690,9 @@ type Row struct { func (x *Row) Reset() { *x = Row{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Row) String() string { @@ -1721,7 +1703,7 @@ func (*Row) ProtoMessage() {} func (x *Row) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1774,11 +1756,9 @@ type QueryResult struct { func (x *QueryResult) Reset() { *x = QueryResult{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryResult) String() string { @@ -1789,7 +1769,7 @@ func (*QueryResult) ProtoMessage() {} func (x *QueryResult) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1859,11 +1839,9 @@ type QueryWarning struct { func (x *QueryWarning) Reset() { *x = QueryWarning{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *QueryWarning) String() string { @@ -1874,7 +1852,7 @@ func (*QueryWarning) ProtoMessage() {} func (x *QueryWarning) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1919,11 +1897,9 @@ type StreamEvent struct { func (x *StreamEvent) Reset() { *x = StreamEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamEvent) String() string { @@ -1934,7 +1910,7 @@ func (*StreamEvent) ProtoMessage() {} func (x *StreamEvent) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1980,11 +1956,9 @@ type ExecuteRequest struct { func (x *ExecuteRequest) Reset() { *x = ExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteRequest) String() string { @@ -1995,7 +1969,7 @@ func (*ExecuteRequest) ProtoMessage() {} func (x *ExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2070,11 +2044,9 @@ type ExecuteResponse struct { func (x *ExecuteResponse) Reset() { *x = ExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteResponse) String() string { @@ -2085,7 +2057,7 @@ func (*ExecuteResponse) ProtoMessage() {} func (x *ExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2123,11 +2095,9 @@ type ResultWithError struct { func (x *ResultWithError) Reset() { *x = ResultWithError{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResultWithError) String() string { @@ -2138,7 +2108,7 @@ func (*ResultWithError) ProtoMessage() {} func (x *ResultWithError) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2184,11 +2154,9 @@ type StreamExecuteRequest struct { func (x *StreamExecuteRequest) Reset() { *x = StreamExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamExecuteRequest) String() string { @@ -2199,7 +2167,7 @@ func (*StreamExecuteRequest) ProtoMessage() {} func (x *StreamExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2274,11 +2242,9 @@ type StreamExecuteResponse struct { func (x *StreamExecuteResponse) Reset() { *x = StreamExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamExecuteResponse) String() string { @@ -2289,7 +2255,7 @@ func (*StreamExecuteResponse) ProtoMessage() {} func (x *StreamExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2325,11 +2291,9 @@ type BeginRequest struct { func (x *BeginRequest) Reset() { *x = BeginRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginRequest) String() string { @@ -2340,7 +2304,7 @@ func (*BeginRequest) ProtoMessage() {} func (x *BeginRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2398,11 +2362,9 @@ type BeginResponse struct { func (x *BeginResponse) Reset() { *x = BeginResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginResponse) String() string { @@ -2413,7 +2375,7 @@ func (*BeginResponse) ProtoMessage() {} func (x *BeginResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2463,11 +2425,9 @@ type CommitRequest struct { func (x *CommitRequest) Reset() { *x = CommitRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitRequest) String() string { @@ -2478,7 +2438,7 @@ func (*CommitRequest) ProtoMessage() {} func (x *CommitRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2532,11 +2492,9 @@ type CommitResponse struct { func (x *CommitResponse) Reset() { *x = CommitResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitResponse) String() string { @@ -2547,7 +2505,7 @@ func (*CommitResponse) ProtoMessage() {} func (x *CommitResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2583,11 +2541,9 @@ type RollbackRequest struct { func (x *RollbackRequest) Reset() { *x = RollbackRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollbackRequest) String() string { @@ -2598,7 +2554,7 @@ func (*RollbackRequest) ProtoMessage() {} func (x *RollbackRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2652,11 +2608,9 @@ type RollbackResponse struct { func (x *RollbackResponse) Reset() { *x = RollbackResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollbackResponse) String() string { @@ -2667,7 +2621,7 @@ func (*RollbackResponse) ProtoMessage() {} func (x *RollbackResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2704,11 +2658,9 @@ type PrepareRequest struct { func (x *PrepareRequest) Reset() { *x = PrepareRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrepareRequest) String() string { @@ -2719,7 +2671,7 @@ func (*PrepareRequest) ProtoMessage() {} func (x *PrepareRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2778,11 +2730,9 @@ type PrepareResponse struct { func (x *PrepareResponse) Reset() { *x = PrepareResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrepareResponse) String() string { @@ -2793,7 +2743,7 @@ func (*PrepareResponse) ProtoMessage() {} func (x *PrepareResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2822,11 +2772,9 @@ type CommitPreparedRequest struct { func (x *CommitPreparedRequest) Reset() { *x = CommitPreparedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitPreparedRequest) String() string { @@ -2837,7 +2785,7 @@ func (*CommitPreparedRequest) ProtoMessage() {} func (x *CommitPreparedRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2889,11 +2837,9 @@ type CommitPreparedResponse struct { func (x *CommitPreparedResponse) Reset() { *x = CommitPreparedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CommitPreparedResponse) String() string { @@ -2904,7 +2850,7 @@ func (*CommitPreparedResponse) ProtoMessage() {} func (x *CommitPreparedResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2934,11 +2880,9 @@ type RollbackPreparedRequest struct { func (x *RollbackPreparedRequest) Reset() { *x = RollbackPreparedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollbackPreparedRequest) String() string { @@ -2949,7 +2893,7 @@ func (*RollbackPreparedRequest) ProtoMessage() {} func (x *RollbackPreparedRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3008,11 +2952,9 @@ type RollbackPreparedResponse struct { func (x *RollbackPreparedResponse) Reset() { *x = RollbackPreparedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollbackPreparedResponse) String() string { @@ -3023,7 +2965,7 @@ func (*RollbackPreparedResponse) ProtoMessage() {} func (x *RollbackPreparedResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3053,11 +2995,9 @@ type CreateTransactionRequest struct { func (x *CreateTransactionRequest) Reset() { *x = CreateTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateTransactionRequest) String() string { @@ -3068,7 +3008,7 @@ func (*CreateTransactionRequest) ProtoMessage() {} func (x *CreateTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3127,11 +3067,9 @@ type CreateTransactionResponse struct { func (x *CreateTransactionResponse) Reset() { *x = CreateTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateTransactionResponse) String() string { @@ -3142,7 +3080,7 @@ func (*CreateTransactionResponse) ProtoMessage() {} func (x *CreateTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3172,11 +3110,9 @@ type StartCommitRequest struct { func (x *StartCommitRequest) Reset() { *x = StartCommitRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartCommitRequest) String() string { @@ -3187,7 +3123,7 @@ func (*StartCommitRequest) ProtoMessage() {} func (x *StartCommitRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3248,11 +3184,9 @@ type StartCommitResponse struct { func (x *StartCommitResponse) Reset() { *x = StartCommitResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartCommitResponse) String() string { @@ -3263,7 +3197,7 @@ func (*StartCommitResponse) ProtoMessage() {} func (x *StartCommitResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3300,11 +3234,9 @@ type SetRollbackRequest struct { func (x *SetRollbackRequest) Reset() { *x = SetRollbackRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetRollbackRequest) String() string { @@ -3315,7 +3247,7 @@ func (*SetRollbackRequest) ProtoMessage() {} func (x *SetRollbackRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3374,11 +3306,9 @@ type SetRollbackResponse struct { func (x *SetRollbackResponse) Reset() { *x = SetRollbackResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetRollbackResponse) String() string { @@ -3389,7 +3319,7 @@ func (*SetRollbackResponse) ProtoMessage() {} func (x *SetRollbackResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3418,11 +3348,9 @@ type ConcludeTransactionRequest struct { func (x *ConcludeTransactionRequest) Reset() { *x = ConcludeTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionRequest) String() string { @@ -3433,7 +3361,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {} func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3485,11 +3413,9 @@ type ConcludeTransactionResponse struct { func (x *ConcludeTransactionResponse) Reset() { *x = ConcludeTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionResponse) String() string { @@ -3500,7 +3426,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {} func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3529,11 +3455,9 @@ type ReadTransactionRequest struct { func (x *ReadTransactionRequest) Reset() { *x = ReadTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadTransactionRequest) String() string { @@ -3544,7 +3468,7 @@ func (*ReadTransactionRequest) ProtoMessage() {} func (x *ReadTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3598,11 +3522,9 @@ type ReadTransactionResponse struct { func (x *ReadTransactionResponse) Reset() { *x = ReadTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadTransactionResponse) String() string { @@ -3613,7 +3535,7 @@ func (*ReadTransactionResponse) ProtoMessage() {} func (x *ReadTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3649,11 +3571,9 @@ type UnresolvedTransactionsRequest struct { func (x *UnresolvedTransactionsRequest) Reset() { *x = UnresolvedTransactionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnresolvedTransactionsRequest) String() string { @@ -3664,7 +3584,7 @@ func (*UnresolvedTransactionsRequest) ProtoMessage() {} func (x *UnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3718,11 +3638,9 @@ type UnresolvedTransactionsResponse struct { func (x *UnresolvedTransactionsResponse) Reset() { *x = UnresolvedTransactionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnresolvedTransactionsResponse) String() string { @@ -3733,7 +3651,7 @@ func (*UnresolvedTransactionsResponse) ProtoMessage() {} func (x *UnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3772,11 +3690,9 @@ type BeginExecuteRequest struct { func (x *BeginExecuteRequest) Reset() { *x = BeginExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginExecuteRequest) String() string { @@ -3787,7 +3703,7 @@ func (*BeginExecuteRequest) ProtoMessage() {} func (x *BeginExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3872,11 +3788,9 @@ type BeginExecuteResponse struct { func (x *BeginExecuteResponse) Reset() { *x = BeginExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginExecuteResponse) String() string { @@ -3887,7 +3801,7 @@ func (*BeginExecuteResponse) ProtoMessage() {} func (x *BeginExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3954,11 +3868,9 @@ type BeginStreamExecuteRequest struct { func (x *BeginStreamExecuteRequest) Reset() { *x = BeginStreamExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginStreamExecuteRequest) String() string { @@ -3969,7 +3881,7 @@ func (*BeginStreamExecuteRequest) ProtoMessage() {} func (x *BeginStreamExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4054,11 +3966,9 @@ type BeginStreamExecuteResponse struct { func (x *BeginStreamExecuteResponse) Reset() { *x = BeginStreamExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BeginStreamExecuteResponse) String() string { @@ -4069,7 +3979,7 @@ func (*BeginStreamExecuteResponse) ProtoMessage() {} func (x *BeginStreamExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4134,11 +4044,9 @@ type MessageStreamRequest struct { func (x *MessageStreamRequest) Reset() { *x = MessageStreamRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageStreamRequest) String() string { @@ -4149,7 +4057,7 @@ func (*MessageStreamRequest) ProtoMessage() {} func (x *MessageStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4203,11 +4111,9 @@ type MessageStreamResponse struct { func (x *MessageStreamResponse) Reset() { *x = MessageStreamResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageStreamResponse) String() string { @@ -4218,7 +4124,7 @@ func (*MessageStreamResponse) ProtoMessage() {} func (x *MessageStreamResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4256,11 +4162,9 @@ type MessageAckRequest struct { func (x *MessageAckRequest) Reset() { *x = MessageAckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageAckRequest) String() string { @@ -4271,7 +4175,7 @@ func (*MessageAckRequest) ProtoMessage() {} func (x *MessageAckRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4335,11 +4239,9 @@ type MessageAckResponse struct { func (x *MessageAckResponse) Reset() { *x = MessageAckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MessageAckResponse) String() string { @@ -4350,7 +4252,7 @@ func (*MessageAckResponse) ProtoMessage() {} func (x *MessageAckResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4389,11 +4291,9 @@ type ReserveExecuteRequest struct { func (x *ReserveExecuteRequest) Reset() { *x = ReserveExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveExecuteRequest) String() string { @@ -4404,7 +4304,7 @@ func (*ReserveExecuteRequest) ProtoMessage() {} func (x *ReserveExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4483,11 +4383,9 @@ type ReserveExecuteResponse struct { func (x *ReserveExecuteResponse) Reset() { *x = ReserveExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveExecuteResponse) String() string { @@ -4498,7 +4396,7 @@ func (*ReserveExecuteResponse) ProtoMessage() {} func (x *ReserveExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4558,11 +4456,9 @@ type ReserveStreamExecuteRequest struct { func (x *ReserveStreamExecuteRequest) Reset() { *x = ReserveStreamExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveStreamExecuteRequest) String() string { @@ -4573,7 +4469,7 @@ func (*ReserveStreamExecuteRequest) ProtoMessage() {} func (x *ReserveStreamExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4652,11 +4548,9 @@ type ReserveStreamExecuteResponse struct { func (x *ReserveStreamExecuteResponse) Reset() { *x = ReserveStreamExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveStreamExecuteResponse) String() string { @@ -4667,7 +4561,7 @@ func (*ReserveStreamExecuteResponse) ProtoMessage() {} func (x *ReserveStreamExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4727,11 +4621,9 @@ type ReserveBeginExecuteRequest struct { func (x *ReserveBeginExecuteRequest) Reset() { *x = ReserveBeginExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveBeginExecuteRequest) String() string { @@ -4742,7 +4634,7 @@ func (*ReserveBeginExecuteRequest) ProtoMessage() {} func (x *ReserveBeginExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4828,11 +4720,9 @@ type ReserveBeginExecuteResponse struct { func (x *ReserveBeginExecuteResponse) Reset() { *x = ReserveBeginExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveBeginExecuteResponse) String() string { @@ -4843,7 +4733,7 @@ func (*ReserveBeginExecuteResponse) ProtoMessage() {} func (x *ReserveBeginExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4917,11 +4807,9 @@ type ReserveBeginStreamExecuteRequest struct { func (x *ReserveBeginStreamExecuteRequest) Reset() { *x = ReserveBeginStreamExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveBeginStreamExecuteRequest) String() string { @@ -4932,7 +4820,7 @@ func (*ReserveBeginStreamExecuteRequest) ProtoMessage() {} func (x *ReserveBeginStreamExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5018,11 +4906,9 @@ type ReserveBeginStreamExecuteResponse struct { func (x *ReserveBeginStreamExecuteResponse) Reset() { *x = ReserveBeginStreamExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReserveBeginStreamExecuteResponse) String() string { @@ -5033,7 +4919,7 @@ func (*ReserveBeginStreamExecuteResponse) ProtoMessage() {} func (x *ReserveBeginStreamExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5105,11 +4991,9 @@ type ReleaseRequest struct { func (x *ReleaseRequest) Reset() { *x = ReleaseRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReleaseRequest) String() string { @@ -5120,7 +5004,7 @@ func (*ReleaseRequest) ProtoMessage() {} func (x *ReleaseRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5179,11 +5063,9 @@ type ReleaseResponse struct { func (x *ReleaseResponse) Reset() { *x = ReleaseResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReleaseResponse) String() string { @@ -5194,7 +5076,7 @@ func (*ReleaseResponse) ProtoMessage() {} func (x *ReleaseResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5218,11 +5100,9 @@ type StreamHealthRequest struct { func (x *StreamHealthRequest) Reset() { *x = StreamHealthRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamHealthRequest) String() string { @@ -5233,7 +5113,7 @@ func (*StreamHealthRequest) ProtoMessage() {} func (x *StreamHealthRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5293,11 +5173,9 @@ type RealtimeStats struct { func (x *RealtimeStats) Reset() { *x = RealtimeStats{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RealtimeStats) String() string { @@ -5308,7 +5186,7 @@ func (*RealtimeStats) ProtoMessage() {} func (x *RealtimeStats) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5418,11 +5296,9 @@ type AggregateStats struct { func (x *AggregateStats) Reset() { *x = AggregateStats{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AggregateStats) String() string { @@ -5433,7 +5309,7 @@ func (*AggregateStats) ProtoMessage() {} func (x *AggregateStats) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5538,11 +5414,9 @@ type StreamHealthResponse struct { func (x *StreamHealthResponse) Reset() { *x = StreamHealthResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamHealthResponse) String() string { @@ -5553,7 +5427,7 @@ func (*StreamHealthResponse) ProtoMessage() {} func (x *StreamHealthResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5617,11 +5491,9 @@ type TransactionMetadata struct { func (x *TransactionMetadata) Reset() { *x = TransactionMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TransactionMetadata) String() string { @@ -5632,7 +5504,7 @@ func (*TransactionMetadata) ProtoMessage() {} func (x *TransactionMetadata) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5688,11 +5560,9 @@ type GetSchemaRequest struct { func (x *GetSchemaRequest) Reset() { *x = GetSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaRequest) String() string { @@ -5703,7 +5573,7 @@ func (*GetSchemaRequest) ProtoMessage() {} func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5752,11 +5622,9 @@ type UDFInfo struct { func (x *UDFInfo) Reset() { *x = UDFInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UDFInfo) String() string { @@ -5767,7 +5635,7 @@ func (*UDFInfo) ProtoMessage() {} func (x *UDFInfo) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5816,11 +5684,9 @@ type GetSchemaResponse struct { func (x *GetSchemaResponse) Reset() { *x = GetSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaResponse) String() string { @@ -5831,7 +5697,7 @@ func (*GetSchemaResponse) ProtoMessage() {} func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5878,11 +5744,9 @@ type StreamEvent_Statement struct { func (x *StreamEvent_Statement) Reset() { *x = StreamEvent_Statement{} - if protoimpl.UnsafeEnabled { - mi := &file_query_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_query_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamEvent_Statement) String() string { @@ -5893,7 +5757,7 @@ func (*StreamEvent_Statement) ProtoMessage() {} func (x *StreamEvent_Statement) ProtoReflect() protoreflect.Message { mi := &file_query_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7171,824 +7035,6 @@ func file_query_proto_init() { if File_query_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_query_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Target); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*VTGateCallerID); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*EventToken); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*Value); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*BindVariable); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*BoundQuery); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*Field); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*Row); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*QueryResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*QueryWarning); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*StreamEvent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*ResultWithError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*StreamExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*StreamExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*BeginRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*BeginResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*CommitRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*CommitResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*RollbackRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*RollbackResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*PrepareRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*PrepareResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*CommitPreparedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*CommitPreparedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*RollbackPreparedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*RollbackPreparedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*CreateTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*CreateTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*StartCommitRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*StartCommitResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*SetRollbackRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*SetRollbackResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*ReadTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*ReadTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*UnresolvedTransactionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*UnresolvedTransactionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*BeginExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*BeginExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*BeginStreamExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*BeginStreamExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*MessageStreamRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*MessageStreamResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*MessageAckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*MessageAckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*ReserveExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*ReserveExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*ReserveStreamExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*ReserveStreamExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*ReserveBeginExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*ReserveBeginExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*ReserveBeginStreamExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*ReserveBeginStreamExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*ReleaseRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*ReleaseResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*StreamHealthRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*RealtimeStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*AggregateStats); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*StreamHealthResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*TransactionMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*UDFInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_query_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*StreamEvent_Statement); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_query_proto_msgTypes[6].OneofWrappers = []any{ (*ExecuteOptions_AuthoritativeTimeout)(nil), } diff --git a/go/vt/proto/query/query_vtproto.pb.go b/go/vt/proto/query/query_vtproto.pb.go index 7de7afc320b..2cb69d9406d 100644 --- a/go/vt/proto/query/query_vtproto.pb.go +++ b/go/vt/proto/query/query_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: query.proto package query diff --git a/go/vt/proto/queryservice/queryservice.pb.go b/go/vt/proto/queryservice/queryservice.pb.go index 3ef39575e60..b44c6becd5d 100644 --- a/go/vt/proto/queryservice/queryservice.pb.go +++ b/go/vt/proto/queryservice/queryservice.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: queryservice.proto diff --git a/go/vt/proto/replicationdata/replicationdata.pb.go b/go/vt/proto/replicationdata/replicationdata.pb.go index 29ee0e5b67e..4568ae2d437 100644 --- a/go/vt/proto/replicationdata/replicationdata.pb.go +++ b/go/vt/proto/replicationdata/replicationdata.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: replicationdata.proto @@ -118,11 +118,9 @@ type Status struct { func (x *Status) Reset() { *x = Status{} - if protoimpl.UnsafeEnabled { - mi := &file_replicationdata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_replicationdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Status) String() string { @@ -133,7 +131,7 @@ func (*Status) ProtoMessage() {} func (x *Status) ProtoReflect() protoreflect.Message { mi := &file_replicationdata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -316,11 +314,9 @@ type Configuration struct { func (x *Configuration) Reset() { *x = Configuration{} - if protoimpl.UnsafeEnabled { - mi := &file_replicationdata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_replicationdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Configuration) String() string { @@ -331,7 +327,7 @@ func (*Configuration) ProtoMessage() {} func (x *Configuration) ProtoReflect() protoreflect.Message { mi := &file_replicationdata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -373,11 +369,9 @@ type StopReplicationStatus struct { func (x *StopReplicationStatus) Reset() { *x = StopReplicationStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_replicationdata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_replicationdata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationStatus) String() string { @@ -388,7 +382,7 @@ func (*StopReplicationStatus) ProtoMessage() {} func (x *StopReplicationStatus) ProtoReflect() protoreflect.Message { mi := &file_replicationdata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -430,11 +424,9 @@ type PrimaryStatus struct { func (x *PrimaryStatus) Reset() { *x = PrimaryStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_replicationdata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_replicationdata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrimaryStatus) String() string { @@ -445,7 +437,7 @@ func (*PrimaryStatus) ProtoMessage() {} func (x *PrimaryStatus) ProtoReflect() protoreflect.Message { mi := &file_replicationdata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -513,11 +505,9 @@ type FullStatus struct { func (x *FullStatus) Reset() { *x = FullStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_replicationdata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_replicationdata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FullStatus) String() string { @@ -528,7 +518,7 @@ func (*FullStatus) ProtoMessage() {} func (x *FullStatus) ProtoReflect() protoreflect.Message { mi := &file_replicationdata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -900,68 +890,6 @@ func file_replicationdata_proto_init() { if File_replicationdata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_replicationdata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Status); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_replicationdata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*Configuration); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_replicationdata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_replicationdata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*PrimaryStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_replicationdata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*FullStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go index b81b2125566..b1b771d1561 100644 --- a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go +++ b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: replicationdata.proto package replicationdata diff --git a/go/vt/proto/tableacl/tableacl.pb.go b/go/vt/proto/tableacl/tableacl.pb.go index b6b7549e8fc..44281419028 100644 --- a/go/vt/proto/tableacl/tableacl.pb.go +++ b/go/vt/proto/tableacl/tableacl.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: tableacl.proto @@ -53,11 +53,9 @@ type TableGroupSpec struct { func (x *TableGroupSpec) Reset() { *x = TableGroupSpec{} - if protoimpl.UnsafeEnabled { - mi := &file_tableacl_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tableacl_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TableGroupSpec) String() string { @@ -68,7 +66,7 @@ func (*TableGroupSpec) ProtoMessage() {} func (x *TableGroupSpec) ProtoReflect() protoreflect.Message { mi := &file_tableacl_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -128,11 +126,9 @@ type Config struct { func (x *Config) Reset() { *x = Config{} - if protoimpl.UnsafeEnabled { - mi := &file_tableacl_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tableacl_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Config) String() string { @@ -143,7 +139,7 @@ func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { mi := &file_tableacl_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -221,32 +217,6 @@ func file_tableacl_proto_init() { if File_tableacl_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_tableacl_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*TableGroupSpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tableacl_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*Config); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/tableacl/tableacl_vtproto.pb.go b/go/vt/proto/tableacl/tableacl_vtproto.pb.go index acf8b28b71c..60c9294706f 100644 --- a/go/vt/proto/tableacl/tableacl_vtproto.pb.go +++ b/go/vt/proto/tableacl/tableacl_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: tableacl.proto package tableacl diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go index eb29cd462c4..67eae2395ad 100644 --- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go +++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: tabletmanagerdata.proto @@ -181,11 +181,9 @@ type TableDefinition struct { func (x *TableDefinition) Reset() { *x = TableDefinition{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TableDefinition) String() string { @@ -196,7 +194,7 @@ func (*TableDefinition) ProtoMessage() {} func (x *TableDefinition) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -278,11 +276,9 @@ type SchemaDefinition struct { func (x *SchemaDefinition) Reset() { *x = SchemaDefinition{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SchemaDefinition) String() string { @@ -293,7 +289,7 @@ func (*SchemaDefinition) ProtoMessage() {} func (x *SchemaDefinition) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -335,11 +331,9 @@ type SchemaChangeResult struct { func (x *SchemaChangeResult) Reset() { *x = SchemaChangeResult{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SchemaChangeResult) String() string { @@ -350,7 +344,7 @@ func (*SchemaChangeResult) ProtoMessage() {} func (x *SchemaChangeResult) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -395,11 +389,9 @@ type UserPermission struct { func (x *UserPermission) Reset() { *x = UserPermission{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UserPermission) String() string { @@ -410,7 +402,7 @@ func (*UserPermission) ProtoMessage() {} func (x *UserPermission) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -468,11 +460,9 @@ type DbPermission struct { func (x *DbPermission) Reset() { *x = DbPermission{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DbPermission) String() string { @@ -483,7 +473,7 @@ func (*DbPermission) ProtoMessage() {} func (x *DbPermission) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -539,11 +529,9 @@ type Permissions struct { func (x *Permissions) Reset() { *x = Permissions{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Permissions) String() string { @@ -554,7 +542,7 @@ func (*Permissions) ProtoMessage() {} func (x *Permissions) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -593,11 +581,9 @@ type PingRequest struct { func (x *PingRequest) Reset() { *x = PingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingRequest) String() string { @@ -608,7 +594,7 @@ func (*PingRequest) ProtoMessage() {} func (x *PingRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -640,11 +626,9 @@ type PingResponse struct { func (x *PingResponse) Reset() { *x = PingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingResponse) String() string { @@ -655,7 +639,7 @@ func (*PingResponse) ProtoMessage() {} func (x *PingResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -688,11 +672,9 @@ type SleepRequest struct { func (x *SleepRequest) Reset() { *x = SleepRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SleepRequest) String() string { @@ -703,7 +685,7 @@ func (*SleepRequest) ProtoMessage() {} func (x *SleepRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -733,11 +715,9 @@ type SleepResponse struct { func (x *SleepResponse) Reset() { *x = SleepResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SleepResponse) String() string { @@ -748,7 +728,7 @@ func (*SleepResponse) ProtoMessage() {} func (x *SleepResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -775,11 +755,9 @@ type ExecuteHookRequest struct { func (x *ExecuteHookRequest) Reset() { *x = ExecuteHookRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteHookRequest) String() string { @@ -790,7 +768,7 @@ func (*ExecuteHookRequest) ProtoMessage() {} func (x *ExecuteHookRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -838,11 +816,9 @@ type ExecuteHookResponse struct { func (x *ExecuteHookResponse) Reset() { *x = ExecuteHookResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteHookResponse) String() string { @@ -853,7 +829,7 @@ func (*ExecuteHookResponse) ProtoMessage() {} func (x *ExecuteHookResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -904,11 +880,9 @@ type GetSchemaRequest struct { func (x *GetSchemaRequest) Reset() { *x = GetSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaRequest) String() string { @@ -919,7 +893,7 @@ func (*GetSchemaRequest) ProtoMessage() {} func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -972,11 +946,9 @@ type GetSchemaResponse struct { func (x *GetSchemaResponse) Reset() { *x = GetSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaResponse) String() string { @@ -987,7 +959,7 @@ func (*GetSchemaResponse) ProtoMessage() {} func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1017,11 +989,9 @@ type GetPermissionsRequest struct { func (x *GetPermissionsRequest) Reset() { *x = GetPermissionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPermissionsRequest) String() string { @@ -1032,7 +1002,7 @@ func (*GetPermissionsRequest) ProtoMessage() {} func (x *GetPermissionsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1057,11 +1027,9 @@ type GetPermissionsResponse struct { func (x *GetPermissionsResponse) Reset() { *x = GetPermissionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPermissionsResponse) String() string { @@ -1072,7 +1040,7 @@ func (*GetPermissionsResponse) ProtoMessage() {} func (x *GetPermissionsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1104,11 +1072,9 @@ type GetGlobalStatusVarsRequest struct { func (x *GetGlobalStatusVarsRequest) Reset() { *x = GetGlobalStatusVarsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetGlobalStatusVarsRequest) String() string { @@ -1119,7 +1085,7 @@ func (*GetGlobalStatusVarsRequest) ProtoMessage() {} func (x *GetGlobalStatusVarsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1151,11 +1117,9 @@ type GetGlobalStatusVarsResponse struct { func (x *GetGlobalStatusVarsResponse) Reset() { *x = GetGlobalStatusVarsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetGlobalStatusVarsResponse) String() string { @@ -1166,7 +1130,7 @@ func (*GetGlobalStatusVarsResponse) ProtoMessage() {} func (x *GetGlobalStatusVarsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1196,11 +1160,9 @@ type SetReadOnlyRequest struct { func (x *SetReadOnlyRequest) Reset() { *x = SetReadOnlyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadOnlyRequest) String() string { @@ -1211,7 +1173,7 @@ func (*SetReadOnlyRequest) ProtoMessage() {} func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1234,11 +1196,9 @@ type SetReadOnlyResponse struct { func (x *SetReadOnlyResponse) Reset() { *x = SetReadOnlyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadOnlyResponse) String() string { @@ -1249,7 +1209,7 @@ func (*SetReadOnlyResponse) ProtoMessage() {} func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1272,11 +1232,9 @@ type SetReadWriteRequest struct { func (x *SetReadWriteRequest) Reset() { *x = SetReadWriteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadWriteRequest) String() string { @@ -1287,7 +1245,7 @@ func (*SetReadWriteRequest) ProtoMessage() {} func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1310,11 +1268,9 @@ type SetReadWriteResponse struct { func (x *SetReadWriteResponse) Reset() { *x = SetReadWriteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadWriteResponse) String() string { @@ -1325,7 +1281,7 @@ func (*SetReadWriteResponse) ProtoMessage() {} func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1351,11 +1307,9 @@ type ChangeTypeRequest struct { func (x *ChangeTypeRequest) Reset() { *x = ChangeTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTypeRequest) String() string { @@ -1366,7 +1320,7 @@ func (*ChangeTypeRequest) ProtoMessage() {} func (x *ChangeTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1403,11 +1357,9 @@ type ChangeTypeResponse struct { func (x *ChangeTypeResponse) Reset() { *x = ChangeTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTypeResponse) String() string { @@ -1418,7 +1370,7 @@ func (*ChangeTypeResponse) ProtoMessage() {} func (x *ChangeTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1441,11 +1393,9 @@ type RefreshStateRequest struct { func (x *RefreshStateRequest) Reset() { *x = RefreshStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateRequest) String() string { @@ -1456,7 +1406,7 @@ func (*RefreshStateRequest) ProtoMessage() {} func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1479,11 +1429,9 @@ type RefreshStateResponse struct { func (x *RefreshStateResponse) Reset() { *x = RefreshStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateResponse) String() string { @@ -1494,7 +1442,7 @@ func (*RefreshStateResponse) ProtoMessage() {} func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1517,11 +1465,9 @@ type RunHealthCheckRequest struct { func (x *RunHealthCheckRequest) Reset() { *x = RunHealthCheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckRequest) String() string { @@ -1532,7 +1478,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {} func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1555,11 +1501,9 @@ type RunHealthCheckResponse struct { func (x *RunHealthCheckResponse) Reset() { *x = RunHealthCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckResponse) String() string { @@ -1570,7 +1514,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {} func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1598,11 +1542,9 @@ type ReloadSchemaRequest struct { func (x *ReloadSchemaRequest) Reset() { *x = ReloadSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaRequest) String() string { @@ -1613,7 +1555,7 @@ func (*ReloadSchemaRequest) ProtoMessage() {} func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1643,11 +1585,9 @@ type ReloadSchemaResponse struct { func (x *ReloadSchemaResponse) Reset() { *x = ReloadSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaResponse) String() string { @@ -1658,7 +1598,7 @@ func (*ReloadSchemaResponse) ProtoMessage() {} func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1683,11 +1623,9 @@ type PreflightSchemaRequest struct { func (x *PreflightSchemaRequest) Reset() { *x = PreflightSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PreflightSchemaRequest) String() string { @@ -1698,7 +1636,7 @@ func (*PreflightSchemaRequest) ProtoMessage() {} func (x *PreflightSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1732,11 +1670,9 @@ type PreflightSchemaResponse struct { func (x *PreflightSchemaResponse) Reset() { *x = PreflightSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PreflightSchemaResponse) String() string { @@ -1747,7 +1683,7 @@ func (*PreflightSchemaResponse) ProtoMessage() {} func (x *PreflightSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1788,11 +1724,9 @@ type ApplySchemaRequest struct { func (x *ApplySchemaRequest) Reset() { *x = ApplySchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplySchemaRequest) String() string { @@ -1803,7 +1737,7 @@ func (*ApplySchemaRequest) ProtoMessage() {} func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1885,11 +1819,9 @@ type ApplySchemaResponse struct { func (x *ApplySchemaResponse) Reset() { *x = ApplySchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplySchemaResponse) String() string { @@ -1900,7 +1832,7 @@ func (*ApplySchemaResponse) ProtoMessage() {} func (x *ApplySchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1937,11 +1869,9 @@ type LockTablesRequest struct { func (x *LockTablesRequest) Reset() { *x = LockTablesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LockTablesRequest) String() string { @@ -1952,7 +1882,7 @@ func (*LockTablesRequest) ProtoMessage() {} func (x *LockTablesRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1975,11 +1905,9 @@ type LockTablesResponse struct { func (x *LockTablesResponse) Reset() { *x = LockTablesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LockTablesResponse) String() string { @@ -1990,7 +1918,7 @@ func (*LockTablesResponse) ProtoMessage() {} func (x *LockTablesResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2013,11 +1941,9 @@ type UnlockTablesRequest struct { func (x *UnlockTablesRequest) Reset() { *x = UnlockTablesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnlockTablesRequest) String() string { @@ -2028,7 +1954,7 @@ func (*UnlockTablesRequest) ProtoMessage() {} func (x *UnlockTablesRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2051,11 +1977,9 @@ type UnlockTablesResponse struct { func (x *UnlockTablesResponse) Reset() { *x = UnlockTablesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UnlockTablesResponse) String() string { @@ -2066,7 +1990,7 @@ func (*UnlockTablesResponse) ProtoMessage() {} func (x *UnlockTablesResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2096,11 +2020,9 @@ type ExecuteQueryRequest struct { func (x *ExecuteQueryRequest) Reset() { *x = ExecuteQueryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteQueryRequest) String() string { @@ -2111,7 +2033,7 @@ func (*ExecuteQueryRequest) ProtoMessage() {} func (x *ExecuteQueryRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2164,11 +2086,9 @@ type ExecuteQueryResponse struct { func (x *ExecuteQueryResponse) Reset() { *x = ExecuteQueryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteQueryResponse) String() string { @@ -2179,7 +2099,7 @@ func (*ExecuteQueryResponse) ProtoMessage() {} func (x *ExecuteQueryResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2216,11 +2136,9 @@ type ExecuteFetchAsDbaRequest struct { func (x *ExecuteFetchAsDbaRequest) Reset() { *x = ExecuteFetchAsDbaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsDbaRequest) String() string { @@ -2231,7 +2149,7 @@ func (*ExecuteFetchAsDbaRequest) ProtoMessage() {} func (x *ExecuteFetchAsDbaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2298,11 +2216,9 @@ type ExecuteFetchAsDbaResponse struct { func (x *ExecuteFetchAsDbaResponse) Reset() { *x = ExecuteFetchAsDbaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsDbaResponse) String() string { @@ -2313,7 +2229,7 @@ func (*ExecuteFetchAsDbaResponse) ProtoMessage() {} func (x *ExecuteFetchAsDbaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2350,11 +2266,9 @@ type ExecuteMultiFetchAsDbaRequest struct { func (x *ExecuteMultiFetchAsDbaRequest) Reset() { *x = ExecuteMultiFetchAsDbaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteMultiFetchAsDbaRequest) String() string { @@ -2365,7 +2279,7 @@ func (*ExecuteMultiFetchAsDbaRequest) ProtoMessage() {} func (x *ExecuteMultiFetchAsDbaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2432,11 +2346,9 @@ type ExecuteMultiFetchAsDbaResponse struct { func (x *ExecuteMultiFetchAsDbaResponse) Reset() { *x = ExecuteMultiFetchAsDbaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteMultiFetchAsDbaResponse) String() string { @@ -2447,7 +2359,7 @@ func (*ExecuteMultiFetchAsDbaResponse) ProtoMessage() {} func (x *ExecuteMultiFetchAsDbaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2482,11 +2394,9 @@ type ExecuteFetchAsAllPrivsRequest struct { func (x *ExecuteFetchAsAllPrivsRequest) Reset() { *x = ExecuteFetchAsAllPrivsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAllPrivsRequest) String() string { @@ -2497,7 +2407,7 @@ func (*ExecuteFetchAsAllPrivsRequest) ProtoMessage() {} func (x *ExecuteFetchAsAllPrivsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2550,11 +2460,9 @@ type ExecuteFetchAsAllPrivsResponse struct { func (x *ExecuteFetchAsAllPrivsResponse) Reset() { *x = ExecuteFetchAsAllPrivsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAllPrivsResponse) String() string { @@ -2565,7 +2473,7 @@ func (*ExecuteFetchAsAllPrivsResponse) ProtoMessage() {} func (x *ExecuteFetchAsAllPrivsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2598,11 +2506,9 @@ type ExecuteFetchAsAppRequest struct { func (x *ExecuteFetchAsAppRequest) Reset() { *x = ExecuteFetchAsAppRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAppRequest) String() string { @@ -2613,7 +2519,7 @@ func (*ExecuteFetchAsAppRequest) ProtoMessage() {} func (x *ExecuteFetchAsAppRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2652,11 +2558,9 @@ type ExecuteFetchAsAppResponse struct { func (x *ExecuteFetchAsAppResponse) Reset() { *x = ExecuteFetchAsAppResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAppResponse) String() string { @@ -2667,7 +2571,7 @@ func (*ExecuteFetchAsAppResponse) ProtoMessage() {} func (x *ExecuteFetchAsAppResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2699,11 +2603,9 @@ type GetUnresolvedTransactionsRequest struct { func (x *GetUnresolvedTransactionsRequest) Reset() { *x = GetUnresolvedTransactionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUnresolvedTransactionsRequest) String() string { @@ -2714,7 +2616,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {} func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2746,11 +2648,9 @@ type GetUnresolvedTransactionsResponse struct { func (x *GetUnresolvedTransactionsResponse) Reset() { *x = GetUnresolvedTransactionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUnresolvedTransactionsResponse) String() string { @@ -2761,7 +2661,7 @@ func (*GetUnresolvedTransactionsResponse) ProtoMessage() {} func (x *GetUnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2793,11 +2693,9 @@ type ReadTransactionRequest struct { func (x *ReadTransactionRequest) Reset() { *x = ReadTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadTransactionRequest) String() string { @@ -2808,7 +2706,7 @@ func (*ReadTransactionRequest) ProtoMessage() {} func (x *ReadTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2840,11 +2738,9 @@ type ReadTransactionResponse struct { func (x *ReadTransactionResponse) Reset() { *x = ReadTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadTransactionResponse) String() string { @@ -2855,7 +2751,7 @@ func (*ReadTransactionResponse) ProtoMessage() {} func (x *ReadTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2887,11 +2783,9 @@ type GetTransactionInfoRequest struct { func (x *GetTransactionInfoRequest) Reset() { *x = GetTransactionInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTransactionInfoRequest) String() string { @@ -2902,7 +2796,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {} func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2937,11 +2831,9 @@ type GetTransactionInfoResponse struct { func (x *GetTransactionInfoResponse) Reset() { *x = GetTransactionInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTransactionInfoResponse) String() string { @@ -2952,7 +2844,7 @@ func (*GetTransactionInfoResponse) ProtoMessage() {} func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3006,11 +2898,9 @@ type ConcludeTransactionRequest struct { func (x *ConcludeTransactionRequest) Reset() { *x = ConcludeTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionRequest) String() string { @@ -3021,7 +2911,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {} func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3058,11 +2948,9 @@ type ConcludeTransactionResponse struct { func (x *ConcludeTransactionResponse) Reset() { *x = ConcludeTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionResponse) String() string { @@ -3073,7 +2961,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {} func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3096,11 +2984,9 @@ type MysqlHostMetricsRequest struct { func (x *MysqlHostMetricsRequest) Reset() { *x = MysqlHostMetricsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MysqlHostMetricsRequest) String() string { @@ -3111,7 +2997,7 @@ func (*MysqlHostMetricsRequest) ProtoMessage() {} func (x *MysqlHostMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3136,11 +3022,9 @@ type MysqlHostMetricsResponse struct { func (x *MysqlHostMetricsResponse) Reset() { *x = MysqlHostMetricsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MysqlHostMetricsResponse) String() string { @@ -3151,7 +3035,7 @@ func (*MysqlHostMetricsResponse) ProtoMessage() {} func (x *MysqlHostMetricsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3181,11 +3065,9 @@ type ReplicationStatusRequest struct { func (x *ReplicationStatusRequest) Reset() { *x = ReplicationStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicationStatusRequest) String() string { @@ -3196,7 +3078,7 @@ func (*ReplicationStatusRequest) ProtoMessage() {} func (x *ReplicationStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3221,11 +3103,9 @@ type ReplicationStatusResponse struct { func (x *ReplicationStatusResponse) Reset() { *x = ReplicationStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicationStatusResponse) String() string { @@ -3236,7 +3116,7 @@ func (*ReplicationStatusResponse) ProtoMessage() {} func (x *ReplicationStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3266,11 +3146,9 @@ type PrimaryStatusRequest struct { func (x *PrimaryStatusRequest) Reset() { *x = PrimaryStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrimaryStatusRequest) String() string { @@ -3281,7 +3159,7 @@ func (*PrimaryStatusRequest) ProtoMessage() {} func (x *PrimaryStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3306,11 +3184,9 @@ type PrimaryStatusResponse struct { func (x *PrimaryStatusResponse) Reset() { *x = PrimaryStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrimaryStatusResponse) String() string { @@ -3321,7 +3197,7 @@ func (*PrimaryStatusResponse) ProtoMessage() {} func (x *PrimaryStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3351,11 +3227,9 @@ type PrimaryPositionRequest struct { func (x *PrimaryPositionRequest) Reset() { *x = PrimaryPositionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrimaryPositionRequest) String() string { @@ -3366,7 +3240,7 @@ func (*PrimaryPositionRequest) ProtoMessage() {} func (x *PrimaryPositionRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3391,11 +3265,9 @@ type PrimaryPositionResponse struct { func (x *PrimaryPositionResponse) Reset() { *x = PrimaryPositionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrimaryPositionResponse) String() string { @@ -3406,7 +3278,7 @@ func (*PrimaryPositionResponse) ProtoMessage() {} func (x *PrimaryPositionResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3438,11 +3310,9 @@ type WaitForPositionRequest struct { func (x *WaitForPositionRequest) Reset() { *x = WaitForPositionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WaitForPositionRequest) String() string { @@ -3453,7 +3323,7 @@ func (*WaitForPositionRequest) ProtoMessage() {} func (x *WaitForPositionRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3483,11 +3353,9 @@ type WaitForPositionResponse struct { func (x *WaitForPositionResponse) Reset() { *x = WaitForPositionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WaitForPositionResponse) String() string { @@ -3498,7 +3366,7 @@ func (*WaitForPositionResponse) ProtoMessage() {} func (x *WaitForPositionResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3521,11 +3389,9 @@ type StopReplicationRequest struct { func (x *StopReplicationRequest) Reset() { *x = StopReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationRequest) String() string { @@ -3536,7 +3402,7 @@ func (*StopReplicationRequest) ProtoMessage() {} func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3559,11 +3425,9 @@ type StopReplicationResponse struct { func (x *StopReplicationResponse) Reset() { *x = StopReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationResponse) String() string { @@ -3574,7 +3438,7 @@ func (*StopReplicationResponse) ProtoMessage() {} func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3600,11 +3464,9 @@ type StopReplicationMinimumRequest struct { func (x *StopReplicationMinimumRequest) Reset() { *x = StopReplicationMinimumRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationMinimumRequest) String() string { @@ -3615,7 +3477,7 @@ func (*StopReplicationMinimumRequest) ProtoMessage() {} func (x *StopReplicationMinimumRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3654,11 +3516,9 @@ type StopReplicationMinimumResponse struct { func (x *StopReplicationMinimumResponse) Reset() { *x = StopReplicationMinimumResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationMinimumResponse) String() string { @@ -3669,7 +3529,7 @@ func (*StopReplicationMinimumResponse) ProtoMessage() {} func (x *StopReplicationMinimumResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3701,11 +3561,9 @@ type StartReplicationRequest struct { func (x *StartReplicationRequest) Reset() { *x = StartReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationRequest) String() string { @@ -3716,7 +3574,7 @@ func (*StartReplicationRequest) ProtoMessage() {} func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3746,11 +3604,9 @@ type StartReplicationResponse struct { func (x *StartReplicationResponse) Reset() { *x = StartReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationResponse) String() string { @@ -3761,7 +3617,7 @@ func (*StartReplicationResponse) ProtoMessage() {} func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3787,11 +3643,9 @@ type StartReplicationUntilAfterRequest struct { func (x *StartReplicationUntilAfterRequest) Reset() { *x = StartReplicationUntilAfterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationUntilAfterRequest) String() string { @@ -3802,7 +3656,7 @@ func (*StartReplicationUntilAfterRequest) ProtoMessage() {} func (x *StartReplicationUntilAfterRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3839,11 +3693,9 @@ type StartReplicationUntilAfterResponse struct { func (x *StartReplicationUntilAfterResponse) Reset() { *x = StartReplicationUntilAfterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationUntilAfterResponse) String() string { @@ -3854,7 +3706,7 @@ func (*StartReplicationUntilAfterResponse) ProtoMessage() {} func (x *StartReplicationUntilAfterResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3877,11 +3729,9 @@ type GetReplicasRequest struct { func (x *GetReplicasRequest) Reset() { *x = GetReplicasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetReplicasRequest) String() string { @@ -3892,7 +3742,7 @@ func (*GetReplicasRequest) ProtoMessage() {} func (x *GetReplicasRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3917,11 +3767,9 @@ type GetReplicasResponse struct { func (x *GetReplicasResponse) Reset() { *x = GetReplicasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetReplicasResponse) String() string { @@ -3932,7 +3780,7 @@ func (*GetReplicasResponse) ProtoMessage() {} func (x *GetReplicasResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3962,11 +3810,9 @@ type ResetReplicationRequest struct { func (x *ResetReplicationRequest) Reset() { *x = ResetReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetReplicationRequest) String() string { @@ -3977,7 +3823,7 @@ func (*ResetReplicationRequest) ProtoMessage() {} func (x *ResetReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4000,11 +3846,9 @@ type ResetReplicationResponse struct { func (x *ResetReplicationResponse) Reset() { *x = ResetReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetReplicationResponse) String() string { @@ -4015,7 +3859,7 @@ func (*ResetReplicationResponse) ProtoMessage() {} func (x *ResetReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4040,11 +3884,9 @@ type VReplicationExecRequest struct { func (x *VReplicationExecRequest) Reset() { *x = VReplicationExecRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VReplicationExecRequest) String() string { @@ -4055,7 +3897,7 @@ func (*VReplicationExecRequest) ProtoMessage() {} func (x *VReplicationExecRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4087,11 +3929,9 @@ type VReplicationExecResponse struct { func (x *VReplicationExecResponse) Reset() { *x = VReplicationExecResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VReplicationExecResponse) String() string { @@ -4102,7 +3942,7 @@ func (*VReplicationExecResponse) ProtoMessage() {} func (x *VReplicationExecResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4135,11 +3975,9 @@ type VReplicationWaitForPosRequest struct { func (x *VReplicationWaitForPosRequest) Reset() { *x = VReplicationWaitForPosRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VReplicationWaitForPosRequest) String() string { @@ -4150,7 +3988,7 @@ func (*VReplicationWaitForPosRequest) ProtoMessage() {} func (x *VReplicationWaitForPosRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4187,11 +4025,9 @@ type VReplicationWaitForPosResponse struct { func (x *VReplicationWaitForPosResponse) Reset() { *x = VReplicationWaitForPosResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VReplicationWaitForPosResponse) String() string { @@ -4202,7 +4038,7 @@ func (*VReplicationWaitForPosResponse) ProtoMessage() {} func (x *VReplicationWaitForPosResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4227,11 +4063,9 @@ type InitPrimaryRequest struct { func (x *InitPrimaryRequest) Reset() { *x = InitPrimaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitPrimaryRequest) String() string { @@ -4242,7 +4076,7 @@ func (*InitPrimaryRequest) ProtoMessage() {} func (x *InitPrimaryRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4274,11 +4108,9 @@ type InitPrimaryResponse struct { func (x *InitPrimaryResponse) Reset() { *x = InitPrimaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitPrimaryResponse) String() string { @@ -4289,7 +4121,7 @@ func (*InitPrimaryResponse) ProtoMessage() {} func (x *InitPrimaryResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4324,11 +4156,9 @@ type PopulateReparentJournalRequest struct { func (x *PopulateReparentJournalRequest) Reset() { *x = PopulateReparentJournalRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PopulateReparentJournalRequest) String() string { @@ -4339,7 +4169,7 @@ func (*PopulateReparentJournalRequest) ProtoMessage() {} func (x *PopulateReparentJournalRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[84] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4390,11 +4220,9 @@ type PopulateReparentJournalResponse struct { func (x *PopulateReparentJournalResponse) Reset() { *x = PopulateReparentJournalResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PopulateReparentJournalResponse) String() string { @@ -4405,7 +4233,7 @@ func (*PopulateReparentJournalResponse) ProtoMessage() {} func (x *PopulateReparentJournalResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[85] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4428,11 +4256,9 @@ type ReadReparentJournalInfoRequest struct { func (x *ReadReparentJournalInfoRequest) Reset() { *x = ReadReparentJournalInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadReparentJournalInfoRequest) String() string { @@ -4443,7 +4269,7 @@ func (*ReadReparentJournalInfoRequest) ProtoMessage() {} func (x *ReadReparentJournalInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4468,11 +4294,9 @@ type ReadReparentJournalInfoResponse struct { func (x *ReadReparentJournalInfoResponse) Reset() { *x = ReadReparentJournalInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadReparentJournalInfoResponse) String() string { @@ -4483,7 +4307,7 @@ func (*ReadReparentJournalInfoResponse) ProtoMessage() {} func (x *ReadReparentJournalInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4518,11 +4342,9 @@ type InitReplicaRequest struct { func (x *InitReplicaRequest) Reset() { *x = InitReplicaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitReplicaRequest) String() string { @@ -4533,7 +4355,7 @@ func (*InitReplicaRequest) ProtoMessage() {} func (x *InitReplicaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4584,11 +4406,9 @@ type InitReplicaResponse struct { func (x *InitReplicaResponse) Reset() { *x = InitReplicaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitReplicaResponse) String() string { @@ -4599,7 +4419,7 @@ func (*InitReplicaResponse) ProtoMessage() {} func (x *InitReplicaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4622,11 +4442,9 @@ type DemotePrimaryRequest struct { func (x *DemotePrimaryRequest) Reset() { *x = DemotePrimaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DemotePrimaryRequest) String() string { @@ -4637,7 +4455,7 @@ func (*DemotePrimaryRequest) ProtoMessage() {} func (x *DemotePrimaryRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4663,11 +4481,9 @@ type DemotePrimaryResponse struct { func (x *DemotePrimaryResponse) Reset() { *x = DemotePrimaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DemotePrimaryResponse) String() string { @@ -4678,7 +4494,7 @@ func (*DemotePrimaryResponse) ProtoMessage() {} func (x *DemotePrimaryResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4710,11 +4526,9 @@ type UndoDemotePrimaryRequest struct { func (x *UndoDemotePrimaryRequest) Reset() { *x = UndoDemotePrimaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UndoDemotePrimaryRequest) String() string { @@ -4725,7 +4539,7 @@ func (*UndoDemotePrimaryRequest) ProtoMessage() {} func (x *UndoDemotePrimaryRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4755,11 +4569,9 @@ type UndoDemotePrimaryResponse struct { func (x *UndoDemotePrimaryResponse) Reset() { *x = UndoDemotePrimaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UndoDemotePrimaryResponse) String() string { @@ -4770,7 +4582,7 @@ func (*UndoDemotePrimaryResponse) ProtoMessage() {} func (x *UndoDemotePrimaryResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4793,11 +4605,9 @@ type ReplicaWasPromotedRequest struct { func (x *ReplicaWasPromotedRequest) Reset() { *x = ReplicaWasPromotedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicaWasPromotedRequest) String() string { @@ -4808,7 +4618,7 @@ func (*ReplicaWasPromotedRequest) ProtoMessage() {} func (x *ReplicaWasPromotedRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4831,11 +4641,9 @@ type ReplicaWasPromotedResponse struct { func (x *ReplicaWasPromotedResponse) Reset() { *x = ReplicaWasPromotedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[95] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicaWasPromotedResponse) String() string { @@ -4846,7 +4654,7 @@ func (*ReplicaWasPromotedResponse) ProtoMessage() {} func (x *ReplicaWasPromotedResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[95] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4869,11 +4677,9 @@ type ResetReplicationParametersRequest struct { func (x *ResetReplicationParametersRequest) Reset() { *x = ResetReplicationParametersRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetReplicationParametersRequest) String() string { @@ -4884,7 +4690,7 @@ func (*ResetReplicationParametersRequest) ProtoMessage() {} func (x *ResetReplicationParametersRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4907,11 +4713,9 @@ type ResetReplicationParametersResponse struct { func (x *ResetReplicationParametersResponse) Reset() { *x = ResetReplicationParametersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetReplicationParametersResponse) String() string { @@ -4922,7 +4726,7 @@ func (*ResetReplicationParametersResponse) ProtoMessage() {} func (x *ResetReplicationParametersResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4945,11 +4749,9 @@ type FullStatusRequest struct { func (x *FullStatusRequest) Reset() { *x = FullStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FullStatusRequest) String() string { @@ -4960,7 +4762,7 @@ func (*FullStatusRequest) ProtoMessage() {} func (x *FullStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4985,11 +4787,9 @@ type FullStatusResponse struct { func (x *FullStatusResponse) Reset() { *x = FullStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FullStatusResponse) String() string { @@ -5000,7 +4800,7 @@ func (*FullStatusResponse) ProtoMessage() {} func (x *FullStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5037,11 +4837,9 @@ type SetReplicationSourceRequest struct { func (x *SetReplicationSourceRequest) Reset() { *x = SetReplicationSourceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReplicationSourceRequest) String() string { @@ -5052,7 +4850,7 @@ func (*SetReplicationSourceRequest) ProtoMessage() {} func (x *SetReplicationSourceRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5117,11 +4915,9 @@ type SetReplicationSourceResponse struct { func (x *SetReplicationSourceResponse) Reset() { *x = SetReplicationSourceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReplicationSourceResponse) String() string { @@ -5132,7 +4928,7 @@ func (*SetReplicationSourceResponse) ProtoMessage() {} func (x *SetReplicationSourceResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5158,11 +4954,9 @@ type ReplicaWasRestartedRequest struct { func (x *ReplicaWasRestartedRequest) Reset() { *x = ReplicaWasRestartedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[102] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicaWasRestartedRequest) String() string { @@ -5173,7 +4967,7 @@ func (*ReplicaWasRestartedRequest) ProtoMessage() {} func (x *ReplicaWasRestartedRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[102] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5203,11 +4997,9 @@ type ReplicaWasRestartedResponse struct { func (x *ReplicaWasRestartedResponse) Reset() { *x = ReplicaWasRestartedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[103] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReplicaWasRestartedResponse) String() string { @@ -5218,7 +5010,7 @@ func (*ReplicaWasRestartedResponse) ProtoMessage() {} func (x *ReplicaWasRestartedResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[103] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5243,11 +5035,9 @@ type StopReplicationAndGetStatusRequest struct { func (x *StopReplicationAndGetStatusRequest) Reset() { *x = StopReplicationAndGetStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationAndGetStatusRequest) String() string { @@ -5258,7 +5048,7 @@ func (*StopReplicationAndGetStatusRequest) ProtoMessage() {} func (x *StopReplicationAndGetStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5291,11 +5081,9 @@ type StopReplicationAndGetStatusResponse struct { func (x *StopReplicationAndGetStatusResponse) Reset() { *x = StopReplicationAndGetStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationAndGetStatusResponse) String() string { @@ -5306,7 +5094,7 @@ func (*StopReplicationAndGetStatusResponse) ProtoMessage() {} func (x *StopReplicationAndGetStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5338,11 +5126,9 @@ type PromoteReplicaRequest struct { func (x *PromoteReplicaRequest) Reset() { *x = PromoteReplicaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PromoteReplicaRequest) String() string { @@ -5353,7 +5139,7 @@ func (*PromoteReplicaRequest) ProtoMessage() {} func (x *PromoteReplicaRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5385,11 +5171,9 @@ type PromoteReplicaResponse struct { func (x *PromoteReplicaResponse) Reset() { *x = PromoteReplicaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PromoteReplicaResponse) String() string { @@ -5400,7 +5184,7 @@ func (*PromoteReplicaResponse) ProtoMessage() {} func (x *PromoteReplicaResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5441,11 +5225,9 @@ type BackupRequest struct { func (x *BackupRequest) Reset() { *x = BackupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupRequest) String() string { @@ -5456,7 +5238,7 @@ func (*BackupRequest) ProtoMessage() {} func (x *BackupRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5516,11 +5298,9 @@ type BackupResponse struct { func (x *BackupResponse) Reset() { *x = BackupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupResponse) String() string { @@ -5531,7 +5311,7 @@ func (*BackupResponse) ProtoMessage() {} func (x *BackupResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5574,11 +5354,9 @@ type RestoreFromBackupRequest struct { func (x *RestoreFromBackupRequest) Reset() { *x = RestoreFromBackupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RestoreFromBackupRequest) String() string { @@ -5589,7 +5367,7 @@ func (*RestoreFromBackupRequest) ProtoMessage() {} func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[110] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5649,11 +5427,9 @@ type RestoreFromBackupResponse struct { func (x *RestoreFromBackupResponse) Reset() { *x = RestoreFromBackupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[111] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RestoreFromBackupResponse) String() string { @@ -5664,7 +5440,7 @@ func (*RestoreFromBackupResponse) ProtoMessage() {} func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[111] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5712,11 +5488,9 @@ type CreateVReplicationWorkflowRequest struct { func (x *CreateVReplicationWorkflowRequest) Reset() { *x = CreateVReplicationWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[112] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateVReplicationWorkflowRequest) String() string { @@ -5727,7 +5501,7 @@ func (*CreateVReplicationWorkflowRequest) ProtoMessage() {} func (x *CreateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[112] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5829,11 +5603,9 @@ type CreateVReplicationWorkflowResponse struct { func (x *CreateVReplicationWorkflowResponse) Reset() { *x = CreateVReplicationWorkflowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[113] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateVReplicationWorkflowResponse) String() string { @@ -5844,7 +5616,7 @@ func (*CreateVReplicationWorkflowResponse) ProtoMessage() {} func (x *CreateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[113] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5881,11 +5653,9 @@ type DeleteTableDataRequest struct { func (x *DeleteTableDataRequest) Reset() { *x = DeleteTableDataRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTableDataRequest) String() string { @@ -5896,7 +5666,7 @@ func (*DeleteTableDataRequest) ProtoMessage() {} func (x *DeleteTableDataRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[114] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5933,11 +5703,9 @@ type DeleteTableDataResponse struct { func (x *DeleteTableDataResponse) Reset() { *x = DeleteTableDataResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[115] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTableDataResponse) String() string { @@ -5948,7 +5716,7 @@ func (*DeleteTableDataResponse) ProtoMessage() {} func (x *DeleteTableDataResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[115] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5973,11 +5741,9 @@ type DeleteVReplicationWorkflowRequest struct { func (x *DeleteVReplicationWorkflowRequest) Reset() { *x = DeleteVReplicationWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[116] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteVReplicationWorkflowRequest) String() string { @@ -5988,7 +5754,7 @@ func (*DeleteVReplicationWorkflowRequest) ProtoMessage() {} func (x *DeleteVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[116] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6020,11 +5786,9 @@ type DeleteVReplicationWorkflowResponse struct { func (x *DeleteVReplicationWorkflowResponse) Reset() { *x = DeleteVReplicationWorkflowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[117] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteVReplicationWorkflowResponse) String() string { @@ -6035,7 +5799,7 @@ func (*DeleteVReplicationWorkflowResponse) ProtoMessage() {} func (x *DeleteVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[117] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6065,11 +5829,9 @@ type HasVReplicationWorkflowsRequest struct { func (x *HasVReplicationWorkflowsRequest) Reset() { *x = HasVReplicationWorkflowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HasVReplicationWorkflowsRequest) String() string { @@ -6080,7 +5842,7 @@ func (*HasVReplicationWorkflowsRequest) ProtoMessage() {} func (x *HasVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[118] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6105,11 +5867,9 @@ type HasVReplicationWorkflowsResponse struct { func (x *HasVReplicationWorkflowsResponse) Reset() { *x = HasVReplicationWorkflowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[119] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HasVReplicationWorkflowsResponse) String() string { @@ -6120,7 +5880,7 @@ func (*HasVReplicationWorkflowsResponse) ProtoMessage() {} func (x *HasVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[119] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6157,11 +5917,9 @@ type ReadVReplicationWorkflowsRequest struct { func (x *ReadVReplicationWorkflowsRequest) Reset() { *x = ReadVReplicationWorkflowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadVReplicationWorkflowsRequest) String() string { @@ -6172,7 +5930,7 @@ func (*ReadVReplicationWorkflowsRequest) ProtoMessage() {} func (x *ReadVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6239,11 +5997,9 @@ type ReadVReplicationWorkflowsResponse struct { func (x *ReadVReplicationWorkflowsResponse) Reset() { *x = ReadVReplicationWorkflowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[121] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadVReplicationWorkflowsResponse) String() string { @@ -6254,7 +6010,7 @@ func (*ReadVReplicationWorkflowsResponse) ProtoMessage() {} func (x *ReadVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[121] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6286,11 +6042,9 @@ type ReadVReplicationWorkflowRequest struct { func (x *ReadVReplicationWorkflowRequest) Reset() { *x = ReadVReplicationWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadVReplicationWorkflowRequest) String() string { @@ -6301,7 +6055,7 @@ func (*ReadVReplicationWorkflowRequest) ProtoMessage() {} func (x *ReadVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6344,11 +6098,9 @@ type ReadVReplicationWorkflowResponse struct { func (x *ReadVReplicationWorkflowResponse) Reset() { *x = ReadVReplicationWorkflowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadVReplicationWorkflowResponse) String() string { @@ -6359,7 +6111,7 @@ func (*ReadVReplicationWorkflowResponse) ProtoMessage() {} func (x *ReadVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6466,11 +6218,9 @@ type ValidateVReplicationPermissionsRequest struct { func (x *ValidateVReplicationPermissionsRequest) Reset() { *x = ValidateVReplicationPermissionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVReplicationPermissionsRequest) String() string { @@ -6481,7 +6231,7 @@ func (*ValidateVReplicationPermissionsRequest) ProtoMessage() {} func (x *ValidateVReplicationPermissionsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[124] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6510,11 +6260,9 @@ type ValidateVReplicationPermissionsResponse struct { func (x *ValidateVReplicationPermissionsResponse) Reset() { *x = ValidateVReplicationPermissionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[125] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVReplicationPermissionsResponse) String() string { @@ -6525,7 +6273,7 @@ func (*ValidateVReplicationPermissionsResponse) ProtoMessage() {} func (x *ValidateVReplicationPermissionsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[125] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6569,11 +6317,9 @@ type VDiffRequest struct { func (x *VDiffRequest) Reset() { *x = VDiffRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffRequest) String() string { @@ -6584,7 +6330,7 @@ func (*VDiffRequest) ProtoMessage() {} func (x *VDiffRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6653,11 +6399,9 @@ type VDiffResponse struct { func (x *VDiffResponse) Reset() { *x = VDiffResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffResponse) String() string { @@ -6668,7 +6412,7 @@ func (*VDiffResponse) ProtoMessage() {} func (x *VDiffResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[127] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6717,11 +6461,9 @@ type VDiffPickerOptions struct { func (x *VDiffPickerOptions) Reset() { *x = VDiffPickerOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[128] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffPickerOptions) String() string { @@ -6732,7 +6474,7 @@ func (*VDiffPickerOptions) ProtoMessage() {} func (x *VDiffPickerOptions) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[128] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6783,11 +6525,9 @@ type VDiffReportOptions struct { func (x *VDiffReportOptions) Reset() { *x = VDiffReportOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffReportOptions) String() string { @@ -6798,7 +6538,7 @@ func (*VDiffReportOptions) ProtoMessage() {} func (x *VDiffReportOptions) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[129] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6867,11 +6607,9 @@ type VDiffCoreOptions struct { func (x *VDiffCoreOptions) Reset() { *x = VDiffCoreOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffCoreOptions) String() string { @@ -6882,7 +6620,7 @@ func (*VDiffCoreOptions) ProtoMessage() {} func (x *VDiffCoreOptions) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6979,11 +6717,9 @@ type VDiffOptions struct { func (x *VDiffOptions) Reset() { *x = VDiffOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffOptions) String() string { @@ -6994,7 +6730,7 @@ func (*VDiffOptions) ProtoMessage() {} func (x *VDiffOptions) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[131] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7052,11 +6788,9 @@ type UpdateVReplicationWorkflowRequest struct { func (x *UpdateVReplicationWorkflowRequest) Reset() { *x = UpdateVReplicationWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVReplicationWorkflowRequest) String() string { @@ -7067,7 +6801,7 @@ func (*UpdateVReplicationWorkflowRequest) ProtoMessage() {} func (x *UpdateVReplicationWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7141,11 +6875,9 @@ type UpdateVReplicationWorkflowResponse struct { func (x *UpdateVReplicationWorkflowResponse) Reset() { *x = UpdateVReplicationWorkflowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVReplicationWorkflowResponse) String() string { @@ -7156,7 +6888,7 @@ func (*UpdateVReplicationWorkflowResponse) ProtoMessage() {} func (x *UpdateVReplicationWorkflowResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7199,11 +6931,9 @@ type UpdateVReplicationWorkflowsRequest struct { func (x *UpdateVReplicationWorkflowsRequest) Reset() { *x = UpdateVReplicationWorkflowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[134] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVReplicationWorkflowsRequest) String() string { @@ -7214,7 +6944,7 @@ func (*UpdateVReplicationWorkflowsRequest) ProtoMessage() {} func (x *UpdateVReplicationWorkflowsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[134] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7281,11 +7011,9 @@ type UpdateVReplicationWorkflowsResponse struct { func (x *UpdateVReplicationWorkflowsResponse) Reset() { *x = UpdateVReplicationWorkflowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateVReplicationWorkflowsResponse) String() string { @@ -7296,7 +7024,7 @@ func (*UpdateVReplicationWorkflowsResponse) ProtoMessage() {} func (x *UpdateVReplicationWorkflowsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[135] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7328,11 +7056,9 @@ type ResetSequencesRequest struct { func (x *ResetSequencesRequest) Reset() { *x = ResetSequencesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[136] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetSequencesRequest) String() string { @@ -7343,7 +7069,7 @@ func (*ResetSequencesRequest) ProtoMessage() {} func (x *ResetSequencesRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[136] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7373,11 +7099,9 @@ type ResetSequencesResponse struct { func (x *ResetSequencesResponse) Reset() { *x = ResetSequencesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetSequencesResponse) String() string { @@ -7388,7 +7112,7 @@ func (*ResetSequencesResponse) ProtoMessage() {} func (x *ResetSequencesResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7421,11 +7145,9 @@ type CheckThrottlerRequest struct { func (x *CheckThrottlerRequest) Reset() { *x = CheckThrottlerRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[138] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckThrottlerRequest) String() string { @@ -7436,7 +7158,7 @@ func (*CheckThrottlerRequest) ProtoMessage() {} func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[138] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7517,11 +7239,9 @@ type CheckThrottlerResponse struct { func (x *CheckThrottlerResponse) Reset() { *x = CheckThrottlerResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[139] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckThrottlerResponse) String() string { @@ -7532,7 +7252,7 @@ func (*CheckThrottlerResponse) ProtoMessage() {} func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[139] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7625,11 +7345,9 @@ type GetThrottlerStatusRequest struct { func (x *GetThrottlerStatusRequest) Reset() { *x = GetThrottlerStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[140] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusRequest) String() string { @@ -7640,7 +7358,7 @@ func (*GetThrottlerStatusRequest) ProtoMessage() {} func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[140] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7700,11 +7418,9 @@ type GetThrottlerStatusResponse struct { func (x *GetThrottlerStatusResponse) Reset() { *x = GetThrottlerStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[141] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusResponse) String() string { @@ -7715,7 +7431,7 @@ func (*GetThrottlerStatusResponse) ProtoMessage() {} func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[141] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7867,11 +7583,9 @@ type ChangeTagsRequest struct { func (x *ChangeTagsRequest) Reset() { *x = ChangeTagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[142] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTagsRequest) String() string { @@ -7882,7 +7596,7 @@ func (*ChangeTagsRequest) ProtoMessage() {} func (x *ChangeTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[142] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7921,11 +7635,9 @@ type ChangeTagsResponse struct { func (x *ChangeTagsResponse) Reset() { *x = ChangeTagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[143] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTagsResponse) String() string { @@ -7936,7 +7648,7 @@ func (*ChangeTagsResponse) ProtoMessage() {} func (x *ChangeTagsResponse) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[143] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7981,11 +7693,9 @@ type ReadVReplicationWorkflowResponse_Stream struct { func (x *ReadVReplicationWorkflowResponse_Stream) Reset() { *x = ReadVReplicationWorkflowResponse_Stream{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[149] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadVReplicationWorkflowResponse_Stream) String() string { @@ -7996,7 +7706,7 @@ func (*ReadVReplicationWorkflowResponse_Stream) ProtoMessage() {} func (x *ReadVReplicationWorkflowResponse_Stream) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[149] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8134,11 +7844,9 @@ type CheckThrottlerResponse_Metric struct { func (x *CheckThrottlerResponse_Metric) Reset() { *x = CheckThrottlerResponse_Metric{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckThrottlerResponse_Metric) String() string { @@ -8149,7 +7857,7 @@ func (*CheckThrottlerResponse_Metric) ProtoMessage() {} func (x *CheckThrottlerResponse_Metric) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[152] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8231,11 +7939,9 @@ type GetThrottlerStatusResponse_MetricResult struct { func (x *GetThrottlerStatusResponse_MetricResult) Reset() { *x = GetThrottlerStatusResponse_MetricResult{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[154] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusResponse_MetricResult) String() string { @@ -8246,7 +7952,7 @@ func (*GetThrottlerStatusResponse_MetricResult) ProtoMessage() {} func (x *GetThrottlerStatusResponse_MetricResult) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[154] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8286,11 +7992,9 @@ type GetThrottlerStatusResponse_MetricHealth struct { func (x *GetThrottlerStatusResponse_MetricHealth) Reset() { *x = GetThrottlerStatusResponse_MetricHealth{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[157] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusResponse_MetricHealth) String() string { @@ -8301,7 +8005,7 @@ func (*GetThrottlerStatusResponse_MetricHealth) ProtoMessage() {} func (x *GetThrottlerStatusResponse_MetricHealth) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[157] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8343,11 +8047,9 @@ type GetThrottlerStatusResponse_RecentApp struct { func (x *GetThrottlerStatusResponse_RecentApp) Reset() { *x = GetThrottlerStatusResponse_RecentApp{} - if protoimpl.UnsafeEnabled { - mi := &file_tabletmanagerdata_proto_msgTypes[161] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_tabletmanagerdata_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusResponse_RecentApp) String() string { @@ -8358,7 +8060,7 @@ func (*GetThrottlerStatusResponse_RecentApp) ProtoMessage() {} func (x *GetThrottlerStatusResponse_RecentApp) ProtoReflect() protoreflect.Message { mi := &file_tabletmanagerdata_proto_msgTypes[161] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9885,1796 +9587,6 @@ func file_tabletmanagerdata_proto_init() { if File_tabletmanagerdata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_tabletmanagerdata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*TableDefinition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*SchemaDefinition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*SchemaChangeResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*UserPermission); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*DbPermission); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*Permissions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*PingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*PingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*SleepRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*SleepResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteHookRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteHookResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*GetPermissionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*GetPermissionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*GetGlobalStatusVarsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*GetGlobalStatusVarsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*SetReadOnlyRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*SetReadOnlyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*SetReadWriteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*SetReadWriteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTypeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTypeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*PreflightSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*PreflightSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*ApplySchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*ApplySchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*LockTablesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*LockTablesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*UnlockTablesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*UnlockTablesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteQueryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteQueryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsDbaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsDbaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteMultiFetchAsDbaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteMultiFetchAsDbaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAllPrivsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAllPrivsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAppRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAppResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*GetUnresolvedTransactionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*GetUnresolvedTransactionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*ReadTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*ReadTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*MysqlHostMetricsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*MysqlHostMetricsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*ReplicationStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*ReplicationStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*PrimaryStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*PrimaryStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*PrimaryPositionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*PrimaryPositionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*WaitForPositionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*WaitForPositionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationMinimumRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationMinimumResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationUntilAfterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationUntilAfterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*GetReplicasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*GetReplicasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*ResetReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*ResetReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*VReplicationExecRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*VReplicationExecResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*VReplicationWaitForPosRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*VReplicationWaitForPosResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*InitPrimaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*InitPrimaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*PopulateReparentJournalRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*PopulateReparentJournalResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*ReadReparentJournalInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*ReadReparentJournalInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*InitReplicaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*InitReplicaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*DemotePrimaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*DemotePrimaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*UndoDemotePrimaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*UndoDemotePrimaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*ReplicaWasPromotedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*ReplicaWasPromotedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*ResetReplicationParametersRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*ResetReplicationParametersResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*FullStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*FullStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*SetReplicationSourceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*SetReplicationSourceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*ReplicaWasRestartedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*ReplicaWasRestartedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationAndGetStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationAndGetStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*PromoteReplicaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*PromoteReplicaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*BackupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*BackupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*RestoreFromBackupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*RestoreFromBackupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*CreateVReplicationWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*CreateVReplicationWorkflowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTableDataRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTableDataResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*DeleteVReplicationWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*DeleteVReplicationWorkflowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*HasVReplicationWorkflowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*HasVReplicationWorkflowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*ReadVReplicationWorkflowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*ReadVReplicationWorkflowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*ReadVReplicationWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*ReadVReplicationWorkflowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVReplicationPermissionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVReplicationPermissionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*VDiffRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[127].Exporter = func(v any, i int) any { - switch v := v.(*VDiffResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[128].Exporter = func(v any, i int) any { - switch v := v.(*VDiffPickerOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*VDiffReportOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*VDiffCoreOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[131].Exporter = func(v any, i int) any { - switch v := v.(*VDiffOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*UpdateVReplicationWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[133].Exporter = func(v any, i int) any { - switch v := v.(*UpdateVReplicationWorkflowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[134].Exporter = func(v any, i int) any { - switch v := v.(*UpdateVReplicationWorkflowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*UpdateVReplicationWorkflowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*ResetSequencesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*ResetSequencesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[138].Exporter = func(v any, i int) any { - switch v := v.(*CheckThrottlerRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[139].Exporter = func(v any, i int) any { - switch v := v.(*CheckThrottlerResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[140].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[141].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[142].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTagsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[143].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTagsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[149].Exporter = func(v any, i int) any { - switch v := v.(*ReadVReplicationWorkflowResponse_Stream); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[152].Exporter = func(v any, i int) any { - switch v := v.(*CheckThrottlerResponse_Metric); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[154].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusResponse_MetricResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[157].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusResponse_MetricHealth); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_tabletmanagerdata_proto_msgTypes[161].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusResponse_RecentApp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_tabletmanagerdata_proto_msgTypes[108].OneofWrappers = []any{} file_tabletmanagerdata_proto_msgTypes[130].OneofWrappers = []any{} file_tabletmanagerdata_proto_msgTypes[132].OneofWrappers = []any{} diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go index 3a327143ad8..9f6b0df851b 100644 --- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go +++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: tabletmanagerdata.proto package tabletmanagerdata diff --git a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go index 2ecda04dfb0..7fc337a9da2 100644 --- a/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go +++ b/go/vt/proto/tabletmanagerservice/tabletmanagerservice.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: tabletmanagerservice.proto diff --git a/go/vt/proto/throttlerdata/throttlerdata.pb.go b/go/vt/proto/throttlerdata/throttlerdata.pb.go index 4ce28c924c8..9a51319692f 100644 --- a/go/vt/proto/throttlerdata/throttlerdata.pb.go +++ b/go/vt/proto/throttlerdata/throttlerdata.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: throttlerdata.proto @@ -46,11 +46,9 @@ type MaxRatesRequest struct { func (x *MaxRatesRequest) Reset() { *x = MaxRatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaxRatesRequest) String() string { @@ -61,7 +59,7 @@ func (*MaxRatesRequest) ProtoMessage() {} func (x *MaxRatesRequest) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -89,11 +87,9 @@ type MaxRatesResponse struct { func (x *MaxRatesResponse) Reset() { *x = MaxRatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaxRatesResponse) String() string { @@ -104,7 +100,7 @@ func (*MaxRatesResponse) ProtoMessage() {} func (x *MaxRatesResponse) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -137,11 +133,9 @@ type SetMaxRateRequest struct { func (x *SetMaxRateRequest) Reset() { *x = SetMaxRateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetMaxRateRequest) String() string { @@ -152,7 +146,7 @@ func (*SetMaxRateRequest) ProtoMessage() {} func (x *SetMaxRateRequest) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -186,11 +180,9 @@ type SetMaxRateResponse struct { func (x *SetMaxRateResponse) Reset() { *x = SetMaxRateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetMaxRateResponse) String() string { @@ -201,7 +193,7 @@ func (*SetMaxRateResponse) ProtoMessage() {} func (x *SetMaxRateResponse) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -312,11 +304,9 @@ type Configuration struct { func (x *Configuration) Reset() { *x = Configuration{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Configuration) String() string { @@ -327,7 +317,7 @@ func (*Configuration) ProtoMessage() {} func (x *Configuration) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -453,11 +443,9 @@ type GetConfigurationRequest struct { func (x *GetConfigurationRequest) Reset() { *x = GetConfigurationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetConfigurationRequest) String() string { @@ -468,7 +456,7 @@ func (*GetConfigurationRequest) ProtoMessage() {} func (x *GetConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -503,11 +491,9 @@ type GetConfigurationResponse struct { func (x *GetConfigurationResponse) Reset() { *x = GetConfigurationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetConfigurationResponse) String() string { @@ -518,7 +504,7 @@ func (*GetConfigurationResponse) ProtoMessage() {} func (x *GetConfigurationResponse) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -558,11 +544,9 @@ type UpdateConfigurationRequest struct { func (x *UpdateConfigurationRequest) Reset() { *x = UpdateConfigurationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateConfigurationRequest) String() string { @@ -573,7 +557,7 @@ func (*UpdateConfigurationRequest) ProtoMessage() {} func (x *UpdateConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -621,11 +605,9 @@ type UpdateConfigurationResponse struct { func (x *UpdateConfigurationResponse) Reset() { *x = UpdateConfigurationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateConfigurationResponse) String() string { @@ -636,7 +618,7 @@ func (*UpdateConfigurationResponse) ProtoMessage() {} func (x *UpdateConfigurationResponse) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -671,11 +653,9 @@ type ResetConfigurationRequest struct { func (x *ResetConfigurationRequest) Reset() { *x = ResetConfigurationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetConfigurationRequest) String() string { @@ -686,7 +666,7 @@ func (*ResetConfigurationRequest) ProtoMessage() {} func (x *ResetConfigurationRequest) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -720,11 +700,9 @@ type ResetConfigurationResponse struct { func (x *ResetConfigurationResponse) Reset() { *x = ResetConfigurationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_throttlerdata_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_throttlerdata_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResetConfigurationResponse) String() string { @@ -735,7 +713,7 @@ func (*ResetConfigurationResponse) ProtoMessage() {} func (x *ResetConfigurationResponse) ProtoReflect() protoreflect.Message { mi := &file_throttlerdata_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -920,140 +898,6 @@ func file_throttlerdata_proto_init() { if File_throttlerdata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_throttlerdata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*MaxRatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*MaxRatesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*SetMaxRateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*SetMaxRateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*Configuration); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*GetConfigurationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*GetConfigurationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*UpdateConfigurationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*UpdateConfigurationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ResetConfigurationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_throttlerdata_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ResetConfigurationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go b/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go index c7e3369b6cd..cdfb6ee66f8 100644 --- a/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go +++ b/go/vt/proto/throttlerdata/throttlerdata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: throttlerdata.proto package throttlerdata diff --git a/go/vt/proto/throttlerservice/throttlerservice.pb.go b/go/vt/proto/throttlerservice/throttlerservice.pb.go index 9d41991ac0f..ffa3808cf6b 100644 --- a/go/vt/proto/throttlerservice/throttlerservice.pb.go +++ b/go/vt/proto/throttlerservice/throttlerservice.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: throttlerservice.proto diff --git a/go/vt/proto/topodata/topodata.pb.go b/go/vt/proto/topodata/topodata.pb.go index 31fbcd5cfb4..fb0d8ec0ab8 100644 --- a/go/vt/proto/topodata/topodata.pb.go +++ b/go/vt/proto/topodata/topodata.pb.go @@ -20,7 +20,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: topodata.proto @@ -254,11 +254,9 @@ type KeyRange struct { func (x *KeyRange) Reset() { *x = KeyRange{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyRange) String() string { @@ -269,7 +267,7 @@ func (*KeyRange) ProtoMessage() {} func (x *KeyRange) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -313,11 +311,9 @@ type TabletAlias struct { func (x *TabletAlias) Reset() { *x = TabletAlias{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletAlias) String() string { @@ -328,7 +324,7 @@ func (*TabletAlias) ProtoMessage() {} func (x *TabletAlias) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -409,11 +405,9 @@ type Tablet struct { func (x *Tablet) Reset() { *x = Tablet{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Tablet) String() string { @@ -424,7 +418,7 @@ func (*Tablet) ProtoMessage() {} func (x *Tablet) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -578,11 +572,9 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard) String() string { @@ -593,7 +585,7 @@ func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -683,11 +675,9 @@ type Keyspace struct { func (x *Keyspace) Reset() { *x = Keyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Keyspace) String() string { @@ -698,7 +688,7 @@ func (*Keyspace) ProtoMessage() {} func (x *Keyspace) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -769,11 +759,9 @@ type ShardReplication struct { func (x *ShardReplication) Reset() { *x = ShardReplication{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplication) String() string { @@ -784,7 +772,7 @@ func (*ShardReplication) ProtoMessage() {} func (x *ShardReplication) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -821,11 +809,9 @@ type ShardReplicationError struct { func (x *ShardReplicationError) Reset() { *x = ShardReplicationError{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationError) String() string { @@ -836,7 +822,7 @@ func (*ShardReplicationError) ProtoMessage() {} func (x *ShardReplicationError) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -878,11 +864,9 @@ type ShardReference struct { func (x *ShardReference) Reset() { *x = ShardReference{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReference) String() string { @@ -893,7 +877,7 @@ func (*ShardReference) ProtoMessage() {} func (x *ShardReference) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -937,11 +921,9 @@ type ShardTabletControl struct { func (x *ShardTabletControl) Reset() { *x = ShardTabletControl{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardTabletControl) String() string { @@ -952,7 +934,7 @@ func (*ShardTabletControl) ProtoMessage() {} func (x *ShardTabletControl) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1007,11 +989,9 @@ type ThrottledAppRule struct { func (x *ThrottledAppRule) Reset() { *x = ThrottledAppRule{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThrottledAppRule) String() string { @@ -1022,7 +1002,7 @@ func (*ThrottledAppRule) ProtoMessage() {} func (x *ThrottledAppRule) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1093,11 +1073,9 @@ type ThrottlerConfig struct { func (x *ThrottlerConfig) Reset() { *x = ThrottlerConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThrottlerConfig) String() string { @@ -1108,7 +1086,7 @@ func (*ThrottlerConfig) ProtoMessage() {} func (x *ThrottlerConfig) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1189,11 +1167,9 @@ type SrvKeyspace struct { func (x *SrvKeyspace) Reset() { *x = SrvKeyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SrvKeyspace) String() string { @@ -1204,7 +1180,7 @@ func (*SrvKeyspace) ProtoMessage() {} func (x *SrvKeyspace) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1253,11 +1229,9 @@ type CellInfo struct { func (x *CellInfo) Reset() { *x = CellInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CellInfo) String() string { @@ -1268,7 +1242,7 @@ func (*CellInfo) ProtoMessage() {} func (x *CellInfo) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1309,11 +1283,9 @@ type CellsAlias struct { func (x *CellsAlias) Reset() { *x = CellsAlias{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CellsAlias) String() string { @@ -1324,7 +1296,7 @@ func (*CellsAlias) ProtoMessage() {} func (x *CellsAlias) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1358,11 +1330,9 @@ type TopoConfig struct { func (x *TopoConfig) Reset() { *x = TopoConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TopoConfig) String() string { @@ -1373,7 +1343,7 @@ func (*TopoConfig) ProtoMessage() {} func (x *TopoConfig) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1419,11 +1389,9 @@ type ExternalVitessCluster struct { func (x *ExternalVitessCluster) Reset() { *x = ExternalVitessCluster{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExternalVitessCluster) String() string { @@ -1434,7 +1402,7 @@ func (*ExternalVitessCluster) ProtoMessage() {} func (x *ExternalVitessCluster) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1467,11 +1435,9 @@ type ExternalClusters struct { func (x *ExternalClusters) Reset() { *x = ExternalClusters{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExternalClusters) String() string { @@ -1482,7 +1448,7 @@ func (*ExternalClusters) ProtoMessage() {} func (x *ExternalClusters) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1526,11 +1492,9 @@ type Shard_SourceShard struct { func (x *Shard_SourceShard) Reset() { *x = Shard_SourceShard{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard_SourceShard) String() string { @@ -1541,7 +1505,7 @@ func (*Shard_SourceShard) ProtoMessage() {} func (x *Shard_SourceShard) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1608,11 +1572,9 @@ type Shard_TabletControl struct { func (x *Shard_TabletControl) Reset() { *x = Shard_TabletControl{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard_TabletControl) String() string { @@ -1623,7 +1585,7 @@ func (*Shard_TabletControl) ProtoMessage() {} func (x *Shard_TabletControl) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1677,11 +1639,9 @@ type ShardReplication_Node struct { func (x *ShardReplication_Node) Reset() { *x = ShardReplication_Node{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplication_Node) String() string { @@ -1692,7 +1652,7 @@ func (*ShardReplication_Node) ProtoMessage() {} func (x *ShardReplication_Node) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1724,11 +1684,9 @@ type ThrottlerConfig_MetricNames struct { func (x *ThrottlerConfig_MetricNames) Reset() { *x = ThrottlerConfig_MetricNames{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ThrottlerConfig_MetricNames) String() string { @@ -1739,7 +1697,7 @@ func (*ThrottlerConfig_MetricNames) ProtoMessage() {} func (x *ThrottlerConfig_MetricNames) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1776,11 +1734,9 @@ type SrvKeyspace_KeyspacePartition struct { func (x *SrvKeyspace_KeyspacePartition) Reset() { *x = SrvKeyspace_KeyspacePartition{} - if protoimpl.UnsafeEnabled { - mi := &file_topodata_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_topodata_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SrvKeyspace_KeyspacePartition) String() string { @@ -1791,7 +1747,7 @@ func (*SrvKeyspace_KeyspacePartition) ProtoMessage() {} func (x *SrvKeyspace_KeyspacePartition) ProtoReflect() protoreflect.Message { mi := &file_topodata_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2202,272 +2158,6 @@ func file_topodata_proto_init() { if File_topodata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_topodata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*KeyRange); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*TabletAlias); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*Tablet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*Shard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*Keyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplication); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*ShardReference); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*ShardTabletControl); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ThrottledAppRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ThrottlerConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*SrvKeyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*CellInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*CellsAlias); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*TopoConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*ExternalVitessCluster); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*ExternalClusters); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*Shard_SourceShard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*Shard_TabletControl); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplication_Node); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*ThrottlerConfig_MetricNames); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_topodata_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*SrvKeyspace_KeyspacePartition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/topodata/topodata_vtproto.pb.go b/go/vt/proto/topodata/topodata_vtproto.pb.go index 9defb49a6be..564a55ea82b 100644 --- a/go/vt/proto/topodata/topodata_vtproto.pb.go +++ b/go/vt/proto/topodata/topodata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: topodata.proto package topodata diff --git a/go/vt/proto/vschema/vschema.pb.go b/go/vt/proto/vschema/vschema.pb.go index 131622aaf5b..c4348cae92d 100644 --- a/go/vt/proto/vschema/vschema.pb.go +++ b/go/vt/proto/vschema/vschema.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vschema.proto @@ -104,11 +104,9 @@ type RoutingRules struct { func (x *RoutingRules) Reset() { *x = RoutingRules{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RoutingRules) String() string { @@ -119,7 +117,7 @@ func (*RoutingRules) ProtoMessage() {} func (x *RoutingRules) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -153,11 +151,9 @@ type RoutingRule struct { func (x *RoutingRule) Reset() { *x = RoutingRule{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RoutingRule) String() string { @@ -168,7 +164,7 @@ func (*RoutingRule) ProtoMessage() {} func (x *RoutingRule) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -217,11 +213,9 @@ type Keyspace struct { func (x *Keyspace) Reset() { *x = Keyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Keyspace) String() string { @@ -232,7 +226,7 @@ func (*Keyspace) ProtoMessage() {} func (x *Keyspace) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -302,11 +296,9 @@ type MultiTenantSpec struct { func (x *MultiTenantSpec) Reset() { *x = MultiTenantSpec{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MultiTenantSpec) String() string { @@ -317,7 +309,7 @@ func (*MultiTenantSpec) ProtoMessage() {} func (x *MultiTenantSpec) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -369,11 +361,9 @@ type Vindex struct { func (x *Vindex) Reset() { *x = Vindex{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Vindex) String() string { @@ -384,7 +374,7 @@ func (*Vindex) ProtoMessage() {} func (x *Vindex) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -457,11 +447,9 @@ type Table struct { func (x *Table) Reset() { *x = Table{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Table) String() string { @@ -472,7 +460,7 @@ func (*Table) ProtoMessage() {} func (x *Table) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -552,11 +540,9 @@ type ColumnVindex struct { func (x *ColumnVindex) Reset() { *x = ColumnVindex{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ColumnVindex) String() string { @@ -567,7 +553,7 @@ func (*ColumnVindex) ProtoMessage() {} func (x *ColumnVindex) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -616,11 +602,9 @@ type AutoIncrement struct { func (x *AutoIncrement) Reset() { *x = AutoIncrement{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AutoIncrement) String() string { @@ -631,7 +615,7 @@ func (*AutoIncrement) ProtoMessage() {} func (x *AutoIncrement) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -680,11 +664,9 @@ type Column struct { func (x *Column) Reset() { *x = Column{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Column) String() string { @@ -695,7 +677,7 @@ func (*Column) ProtoMessage() {} func (x *Column) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -789,11 +771,9 @@ type SrvVSchema struct { func (x *SrvVSchema) Reset() { *x = SrvVSchema{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SrvVSchema) String() string { @@ -804,7 +784,7 @@ func (*SrvVSchema) ProtoMessage() {} func (x *SrvVSchema) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -865,11 +845,9 @@ type ShardRoutingRules struct { func (x *ShardRoutingRules) Reset() { *x = ShardRoutingRules{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardRoutingRules) String() string { @@ -880,7 +858,7 @@ func (*ShardRoutingRules) ProtoMessage() {} func (x *ShardRoutingRules) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -915,11 +893,9 @@ type ShardRoutingRule struct { func (x *ShardRoutingRule) Reset() { *x = ShardRoutingRule{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardRoutingRule) String() string { @@ -930,7 +906,7 @@ func (*ShardRoutingRule) ProtoMessage() {} func (x *ShardRoutingRule) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -976,11 +952,9 @@ type KeyspaceRoutingRules struct { func (x *KeyspaceRoutingRules) Reset() { *x = KeyspaceRoutingRules{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyspaceRoutingRules) String() string { @@ -991,7 +965,7 @@ func (*KeyspaceRoutingRules) ProtoMessage() {} func (x *KeyspaceRoutingRules) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1024,11 +998,9 @@ type KeyspaceRoutingRule struct { func (x *KeyspaceRoutingRule) Reset() { *x = KeyspaceRoutingRule{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *KeyspaceRoutingRule) String() string { @@ -1039,7 +1011,7 @@ func (*KeyspaceRoutingRule) ProtoMessage() {} func (x *KeyspaceRoutingRule) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1082,11 +1054,9 @@ type MirrorRules struct { func (x *MirrorRules) Reset() { *x = MirrorRules{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MirrorRules) String() string { @@ -1097,7 +1067,7 @@ func (*MirrorRules) ProtoMessage() {} func (x *MirrorRules) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1132,11 +1102,9 @@ type MirrorRule struct { func (x *MirrorRule) Reset() { *x = MirrorRule{} - if protoimpl.UnsafeEnabled { - mi := &file_vschema_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vschema_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MirrorRule) String() string { @@ -1147,7 +1115,7 @@ func (*MirrorRule) ProtoMessage() {} func (x *MirrorRule) ProtoReflect() protoreflect.Message { mi := &file_vschema_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1436,200 +1404,6 @@ func file_vschema_proto_init() { if File_vschema_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vschema_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*RoutingRules); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*RoutingRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*Keyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*MultiTenantSpec); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*Vindex); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*Table); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ColumnVindex); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*AutoIncrement); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*Column); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*SrvVSchema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ShardRoutingRules); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*ShardRoutingRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*KeyspaceRoutingRules); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*KeyspaceRoutingRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*MirrorRules); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vschema_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*MirrorRule); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_vschema_proto_msgTypes[8].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ diff --git a/go/vt/proto/vschema/vschema_vtproto.pb.go b/go/vt/proto/vschema/vschema_vtproto.pb.go index 54347631260..a970ccf49c6 100644 --- a/go/vt/proto/vschema/vschema_vtproto.pb.go +++ b/go/vt/proto/vschema/vschema_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vschema.proto package vschema diff --git a/go/vt/proto/vtadmin/vtadmin.pb.go b/go/vt/proto/vtadmin/vtadmin.pb.go index 8cdb420002d..e85385ec409 100644 --- a/go/vt/proto/vtadmin/vtadmin.pb.go +++ b/go/vt/proto/vtadmin/vtadmin.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtadmin.proto @@ -104,11 +104,9 @@ type Cluster struct { func (x *Cluster) Reset() { *x = Cluster{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Cluster) String() string { @@ -119,7 +117,7 @@ func (*Cluster) ProtoMessage() {} func (x *Cluster) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -159,11 +157,9 @@ type ClusterBackup struct { func (x *ClusterBackup) Reset() { *x = ClusterBackup{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterBackup) String() string { @@ -174,7 +170,7 @@ func (*ClusterBackup) ProtoMessage() {} func (x *ClusterBackup) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -214,11 +210,9 @@ type ClusterCellsAliases struct { func (x *ClusterCellsAliases) Reset() { *x = ClusterCellsAliases{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterCellsAliases) String() string { @@ -229,7 +223,7 @@ func (*ClusterCellsAliases) ProtoMessage() {} func (x *ClusterCellsAliases) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -273,11 +267,9 @@ type ClusterCellInfo struct { func (x *ClusterCellInfo) Reset() { *x = ClusterCellInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterCellInfo) String() string { @@ -288,7 +280,7 @@ func (*ClusterCellInfo) ProtoMessage() {} func (x *ClusterCellInfo) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -337,11 +329,9 @@ type ClusterShardReplicationPosition struct { func (x *ClusterShardReplicationPosition) Reset() { *x = ClusterShardReplicationPosition{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterShardReplicationPosition) String() string { @@ -352,7 +342,7 @@ func (*ClusterShardReplicationPosition) ProtoMessage() {} func (x *ClusterShardReplicationPosition) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -408,11 +398,9 @@ type ClusterWorkflows struct { func (x *ClusterWorkflows) Reset() { *x = ClusterWorkflows{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterWorkflows) String() string { @@ -423,7 +411,7 @@ func (*ClusterWorkflows) ProtoMessage() {} func (x *ClusterWorkflows) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -466,11 +454,9 @@ type Keyspace struct { func (x *Keyspace) Reset() { *x = Keyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Keyspace) String() string { @@ -481,7 +467,7 @@ func (*Keyspace) ProtoMessage() {} func (x *Keyspace) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -531,11 +517,9 @@ type Schema struct { func (x *Schema) Reset() { *x = Schema{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Schema) String() string { @@ -546,7 +530,7 @@ func (*Schema) ProtoMessage() {} func (x *Schema) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -600,11 +584,9 @@ type SchemaMigration struct { func (x *SchemaMigration) Reset() { *x = SchemaMigration{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SchemaMigration) String() string { @@ -615,7 +597,7 @@ func (*SchemaMigration) ProtoMessage() {} func (x *SchemaMigration) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -657,11 +639,9 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard) String() string { @@ -672,7 +652,7 @@ func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -713,11 +693,9 @@ type SrvVSchema struct { func (x *SrvVSchema) Reset() { *x = SrvVSchema{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SrvVSchema) String() string { @@ -728,7 +706,7 @@ func (*SrvVSchema) ProtoMessage() {} func (x *SrvVSchema) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -779,11 +757,9 @@ type Tablet struct { func (x *Tablet) Reset() { *x = Tablet{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Tablet) String() string { @@ -794,7 +770,7 @@ func (*Tablet) ProtoMessage() {} func (x *Tablet) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -851,11 +827,9 @@ type VSchema struct { func (x *VSchema) Reset() { *x = VSchema{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VSchema) String() string { @@ -866,7 +840,7 @@ func (*VSchema) ProtoMessage() {} func (x *VSchema) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -915,11 +889,9 @@ type Vtctld struct { func (x *Vtctld) Reset() { *x = Vtctld{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Vtctld) String() string { @@ -930,7 +902,7 @@ func (*Vtctld) ProtoMessage() {} func (x *Vtctld) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -989,11 +961,9 @@ type VTGate struct { func (x *VTGate) Reset() { *x = VTGate{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VTGate) String() string { @@ -1004,7 +974,7 @@ func (*VTGate) ProtoMessage() {} func (x *VTGate) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1073,11 +1043,9 @@ type Workflow struct { func (x *Workflow) Reset() { *x = Workflow{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow) String() string { @@ -1088,7 +1056,7 @@ func (*Workflow) ProtoMessage() {} func (x *Workflow) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1135,11 +1103,9 @@ type WorkflowDeleteRequest struct { func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowDeleteRequest) String() string { @@ -1150,7 +1116,7 @@ func (*WorkflowDeleteRequest) ProtoMessage() {} func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1190,11 +1156,9 @@ type WorkflowSwitchTrafficRequest struct { func (x *WorkflowSwitchTrafficRequest) Reset() { *x = WorkflowSwitchTrafficRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowSwitchTrafficRequest) String() string { @@ -1205,7 +1169,7 @@ func (*WorkflowSwitchTrafficRequest) ProtoMessage() {} func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1245,11 +1209,9 @@ type ApplySchemaRequest struct { func (x *ApplySchemaRequest) Reset() { *x = ApplySchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplySchemaRequest) String() string { @@ -1260,7 +1222,7 @@ func (*ApplySchemaRequest) ProtoMessage() {} func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1300,11 +1262,9 @@ type CancelSchemaMigrationRequest struct { func (x *CancelSchemaMigrationRequest) Reset() { *x = CancelSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CancelSchemaMigrationRequest) String() string { @@ -1315,7 +1275,7 @@ func (*CancelSchemaMigrationRequest) ProtoMessage() {} func (x *CancelSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1355,11 +1315,9 @@ type CleanupSchemaMigrationRequest struct { func (x *CleanupSchemaMigrationRequest) Reset() { *x = CleanupSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CleanupSchemaMigrationRequest) String() string { @@ -1370,7 +1328,7 @@ func (*CleanupSchemaMigrationRequest) ProtoMessage() {} func (x *CleanupSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1410,11 +1368,9 @@ type CompleteSchemaMigrationRequest struct { func (x *CompleteSchemaMigrationRequest) Reset() { *x = CompleteSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CompleteSchemaMigrationRequest) String() string { @@ -1425,7 +1381,7 @@ func (*CompleteSchemaMigrationRequest) ProtoMessage() {} func (x *CompleteSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1465,11 +1421,9 @@ type ConcludeTransactionRequest struct { func (x *ConcludeTransactionRequest) Reset() { *x = ConcludeTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionRequest) String() string { @@ -1480,7 +1434,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {} func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1520,11 +1474,9 @@ type CreateKeyspaceRequest struct { func (x *CreateKeyspaceRequest) Reset() { *x = CreateKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateKeyspaceRequest) String() string { @@ -1535,7 +1487,7 @@ func (*CreateKeyspaceRequest) ProtoMessage() {} func (x *CreateKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1574,11 +1526,9 @@ type CreateKeyspaceResponse struct { func (x *CreateKeyspaceResponse) Reset() { *x = CreateKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateKeyspaceResponse) String() string { @@ -1589,7 +1539,7 @@ func (*CreateKeyspaceResponse) ProtoMessage() {} func (x *CreateKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1622,11 +1572,9 @@ type CreateShardRequest struct { func (x *CreateShardRequest) Reset() { *x = CreateShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateShardRequest) String() string { @@ -1637,7 +1585,7 @@ func (*CreateShardRequest) ProtoMessage() {} func (x *CreateShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1677,11 +1625,9 @@ type DeleteKeyspaceRequest struct { func (x *DeleteKeyspaceRequest) Reset() { *x = DeleteKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteKeyspaceRequest) String() string { @@ -1692,7 +1638,7 @@ func (*DeleteKeyspaceRequest) ProtoMessage() {} func (x *DeleteKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1732,11 +1678,9 @@ type DeleteShardsRequest struct { func (x *DeleteShardsRequest) Reset() { *x = DeleteShardsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteShardsRequest) String() string { @@ -1747,7 +1691,7 @@ func (*DeleteShardsRequest) ProtoMessage() {} func (x *DeleteShardsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1788,11 +1732,9 @@ type DeleteTabletRequest struct { func (x *DeleteTabletRequest) Reset() { *x = DeleteTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTabletRequest) String() string { @@ -1803,7 +1745,7 @@ func (*DeleteTabletRequest) ProtoMessage() {} func (x *DeleteTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1850,11 +1792,9 @@ type DeleteTabletResponse struct { func (x *DeleteTabletResponse) Reset() { *x = DeleteTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTabletResponse) String() string { @@ -1865,7 +1805,7 @@ func (*DeleteTabletResponse) ProtoMessage() {} func (x *DeleteTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1905,11 +1845,9 @@ type EmergencyFailoverShardRequest struct { func (x *EmergencyFailoverShardRequest) Reset() { *x = EmergencyFailoverShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmergencyFailoverShardRequest) String() string { @@ -1920,7 +1858,7 @@ func (*EmergencyFailoverShardRequest) ProtoMessage() {} func (x *EmergencyFailoverShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1967,11 +1905,9 @@ type EmergencyFailoverShardResponse struct { func (x *EmergencyFailoverShardResponse) Reset() { *x = EmergencyFailoverShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmergencyFailoverShardResponse) String() string { @@ -1982,7 +1918,7 @@ func (*EmergencyFailoverShardResponse) ProtoMessage() {} func (x *EmergencyFailoverShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2044,11 +1980,9 @@ type FindSchemaRequest struct { func (x *FindSchemaRequest) Reset() { *x = FindSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FindSchemaRequest) String() string { @@ -2059,7 +1993,7 @@ func (*FindSchemaRequest) ProtoMessage() {} func (x *FindSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2119,11 +2053,9 @@ type GetBackupsRequest struct { func (x *GetBackupsRequest) Reset() { *x = GetBackupsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBackupsRequest) String() string { @@ -2134,7 +2066,7 @@ func (*GetBackupsRequest) ProtoMessage() {} func (x *GetBackupsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2187,11 +2119,9 @@ type GetBackupsResponse struct { func (x *GetBackupsResponse) Reset() { *x = GetBackupsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBackupsResponse) String() string { @@ -2202,7 +2132,7 @@ func (*GetBackupsResponse) ProtoMessage() {} func (x *GetBackupsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2244,11 +2174,9 @@ type GetCellInfosRequest struct { func (x *GetCellInfosRequest) Reset() { *x = GetCellInfosRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfosRequest) String() string { @@ -2259,7 +2187,7 @@ func (*GetCellInfosRequest) ProtoMessage() {} func (x *GetCellInfosRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2305,11 +2233,9 @@ type GetCellInfosResponse struct { func (x *GetCellInfosResponse) Reset() { *x = GetCellInfosResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfosResponse) String() string { @@ -2320,7 +2246,7 @@ func (*GetCellInfosResponse) ProtoMessage() {} func (x *GetCellInfosResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2352,11 +2278,9 @@ type GetCellsAliasesRequest struct { func (x *GetCellsAliasesRequest) Reset() { *x = GetCellsAliasesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellsAliasesRequest) String() string { @@ -2367,7 +2291,7 @@ func (*GetCellsAliasesRequest) ProtoMessage() {} func (x *GetCellsAliasesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2399,11 +2323,9 @@ type GetCellsAliasesResponse struct { func (x *GetCellsAliasesResponse) Reset() { *x = GetCellsAliasesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellsAliasesResponse) String() string { @@ -2414,7 +2336,7 @@ func (*GetCellsAliasesResponse) ProtoMessage() {} func (x *GetCellsAliasesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2444,11 +2366,9 @@ type GetClustersRequest struct { func (x *GetClustersRequest) Reset() { *x = GetClustersRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetClustersRequest) String() string { @@ -2459,7 +2379,7 @@ func (*GetClustersRequest) ProtoMessage() {} func (x *GetClustersRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2484,11 +2404,9 @@ type GetClustersResponse struct { func (x *GetClustersResponse) Reset() { *x = GetClustersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetClustersResponse) String() string { @@ -2499,7 +2417,7 @@ func (*GetClustersResponse) ProtoMessage() {} func (x *GetClustersResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2532,11 +2450,9 @@ type GetFullStatusRequest struct { func (x *GetFullStatusRequest) Reset() { *x = GetFullStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFullStatusRequest) String() string { @@ -2547,7 +2463,7 @@ func (*GetFullStatusRequest) ProtoMessage() {} func (x *GetFullStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2586,11 +2502,9 @@ type GetGatesRequest struct { func (x *GetGatesRequest) Reset() { *x = GetGatesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetGatesRequest) String() string { @@ -2601,7 +2515,7 @@ func (*GetGatesRequest) ProtoMessage() {} func (x *GetGatesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2633,11 +2547,9 @@ type GetGatesResponse struct { func (x *GetGatesResponse) Reset() { *x = GetGatesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetGatesResponse) String() string { @@ -2648,7 +2560,7 @@ func (*GetGatesResponse) ProtoMessage() {} func (x *GetGatesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2681,11 +2593,9 @@ type GetKeyspaceRequest struct { func (x *GetKeyspaceRequest) Reset() { *x = GetKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspaceRequest) String() string { @@ -2696,7 +2606,7 @@ func (*GetKeyspaceRequest) ProtoMessage() {} func (x *GetKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2735,11 +2645,9 @@ type GetKeyspacesRequest struct { func (x *GetKeyspacesRequest) Reset() { *x = GetKeyspacesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspacesRequest) String() string { @@ -2750,7 +2658,7 @@ func (*GetKeyspacesRequest) ProtoMessage() {} func (x *GetKeyspacesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2782,11 +2690,9 @@ type GetKeyspacesResponse struct { func (x *GetKeyspacesResponse) Reset() { *x = GetKeyspacesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspacesResponse) String() string { @@ -2797,7 +2703,7 @@ func (*GetKeyspacesResponse) ProtoMessage() {} func (x *GetKeyspacesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2832,11 +2738,9 @@ type GetSchemaRequest struct { func (x *GetSchemaRequest) Reset() { *x = GetSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaRequest) String() string { @@ -2847,7 +2751,7 @@ func (*GetSchemaRequest) ProtoMessage() {} func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2901,11 +2805,9 @@ type GetSchemasRequest struct { func (x *GetSchemasRequest) Reset() { *x = GetSchemasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemasRequest) String() string { @@ -2916,7 +2818,7 @@ func (*GetSchemasRequest) ProtoMessage() {} func (x *GetSchemasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2955,11 +2857,9 @@ type GetSchemasResponse struct { func (x *GetSchemasResponse) Reset() { *x = GetSchemasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemasResponse) String() string { @@ -2970,7 +2870,7 @@ func (*GetSchemasResponse) ProtoMessage() {} func (x *GetSchemasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3002,11 +2902,9 @@ type GetSchemaMigrationsRequest struct { func (x *GetSchemaMigrationsRequest) Reset() { *x = GetSchemaMigrationsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaMigrationsRequest) String() string { @@ -3017,7 +2915,7 @@ func (*GetSchemaMigrationsRequest) ProtoMessage() {} func (x *GetSchemaMigrationsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3049,11 +2947,9 @@ type GetSchemaMigrationsResponse struct { func (x *GetSchemaMigrationsResponse) Reset() { *x = GetSchemaMigrationsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaMigrationsResponse) String() string { @@ -3064,7 +2960,7 @@ func (*GetSchemaMigrationsResponse) ProtoMessage() {} func (x *GetSchemaMigrationsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3105,11 +3001,9 @@ type GetShardReplicationPositionsRequest struct { func (x *GetShardReplicationPositionsRequest) Reset() { *x = GetShardReplicationPositionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardReplicationPositionsRequest) String() string { @@ -3120,7 +3014,7 @@ func (*GetShardReplicationPositionsRequest) ProtoMessage() {} func (x *GetShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3166,11 +3060,9 @@ type GetShardReplicationPositionsResponse struct { func (x *GetShardReplicationPositionsResponse) Reset() { *x = GetShardReplicationPositionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardReplicationPositionsResponse) String() string { @@ -3181,7 +3073,7 @@ func (*GetShardReplicationPositionsResponse) ProtoMessage() {} func (x *GetShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3217,11 +3109,9 @@ type GetSrvKeyspaceRequest struct { func (x *GetSrvKeyspaceRequest) Reset() { *x = GetSrvKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspaceRequest) String() string { @@ -3232,7 +3122,7 @@ func (*GetSrvKeyspaceRequest) ProtoMessage() {} func (x *GetSrvKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3282,11 +3172,9 @@ type GetSrvKeyspacesRequest struct { func (x *GetSrvKeyspacesRequest) Reset() { *x = GetSrvKeyspacesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspacesRequest) String() string { @@ -3297,7 +3185,7 @@ func (*GetSrvKeyspacesRequest) ProtoMessage() {} func (x *GetSrvKeyspacesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3337,11 +3225,9 @@ type GetSrvKeyspacesResponse struct { func (x *GetSrvKeyspacesResponse) Reset() { *x = GetSrvKeyspacesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspacesResponse) String() string { @@ -3352,7 +3238,7 @@ func (*GetSrvKeyspacesResponse) ProtoMessage() {} func (x *GetSrvKeyspacesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3385,11 +3271,9 @@ type GetSrvVSchemaRequest struct { func (x *GetSrvVSchemaRequest) Reset() { *x = GetSrvVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemaRequest) String() string { @@ -3400,7 +3284,7 @@ func (*GetSrvVSchemaRequest) ProtoMessage() {} func (x *GetSrvVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3440,11 +3324,9 @@ type GetSrvVSchemasRequest struct { func (x *GetSrvVSchemasRequest) Reset() { *x = GetSrvVSchemasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemasRequest) String() string { @@ -3455,7 +3337,7 @@ func (*GetSrvVSchemasRequest) ProtoMessage() {} func (x *GetSrvVSchemasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3494,11 +3376,9 @@ type GetSrvVSchemasResponse struct { func (x *GetSrvVSchemasResponse) Reset() { *x = GetSrvVSchemasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemasResponse) String() string { @@ -3509,7 +3389,7 @@ func (*GetSrvVSchemasResponse) ProtoMessage() {} func (x *GetSrvVSchemasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3542,11 +3422,9 @@ type GetSchemaTableSizeOptions struct { func (x *GetSchemaTableSizeOptions) Reset() { *x = GetSchemaTableSizeOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaTableSizeOptions) String() string { @@ -3557,7 +3435,7 @@ func (*GetSchemaTableSizeOptions) ProtoMessage() {} func (x *GetSchemaTableSizeOptions) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3601,11 +3479,9 @@ type GetTabletRequest struct { func (x *GetTabletRequest) Reset() { *x = GetTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletRequest) String() string { @@ -3616,7 +3492,7 @@ func (*GetTabletRequest) ProtoMessage() {} func (x *GetTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3655,11 +3531,9 @@ type GetTabletsRequest struct { func (x *GetTabletsRequest) Reset() { *x = GetTabletsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletsRequest) String() string { @@ -3670,7 +3544,7 @@ func (*GetTabletsRequest) ProtoMessage() {} func (x *GetTabletsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3702,11 +3576,9 @@ type GetTabletsResponse struct { func (x *GetTabletsResponse) Reset() { *x = GetTabletsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletsResponse) String() string { @@ -3717,7 +3589,7 @@ func (*GetTabletsResponse) ProtoMessage() {} func (x *GetTabletsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3750,11 +3622,9 @@ type GetTopologyPathRequest struct { func (x *GetTopologyPathRequest) Reset() { *x = GetTopologyPathRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTopologyPathRequest) String() string { @@ -3765,7 +3635,7 @@ func (*GetTopologyPathRequest) ProtoMessage() {} func (x *GetTopologyPathRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3805,11 +3675,9 @@ type GetTransactionInfoRequest struct { func (x *GetTransactionInfoRequest) Reset() { *x = GetTransactionInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTransactionInfoRequest) String() string { @@ -3820,7 +3688,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {} func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3861,11 +3729,9 @@ type GetUnresolvedTransactionsRequest struct { func (x *GetUnresolvedTransactionsRequest) Reset() { *x = GetUnresolvedTransactionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUnresolvedTransactionsRequest) String() string { @@ -3876,7 +3742,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {} func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3923,11 +3789,9 @@ type GetVSchemaRequest struct { func (x *GetVSchemaRequest) Reset() { *x = GetVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVSchemaRequest) String() string { @@ -3938,7 +3802,7 @@ func (*GetVSchemaRequest) ProtoMessage() {} func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3977,11 +3841,9 @@ type GetVSchemasRequest struct { func (x *GetVSchemasRequest) Reset() { *x = GetVSchemasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVSchemasRequest) String() string { @@ -3992,7 +3854,7 @@ func (*GetVSchemasRequest) ProtoMessage() {} func (x *GetVSchemasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4024,11 +3886,9 @@ type GetVSchemasResponse struct { func (x *GetVSchemasResponse) Reset() { *x = GetVSchemasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVSchemasResponse) String() string { @@ -4039,7 +3899,7 @@ func (*GetVSchemasResponse) ProtoMessage() {} func (x *GetVSchemasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4071,11 +3931,9 @@ type GetVtctldsRequest struct { func (x *GetVtctldsRequest) Reset() { *x = GetVtctldsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVtctldsRequest) String() string { @@ -4086,7 +3944,7 @@ func (*GetVtctldsRequest) ProtoMessage() {} func (x *GetVtctldsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4118,11 +3976,9 @@ type GetVtctldsResponse struct { func (x *GetVtctldsResponse) Reset() { *x = GetVtctldsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVtctldsResponse) String() string { @@ -4133,7 +3989,7 @@ func (*GetVtctldsResponse) ProtoMessage() {} func (x *GetVtctldsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4168,11 +4024,9 @@ type GetWorkflowRequest struct { func (x *GetWorkflowRequest) Reset() { *x = GetWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowRequest) String() string { @@ -4183,7 +4037,7 @@ func (*GetWorkflowRequest) ProtoMessage() {} func (x *GetWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4238,11 +4092,9 @@ type GetWorkflowStatusRequest struct { func (x *GetWorkflowStatusRequest) Reset() { *x = GetWorkflowStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowStatusRequest) String() string { @@ -4253,7 +4105,7 @@ func (*GetWorkflowStatusRequest) ProtoMessage() {} func (x *GetWorkflowStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4301,11 +4153,9 @@ type StartWorkflowRequest struct { func (x *StartWorkflowRequest) Reset() { *x = StartWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartWorkflowRequest) String() string { @@ -4316,7 +4166,7 @@ func (*StartWorkflowRequest) ProtoMessage() {} func (x *StartWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4364,11 +4214,9 @@ type StopWorkflowRequest struct { func (x *StopWorkflowRequest) Reset() { *x = StopWorkflowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopWorkflowRequest) String() string { @@ -4379,7 +4227,7 @@ func (*StopWorkflowRequest) ProtoMessage() {} func (x *StopWorkflowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4443,11 +4291,9 @@ type GetWorkflowsRequest struct { func (x *GetWorkflowsRequest) Reset() { *x = GetWorkflowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowsRequest) String() string { @@ -4458,7 +4304,7 @@ func (*GetWorkflowsRequest) ProtoMessage() {} func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4511,11 +4357,9 @@ type GetWorkflowsResponse struct { func (x *GetWorkflowsResponse) Reset() { *x = GetWorkflowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowsResponse) String() string { @@ -4526,7 +4370,7 @@ func (*GetWorkflowsResponse) ProtoMessage() {} func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4559,11 +4403,9 @@ type LaunchSchemaMigrationRequest struct { func (x *LaunchSchemaMigrationRequest) Reset() { *x = LaunchSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LaunchSchemaMigrationRequest) String() string { @@ -4574,7 +4416,7 @@ func (*LaunchSchemaMigrationRequest) ProtoMessage() {} func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4617,11 +4459,9 @@ type MaterializeCreateRequest struct { func (x *MaterializeCreateRequest) Reset() { *x = MaterializeCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaterializeCreateRequest) String() string { @@ -4632,7 +4472,7 @@ func (*MaterializeCreateRequest) ProtoMessage() {} func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4679,11 +4519,9 @@ type MoveTablesCompleteRequest struct { func (x *MoveTablesCompleteRequest) Reset() { *x = MoveTablesCompleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCompleteRequest) String() string { @@ -4694,7 +4532,7 @@ func (*MoveTablesCompleteRequest) ProtoMessage() {} func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4734,11 +4572,9 @@ type MoveTablesCreateRequest struct { func (x *MoveTablesCreateRequest) Reset() { *x = MoveTablesCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCreateRequest) String() string { @@ -4749,7 +4585,7 @@ func (*MoveTablesCreateRequest) ProtoMessage() {} func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4793,11 +4629,9 @@ type PingTabletRequest struct { func (x *PingTabletRequest) Reset() { *x = PingTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingTabletRequest) String() string { @@ -4808,7 +4642,7 @@ func (*PingTabletRequest) ProtoMessage() {} func (x *PingTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4848,11 +4682,9 @@ type PingTabletResponse struct { func (x *PingTabletResponse) Reset() { *x = PingTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingTabletResponse) String() string { @@ -4863,7 +4695,7 @@ func (*PingTabletResponse) ProtoMessage() {} func (x *PingTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4903,11 +4735,9 @@ type PlannedFailoverShardRequest struct { func (x *PlannedFailoverShardRequest) Reset() { *x = PlannedFailoverShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlannedFailoverShardRequest) String() string { @@ -4918,7 +4748,7 @@ func (*PlannedFailoverShardRequest) ProtoMessage() {} func (x *PlannedFailoverShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[84] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4965,11 +4795,9 @@ type PlannedFailoverShardResponse struct { func (x *PlannedFailoverShardResponse) Reset() { *x = PlannedFailoverShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlannedFailoverShardResponse) String() string { @@ -4980,7 +4808,7 @@ func (*PlannedFailoverShardResponse) ProtoMessage() {} func (x *PlannedFailoverShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[85] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5043,11 +4871,9 @@ type RebuildKeyspaceGraphRequest struct { func (x *RebuildKeyspaceGraphRequest) Reset() { *x = RebuildKeyspaceGraphRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildKeyspaceGraphRequest) String() string { @@ -5058,7 +4884,7 @@ func (*RebuildKeyspaceGraphRequest) ProtoMessage() {} func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5111,11 +4937,9 @@ type RebuildKeyspaceGraphResponse struct { func (x *RebuildKeyspaceGraphResponse) Reset() { *x = RebuildKeyspaceGraphResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildKeyspaceGraphResponse) String() string { @@ -5126,7 +4950,7 @@ func (*RebuildKeyspaceGraphResponse) ProtoMessage() {} func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5159,11 +4983,9 @@ type RefreshStateRequest struct { func (x *RefreshStateRequest) Reset() { *x = RefreshStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateRequest) String() string { @@ -5174,7 +4996,7 @@ func (*RefreshStateRequest) ProtoMessage() {} func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5214,11 +5036,9 @@ type RefreshStateResponse struct { func (x *RefreshStateResponse) Reset() { *x = RefreshStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateResponse) String() string { @@ -5229,7 +5049,7 @@ func (*RefreshStateResponse) ProtoMessage() {} func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5309,11 +5129,9 @@ type ReloadSchemasRequest struct { func (x *ReloadSchemasRequest) Reset() { *x = ReloadSchemasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemasRequest) String() string { @@ -5324,7 +5142,7 @@ func (*ReloadSchemasRequest) ProtoMessage() {} func (x *ReloadSchemasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5409,11 +5227,9 @@ type ReloadSchemasResponse struct { func (x *ReloadSchemasResponse) Reset() { *x = ReloadSchemasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemasResponse) String() string { @@ -5424,7 +5240,7 @@ func (*ReloadSchemasResponse) ProtoMessage() {} func (x *ReloadSchemasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5475,11 +5291,9 @@ type ReloadSchemaShardRequest struct { func (x *ReloadSchemaShardRequest) Reset() { *x = ReloadSchemaShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaShardRequest) String() string { @@ -5490,7 +5304,7 @@ func (*ReloadSchemaShardRequest) ProtoMessage() {} func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5557,11 +5371,9 @@ type ReloadSchemaShardResponse struct { func (x *ReloadSchemaShardResponse) Reset() { *x = ReloadSchemaShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaShardResponse) String() string { @@ -5572,7 +5384,7 @@ func (*ReloadSchemaShardResponse) ProtoMessage() {} func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5605,11 +5417,9 @@ type RefreshTabletReplicationSourceRequest struct { func (x *RefreshTabletReplicationSourceRequest) Reset() { *x = RefreshTabletReplicationSourceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshTabletReplicationSourceRequest) String() string { @@ -5620,7 +5430,7 @@ func (*RefreshTabletReplicationSourceRequest) ProtoMessage() {} func (x *RefreshTabletReplicationSourceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5662,11 +5472,9 @@ type RefreshTabletReplicationSourceResponse struct { func (x *RefreshTabletReplicationSourceResponse) Reset() { *x = RefreshTabletReplicationSourceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[95] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshTabletReplicationSourceResponse) String() string { @@ -5677,7 +5485,7 @@ func (*RefreshTabletReplicationSourceResponse) ProtoMessage() {} func (x *RefreshTabletReplicationSourceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[95] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5734,11 +5542,9 @@ type RemoveKeyspaceCellRequest struct { func (x *RemoveKeyspaceCellRequest) Reset() { *x = RemoveKeyspaceCellRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveKeyspaceCellRequest) String() string { @@ -5749,7 +5555,7 @@ func (*RemoveKeyspaceCellRequest) ProtoMessage() {} func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5809,11 +5615,9 @@ type RemoveKeyspaceCellResponse struct { func (x *RemoveKeyspaceCellResponse) Reset() { *x = RemoveKeyspaceCellResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveKeyspaceCellResponse) String() string { @@ -5824,7 +5628,7 @@ func (*RemoveKeyspaceCellResponse) ProtoMessage() {} func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5857,11 +5661,9 @@ type RetrySchemaMigrationRequest struct { func (x *RetrySchemaMigrationRequest) Reset() { *x = RetrySchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RetrySchemaMigrationRequest) String() string { @@ -5872,7 +5674,7 @@ func (*RetrySchemaMigrationRequest) ProtoMessage() {} func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5912,11 +5714,9 @@ type RunHealthCheckRequest struct { func (x *RunHealthCheckRequest) Reset() { *x = RunHealthCheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckRequest) String() string { @@ -5927,7 +5727,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {} func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5967,11 +5767,9 @@ type RunHealthCheckResponse struct { func (x *RunHealthCheckResponse) Reset() { *x = RunHealthCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckResponse) String() string { @@ -5982,7 +5780,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {} func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6022,11 +5820,9 @@ type ReshardCreateRequest struct { func (x *ReshardCreateRequest) Reset() { *x = ReshardCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReshardCreateRequest) String() string { @@ -6037,7 +5833,7 @@ func (*ReshardCreateRequest) ProtoMessage() {} func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6077,11 +5873,9 @@ type SetReadOnlyRequest struct { func (x *SetReadOnlyRequest) Reset() { *x = SetReadOnlyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[102] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadOnlyRequest) String() string { @@ -6092,7 +5886,7 @@ func (*SetReadOnlyRequest) ProtoMessage() {} func (x *SetReadOnlyRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[102] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6129,11 +5923,9 @@ type SetReadOnlyResponse struct { func (x *SetReadOnlyResponse) Reset() { *x = SetReadOnlyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[103] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadOnlyResponse) String() string { @@ -6144,7 +5936,7 @@ func (*SetReadOnlyResponse) ProtoMessage() {} func (x *SetReadOnlyResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[103] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6170,11 +5962,9 @@ type SetReadWriteRequest struct { func (x *SetReadWriteRequest) Reset() { *x = SetReadWriteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadWriteRequest) String() string { @@ -6185,7 +5975,7 @@ func (*SetReadWriteRequest) ProtoMessage() {} func (x *SetReadWriteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6222,11 +6012,9 @@ type SetReadWriteResponse struct { func (x *SetReadWriteResponse) Reset() { *x = SetReadWriteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetReadWriteResponse) String() string { @@ -6237,7 +6025,7 @@ func (*SetReadWriteResponse) ProtoMessage() {} func (x *SetReadWriteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6263,11 +6051,9 @@ type StartReplicationRequest struct { func (x *StartReplicationRequest) Reset() { *x = StartReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationRequest) String() string { @@ -6278,7 +6064,7 @@ func (*StartReplicationRequest) ProtoMessage() {} func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6318,11 +6104,9 @@ type StartReplicationResponse struct { func (x *StartReplicationResponse) Reset() { *x = StartReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationResponse) String() string { @@ -6333,7 +6117,7 @@ func (*StartReplicationResponse) ProtoMessage() {} func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6373,11 +6157,9 @@ type StopReplicationRequest struct { func (x *StopReplicationRequest) Reset() { *x = StopReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationRequest) String() string { @@ -6388,7 +6170,7 @@ func (*StopReplicationRequest) ProtoMessage() {} func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6428,11 +6210,9 @@ type StopReplicationResponse struct { func (x *StopReplicationResponse) Reset() { *x = StopReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationResponse) String() string { @@ -6443,7 +6223,7 @@ func (*StopReplicationResponse) ProtoMessage() {} func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6485,11 +6265,9 @@ type TabletExternallyPromotedRequest struct { func (x *TabletExternallyPromotedRequest) Reset() { *x = TabletExternallyPromotedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletExternallyPromotedRequest) String() string { @@ -6500,7 +6278,7 @@ func (*TabletExternallyPromotedRequest) ProtoMessage() {} func (x *TabletExternallyPromotedRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[110] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6543,11 +6321,9 @@ type TabletExternallyPromotedResponse struct { func (x *TabletExternallyPromotedResponse) Reset() { *x = TabletExternallyPromotedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[111] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletExternallyPromotedResponse) String() string { @@ -6558,7 +6334,7 @@ func (*TabletExternallyPromotedResponse) ProtoMessage() {} func (x *TabletExternallyPromotedResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[111] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6619,11 +6395,9 @@ type TabletExternallyReparentedRequest struct { func (x *TabletExternallyReparentedRequest) Reset() { *x = TabletExternallyReparentedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[112] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletExternallyReparentedRequest) String() string { @@ -6634,7 +6408,7 @@ func (*TabletExternallyReparentedRequest) ProtoMessage() {} func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[112] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6674,11 +6448,9 @@ type ValidateRequest struct { func (x *ValidateRequest) Reset() { *x = ValidateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[113] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateRequest) String() string { @@ -6689,7 +6461,7 @@ func (*ValidateRequest) ProtoMessage() {} func (x *ValidateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[113] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6730,11 +6502,9 @@ type ValidateKeyspaceRequest struct { func (x *ValidateKeyspaceRequest) Reset() { *x = ValidateKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateKeyspaceRequest) String() string { @@ -6745,7 +6515,7 @@ func (*ValidateKeyspaceRequest) ProtoMessage() {} func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[114] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6792,11 +6562,9 @@ type ValidateSchemaKeyspaceRequest struct { func (x *ValidateSchemaKeyspaceRequest) Reset() { *x = ValidateSchemaKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[115] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateSchemaKeyspaceRequest) String() string { @@ -6807,7 +6575,7 @@ func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {} func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[115] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6849,11 +6617,9 @@ type ValidateShardRequest struct { func (x *ValidateShardRequest) Reset() { *x = ValidateShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[116] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateShardRequest) String() string { @@ -6864,7 +6630,7 @@ func (*ValidateShardRequest) ProtoMessage() {} func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[116] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6918,11 +6684,9 @@ type ValidateVersionKeyspaceRequest struct { func (x *ValidateVersionKeyspaceRequest) Reset() { *x = ValidateVersionKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[117] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionKeyspaceRequest) String() string { @@ -6933,7 +6697,7 @@ func (*ValidateVersionKeyspaceRequest) ProtoMessage() {} func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[117] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6974,11 +6738,9 @@ type ValidateVersionShardRequest struct { func (x *ValidateVersionShardRequest) Reset() { *x = ValidateVersionShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionShardRequest) String() string { @@ -6989,7 +6751,7 @@ func (*ValidateVersionShardRequest) ProtoMessage() {} func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[118] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7036,11 +6798,9 @@ type VDiffCreateRequest struct { func (x *VDiffCreateRequest) Reset() { *x = VDiffCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[119] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffCreateRequest) String() string { @@ -7051,7 +6811,7 @@ func (*VDiffCreateRequest) ProtoMessage() {} func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[119] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7091,11 +6851,9 @@ type VDiffShowRequest struct { func (x *VDiffShowRequest) Reset() { *x = VDiffShowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffShowRequest) String() string { @@ -7106,7 +6864,7 @@ func (*VDiffShowRequest) ProtoMessage() {} func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7146,11 +6904,9 @@ type VDiffProgress struct { func (x *VDiffProgress) Reset() { *x = VDiffProgress{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[121] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffProgress) String() string { @@ -7161,7 +6917,7 @@ func (*VDiffProgress) ProtoMessage() {} func (x *VDiffProgress) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[121] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7205,11 +6961,9 @@ type VDiffShardReport struct { func (x *VDiffShardReport) Reset() { *x = VDiffShardReport{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffShardReport) String() string { @@ -7220,7 +6974,7 @@ func (*VDiffShardReport) ProtoMessage() {} func (x *VDiffShardReport) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7287,11 +7041,9 @@ type VDiffShowResponse struct { func (x *VDiffShowResponse) Reset() { *x = VDiffShowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffShowResponse) String() string { @@ -7302,7 +7054,7 @@ func (*VDiffShowResponse) ProtoMessage() {} func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7336,11 +7088,9 @@ type VTExplainRequest struct { func (x *VTExplainRequest) Reset() { *x = VTExplainRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VTExplainRequest) String() string { @@ -7351,7 +7101,7 @@ func (*VTExplainRequest) ProtoMessage() {} func (x *VTExplainRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[124] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7397,11 +7147,9 @@ type VTExplainResponse struct { func (x *VTExplainResponse) Reset() { *x = VTExplainResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[125] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VTExplainResponse) String() string { @@ -7412,7 +7160,7 @@ func (*VTExplainResponse) ProtoMessage() {} func (x *VTExplainResponse) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[125] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7445,11 +7193,9 @@ type Schema_ShardTableSize struct { func (x *Schema_ShardTableSize) Reset() { *x = Schema_ShardTableSize{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Schema_ShardTableSize) String() string { @@ -7460,7 +7206,7 @@ func (*Schema_ShardTableSize) ProtoMessage() {} func (x *Schema_ShardTableSize) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[129] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7503,11 +7249,9 @@ type Schema_TableSize struct { func (x *Schema_TableSize) Reset() { *x = Schema_TableSize{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Schema_TableSize) String() string { @@ -7518,7 +7262,7 @@ func (*Schema_TableSize) ProtoMessage() {} func (x *Schema_TableSize) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7565,11 +7309,9 @@ type GetSchemaMigrationsRequest_ClusterRequest struct { func (x *GetSchemaMigrationsRequest_ClusterRequest) Reset() { *x = GetSchemaMigrationsRequest_ClusterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaMigrationsRequest_ClusterRequest) String() string { @@ -7580,7 +7322,7 @@ func (*GetSchemaMigrationsRequest_ClusterRequest) ProtoMessage() {} func (x *GetSchemaMigrationsRequest_ClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7626,11 +7368,9 @@ type ReloadSchemasResponse_KeyspaceResult struct { func (x *ReloadSchemasResponse_KeyspaceResult) Reset() { *x = ReloadSchemasResponse_KeyspaceResult{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemasResponse_KeyspaceResult) String() string { @@ -7641,7 +7381,7 @@ func (*ReloadSchemasResponse_KeyspaceResult) ProtoMessage() {} func (x *ReloadSchemasResponse_KeyspaceResult) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[135] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7687,11 +7427,9 @@ type ReloadSchemasResponse_ShardResult struct { func (x *ReloadSchemasResponse_ShardResult) Reset() { *x = ReloadSchemasResponse_ShardResult{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[136] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemasResponse_ShardResult) String() string { @@ -7702,7 +7440,7 @@ func (*ReloadSchemasResponse_ShardResult) ProtoMessage() {} func (x *ReloadSchemasResponse_ShardResult) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[136] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7749,11 +7487,9 @@ type ReloadSchemasResponse_TabletResult struct { func (x *ReloadSchemasResponse_TabletResult) Reset() { *x = ReloadSchemasResponse_TabletResult{} - if protoimpl.UnsafeEnabled { - mi := &file_vtadmin_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtadmin_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemasResponse_TabletResult) String() string { @@ -7764,7 +7500,7 @@ func (*ReloadSchemasResponse_TabletResult) ProtoMessage() {} func (x *ReloadSchemasResponse_TabletResult) ProtoReflect() protoreflect.Message { mi := &file_vtadmin_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9691,1592 +9427,6 @@ func file_vtadmin_proto_init() { if File_vtadmin_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vtadmin_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Cluster); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ClusterBackup); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ClusterCellsAliases); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ClusterCellInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ClusterShardReplicationPosition); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ClusterWorkflows); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*Keyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*Schema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*SchemaMigration); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*Shard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*SrvVSchema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*Tablet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*VSchema); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*Vtctld); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*VTGate); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*Workflow); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowDeleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowSwitchTrafficRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*ApplySchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*CancelSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*CleanupSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*CompleteSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*CreateKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*CreateKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*DeleteKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*DeleteShardsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*EmergencyFailoverShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*EmergencyFailoverShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*FindSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*GetBackupsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*GetBackupsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfosRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfosResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*GetCellsAliasesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*GetCellsAliasesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*GetClustersRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*GetClustersResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*GetFullStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*GetGatesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*GetGatesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspacesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspacesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaMigrationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaMigrationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*GetShardReplicationPositionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*GetShardReplicationPositionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspacesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspacesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaTableSizeOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*GetTopologyPathRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*GetUnresolvedTransactionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*GetVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*GetVSchemasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*GetVSchemasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*GetVtctldsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*GetVtctldsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*StartWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*StopWorkflowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*LaunchSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*MaterializeCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCompleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*PingTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*PingTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*PlannedFailoverShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*PlannedFailoverShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*RebuildKeyspaceGraphRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*RebuildKeyspaceGraphResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*RefreshTabletReplicationSourceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*RefreshTabletReplicationSourceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*RemoveKeyspaceCellRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*RemoveKeyspaceCellResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*RetrySchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*ReshardCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*SetReadOnlyRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*SetReadOnlyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*SetReadWriteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*SetReadWriteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*TabletExternallyPromotedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*TabletExternallyPromotedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*TabletExternallyReparentedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*ValidateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*ValidateKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*ValidateSchemaKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*ValidateShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*VDiffCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*VDiffShowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*VDiffProgress); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*VDiffShardReport); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*VDiffShowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*VTExplainRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*VTExplainResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*Schema_ShardTableSize); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*Schema_TableSize); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaMigrationsRequest_ClusterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemasResponse_KeyspaceResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemasResponse_ShardResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtadmin_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemasResponse_TabletResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go index 06bc371c4f8..bc0746b7b8a 100644 --- a/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go +++ b/go/vt/proto/vtadmin/vtadmin_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vtadmin.proto package vtadmin diff --git a/go/vt/proto/vtctldata/vtctldata.pb.go b/go/vt/proto/vtctldata/vtctldata.pb.go index 5d4ab9dbe66..f675a190faa 100644 --- a/go/vt/proto/vtctldata/vtctldata.pb.go +++ b/go/vt/proto/vtctldata/vtctldata.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtctldata.proto @@ -342,11 +342,9 @@ type ExecuteVtctlCommandRequest struct { func (x *ExecuteVtctlCommandRequest) Reset() { *x = ExecuteVtctlCommandRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteVtctlCommandRequest) String() string { @@ -357,7 +355,7 @@ func (*ExecuteVtctlCommandRequest) ProtoMessage() {} func (x *ExecuteVtctlCommandRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -397,11 +395,9 @@ type ExecuteVtctlCommandResponse struct { func (x *ExecuteVtctlCommandResponse) Reset() { *x = ExecuteVtctlCommandResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteVtctlCommandResponse) String() string { @@ -412,7 +408,7 @@ func (*ExecuteVtctlCommandResponse) ProtoMessage() {} func (x *ExecuteVtctlCommandResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -451,11 +447,9 @@ type TableMaterializeSettings struct { func (x *TableMaterializeSettings) Reset() { *x = TableMaterializeSettings{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TableMaterializeSettings) String() string { @@ -466,7 +460,7 @@ func (*TableMaterializeSettings) ProtoMessage() {} func (x *TableMaterializeSettings) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -542,11 +536,9 @@ type MaterializeSettings struct { func (x *MaterializeSettings) Reset() { *x = MaterializeSettings{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaterializeSettings) String() string { @@ -557,7 +549,7 @@ func (*MaterializeSettings) ProtoMessage() {} func (x *MaterializeSettings) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -709,11 +701,9 @@ type Keyspace struct { func (x *Keyspace) Reset() { *x = Keyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Keyspace) String() string { @@ -724,7 +714,7 @@ func (*Keyspace) ProtoMessage() {} func (x *Keyspace) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -817,11 +807,9 @@ type SchemaMigration struct { func (x *SchemaMigration) Reset() { *x = SchemaMigration{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SchemaMigration) String() string { @@ -832,7 +820,7 @@ func (*SchemaMigration) ProtoMessage() {} func (x *SchemaMigration) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1237,11 +1225,9 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard) String() string { @@ -1252,7 +1238,7 @@ func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1309,11 +1295,9 @@ type WorkflowOptions struct { func (x *WorkflowOptions) Reset() { *x = WorkflowOptions{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowOptions) String() string { @@ -1324,7 +1308,7 @@ func (*WorkflowOptions) ProtoMessage() {} func (x *WorkflowOptions) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1402,11 +1386,9 @@ type Workflow struct { func (x *Workflow) Reset() { *x = Workflow{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow) String() string { @@ -1417,7 +1399,7 @@ func (*Workflow) ProtoMessage() {} func (x *Workflow) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1513,11 +1495,9 @@ type AddCellInfoRequest struct { func (x *AddCellInfoRequest) Reset() { *x = AddCellInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddCellInfoRequest) String() string { @@ -1528,7 +1508,7 @@ func (*AddCellInfoRequest) ProtoMessage() {} func (x *AddCellInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1565,11 +1545,9 @@ type AddCellInfoResponse struct { func (x *AddCellInfoResponse) Reset() { *x = AddCellInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddCellInfoResponse) String() string { @@ -1580,7 +1558,7 @@ func (*AddCellInfoResponse) ProtoMessage() {} func (x *AddCellInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1606,11 +1584,9 @@ type AddCellsAliasRequest struct { func (x *AddCellsAliasRequest) Reset() { *x = AddCellsAliasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddCellsAliasRequest) String() string { @@ -1621,7 +1597,7 @@ func (*AddCellsAliasRequest) ProtoMessage() {} func (x *AddCellsAliasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1658,11 +1634,9 @@ type AddCellsAliasResponse struct { func (x *AddCellsAliasResponse) Reset() { *x = AddCellsAliasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AddCellsAliasResponse) String() string { @@ -1673,7 +1647,7 @@ func (*AddCellsAliasResponse) ProtoMessage() {} func (x *AddCellsAliasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1706,11 +1680,9 @@ type ApplyKeyspaceRoutingRulesRequest struct { func (x *ApplyKeyspaceRoutingRulesRequest) Reset() { *x = ApplyKeyspaceRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyKeyspaceRoutingRulesRequest) String() string { @@ -1721,7 +1693,7 @@ func (*ApplyKeyspaceRoutingRulesRequest) ProtoMessage() {} func (x *ApplyKeyspaceRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1768,11 +1740,9 @@ type ApplyKeyspaceRoutingRulesResponse struct { func (x *ApplyKeyspaceRoutingRulesResponse) Reset() { *x = ApplyKeyspaceRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyKeyspaceRoutingRulesResponse) String() string { @@ -1783,7 +1753,7 @@ func (*ApplyKeyspaceRoutingRulesResponse) ProtoMessage() {} func (x *ApplyKeyspaceRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1823,11 +1793,9 @@ type ApplyRoutingRulesRequest struct { func (x *ApplyRoutingRulesRequest) Reset() { *x = ApplyRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyRoutingRulesRequest) String() string { @@ -1838,7 +1806,7 @@ func (*ApplyRoutingRulesRequest) ProtoMessage() {} func (x *ApplyRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1882,11 +1850,9 @@ type ApplyRoutingRulesResponse struct { func (x *ApplyRoutingRulesResponse) Reset() { *x = ApplyRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyRoutingRulesResponse) String() string { @@ -1897,7 +1863,7 @@ func (*ApplyRoutingRulesResponse) ProtoMessage() {} func (x *ApplyRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1930,11 +1896,9 @@ type ApplyShardRoutingRulesRequest struct { func (x *ApplyShardRoutingRulesRequest) Reset() { *x = ApplyShardRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyShardRoutingRulesRequest) String() string { @@ -1945,7 +1909,7 @@ func (*ApplyShardRoutingRulesRequest) ProtoMessage() {} func (x *ApplyShardRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1989,11 +1953,9 @@ type ApplyShardRoutingRulesResponse struct { func (x *ApplyShardRoutingRulesResponse) Reset() { *x = ApplyShardRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyShardRoutingRulesResponse) String() string { @@ -2004,7 +1966,7 @@ func (*ApplyShardRoutingRulesResponse) ProtoMessage() {} func (x *ApplyShardRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2047,11 +2009,9 @@ type ApplySchemaRequest struct { func (x *ApplySchemaRequest) Reset() { *x = ApplySchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplySchemaRequest) String() string { @@ -2062,7 +2022,7 @@ func (*ApplySchemaRequest) ProtoMessage() {} func (x *ApplySchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2144,11 +2104,9 @@ type ApplySchemaResponse struct { func (x *ApplySchemaResponse) Reset() { *x = ApplySchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplySchemaResponse) String() string { @@ -2159,7 +2117,7 @@ func (*ApplySchemaResponse) ProtoMessage() {} func (x *ApplySchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2205,11 +2163,9 @@ type ApplyVSchemaRequest struct { func (x *ApplyVSchemaRequest) Reset() { *x = ApplyVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyVSchemaRequest) String() string { @@ -2220,7 +2176,7 @@ func (*ApplyVSchemaRequest) ProtoMessage() {} func (x *ApplyVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2303,11 +2259,9 @@ type ApplyVSchemaResponse struct { func (x *ApplyVSchemaResponse) Reset() { *x = ApplyVSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyVSchemaResponse) String() string { @@ -2318,7 +2272,7 @@ func (*ApplyVSchemaResponse) ProtoMessage() {} func (x *ApplyVSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2373,11 +2327,9 @@ type BackupRequest struct { func (x *BackupRequest) Reset() { *x = BackupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupRequest) String() string { @@ -2388,7 +2340,7 @@ func (*BackupRequest) ProtoMessage() {} func (x *BackupRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2459,11 +2411,9 @@ type BackupResponse struct { func (x *BackupResponse) Reset() { *x = BackupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupResponse) String() string { @@ -2474,7 +2424,7 @@ func (*BackupResponse) ProtoMessage() {} func (x *BackupResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2540,11 +2490,9 @@ type BackupShardRequest struct { func (x *BackupShardRequest) Reset() { *x = BackupShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BackupShardRequest) String() string { @@ -2555,7 +2503,7 @@ func (*BackupShardRequest) ProtoMessage() {} func (x *BackupShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2623,11 +2571,9 @@ type CancelSchemaMigrationRequest struct { func (x *CancelSchemaMigrationRequest) Reset() { *x = CancelSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CancelSchemaMigrationRequest) String() string { @@ -2638,7 +2584,7 @@ func (*CancelSchemaMigrationRequest) ProtoMessage() {} func (x *CancelSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2677,11 +2623,9 @@ type CancelSchemaMigrationResponse struct { func (x *CancelSchemaMigrationResponse) Reset() { *x = CancelSchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CancelSchemaMigrationResponse) String() string { @@ -2692,7 +2636,7 @@ func (*CancelSchemaMigrationResponse) ProtoMessage() {} func (x *CancelSchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2726,11 +2670,9 @@ type ChangeTabletTagsRequest struct { func (x *ChangeTabletTagsRequest) Reset() { *x = ChangeTabletTagsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTabletTagsRequest) String() string { @@ -2741,7 +2683,7 @@ func (*ChangeTabletTagsRequest) ProtoMessage() {} func (x *ChangeTabletTagsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2788,11 +2730,9 @@ type ChangeTabletTagsResponse struct { func (x *ChangeTabletTagsResponse) Reset() { *x = ChangeTabletTagsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTabletTagsResponse) String() string { @@ -2803,7 +2743,7 @@ func (*ChangeTabletTagsResponse) ProtoMessage() {} func (x *ChangeTabletTagsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2844,11 +2784,9 @@ type ChangeTabletTypeRequest struct { func (x *ChangeTabletTypeRequest) Reset() { *x = ChangeTabletTypeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTabletTypeRequest) String() string { @@ -2859,7 +2797,7 @@ func (*ChangeTabletTypeRequest) ProtoMessage() {} func (x *ChangeTabletTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2907,11 +2845,9 @@ type ChangeTabletTypeResponse struct { func (x *ChangeTabletTypeResponse) Reset() { *x = ChangeTabletTypeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChangeTabletTypeResponse) String() string { @@ -2922,7 +2858,7 @@ func (*ChangeTabletTypeResponse) ProtoMessage() {} func (x *ChangeTabletTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2974,11 +2910,9 @@ type CheckThrottlerRequest struct { func (x *CheckThrottlerRequest) Reset() { *x = CheckThrottlerRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckThrottlerRequest) String() string { @@ -2989,7 +2923,7 @@ func (*CheckThrottlerRequest) ProtoMessage() {} func (x *CheckThrottlerRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3050,11 +2984,9 @@ type CheckThrottlerResponse struct { func (x *CheckThrottlerResponse) Reset() { *x = CheckThrottlerResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CheckThrottlerResponse) String() string { @@ -3065,7 +2997,7 @@ func (*CheckThrottlerResponse) ProtoMessage() {} func (x *CheckThrottlerResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3105,11 +3037,9 @@ type CleanupSchemaMigrationRequest struct { func (x *CleanupSchemaMigrationRequest) Reset() { *x = CleanupSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CleanupSchemaMigrationRequest) String() string { @@ -3120,7 +3050,7 @@ func (*CleanupSchemaMigrationRequest) ProtoMessage() {} func (x *CleanupSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3159,11 +3089,9 @@ type CleanupSchemaMigrationResponse struct { func (x *CleanupSchemaMigrationResponse) Reset() { *x = CleanupSchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CleanupSchemaMigrationResponse) String() string { @@ -3174,7 +3102,7 @@ func (*CleanupSchemaMigrationResponse) ProtoMessage() {} func (x *CleanupSchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3207,11 +3135,9 @@ type CompleteSchemaMigrationRequest struct { func (x *CompleteSchemaMigrationRequest) Reset() { *x = CompleteSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CompleteSchemaMigrationRequest) String() string { @@ -3222,7 +3148,7 @@ func (*CompleteSchemaMigrationRequest) ProtoMessage() {} func (x *CompleteSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3261,11 +3187,9 @@ type CompleteSchemaMigrationResponse struct { func (x *CompleteSchemaMigrationResponse) Reset() { *x = CompleteSchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CompleteSchemaMigrationResponse) String() string { @@ -3276,7 +3200,7 @@ func (*CompleteSchemaMigrationResponse) ProtoMessage() {} func (x *CompleteSchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3327,11 +3251,9 @@ type CreateKeyspaceRequest struct { func (x *CreateKeyspaceRequest) Reset() { *x = CreateKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateKeyspaceRequest) String() string { @@ -3342,7 +3264,7 @@ func (*CreateKeyspaceRequest) ProtoMessage() {} func (x *CreateKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3424,11 +3346,9 @@ type CreateKeyspaceResponse struct { func (x *CreateKeyspaceResponse) Reset() { *x = CreateKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateKeyspaceResponse) String() string { @@ -3439,7 +3359,7 @@ func (*CreateKeyspaceResponse) ProtoMessage() {} func (x *CreateKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3480,11 +3400,9 @@ type CreateShardRequest struct { func (x *CreateShardRequest) Reset() { *x = CreateShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateShardRequest) String() string { @@ -3495,7 +3413,7 @@ func (*CreateShardRequest) ProtoMessage() {} func (x *CreateShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3555,11 +3473,9 @@ type CreateShardResponse struct { func (x *CreateShardResponse) Reset() { *x = CreateShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CreateShardResponse) String() string { @@ -3570,7 +3486,7 @@ func (*CreateShardResponse) ProtoMessage() {} func (x *CreateShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3617,11 +3533,9 @@ type DeleteCellInfoRequest struct { func (x *DeleteCellInfoRequest) Reset() { *x = DeleteCellInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCellInfoRequest) String() string { @@ -3632,7 +3546,7 @@ func (*DeleteCellInfoRequest) ProtoMessage() {} func (x *DeleteCellInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3669,11 +3583,9 @@ type DeleteCellInfoResponse struct { func (x *DeleteCellInfoResponse) Reset() { *x = DeleteCellInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCellInfoResponse) String() string { @@ -3684,7 +3596,7 @@ func (*DeleteCellInfoResponse) ProtoMessage() {} func (x *DeleteCellInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3709,11 +3621,9 @@ type DeleteCellsAliasRequest struct { func (x *DeleteCellsAliasRequest) Reset() { *x = DeleteCellsAliasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCellsAliasRequest) String() string { @@ -3724,7 +3634,7 @@ func (*DeleteCellsAliasRequest) ProtoMessage() {} func (x *DeleteCellsAliasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3754,11 +3664,9 @@ type DeleteCellsAliasResponse struct { func (x *DeleteCellsAliasResponse) Reset() { *x = DeleteCellsAliasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteCellsAliasResponse) String() string { @@ -3769,7 +3677,7 @@ func (*DeleteCellsAliasResponse) ProtoMessage() {} func (x *DeleteCellsAliasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3802,11 +3710,9 @@ type DeleteKeyspaceRequest struct { func (x *DeleteKeyspaceRequest) Reset() { *x = DeleteKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteKeyspaceRequest) String() string { @@ -3817,7 +3723,7 @@ func (*DeleteKeyspaceRequest) ProtoMessage() {} func (x *DeleteKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3861,11 +3767,9 @@ type DeleteKeyspaceResponse struct { func (x *DeleteKeyspaceResponse) Reset() { *x = DeleteKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteKeyspaceResponse) String() string { @@ -3876,7 +3780,7 @@ func (*DeleteKeyspaceResponse) ProtoMessage() {} func (x *DeleteKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3913,11 +3817,9 @@ type DeleteShardsRequest struct { func (x *DeleteShardsRequest) Reset() { *x = DeleteShardsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteShardsRequest) String() string { @@ -3928,7 +3830,7 @@ func (*DeleteShardsRequest) ProtoMessage() {} func (x *DeleteShardsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3979,11 +3881,9 @@ type DeleteShardsResponse struct { func (x *DeleteShardsResponse) Reset() { *x = DeleteShardsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteShardsResponse) String() string { @@ -3994,7 +3894,7 @@ func (*DeleteShardsResponse) ProtoMessage() {} func (x *DeleteShardsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4019,11 +3919,9 @@ type DeleteSrvVSchemaRequest struct { func (x *DeleteSrvVSchemaRequest) Reset() { *x = DeleteSrvVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteSrvVSchemaRequest) String() string { @@ -4034,7 +3932,7 @@ func (*DeleteSrvVSchemaRequest) ProtoMessage() {} func (x *DeleteSrvVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4064,11 +3962,9 @@ type DeleteSrvVSchemaResponse struct { func (x *DeleteSrvVSchemaResponse) Reset() { *x = DeleteSrvVSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteSrvVSchemaResponse) String() string { @@ -4079,7 +3975,7 @@ func (*DeleteSrvVSchemaResponse) ProtoMessage() {} func (x *DeleteSrvVSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4108,11 +4004,9 @@ type DeleteTabletsRequest struct { func (x *DeleteTabletsRequest) Reset() { *x = DeleteTabletsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTabletsRequest) String() string { @@ -4123,7 +4017,7 @@ func (*DeleteTabletsRequest) ProtoMessage() {} func (x *DeleteTabletsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4160,11 +4054,9 @@ type DeleteTabletsResponse struct { func (x *DeleteTabletsResponse) Reset() { *x = DeleteTabletsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeleteTabletsResponse) String() string { @@ -4175,7 +4067,7 @@ func (*DeleteTabletsResponse) ProtoMessage() {} func (x *DeleteTabletsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4223,11 +4115,9 @@ type EmergencyReparentShardRequest struct { func (x *EmergencyReparentShardRequest) Reset() { *x = EmergencyReparentShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmergencyReparentShardRequest) String() string { @@ -4238,7 +4128,7 @@ func (*EmergencyReparentShardRequest) ProtoMessage() {} func (x *EmergencyReparentShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4328,11 +4218,9 @@ type EmergencyReparentShardResponse struct { func (x *EmergencyReparentShardResponse) Reset() { *x = EmergencyReparentShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EmergencyReparentShardResponse) String() string { @@ -4343,7 +4231,7 @@ func (*EmergencyReparentShardResponse) ProtoMessage() {} func (x *EmergencyReparentShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4406,11 +4294,9 @@ type ExecuteFetchAsAppRequest struct { func (x *ExecuteFetchAsAppRequest) Reset() { *x = ExecuteFetchAsAppRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAppRequest) String() string { @@ -4421,7 +4307,7 @@ func (*ExecuteFetchAsAppRequest) ProtoMessage() {} func (x *ExecuteFetchAsAppRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4474,11 +4360,9 @@ type ExecuteFetchAsAppResponse struct { func (x *ExecuteFetchAsAppResponse) Reset() { *x = ExecuteFetchAsAppResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsAppResponse) String() string { @@ -4489,7 +4373,7 @@ func (*ExecuteFetchAsAppResponse) ProtoMessage() {} func (x *ExecuteFetchAsAppResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4535,11 +4419,9 @@ type ExecuteFetchAsDBARequest struct { func (x *ExecuteFetchAsDBARequest) Reset() { *x = ExecuteFetchAsDBARequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsDBARequest) String() string { @@ -4550,7 +4432,7 @@ func (*ExecuteFetchAsDBARequest) ProtoMessage() {} func (x *ExecuteFetchAsDBARequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4610,11 +4492,9 @@ type ExecuteFetchAsDBAResponse struct { func (x *ExecuteFetchAsDBAResponse) Reset() { *x = ExecuteFetchAsDBAResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteFetchAsDBAResponse) String() string { @@ -4625,7 +4505,7 @@ func (*ExecuteFetchAsDBAResponse) ProtoMessage() {} func (x *ExecuteFetchAsDBAResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4658,11 +4538,9 @@ type ExecuteHookRequest struct { func (x *ExecuteHookRequest) Reset() { *x = ExecuteHookRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteHookRequest) String() string { @@ -4673,7 +4551,7 @@ func (*ExecuteHookRequest) ProtoMessage() {} func (x *ExecuteHookRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4712,11 +4590,9 @@ type ExecuteHookResponse struct { func (x *ExecuteHookResponse) Reset() { *x = ExecuteHookResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteHookResponse) String() string { @@ -4727,7 +4603,7 @@ func (*ExecuteHookResponse) ProtoMessage() {} func (x *ExecuteHookResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4774,11 +4650,9 @@ type ExecuteMultiFetchAsDBARequest struct { func (x *ExecuteMultiFetchAsDBARequest) Reset() { *x = ExecuteMultiFetchAsDBARequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteMultiFetchAsDBARequest) String() string { @@ -4789,7 +4663,7 @@ func (*ExecuteMultiFetchAsDBARequest) ProtoMessage() {} func (x *ExecuteMultiFetchAsDBARequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4849,11 +4723,9 @@ type ExecuteMultiFetchAsDBAResponse struct { func (x *ExecuteMultiFetchAsDBAResponse) Reset() { *x = ExecuteMultiFetchAsDBAResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteMultiFetchAsDBAResponse) String() string { @@ -4864,7 +4736,7 @@ func (*ExecuteMultiFetchAsDBAResponse) ProtoMessage() {} func (x *ExecuteMultiFetchAsDBAResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4896,11 +4768,9 @@ type FindAllShardsInKeyspaceRequest struct { func (x *FindAllShardsInKeyspaceRequest) Reset() { *x = FindAllShardsInKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FindAllShardsInKeyspaceRequest) String() string { @@ -4911,7 +4781,7 @@ func (*FindAllShardsInKeyspaceRequest) ProtoMessage() {} func (x *FindAllShardsInKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4943,11 +4813,9 @@ type FindAllShardsInKeyspaceResponse struct { func (x *FindAllShardsInKeyspaceResponse) Reset() { *x = FindAllShardsInKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FindAllShardsInKeyspaceResponse) String() string { @@ -4958,7 +4826,7 @@ func (*FindAllShardsInKeyspaceResponse) ProtoMessage() {} func (x *FindAllShardsInKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4991,11 +4859,9 @@ type ForceCutOverSchemaMigrationRequest struct { func (x *ForceCutOverSchemaMigrationRequest) Reset() { *x = ForceCutOverSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[66] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ForceCutOverSchemaMigrationRequest) String() string { @@ -5006,7 +4872,7 @@ func (*ForceCutOverSchemaMigrationRequest) ProtoMessage() {} func (x *ForceCutOverSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[66] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5045,11 +4911,9 @@ type ForceCutOverSchemaMigrationResponse struct { func (x *ForceCutOverSchemaMigrationResponse) Reset() { *x = ForceCutOverSchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[67] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ForceCutOverSchemaMigrationResponse) String() string { @@ -5060,7 +4924,7 @@ func (*ForceCutOverSchemaMigrationResponse) ProtoMessage() {} func (x *ForceCutOverSchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[67] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5107,11 +4971,9 @@ type GetBackupsRequest struct { func (x *GetBackupsRequest) Reset() { *x = GetBackupsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[68] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBackupsRequest) String() string { @@ -5122,7 +4984,7 @@ func (*GetBackupsRequest) ProtoMessage() {} func (x *GetBackupsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[68] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5182,11 +5044,9 @@ type GetBackupsResponse struct { func (x *GetBackupsResponse) Reset() { *x = GetBackupsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[69] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetBackupsResponse) String() string { @@ -5197,7 +5057,7 @@ func (*GetBackupsResponse) ProtoMessage() {} func (x *GetBackupsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[69] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5229,11 +5089,9 @@ type GetCellInfoRequest struct { func (x *GetCellInfoRequest) Reset() { *x = GetCellInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[70] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfoRequest) String() string { @@ -5244,7 +5102,7 @@ func (*GetCellInfoRequest) ProtoMessage() {} func (x *GetCellInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[70] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5276,11 +5134,9 @@ type GetCellInfoResponse struct { func (x *GetCellInfoResponse) Reset() { *x = GetCellInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[71] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfoResponse) String() string { @@ -5291,7 +5147,7 @@ func (*GetCellInfoResponse) ProtoMessage() {} func (x *GetCellInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[71] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5321,11 +5177,9 @@ type GetCellInfoNamesRequest struct { func (x *GetCellInfoNamesRequest) Reset() { *x = GetCellInfoNamesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[72] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfoNamesRequest) String() string { @@ -5336,7 +5190,7 @@ func (*GetCellInfoNamesRequest) ProtoMessage() {} func (x *GetCellInfoNamesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[72] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5361,11 +5215,9 @@ type GetCellInfoNamesResponse struct { func (x *GetCellInfoNamesResponse) Reset() { *x = GetCellInfoNamesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[73] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellInfoNamesResponse) String() string { @@ -5376,7 +5228,7 @@ func (*GetCellInfoNamesResponse) ProtoMessage() {} func (x *GetCellInfoNamesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[73] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5406,11 +5258,9 @@ type GetCellsAliasesRequest struct { func (x *GetCellsAliasesRequest) Reset() { *x = GetCellsAliasesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[74] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellsAliasesRequest) String() string { @@ -5421,7 +5271,7 @@ func (*GetCellsAliasesRequest) ProtoMessage() {} func (x *GetCellsAliasesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[74] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5446,11 +5296,9 @@ type GetCellsAliasesResponse struct { func (x *GetCellsAliasesResponse) Reset() { *x = GetCellsAliasesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[75] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetCellsAliasesResponse) String() string { @@ -5461,7 +5309,7 @@ func (*GetCellsAliasesResponse) ProtoMessage() {} func (x *GetCellsAliasesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[75] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5493,11 +5341,9 @@ type GetFullStatusRequest struct { func (x *GetFullStatusRequest) Reset() { *x = GetFullStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[76] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFullStatusRequest) String() string { @@ -5508,7 +5354,7 @@ func (*GetFullStatusRequest) ProtoMessage() {} func (x *GetFullStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[76] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5540,11 +5386,9 @@ type GetFullStatusResponse struct { func (x *GetFullStatusResponse) Reset() { *x = GetFullStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[77] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetFullStatusResponse) String() string { @@ -5555,7 +5399,7 @@ func (*GetFullStatusResponse) ProtoMessage() {} func (x *GetFullStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[77] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5585,11 +5429,9 @@ type GetKeyspacesRequest struct { func (x *GetKeyspacesRequest) Reset() { *x = GetKeyspacesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[78] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspacesRequest) String() string { @@ -5600,7 +5442,7 @@ func (*GetKeyspacesRequest) ProtoMessage() {} func (x *GetKeyspacesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[78] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5625,11 +5467,9 @@ type GetKeyspacesResponse struct { func (x *GetKeyspacesResponse) Reset() { *x = GetKeyspacesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[79] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspacesResponse) String() string { @@ -5640,7 +5480,7 @@ func (*GetKeyspacesResponse) ProtoMessage() {} func (x *GetKeyspacesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[79] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5672,11 +5512,9 @@ type GetKeyspaceRequest struct { func (x *GetKeyspaceRequest) Reset() { *x = GetKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[80] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspaceRequest) String() string { @@ -5687,7 +5525,7 @@ func (*GetKeyspaceRequest) ProtoMessage() {} func (x *GetKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[80] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5719,11 +5557,9 @@ type GetKeyspaceResponse struct { func (x *GetKeyspaceResponse) Reset() { *x = GetKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[81] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspaceResponse) String() string { @@ -5734,7 +5570,7 @@ func (*GetKeyspaceResponse) ProtoMessage() {} func (x *GetKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[81] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5766,11 +5602,9 @@ type GetPermissionsRequest struct { func (x *GetPermissionsRequest) Reset() { *x = GetPermissionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[82] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPermissionsRequest) String() string { @@ -5781,7 +5615,7 @@ func (*GetPermissionsRequest) ProtoMessage() {} func (x *GetPermissionsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[82] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5813,11 +5647,9 @@ type GetPermissionsResponse struct { func (x *GetPermissionsResponse) Reset() { *x = GetPermissionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[83] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetPermissionsResponse) String() string { @@ -5828,7 +5660,7 @@ func (*GetPermissionsResponse) ProtoMessage() {} func (x *GetPermissionsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[83] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5858,11 +5690,9 @@ type GetKeyspaceRoutingRulesRequest struct { func (x *GetKeyspaceRoutingRulesRequest) Reset() { *x = GetKeyspaceRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[84] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspaceRoutingRulesRequest) String() string { @@ -5873,7 +5703,7 @@ func (*GetKeyspaceRoutingRulesRequest) ProtoMessage() {} func (x *GetKeyspaceRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[84] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5898,11 +5728,9 @@ type GetKeyspaceRoutingRulesResponse struct { func (x *GetKeyspaceRoutingRulesResponse) Reset() { *x = GetKeyspaceRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[85] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetKeyspaceRoutingRulesResponse) String() string { @@ -5913,7 +5741,7 @@ func (*GetKeyspaceRoutingRulesResponse) ProtoMessage() {} func (x *GetKeyspaceRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[85] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5943,11 +5771,9 @@ type GetRoutingRulesRequest struct { func (x *GetRoutingRulesRequest) Reset() { *x = GetRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[86] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetRoutingRulesRequest) String() string { @@ -5958,7 +5784,7 @@ func (*GetRoutingRulesRequest) ProtoMessage() {} func (x *GetRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[86] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -5983,11 +5809,9 @@ type GetRoutingRulesResponse struct { func (x *GetRoutingRulesResponse) Reset() { *x = GetRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[87] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetRoutingRulesResponse) String() string { @@ -5998,7 +5822,7 @@ func (*GetRoutingRulesResponse) ProtoMessage() {} func (x *GetRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[87] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6048,11 +5872,9 @@ type GetSchemaRequest struct { func (x *GetSchemaRequest) Reset() { *x = GetSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[88] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaRequest) String() string { @@ -6063,7 +5885,7 @@ func (*GetSchemaRequest) ProtoMessage() {} func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[88] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6137,11 +5959,9 @@ type GetSchemaResponse struct { func (x *GetSchemaResponse) Reset() { *x = GetSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[89] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaResponse) String() string { @@ -6152,7 +5972,7 @@ func (*GetSchemaResponse) ProtoMessage() {} func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[89] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6209,11 +6029,9 @@ type GetSchemaMigrationsRequest struct { func (x *GetSchemaMigrationsRequest) Reset() { *x = GetSchemaMigrationsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[90] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaMigrationsRequest) String() string { @@ -6224,7 +6042,7 @@ func (*GetSchemaMigrationsRequest) ProtoMessage() {} func (x *GetSchemaMigrationsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[90] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6305,11 +6123,9 @@ type GetSchemaMigrationsResponse struct { func (x *GetSchemaMigrationsResponse) Reset() { *x = GetSchemaMigrationsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[91] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSchemaMigrationsResponse) String() string { @@ -6320,7 +6136,7 @@ func (*GetSchemaMigrationsResponse) ProtoMessage() {} func (x *GetSchemaMigrationsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[91] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6356,11 +6172,9 @@ type GetShardReplicationRequest struct { func (x *GetShardReplicationRequest) Reset() { *x = GetShardReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[92] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardReplicationRequest) String() string { @@ -6371,7 +6185,7 @@ func (*GetShardReplicationRequest) ProtoMessage() {} func (x *GetShardReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[92] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6417,11 +6231,9 @@ type GetShardReplicationResponse struct { func (x *GetShardReplicationResponse) Reset() { *x = GetShardReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[93] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardReplicationResponse) String() string { @@ -6432,7 +6244,7 @@ func (*GetShardReplicationResponse) ProtoMessage() {} func (x *GetShardReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[93] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6465,11 +6277,9 @@ type GetShardRequest struct { func (x *GetShardRequest) Reset() { *x = GetShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[94] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardRequest) String() string { @@ -6480,7 +6290,7 @@ func (*GetShardRequest) ProtoMessage() {} func (x *GetShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[94] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6519,11 +6329,9 @@ type GetShardResponse struct { func (x *GetShardResponse) Reset() { *x = GetShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[95] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardResponse) String() string { @@ -6534,7 +6342,7 @@ func (*GetShardResponse) ProtoMessage() {} func (x *GetShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[95] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6564,11 +6372,9 @@ type GetShardRoutingRulesRequest struct { func (x *GetShardRoutingRulesRequest) Reset() { *x = GetShardRoutingRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[96] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardRoutingRulesRequest) String() string { @@ -6579,7 +6385,7 @@ func (*GetShardRoutingRulesRequest) ProtoMessage() {} func (x *GetShardRoutingRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[96] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6604,11 +6410,9 @@ type GetShardRoutingRulesResponse struct { func (x *GetShardRoutingRulesResponse) Reset() { *x = GetShardRoutingRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[97] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetShardRoutingRulesResponse) String() string { @@ -6619,7 +6423,7 @@ func (*GetShardRoutingRulesResponse) ProtoMessage() {} func (x *GetShardRoutingRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[97] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6651,11 +6455,9 @@ type GetSrvKeyspaceNamesRequest struct { func (x *GetSrvKeyspaceNamesRequest) Reset() { *x = GetSrvKeyspaceNamesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[98] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspaceNamesRequest) String() string { @@ -6666,7 +6468,7 @@ func (*GetSrvKeyspaceNamesRequest) ProtoMessage() {} func (x *GetSrvKeyspaceNamesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[98] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6699,11 +6501,9 @@ type GetSrvKeyspaceNamesResponse struct { func (x *GetSrvKeyspaceNamesResponse) Reset() { *x = GetSrvKeyspaceNamesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[99] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspaceNamesResponse) String() string { @@ -6714,7 +6514,7 @@ func (*GetSrvKeyspaceNamesResponse) ProtoMessage() {} func (x *GetSrvKeyspaceNamesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[99] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6749,11 +6549,9 @@ type GetSrvKeyspacesRequest struct { func (x *GetSrvKeyspacesRequest) Reset() { *x = GetSrvKeyspacesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[100] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspacesRequest) String() string { @@ -6764,7 +6562,7 @@ func (*GetSrvKeyspacesRequest) ProtoMessage() {} func (x *GetSrvKeyspacesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[100] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6804,11 +6602,9 @@ type GetSrvKeyspacesResponse struct { func (x *GetSrvKeyspacesResponse) Reset() { *x = GetSrvKeyspacesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[101] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspacesResponse) String() string { @@ -6819,7 +6615,7 @@ func (*GetSrvKeyspacesResponse) ProtoMessage() {} func (x *GetSrvKeyspacesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[101] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6874,11 +6670,9 @@ type UpdateThrottlerConfigRequest struct { func (x *UpdateThrottlerConfigRequest) Reset() { *x = UpdateThrottlerConfigRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[102] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateThrottlerConfigRequest) String() string { @@ -6889,7 +6683,7 @@ func (*UpdateThrottlerConfigRequest) ProtoMessage() {} func (x *UpdateThrottlerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[102] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -6996,11 +6790,9 @@ type UpdateThrottlerConfigResponse struct { func (x *UpdateThrottlerConfigResponse) Reset() { *x = UpdateThrottlerConfigResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[103] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateThrottlerConfigResponse) String() string { @@ -7011,7 +6803,7 @@ func (*UpdateThrottlerConfigResponse) ProtoMessage() {} func (x *UpdateThrottlerConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[103] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7036,11 +6828,9 @@ type GetSrvVSchemaRequest struct { func (x *GetSrvVSchemaRequest) Reset() { *x = GetSrvVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[104] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemaRequest) String() string { @@ -7051,7 +6841,7 @@ func (*GetSrvVSchemaRequest) ProtoMessage() {} func (x *GetSrvVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[104] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7083,11 +6873,9 @@ type GetSrvVSchemaResponse struct { func (x *GetSrvVSchemaResponse) Reset() { *x = GetSrvVSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[105] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemaResponse) String() string { @@ -7098,7 +6886,7 @@ func (*GetSrvVSchemaResponse) ProtoMessage() {} func (x *GetSrvVSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[105] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7130,11 +6918,9 @@ type GetSrvVSchemasRequest struct { func (x *GetSrvVSchemasRequest) Reset() { *x = GetSrvVSchemasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[106] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemasRequest) String() string { @@ -7145,7 +6931,7 @@ func (*GetSrvVSchemasRequest) ProtoMessage() {} func (x *GetSrvVSchemasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[106] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7178,11 +6964,9 @@ type GetSrvVSchemasResponse struct { func (x *GetSrvVSchemasResponse) Reset() { *x = GetSrvVSchemasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[107] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvVSchemasResponse) String() string { @@ -7193,7 +6977,7 @@ func (*GetSrvVSchemasResponse) ProtoMessage() {} func (x *GetSrvVSchemasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[107] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7225,11 +7009,9 @@ type GetTabletRequest struct { func (x *GetTabletRequest) Reset() { *x = GetTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[108] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletRequest) String() string { @@ -7240,7 +7022,7 @@ func (*GetTabletRequest) ProtoMessage() {} func (x *GetTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[108] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7272,11 +7054,9 @@ type GetTabletResponse struct { func (x *GetTabletResponse) Reset() { *x = GetTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[109] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletResponse) String() string { @@ -7287,7 +7067,7 @@ func (*GetTabletResponse) ProtoMessage() {} func (x *GetTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[109] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7340,11 +7120,9 @@ type GetTabletsRequest struct { func (x *GetTabletsRequest) Reset() { *x = GetTabletsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[110] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletsRequest) String() string { @@ -7355,7 +7133,7 @@ func (*GetTabletsRequest) ProtoMessage() {} func (x *GetTabletsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[110] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7422,11 +7200,9 @@ type GetTabletsResponse struct { func (x *GetTabletsResponse) Reset() { *x = GetTabletsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[111] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTabletsResponse) String() string { @@ -7437,7 +7213,7 @@ func (*GetTabletsResponse) ProtoMessage() {} func (x *GetTabletsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[111] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7470,11 +7246,9 @@ type GetThrottlerStatusRequest struct { func (x *GetThrottlerStatusRequest) Reset() { *x = GetThrottlerStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[112] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusRequest) String() string { @@ -7485,7 +7259,7 @@ func (*GetThrottlerStatusRequest) ProtoMessage() {} func (x *GetThrottlerStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[112] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7517,11 +7291,9 @@ type GetThrottlerStatusResponse struct { func (x *GetThrottlerStatusResponse) Reset() { *x = GetThrottlerStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[113] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetThrottlerStatusResponse) String() string { @@ -7532,7 +7304,7 @@ func (*GetThrottlerStatusResponse) ProtoMessage() {} func (x *GetThrottlerStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[113] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7566,11 +7338,9 @@ type GetTopologyPathRequest struct { func (x *GetTopologyPathRequest) Reset() { *x = GetTopologyPathRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[114] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTopologyPathRequest) String() string { @@ -7581,7 +7351,7 @@ func (*GetTopologyPathRequest) ProtoMessage() {} func (x *GetTopologyPathRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[114] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7627,11 +7397,9 @@ type GetTopologyPathResponse struct { func (x *GetTopologyPathResponse) Reset() { *x = GetTopologyPathResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[115] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTopologyPathResponse) String() string { @@ -7642,7 +7410,7 @@ func (*GetTopologyPathResponse) ProtoMessage() {} func (x *GetTopologyPathResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[115] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7680,11 +7448,9 @@ type TopologyCell struct { func (x *TopologyCell) Reset() { *x = TopologyCell{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[116] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TopologyCell) String() string { @@ -7695,7 +7461,7 @@ func (*TopologyCell) ProtoMessage() {} func (x *TopologyCell) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[116] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7756,11 +7522,9 @@ type GetUnresolvedTransactionsRequest struct { func (x *GetUnresolvedTransactionsRequest) Reset() { *x = GetUnresolvedTransactionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[117] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUnresolvedTransactionsRequest) String() string { @@ -7771,7 +7535,7 @@ func (*GetUnresolvedTransactionsRequest) ProtoMessage() {} func (x *GetUnresolvedTransactionsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[117] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7810,11 +7574,9 @@ type GetUnresolvedTransactionsResponse struct { func (x *GetUnresolvedTransactionsResponse) Reset() { *x = GetUnresolvedTransactionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[118] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetUnresolvedTransactionsResponse) String() string { @@ -7825,7 +7587,7 @@ func (*GetUnresolvedTransactionsResponse) ProtoMessage() {} func (x *GetUnresolvedTransactionsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[118] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7857,11 +7619,9 @@ type GetTransactionInfoRequest struct { func (x *GetTransactionInfoRequest) Reset() { *x = GetTransactionInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[119] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTransactionInfoRequest) String() string { @@ -7872,7 +7632,7 @@ func (*GetTransactionInfoRequest) ProtoMessage() {} func (x *GetTransactionInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[119] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7908,11 +7668,9 @@ type ShardTransactionState struct { func (x *ShardTransactionState) Reset() { *x = ShardTransactionState{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[120] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardTransactionState) String() string { @@ -7923,7 +7681,7 @@ func (*ShardTransactionState) ProtoMessage() {} func (x *ShardTransactionState) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[120] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -7984,11 +7742,9 @@ type GetTransactionInfoResponse struct { func (x *GetTransactionInfoResponse) Reset() { *x = GetTransactionInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[121] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetTransactionInfoResponse) String() string { @@ -7999,7 +7755,7 @@ func (*GetTransactionInfoResponse) ProtoMessage() {} func (x *GetTransactionInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[121] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8039,11 +7795,9 @@ type ConcludeTransactionRequest struct { func (x *ConcludeTransactionRequest) Reset() { *x = ConcludeTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[122] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionRequest) String() string { @@ -8054,7 +7808,7 @@ func (*ConcludeTransactionRequest) ProtoMessage() {} func (x *ConcludeTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[122] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8091,11 +7845,9 @@ type ConcludeTransactionResponse struct { func (x *ConcludeTransactionResponse) Reset() { *x = ConcludeTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[123] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ConcludeTransactionResponse) String() string { @@ -8106,7 +7858,7 @@ func (*ConcludeTransactionResponse) ProtoMessage() {} func (x *ConcludeTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[123] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8131,11 +7883,9 @@ type GetVSchemaRequest struct { func (x *GetVSchemaRequest) Reset() { *x = GetVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[124] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVSchemaRequest) String() string { @@ -8146,7 +7896,7 @@ func (*GetVSchemaRequest) ProtoMessage() {} func (x *GetVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[124] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8178,11 +7928,9 @@ type GetVersionRequest struct { func (x *GetVersionRequest) Reset() { *x = GetVersionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[125] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVersionRequest) String() string { @@ -8193,7 +7941,7 @@ func (*GetVersionRequest) ProtoMessage() {} func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[125] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8225,11 +7973,9 @@ type GetVersionResponse struct { func (x *GetVersionResponse) Reset() { *x = GetVersionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVersionResponse) String() string { @@ -8240,7 +7986,7 @@ func (*GetVersionResponse) ProtoMessage() {} func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[126] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8272,11 +8018,9 @@ type GetVSchemaResponse struct { func (x *GetVSchemaResponse) Reset() { *x = GetVSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetVSchemaResponse) String() string { @@ -8287,7 +8031,7 @@ func (*GetVSchemaResponse) ProtoMessage() {} func (x *GetVSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[127] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8325,11 +8069,9 @@ type GetWorkflowsRequest struct { func (x *GetWorkflowsRequest) Reset() { *x = GetWorkflowsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[128] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowsRequest) String() string { @@ -8340,7 +8082,7 @@ func (*GetWorkflowsRequest) ProtoMessage() {} func (x *GetWorkflowsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[128] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8407,11 +8149,9 @@ type GetWorkflowsResponse struct { func (x *GetWorkflowsResponse) Reset() { *x = GetWorkflowsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetWorkflowsResponse) String() string { @@ -8422,7 +8162,7 @@ func (*GetWorkflowsResponse) ProtoMessage() {} func (x *GetWorkflowsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[129] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8458,11 +8198,9 @@ type InitShardPrimaryRequest struct { func (x *InitShardPrimaryRequest) Reset() { *x = InitShardPrimaryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitShardPrimaryRequest) String() string { @@ -8473,7 +8211,7 @@ func (*InitShardPrimaryRequest) ProtoMessage() {} func (x *InitShardPrimaryRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[130] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8533,11 +8271,9 @@ type InitShardPrimaryResponse struct { func (x *InitShardPrimaryResponse) Reset() { *x = InitShardPrimaryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InitShardPrimaryResponse) String() string { @@ -8548,7 +8284,7 @@ func (*InitShardPrimaryResponse) ProtoMessage() {} func (x *InitShardPrimaryResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[131] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8581,11 +8317,9 @@ type LaunchSchemaMigrationRequest struct { func (x *LaunchSchemaMigrationRequest) Reset() { *x = LaunchSchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LaunchSchemaMigrationRequest) String() string { @@ -8596,7 +8330,7 @@ func (*LaunchSchemaMigrationRequest) ProtoMessage() {} func (x *LaunchSchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[132] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8635,11 +8369,9 @@ type LaunchSchemaMigrationResponse struct { func (x *LaunchSchemaMigrationResponse) Reset() { *x = LaunchSchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LaunchSchemaMigrationResponse) String() string { @@ -8650,7 +8382,7 @@ func (*LaunchSchemaMigrationResponse) ProtoMessage() {} func (x *LaunchSchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[133] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8688,11 +8420,9 @@ type LookupVindexCreateRequest struct { func (x *LookupVindexCreateRequest) Reset() { *x = LookupVindexCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[134] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupVindexCreateRequest) String() string { @@ -8703,7 +8433,7 @@ func (*LookupVindexCreateRequest) ProtoMessage() {} func (x *LookupVindexCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[134] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8775,11 +8505,9 @@ type LookupVindexCreateResponse struct { func (x *LookupVindexCreateResponse) Reset() { *x = LookupVindexCreateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[135] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupVindexCreateResponse) String() string { @@ -8790,7 +8518,7 @@ func (*LookupVindexCreateResponse) ProtoMessage() {} func (x *LookupVindexCreateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[135] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8820,11 +8548,9 @@ type LookupVindexExternalizeRequest struct { func (x *LookupVindexExternalizeRequest) Reset() { *x = LookupVindexExternalizeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[136] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupVindexExternalizeRequest) String() string { @@ -8835,7 +8561,7 @@ func (*LookupVindexExternalizeRequest) ProtoMessage() {} func (x *LookupVindexExternalizeRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[136] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8882,11 +8608,9 @@ type LookupVindexExternalizeResponse struct { func (x *LookupVindexExternalizeResponse) Reset() { *x = LookupVindexExternalizeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[137] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *LookupVindexExternalizeResponse) String() string { @@ -8897,7 +8621,7 @@ func (*LookupVindexExternalizeResponse) ProtoMessage() {} func (x *LookupVindexExternalizeResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[137] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8929,11 +8653,9 @@ type MaterializeCreateRequest struct { func (x *MaterializeCreateRequest) Reset() { *x = MaterializeCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[138] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaterializeCreateRequest) String() string { @@ -8944,7 +8666,7 @@ func (*MaterializeCreateRequest) ProtoMessage() {} func (x *MaterializeCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[138] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -8974,11 +8696,9 @@ type MaterializeCreateResponse struct { func (x *MaterializeCreateResponse) Reset() { *x = MaterializeCreateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[139] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MaterializeCreateResponse) String() string { @@ -8989,7 +8709,7 @@ func (*MaterializeCreateResponse) ProtoMessage() {} func (x *MaterializeCreateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[139] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9039,11 +8759,9 @@ type MigrateCreateRequest struct { func (x *MigrateCreateRequest) Reset() { *x = MigrateCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[140] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MigrateCreateRequest) String() string { @@ -9054,7 +8772,7 @@ func (*MigrateCreateRequest) ProtoMessage() {} func (x *MigrateCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[140] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9203,11 +8921,9 @@ type MigrateCompleteRequest struct { func (x *MigrateCompleteRequest) Reset() { *x = MigrateCompleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[141] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MigrateCompleteRequest) String() string { @@ -9218,7 +8934,7 @@ func (*MigrateCompleteRequest) ProtoMessage() {} func (x *MigrateCompleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[141] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9286,11 +9002,9 @@ type MigrateCompleteResponse struct { func (x *MigrateCompleteResponse) Reset() { *x = MigrateCompleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[142] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MigrateCompleteResponse) String() string { @@ -9301,7 +9015,7 @@ func (*MigrateCompleteResponse) ProtoMessage() {} func (x *MigrateCompleteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[142] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9343,11 +9057,9 @@ type MountRegisterRequest struct { func (x *MountRegisterRequest) Reset() { *x = MountRegisterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[143] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountRegisterRequest) String() string { @@ -9358,7 +9070,7 @@ func (*MountRegisterRequest) ProtoMessage() {} func (x *MountRegisterRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[143] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9409,11 +9121,9 @@ type MountRegisterResponse struct { func (x *MountRegisterResponse) Reset() { *x = MountRegisterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[144] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountRegisterResponse) String() string { @@ -9424,7 +9134,7 @@ func (*MountRegisterResponse) ProtoMessage() {} func (x *MountRegisterResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[144] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9449,11 +9159,9 @@ type MountUnregisterRequest struct { func (x *MountUnregisterRequest) Reset() { *x = MountUnregisterRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[145] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountUnregisterRequest) String() string { @@ -9464,7 +9172,7 @@ func (*MountUnregisterRequest) ProtoMessage() {} func (x *MountUnregisterRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[145] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9494,11 +9202,9 @@ type MountUnregisterResponse struct { func (x *MountUnregisterResponse) Reset() { *x = MountUnregisterResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[146] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountUnregisterResponse) String() string { @@ -9509,7 +9215,7 @@ func (*MountUnregisterResponse) ProtoMessage() {} func (x *MountUnregisterResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[146] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9534,11 +9240,9 @@ type MountShowRequest struct { func (x *MountShowRequest) Reset() { *x = MountShowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[147] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountShowRequest) String() string { @@ -9549,7 +9253,7 @@ func (*MountShowRequest) ProtoMessage() {} func (x *MountShowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[147] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9584,11 +9288,9 @@ type MountShowResponse struct { func (x *MountShowResponse) Reset() { *x = MountShowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[148] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountShowResponse) String() string { @@ -9599,7 +9301,7 @@ func (*MountShowResponse) ProtoMessage() {} func (x *MountShowResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[148] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9650,11 +9352,9 @@ type MountListRequest struct { func (x *MountListRequest) Reset() { *x = MountListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[149] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountListRequest) String() string { @@ -9665,7 +9365,7 @@ func (*MountListRequest) ProtoMessage() {} func (x *MountListRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[149] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9690,11 +9390,9 @@ type MountListResponse struct { func (x *MountListResponse) Reset() { *x = MountListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[150] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MountListResponse) String() string { @@ -9705,7 +9403,7 @@ func (*MountListResponse) ProtoMessage() {} func (x *MountListResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[150] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9767,11 +9465,9 @@ type MoveTablesCreateRequest struct { func (x *MoveTablesCreateRequest) Reset() { *x = MoveTablesCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[151] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCreateRequest) String() string { @@ -9782,7 +9478,7 @@ func (*MoveTablesCreateRequest) ProtoMessage() {} func (x *MoveTablesCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[151] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -9948,11 +9644,9 @@ type MoveTablesCreateResponse struct { func (x *MoveTablesCreateResponse) Reset() { *x = MoveTablesCreateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[152] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCreateResponse) String() string { @@ -9963,7 +9657,7 @@ func (*MoveTablesCreateResponse) ProtoMessage() {} func (x *MoveTablesCreateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[152] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10008,11 +9702,9 @@ type MoveTablesCompleteRequest struct { func (x *MoveTablesCompleteRequest) Reset() { *x = MoveTablesCompleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[153] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCompleteRequest) String() string { @@ -10023,7 +9715,7 @@ func (*MoveTablesCompleteRequest) ProtoMessage() {} func (x *MoveTablesCompleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[153] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10098,11 +9790,9 @@ type MoveTablesCompleteResponse struct { func (x *MoveTablesCompleteResponse) Reset() { *x = MoveTablesCompleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[154] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCompleteResponse) String() string { @@ -10113,7 +9803,7 @@ func (*MoveTablesCompleteResponse) ProtoMessage() {} func (x *MoveTablesCompleteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[154] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10152,11 +9842,9 @@ type PingTabletRequest struct { func (x *PingTabletRequest) Reset() { *x = PingTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[155] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingTabletRequest) String() string { @@ -10167,7 +9855,7 @@ func (*PingTabletRequest) ProtoMessage() {} func (x *PingTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[155] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10197,11 +9885,9 @@ type PingTabletResponse struct { func (x *PingTabletResponse) Reset() { *x = PingTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[156] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[156] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PingTabletResponse) String() string { @@ -10212,7 +9898,7 @@ func (*PingTabletResponse) ProtoMessage() {} func (x *PingTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[156] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10267,11 +9953,9 @@ type PlannedReparentShardRequest struct { func (x *PlannedReparentShardRequest) Reset() { *x = PlannedReparentShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[157] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlannedReparentShardRequest) String() string { @@ -10282,7 +9966,7 @@ func (*PlannedReparentShardRequest) ProtoMessage() {} func (x *PlannedReparentShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[157] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10372,11 +10056,9 @@ type PlannedReparentShardResponse struct { func (x *PlannedReparentShardResponse) Reset() { *x = PlannedReparentShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[158] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[158] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PlannedReparentShardResponse) String() string { @@ -10387,7 +10069,7 @@ func (*PlannedReparentShardResponse) ProtoMessage() {} func (x *PlannedReparentShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[158] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10444,11 +10126,9 @@ type RebuildKeyspaceGraphRequest struct { func (x *RebuildKeyspaceGraphRequest) Reset() { *x = RebuildKeyspaceGraphRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[159] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[159] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildKeyspaceGraphRequest) String() string { @@ -10459,7 +10139,7 @@ func (*RebuildKeyspaceGraphRequest) ProtoMessage() {} func (x *RebuildKeyspaceGraphRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[159] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10503,11 +10183,9 @@ type RebuildKeyspaceGraphResponse struct { func (x *RebuildKeyspaceGraphResponse) Reset() { *x = RebuildKeyspaceGraphResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[160] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[160] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildKeyspaceGraphResponse) String() string { @@ -10518,7 +10196,7 @@ func (*RebuildKeyspaceGraphResponse) ProtoMessage() {} func (x *RebuildKeyspaceGraphResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[160] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10545,11 +10223,9 @@ type RebuildVSchemaGraphRequest struct { func (x *RebuildVSchemaGraphRequest) Reset() { *x = RebuildVSchemaGraphRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[161] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[161] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildVSchemaGraphRequest) String() string { @@ -10560,7 +10236,7 @@ func (*RebuildVSchemaGraphRequest) ProtoMessage() {} func (x *RebuildVSchemaGraphRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[161] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10590,11 +10266,9 @@ type RebuildVSchemaGraphResponse struct { func (x *RebuildVSchemaGraphResponse) Reset() { *x = RebuildVSchemaGraphResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[162] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RebuildVSchemaGraphResponse) String() string { @@ -10605,7 +10279,7 @@ func (*RebuildVSchemaGraphResponse) ProtoMessage() {} func (x *RebuildVSchemaGraphResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[162] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10630,11 +10304,9 @@ type RefreshStateRequest struct { func (x *RefreshStateRequest) Reset() { *x = RefreshStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[163] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateRequest) String() string { @@ -10645,7 +10317,7 @@ func (*RefreshStateRequest) ProtoMessage() {} func (x *RefreshStateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[163] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10675,11 +10347,9 @@ type RefreshStateResponse struct { func (x *RefreshStateResponse) Reset() { *x = RefreshStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[164] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateResponse) String() string { @@ -10690,7 +10360,7 @@ func (*RefreshStateResponse) ProtoMessage() {} func (x *RefreshStateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[164] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10717,11 +10387,9 @@ type RefreshStateByShardRequest struct { func (x *RefreshStateByShardRequest) Reset() { *x = RefreshStateByShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[165] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateByShardRequest) String() string { @@ -10732,7 +10400,7 @@ func (*RefreshStateByShardRequest) ProtoMessage() {} func (x *RefreshStateByShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[165] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10780,11 +10448,9 @@ type RefreshStateByShardResponse struct { func (x *RefreshStateByShardResponse) Reset() { *x = RefreshStateByShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[166] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RefreshStateByShardResponse) String() string { @@ -10795,7 +10461,7 @@ func (*RefreshStateByShardResponse) ProtoMessage() {} func (x *RefreshStateByShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[166] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10834,11 +10500,9 @@ type ReloadSchemaRequest struct { func (x *ReloadSchemaRequest) Reset() { *x = ReloadSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[167] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaRequest) String() string { @@ -10849,7 +10513,7 @@ func (*ReloadSchemaRequest) ProtoMessage() {} func (x *ReloadSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[167] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10879,11 +10543,9 @@ type ReloadSchemaResponse struct { func (x *ReloadSchemaResponse) Reset() { *x = ReloadSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[168] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaResponse) String() string { @@ -10894,7 +10556,7 @@ func (*ReloadSchemaResponse) ProtoMessage() {} func (x *ReloadSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[168] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10925,11 +10587,9 @@ type ReloadSchemaKeyspaceRequest struct { func (x *ReloadSchemaKeyspaceRequest) Reset() { *x = ReloadSchemaKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[169] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaKeyspaceRequest) String() string { @@ -10940,7 +10600,7 @@ func (*ReloadSchemaKeyspaceRequest) ProtoMessage() {} func (x *ReloadSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[169] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -10993,11 +10653,9 @@ type ReloadSchemaKeyspaceResponse struct { func (x *ReloadSchemaKeyspaceResponse) Reset() { *x = ReloadSchemaKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[170] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaKeyspaceResponse) String() string { @@ -11008,7 +10666,7 @@ func (*ReloadSchemaKeyspaceResponse) ProtoMessage() {} func (x *ReloadSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[170] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11045,11 +10703,9 @@ type ReloadSchemaShardRequest struct { func (x *ReloadSchemaShardRequest) Reset() { *x = ReloadSchemaShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[171] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaShardRequest) String() string { @@ -11060,7 +10716,7 @@ func (*ReloadSchemaShardRequest) ProtoMessage() {} func (x *ReloadSchemaShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[171] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11120,11 +10776,9 @@ type ReloadSchemaShardResponse struct { func (x *ReloadSchemaShardResponse) Reset() { *x = ReloadSchemaShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[172] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReloadSchemaShardResponse) String() string { @@ -11135,7 +10789,7 @@ func (*ReloadSchemaShardResponse) ProtoMessage() {} func (x *ReloadSchemaShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[172] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11169,11 +10823,9 @@ type RemoveBackupRequest struct { func (x *RemoveBackupRequest) Reset() { *x = RemoveBackupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[173] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveBackupRequest) String() string { @@ -11184,7 +10836,7 @@ func (*RemoveBackupRequest) ProtoMessage() {} func (x *RemoveBackupRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[173] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11228,11 +10880,9 @@ type RemoveBackupResponse struct { func (x *RemoveBackupResponse) Reset() { *x = RemoveBackupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[174] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[174] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveBackupResponse) String() string { @@ -11243,7 +10893,7 @@ func (*RemoveBackupResponse) ProtoMessage() {} func (x *RemoveBackupResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[174] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11276,11 +10926,9 @@ type RemoveKeyspaceCellRequest struct { func (x *RemoveKeyspaceCellRequest) Reset() { *x = RemoveKeyspaceCellRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[175] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[175] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveKeyspaceCellRequest) String() string { @@ -11291,7 +10939,7 @@ func (*RemoveKeyspaceCellRequest) ProtoMessage() {} func (x *RemoveKeyspaceCellRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[175] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11342,11 +10990,9 @@ type RemoveKeyspaceCellResponse struct { func (x *RemoveKeyspaceCellResponse) Reset() { *x = RemoveKeyspaceCellResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[176] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[176] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveKeyspaceCellResponse) String() string { @@ -11357,7 +11003,7 @@ func (*RemoveKeyspaceCellResponse) ProtoMessage() {} func (x *RemoveKeyspaceCellResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[176] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11391,11 +11037,9 @@ type RemoveShardCellRequest struct { func (x *RemoveShardCellRequest) Reset() { *x = RemoveShardCellRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[177] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[177] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveShardCellRequest) String() string { @@ -11406,7 +11050,7 @@ func (*RemoveShardCellRequest) ProtoMessage() {} func (x *RemoveShardCellRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[177] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11464,11 +11108,9 @@ type RemoveShardCellResponse struct { func (x *RemoveShardCellResponse) Reset() { *x = RemoveShardCellResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[178] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[178] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoveShardCellResponse) String() string { @@ -11479,7 +11121,7 @@ func (*RemoveShardCellResponse) ProtoMessage() {} func (x *RemoveShardCellResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[178] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11506,11 +11148,9 @@ type ReparentTabletRequest struct { func (x *ReparentTabletRequest) Reset() { *x = ReparentTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[179] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[179] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReparentTabletRequest) String() string { @@ -11521,7 +11161,7 @@ func (*ReparentTabletRequest) ProtoMessage() {} func (x *ReparentTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[179] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11558,11 +11198,9 @@ type ReparentTabletResponse struct { func (x *ReparentTabletResponse) Reset() { *x = ReparentTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[180] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[180] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReparentTabletResponse) String() string { @@ -11573,7 +11211,7 @@ func (*ReparentTabletResponse) ProtoMessage() {} func (x *ReparentTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[180] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11637,11 +11275,9 @@ type ReshardCreateRequest struct { func (x *ReshardCreateRequest) Reset() { *x = ReshardCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[181] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[181] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReshardCreateRequest) String() string { @@ -11652,7 +11288,7 @@ func (*ReshardCreateRequest) ProtoMessage() {} func (x *ReshardCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[181] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11782,11 +11418,9 @@ type RestoreFromBackupRequest struct { func (x *RestoreFromBackupRequest) Reset() { *x = RestoreFromBackupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[182] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[182] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RestoreFromBackupRequest) String() string { @@ -11797,7 +11431,7 @@ func (*RestoreFromBackupRequest) ProtoMessage() {} func (x *RestoreFromBackupRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[182] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11868,11 +11502,9 @@ type RestoreFromBackupResponse struct { func (x *RestoreFromBackupResponse) Reset() { *x = RestoreFromBackupResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[183] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[183] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RestoreFromBackupResponse) String() string { @@ -11883,7 +11515,7 @@ func (*RestoreFromBackupResponse) ProtoMessage() {} func (x *RestoreFromBackupResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[183] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11937,11 +11569,9 @@ type RetrySchemaMigrationRequest struct { func (x *RetrySchemaMigrationRequest) Reset() { *x = RetrySchemaMigrationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[184] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[184] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RetrySchemaMigrationRequest) String() string { @@ -11952,7 +11582,7 @@ func (*RetrySchemaMigrationRequest) ProtoMessage() {} func (x *RetrySchemaMigrationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[184] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -11991,11 +11621,9 @@ type RetrySchemaMigrationResponse struct { func (x *RetrySchemaMigrationResponse) Reset() { *x = RetrySchemaMigrationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[185] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[185] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RetrySchemaMigrationResponse) String() string { @@ -12006,7 +11634,7 @@ func (*RetrySchemaMigrationResponse) ProtoMessage() {} func (x *RetrySchemaMigrationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[185] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12038,11 +11666,9 @@ type RunHealthCheckRequest struct { func (x *RunHealthCheckRequest) Reset() { *x = RunHealthCheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[186] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[186] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckRequest) String() string { @@ -12053,7 +11679,7 @@ func (*RunHealthCheckRequest) ProtoMessage() {} func (x *RunHealthCheckRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[186] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12083,11 +11709,9 @@ type RunHealthCheckResponse struct { func (x *RunHealthCheckResponse) Reset() { *x = RunHealthCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[187] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[187] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RunHealthCheckResponse) String() string { @@ -12098,7 +11722,7 @@ func (*RunHealthCheckResponse) ProtoMessage() {} func (x *RunHealthCheckResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[187] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12124,11 +11748,9 @@ type SetKeyspaceDurabilityPolicyRequest struct { func (x *SetKeyspaceDurabilityPolicyRequest) Reset() { *x = SetKeyspaceDurabilityPolicyRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[188] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[188] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetKeyspaceDurabilityPolicyRequest) String() string { @@ -12139,7 +11761,7 @@ func (*SetKeyspaceDurabilityPolicyRequest) ProtoMessage() {} func (x *SetKeyspaceDurabilityPolicyRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[188] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12179,11 +11801,9 @@ type SetKeyspaceDurabilityPolicyResponse struct { func (x *SetKeyspaceDurabilityPolicyResponse) Reset() { *x = SetKeyspaceDurabilityPolicyResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[189] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[189] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetKeyspaceDurabilityPolicyResponse) String() string { @@ -12194,7 +11814,7 @@ func (*SetKeyspaceDurabilityPolicyResponse) ProtoMessage() {} func (x *SetKeyspaceDurabilityPolicyResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[189] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12227,11 +11847,9 @@ type SetKeyspaceShardingInfoRequest struct { func (x *SetKeyspaceShardingInfoRequest) Reset() { *x = SetKeyspaceShardingInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[190] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[190] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetKeyspaceShardingInfoRequest) String() string { @@ -12242,7 +11860,7 @@ func (*SetKeyspaceShardingInfoRequest) ProtoMessage() {} func (x *SetKeyspaceShardingInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[190] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12282,11 +11900,9 @@ type SetKeyspaceShardingInfoResponse struct { func (x *SetKeyspaceShardingInfoResponse) Reset() { *x = SetKeyspaceShardingInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[191] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[191] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetKeyspaceShardingInfoResponse) String() string { @@ -12297,7 +11913,7 @@ func (*SetKeyspaceShardingInfoResponse) ProtoMessage() {} func (x *SetKeyspaceShardingInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[191] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12331,11 +11947,9 @@ type SetShardIsPrimaryServingRequest struct { func (x *SetShardIsPrimaryServingRequest) Reset() { *x = SetShardIsPrimaryServingRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[192] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[192] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetShardIsPrimaryServingRequest) String() string { @@ -12346,7 +11960,7 @@ func (*SetShardIsPrimaryServingRequest) ProtoMessage() {} func (x *SetShardIsPrimaryServingRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[192] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12393,11 +12007,9 @@ type SetShardIsPrimaryServingResponse struct { func (x *SetShardIsPrimaryServingResponse) Reset() { *x = SetShardIsPrimaryServingResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[193] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[193] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetShardIsPrimaryServingResponse) String() string { @@ -12408,7 +12020,7 @@ func (*SetShardIsPrimaryServingResponse) ProtoMessage() {} func (x *SetShardIsPrimaryServingResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[193] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12460,11 +12072,9 @@ type SetShardTabletControlRequest struct { func (x *SetShardTabletControlRequest) Reset() { *x = SetShardTabletControlRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[194] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[194] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetShardTabletControlRequest) String() string { @@ -12475,7 +12085,7 @@ func (*SetShardTabletControlRequest) ProtoMessage() {} func (x *SetShardTabletControlRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[194] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12550,11 +12160,9 @@ type SetShardTabletControlResponse struct { func (x *SetShardTabletControlResponse) Reset() { *x = SetShardTabletControlResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[195] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[195] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetShardTabletControlResponse) String() string { @@ -12565,7 +12173,7 @@ func (*SetShardTabletControlResponse) ProtoMessage() {} func (x *SetShardTabletControlResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[195] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12598,11 +12206,9 @@ type SetWritableRequest struct { func (x *SetWritableRequest) Reset() { *x = SetWritableRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[196] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[196] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetWritableRequest) String() string { @@ -12613,7 +12219,7 @@ func (*SetWritableRequest) ProtoMessage() {} func (x *SetWritableRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[196] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12650,11 +12256,9 @@ type SetWritableResponse struct { func (x *SetWritableResponse) Reset() { *x = SetWritableResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[197] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[197] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SetWritableResponse) String() string { @@ -12665,7 +12269,7 @@ func (*SetWritableResponse) ProtoMessage() {} func (x *SetWritableResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[197] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12692,11 +12296,9 @@ type ShardReplicationAddRequest struct { func (x *ShardReplicationAddRequest) Reset() { *x = ShardReplicationAddRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[198] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[198] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationAddRequest) String() string { @@ -12707,7 +12309,7 @@ func (*ShardReplicationAddRequest) ProtoMessage() {} func (x *ShardReplicationAddRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[198] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12751,11 +12353,9 @@ type ShardReplicationAddResponse struct { func (x *ShardReplicationAddResponse) Reset() { *x = ShardReplicationAddResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[199] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[199] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationAddResponse) String() string { @@ -12766,7 +12366,7 @@ func (*ShardReplicationAddResponse) ProtoMessage() {} func (x *ShardReplicationAddResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[199] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12793,11 +12393,9 @@ type ShardReplicationFixRequest struct { func (x *ShardReplicationFixRequest) Reset() { *x = ShardReplicationFixRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[200] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[200] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationFixRequest) String() string { @@ -12808,7 +12406,7 @@ func (*ShardReplicationFixRequest) ProtoMessage() {} func (x *ShardReplicationFixRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[200] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12857,11 +12455,9 @@ type ShardReplicationFixResponse struct { func (x *ShardReplicationFixResponse) Reset() { *x = ShardReplicationFixResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[201] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[201] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationFixResponse) String() string { @@ -12872,7 +12468,7 @@ func (*ShardReplicationFixResponse) ProtoMessage() {} func (x *ShardReplicationFixResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[201] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12905,11 +12501,9 @@ type ShardReplicationPositionsRequest struct { func (x *ShardReplicationPositionsRequest) Reset() { *x = ShardReplicationPositionsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[202] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[202] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationPositionsRequest) String() string { @@ -12920,7 +12514,7 @@ func (*ShardReplicationPositionsRequest) ProtoMessage() {} func (x *ShardReplicationPositionsRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[202] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -12964,11 +12558,9 @@ type ShardReplicationPositionsResponse struct { func (x *ShardReplicationPositionsResponse) Reset() { *x = ShardReplicationPositionsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[203] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[203] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationPositionsResponse) String() string { @@ -12979,7 +12571,7 @@ func (*ShardReplicationPositionsResponse) ProtoMessage() {} func (x *ShardReplicationPositionsResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[203] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13020,11 +12612,9 @@ type ShardReplicationRemoveRequest struct { func (x *ShardReplicationRemoveRequest) Reset() { *x = ShardReplicationRemoveRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[204] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[204] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationRemoveRequest) String() string { @@ -13035,7 +12625,7 @@ func (*ShardReplicationRemoveRequest) ProtoMessage() {} func (x *ShardReplicationRemoveRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[204] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13079,11 +12669,9 @@ type ShardReplicationRemoveResponse struct { func (x *ShardReplicationRemoveResponse) Reset() { *x = ShardReplicationRemoveResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[205] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[205] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ShardReplicationRemoveResponse) String() string { @@ -13094,7 +12682,7 @@ func (*ShardReplicationRemoveResponse) ProtoMessage() {} func (x *ShardReplicationRemoveResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[205] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13120,11 +12708,9 @@ type SleepTabletRequest struct { func (x *SleepTabletRequest) Reset() { *x = SleepTabletRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[206] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[206] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SleepTabletRequest) String() string { @@ -13135,7 +12721,7 @@ func (*SleepTabletRequest) ProtoMessage() {} func (x *SleepTabletRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[206] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13172,11 +12758,9 @@ type SleepTabletResponse struct { func (x *SleepTabletResponse) Reset() { *x = SleepTabletResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[207] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[207] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SleepTabletResponse) String() string { @@ -13187,7 +12771,7 @@ func (*SleepTabletResponse) ProtoMessage() {} func (x *SleepTabletResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[207] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13222,11 +12806,9 @@ type SourceShardAddRequest struct { func (x *SourceShardAddRequest) Reset() { *x = SourceShardAddRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[208] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[208] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SourceShardAddRequest) String() string { @@ -13237,7 +12819,7 @@ func (*SourceShardAddRequest) ProtoMessage() {} func (x *SourceShardAddRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[208] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13312,11 +12894,9 @@ type SourceShardAddResponse struct { func (x *SourceShardAddResponse) Reset() { *x = SourceShardAddResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[209] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[209] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SourceShardAddResponse) String() string { @@ -13327,7 +12907,7 @@ func (*SourceShardAddResponse) ProtoMessage() {} func (x *SourceShardAddResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[209] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13361,11 +12941,9 @@ type SourceShardDeleteRequest struct { func (x *SourceShardDeleteRequest) Reset() { *x = SourceShardDeleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[210] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[210] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SourceShardDeleteRequest) String() string { @@ -13376,7 +12954,7 @@ func (*SourceShardDeleteRequest) ProtoMessage() {} func (x *SourceShardDeleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[210] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13423,11 +13001,9 @@ type SourceShardDeleteResponse struct { func (x *SourceShardDeleteResponse) Reset() { *x = SourceShardDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[211] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[211] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SourceShardDeleteResponse) String() string { @@ -13438,7 +13014,7 @@ func (*SourceShardDeleteResponse) ProtoMessage() {} func (x *SourceShardDeleteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[211] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13470,11 +13046,9 @@ type StartReplicationRequest struct { func (x *StartReplicationRequest) Reset() { *x = StartReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[212] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[212] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationRequest) String() string { @@ -13485,7 +13059,7 @@ func (*StartReplicationRequest) ProtoMessage() {} func (x *StartReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[212] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13515,11 +13089,9 @@ type StartReplicationResponse struct { func (x *StartReplicationResponse) Reset() { *x = StartReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[213] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[213] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StartReplicationResponse) String() string { @@ -13530,7 +13102,7 @@ func (*StartReplicationResponse) ProtoMessage() {} func (x *StartReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[213] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13555,11 +13127,9 @@ type StopReplicationRequest struct { func (x *StopReplicationRequest) Reset() { *x = StopReplicationRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[214] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[214] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationRequest) String() string { @@ -13570,7 +13140,7 @@ func (*StopReplicationRequest) ProtoMessage() {} func (x *StopReplicationRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[214] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13600,11 +13170,9 @@ type StopReplicationResponse struct { func (x *StopReplicationResponse) Reset() { *x = StopReplicationResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[215] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[215] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StopReplicationResponse) String() string { @@ -13615,7 +13183,7 @@ func (*StopReplicationResponse) ProtoMessage() {} func (x *StopReplicationResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[215] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13642,11 +13210,9 @@ type TabletExternallyReparentedRequest struct { func (x *TabletExternallyReparentedRequest) Reset() { *x = TabletExternallyReparentedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[216] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[216] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletExternallyReparentedRequest) String() string { @@ -13657,7 +13223,7 @@ func (*TabletExternallyReparentedRequest) ProtoMessage() {} func (x *TabletExternallyReparentedRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[216] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13692,11 +13258,9 @@ type TabletExternallyReparentedResponse struct { func (x *TabletExternallyReparentedResponse) Reset() { *x = TabletExternallyReparentedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[217] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[217] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TabletExternallyReparentedResponse) String() string { @@ -13707,7 +13271,7 @@ func (*TabletExternallyReparentedResponse) ProtoMessage() {} func (x *TabletExternallyReparentedResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[217] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13761,11 +13325,9 @@ type UpdateCellInfoRequest struct { func (x *UpdateCellInfoRequest) Reset() { *x = UpdateCellInfoRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[218] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[218] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateCellInfoRequest) String() string { @@ -13776,7 +13338,7 @@ func (*UpdateCellInfoRequest) ProtoMessage() {} func (x *UpdateCellInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[218] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13816,11 +13378,9 @@ type UpdateCellInfoResponse struct { func (x *UpdateCellInfoResponse) Reset() { *x = UpdateCellInfoResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[219] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[219] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateCellInfoResponse) String() string { @@ -13831,7 +13391,7 @@ func (*UpdateCellInfoResponse) ProtoMessage() {} func (x *UpdateCellInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[219] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13871,11 +13431,9 @@ type UpdateCellsAliasRequest struct { func (x *UpdateCellsAliasRequest) Reset() { *x = UpdateCellsAliasRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[220] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[220] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateCellsAliasRequest) String() string { @@ -13886,7 +13444,7 @@ func (*UpdateCellsAliasRequest) ProtoMessage() {} func (x *UpdateCellsAliasRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[220] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13926,11 +13484,9 @@ type UpdateCellsAliasResponse struct { func (x *UpdateCellsAliasResponse) Reset() { *x = UpdateCellsAliasResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[221] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[221] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpdateCellsAliasResponse) String() string { @@ -13941,7 +13497,7 @@ func (*UpdateCellsAliasResponse) ProtoMessage() {} func (x *UpdateCellsAliasResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[221] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -13980,11 +13536,9 @@ type ValidateRequest struct { func (x *ValidateRequest) Reset() { *x = ValidateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[222] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[222] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateRequest) String() string { @@ -13995,7 +13549,7 @@ func (*ValidateRequest) ProtoMessage() {} func (x *ValidateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[222] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14028,11 +13582,9 @@ type ValidateResponse struct { func (x *ValidateResponse) Reset() { *x = ValidateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[223] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[223] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateResponse) String() string { @@ -14043,7 +13595,7 @@ func (*ValidateResponse) ProtoMessage() {} func (x *ValidateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[223] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14083,11 +13635,9 @@ type ValidateKeyspaceRequest struct { func (x *ValidateKeyspaceRequest) Reset() { *x = ValidateKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[224] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[224] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateKeyspaceRequest) String() string { @@ -14098,7 +13648,7 @@ func (*ValidateKeyspaceRequest) ProtoMessage() {} func (x *ValidateKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[224] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14138,11 +13688,9 @@ type ValidateKeyspaceResponse struct { func (x *ValidateKeyspaceResponse) Reset() { *x = ValidateKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[225] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[225] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateKeyspaceResponse) String() string { @@ -14153,7 +13701,7 @@ func (*ValidateKeyspaceResponse) ProtoMessage() {} func (x *ValidateKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[225] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14196,11 +13744,9 @@ type ValidateSchemaKeyspaceRequest struct { func (x *ValidateSchemaKeyspaceRequest) Reset() { *x = ValidateSchemaKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[226] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[226] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateSchemaKeyspaceRequest) String() string { @@ -14211,7 +13757,7 @@ func (*ValidateSchemaKeyspaceRequest) ProtoMessage() {} func (x *ValidateSchemaKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[226] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14272,11 +13818,9 @@ type ValidateSchemaKeyspaceResponse struct { func (x *ValidateSchemaKeyspaceResponse) Reset() { *x = ValidateSchemaKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[227] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[227] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateSchemaKeyspaceResponse) String() string { @@ -14287,7 +13831,7 @@ func (*ValidateSchemaKeyspaceResponse) ProtoMessage() {} func (x *ValidateSchemaKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[227] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14328,11 +13872,9 @@ type ValidateShardRequest struct { func (x *ValidateShardRequest) Reset() { *x = ValidateShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[228] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[228] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateShardRequest) String() string { @@ -14343,7 +13885,7 @@ func (*ValidateShardRequest) ProtoMessage() {} func (x *ValidateShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[228] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14389,11 +13931,9 @@ type ValidateShardResponse struct { func (x *ValidateShardResponse) Reset() { *x = ValidateShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[229] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[229] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateShardResponse) String() string { @@ -14404,7 +13944,7 @@ func (*ValidateShardResponse) ProtoMessage() {} func (x *ValidateShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[229] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14436,11 +13976,9 @@ type ValidateVersionKeyspaceRequest struct { func (x *ValidateVersionKeyspaceRequest) Reset() { *x = ValidateVersionKeyspaceRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[230] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[230] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionKeyspaceRequest) String() string { @@ -14451,7 +13989,7 @@ func (*ValidateVersionKeyspaceRequest) ProtoMessage() {} func (x *ValidateVersionKeyspaceRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[230] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14484,11 +14022,9 @@ type ValidateVersionKeyspaceResponse struct { func (x *ValidateVersionKeyspaceResponse) Reset() { *x = ValidateVersionKeyspaceResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[231] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[231] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionKeyspaceResponse) String() string { @@ -14499,7 +14035,7 @@ func (*ValidateVersionKeyspaceResponse) ProtoMessage() {} func (x *ValidateVersionKeyspaceResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[231] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14539,11 +14075,9 @@ type ValidateVersionShardRequest struct { func (x *ValidateVersionShardRequest) Reset() { *x = ValidateVersionShardRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[232] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[232] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionShardRequest) String() string { @@ -14554,7 +14088,7 @@ func (*ValidateVersionShardRequest) ProtoMessage() {} func (x *ValidateVersionShardRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[232] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14593,11 +14127,9 @@ type ValidateVersionShardResponse struct { func (x *ValidateVersionShardResponse) Reset() { *x = ValidateVersionShardResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[233] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[233] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVersionShardResponse) String() string { @@ -14608,7 +14140,7 @@ func (*ValidateVersionShardResponse) ProtoMessage() {} func (x *ValidateVersionShardResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[233] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14643,11 +14175,9 @@ type ValidateVSchemaRequest struct { func (x *ValidateVSchemaRequest) Reset() { *x = ValidateVSchemaRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[234] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[234] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVSchemaRequest) String() string { @@ -14658,7 +14188,7 @@ func (*ValidateVSchemaRequest) ProtoMessage() {} func (x *ValidateVSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[234] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14712,11 +14242,9 @@ type ValidateVSchemaResponse struct { func (x *ValidateVSchemaResponse) Reset() { *x = ValidateVSchemaResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[235] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[235] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ValidateVSchemaResponse) String() string { @@ -14727,7 +14255,7 @@ func (*ValidateVSchemaResponse) ProtoMessage() {} func (x *ValidateVSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[235] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -14845,11 +14373,9 @@ type VDiffCreateRequest struct { func (x *VDiffCreateRequest) Reset() { *x = VDiffCreateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[236] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[236] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffCreateRequest) String() string { @@ -14860,7 +14386,7 @@ func (*VDiffCreateRequest) ProtoMessage() {} func (x *VDiffCreateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[236] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15041,11 +14567,9 @@ type VDiffCreateResponse struct { func (x *VDiffCreateResponse) Reset() { *x = VDiffCreateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[237] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[237] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffCreateResponse) String() string { @@ -15056,7 +14580,7 @@ func (*VDiffCreateResponse) ProtoMessage() {} func (x *VDiffCreateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[237] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15091,11 +14615,9 @@ type VDiffDeleteRequest struct { func (x *VDiffDeleteRequest) Reset() { *x = VDiffDeleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[238] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[238] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffDeleteRequest) String() string { @@ -15106,7 +14628,7 @@ func (*VDiffDeleteRequest) ProtoMessage() {} func (x *VDiffDeleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[238] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15150,11 +14672,9 @@ type VDiffDeleteResponse struct { func (x *VDiffDeleteResponse) Reset() { *x = VDiffDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[239] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[239] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffDeleteResponse) String() string { @@ -15165,7 +14685,7 @@ func (*VDiffDeleteResponse) ProtoMessage() {} func (x *VDiffDeleteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[239] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15193,11 +14713,9 @@ type VDiffResumeRequest struct { func (x *VDiffResumeRequest) Reset() { *x = VDiffResumeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[240] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[240] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffResumeRequest) String() string { @@ -15208,7 +14726,7 @@ func (*VDiffResumeRequest) ProtoMessage() {} func (x *VDiffResumeRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[240] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15259,11 +14777,9 @@ type VDiffResumeResponse struct { func (x *VDiffResumeResponse) Reset() { *x = VDiffResumeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[241] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[241] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffResumeResponse) String() string { @@ -15274,7 +14790,7 @@ func (*VDiffResumeResponse) ProtoMessage() {} func (x *VDiffResumeResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[241] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15302,11 +14818,9 @@ type VDiffShowRequest struct { func (x *VDiffShowRequest) Reset() { *x = VDiffShowRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[242] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[242] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffShowRequest) String() string { @@ -15317,7 +14831,7 @@ func (*VDiffShowRequest) ProtoMessage() {} func (x *VDiffShowRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[242] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15364,11 +14878,9 @@ type VDiffShowResponse struct { func (x *VDiffShowResponse) Reset() { *x = VDiffShowResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[243] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[243] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffShowResponse) String() string { @@ -15379,7 +14891,7 @@ func (*VDiffShowResponse) ProtoMessage() {} func (x *VDiffShowResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[243] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15414,11 +14926,9 @@ type VDiffStopRequest struct { func (x *VDiffStopRequest) Reset() { *x = VDiffStopRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[244] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[244] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffStopRequest) String() string { @@ -15429,7 +14939,7 @@ func (*VDiffStopRequest) ProtoMessage() {} func (x *VDiffStopRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[244] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15480,11 +14990,9 @@ type VDiffStopResponse struct { func (x *VDiffStopResponse) Reset() { *x = VDiffStopResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[245] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[245] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VDiffStopResponse) String() string { @@ -15495,7 +15003,7 @@ func (*VDiffStopResponse) ProtoMessage() {} func (x *VDiffStopResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[245] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15528,11 +15036,9 @@ type WorkflowDeleteRequest struct { func (x *WorkflowDeleteRequest) Reset() { *x = WorkflowDeleteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[246] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[246] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowDeleteRequest) String() string { @@ -15543,7 +15049,7 @@ func (*WorkflowDeleteRequest) ProtoMessage() {} func (x *WorkflowDeleteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[246] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15611,11 +15117,9 @@ type WorkflowDeleteResponse struct { func (x *WorkflowDeleteResponse) Reset() { *x = WorkflowDeleteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[247] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[247] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowDeleteResponse) String() string { @@ -15626,7 +15130,7 @@ func (*WorkflowDeleteResponse) ProtoMessage() {} func (x *WorkflowDeleteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[247] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15667,11 +15171,9 @@ type WorkflowStatusRequest struct { func (x *WorkflowStatusRequest) Reset() { *x = WorkflowStatusRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[248] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[248] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowStatusRequest) String() string { @@ -15682,7 +15184,7 @@ func (*WorkflowStatusRequest) ProtoMessage() {} func (x *WorkflowStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[248] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15731,11 +15233,9 @@ type WorkflowStatusResponse struct { func (x *WorkflowStatusResponse) Reset() { *x = WorkflowStatusResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[249] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[249] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowStatusResponse) String() string { @@ -15746,7 +15246,7 @@ func (*WorkflowStatusResponse) ProtoMessage() {} func (x *WorkflowStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[249] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15803,11 +15303,9 @@ type WorkflowSwitchTrafficRequest struct { func (x *WorkflowSwitchTrafficRequest) Reset() { *x = WorkflowSwitchTrafficRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[250] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[250] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowSwitchTrafficRequest) String() string { @@ -15818,7 +15316,7 @@ func (*WorkflowSwitchTrafficRequest) ProtoMessage() {} func (x *WorkflowSwitchTrafficRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[250] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -15930,11 +15428,9 @@ type WorkflowSwitchTrafficResponse struct { func (x *WorkflowSwitchTrafficResponse) Reset() { *x = WorkflowSwitchTrafficResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[251] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[251] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowSwitchTrafficResponse) String() string { @@ -15945,7 +15441,7 @@ func (*WorkflowSwitchTrafficResponse) ProtoMessage() {} func (x *WorkflowSwitchTrafficResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[251] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16001,11 +15497,9 @@ type WorkflowUpdateRequest struct { func (x *WorkflowUpdateRequest) Reset() { *x = WorkflowUpdateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[252] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[252] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowUpdateRequest) String() string { @@ -16016,7 +15510,7 @@ func (*WorkflowUpdateRequest) ProtoMessage() {} func (x *WorkflowUpdateRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[252] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16056,11 +15550,9 @@ type WorkflowUpdateResponse struct { func (x *WorkflowUpdateResponse) Reset() { *x = WorkflowUpdateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[253] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[253] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowUpdateResponse) String() string { @@ -16071,7 +15563,7 @@ func (*WorkflowUpdateResponse) ProtoMessage() {} func (x *WorkflowUpdateResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[253] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16108,11 +15600,9 @@ type GetMirrorRulesRequest struct { func (x *GetMirrorRulesRequest) Reset() { *x = GetMirrorRulesRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[254] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[254] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMirrorRulesRequest) String() string { @@ -16123,7 +15613,7 @@ func (*GetMirrorRulesRequest) ProtoMessage() {} func (x *GetMirrorRulesRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[254] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16148,11 +15638,9 @@ type GetMirrorRulesResponse struct { func (x *GetMirrorRulesResponse) Reset() { *x = GetMirrorRulesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[255] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[255] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetMirrorRulesResponse) String() string { @@ -16163,7 +15651,7 @@ func (*GetMirrorRulesResponse) ProtoMessage() {} func (x *GetMirrorRulesResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[255] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16198,11 +15686,9 @@ type WorkflowMirrorTrafficRequest struct { func (x *WorkflowMirrorTrafficRequest) Reset() { *x = WorkflowMirrorTrafficRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[256] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[256] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowMirrorTrafficRequest) String() string { @@ -16213,7 +15699,7 @@ func (*WorkflowMirrorTrafficRequest) ProtoMessage() {} func (x *WorkflowMirrorTrafficRequest) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[256] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16268,11 +15754,9 @@ type WorkflowMirrorTrafficResponse struct { func (x *WorkflowMirrorTrafficResponse) Reset() { *x = WorkflowMirrorTrafficResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[257] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[257] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowMirrorTrafficResponse) String() string { @@ -16283,7 +15767,7 @@ func (*WorkflowMirrorTrafficResponse) ProtoMessage() {} func (x *WorkflowMirrorTrafficResponse) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[257] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16330,11 +15814,9 @@ type Workflow_ReplicationLocation struct { func (x *Workflow_ReplicationLocation) Reset() { *x = Workflow_ReplicationLocation{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[260] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[260] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_ReplicationLocation) String() string { @@ -16345,7 +15827,7 @@ func (*Workflow_ReplicationLocation) ProtoMessage() {} func (x *Workflow_ReplicationLocation) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[260] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16386,11 +15868,9 @@ type Workflow_ShardStream struct { func (x *Workflow_ShardStream) Reset() { *x = Workflow_ShardStream{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[261] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[261] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_ShardStream) String() string { @@ -16401,7 +15881,7 @@ func (*Workflow_ShardStream) ProtoMessage() {} func (x *Workflow_ShardStream) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[261] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16474,11 +15954,9 @@ type Workflow_Stream struct { func (x *Workflow_Stream) Reset() { *x = Workflow_Stream{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[262] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[262] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_Stream) String() string { @@ -16489,7 +15967,7 @@ func (*Workflow_Stream) ProtoMessage() {} func (x *Workflow_Stream) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[262] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16656,11 +16134,9 @@ type Workflow_Stream_CopyState struct { func (x *Workflow_Stream_CopyState) Reset() { *x = Workflow_Stream_CopyState{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[263] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[263] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_Stream_CopyState) String() string { @@ -16671,7 +16147,7 @@ func (*Workflow_Stream_CopyState) ProtoMessage() {} func (x *Workflow_Stream_CopyState) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[263] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16724,11 +16200,9 @@ type Workflow_Stream_Log struct { func (x *Workflow_Stream_Log) Reset() { *x = Workflow_Stream_Log{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[264] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[264] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_Stream_Log) String() string { @@ -16739,7 +16213,7 @@ func (*Workflow_Stream_Log) ProtoMessage() {} func (x *Workflow_Stream_Log) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[264] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16821,11 +16295,9 @@ type Workflow_Stream_ThrottlerStatus struct { func (x *Workflow_Stream_ThrottlerStatus) Reset() { *x = Workflow_Stream_ThrottlerStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[265] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[265] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Workflow_Stream_ThrottlerStatus) String() string { @@ -16836,7 +16308,7 @@ func (*Workflow_Stream_ThrottlerStatus) ProtoMessage() {} func (x *Workflow_Stream_ThrottlerStatus) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[265] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16875,11 +16347,9 @@ type ApplyVSchemaResponse_ParamList struct { func (x *ApplyVSchemaResponse_ParamList) Reset() { *x = ApplyVSchemaResponse_ParamList{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[268] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[268] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ApplyVSchemaResponse_ParamList) String() string { @@ -16890,7 +16360,7 @@ func (*ApplyVSchemaResponse_ParamList) ProtoMessage() {} func (x *ApplyVSchemaResponse_ParamList) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[268] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16922,11 +16392,9 @@ type GetSrvKeyspaceNamesResponse_NameList struct { func (x *GetSrvKeyspaceNamesResponse_NameList) Reset() { *x = GetSrvKeyspaceNamesResponse_NameList{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[280] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[280] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetSrvKeyspaceNamesResponse_NameList) String() string { @@ -16937,7 +16405,7 @@ func (*GetSrvKeyspaceNamesResponse_NameList) ProtoMessage() {} func (x *GetSrvKeyspaceNamesResponse_NameList) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[280] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -16971,11 +16439,9 @@ type MoveTablesCreateResponse_TabletInfo struct { func (x *MoveTablesCreateResponse_TabletInfo) Reset() { *x = MoveTablesCreateResponse_TabletInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[284] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[284] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *MoveTablesCreateResponse_TabletInfo) String() string { @@ -16986,7 +16452,7 @@ func (*MoveTablesCreateResponse_TabletInfo) ProtoMessage() {} func (x *MoveTablesCreateResponse_TabletInfo) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[284] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -17027,11 +16493,9 @@ type WorkflowDeleteResponse_TabletInfo struct { func (x *WorkflowDeleteResponse_TabletInfo) Reset() { *x = WorkflowDeleteResponse_TabletInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[294] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[294] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowDeleteResponse_TabletInfo) String() string { @@ -17042,7 +16506,7 @@ func (*WorkflowDeleteResponse_TabletInfo) ProtoMessage() {} func (x *WorkflowDeleteResponse_TabletInfo) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[294] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -17086,11 +16550,9 @@ type WorkflowStatusResponse_TableCopyState struct { func (x *WorkflowStatusResponse_TableCopyState) Reset() { *x = WorkflowStatusResponse_TableCopyState{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[295] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[295] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowStatusResponse_TableCopyState) String() string { @@ -17101,7 +16563,7 @@ func (*WorkflowStatusResponse_TableCopyState) ProtoMessage() {} func (x *WorkflowStatusResponse_TableCopyState) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[295] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -17173,11 +16635,9 @@ type WorkflowStatusResponse_ShardStreamState struct { func (x *WorkflowStatusResponse_ShardStreamState) Reset() { *x = WorkflowStatusResponse_ShardStreamState{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[296] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[296] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowStatusResponse_ShardStreamState) String() string { @@ -17188,7 +16648,7 @@ func (*WorkflowStatusResponse_ShardStreamState) ProtoMessage() {} func (x *WorkflowStatusResponse_ShardStreamState) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[296] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -17255,11 +16715,9 @@ type WorkflowStatusResponse_ShardStreams struct { func (x *WorkflowStatusResponse_ShardStreams) Reset() { *x = WorkflowStatusResponse_ShardStreams{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[297] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[297] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowStatusResponse_ShardStreams) String() string { @@ -17270,7 +16728,7 @@ func (*WorkflowStatusResponse_ShardStreams) ProtoMessage() {} func (x *WorkflowStatusResponse_ShardStreams) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[297] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -17305,11 +16763,9 @@ type WorkflowUpdateResponse_TabletInfo struct { func (x *WorkflowUpdateResponse_TabletInfo) Reset() { *x = WorkflowUpdateResponse_TabletInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_vtctldata_proto_msgTypes[300] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtctldata_proto_msgTypes[300] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *WorkflowUpdateResponse_TabletInfo) String() string { @@ -17320,7 +16776,7 @@ func (*WorkflowUpdateResponse_TabletInfo) ProtoMessage() {} func (x *WorkflowUpdateResponse_TabletInfo) ProtoReflect() protoreflect.Message { mi := &file_vtctldata_proto_msgTypes[300] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -20547,3272 +20003,6 @@ func file_vtctldata_proto_init() { if File_vtctldata_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vtctldata_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteVtctlCommandRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteVtctlCommandResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*TableMaterializeSettings); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*MaterializeSettings); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*Keyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*SchemaMigration); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*Shard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowOptions); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*Workflow); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*AddCellInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*AddCellInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*AddCellsAliasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*AddCellsAliasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*ApplyKeyspaceRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*ApplyKeyspaceRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*ApplyRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*ApplyRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*ApplyShardRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*ApplyShardRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[19].Exporter = func(v any, i int) any { - switch v := v.(*ApplySchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[20].Exporter = func(v any, i int) any { - switch v := v.(*ApplySchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[21].Exporter = func(v any, i int) any { - switch v := v.(*ApplyVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[22].Exporter = func(v any, i int) any { - switch v := v.(*ApplyVSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[23].Exporter = func(v any, i int) any { - switch v := v.(*BackupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[24].Exporter = func(v any, i int) any { - switch v := v.(*BackupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[25].Exporter = func(v any, i int) any { - switch v := v.(*BackupShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[26].Exporter = func(v any, i int) any { - switch v := v.(*CancelSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[27].Exporter = func(v any, i int) any { - switch v := v.(*CancelSchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[28].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTabletTagsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[29].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTabletTagsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[30].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTabletTypeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[31].Exporter = func(v any, i int) any { - switch v := v.(*ChangeTabletTypeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[32].Exporter = func(v any, i int) any { - switch v := v.(*CheckThrottlerRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[33].Exporter = func(v any, i int) any { - switch v := v.(*CheckThrottlerResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[34].Exporter = func(v any, i int) any { - switch v := v.(*CleanupSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[35].Exporter = func(v any, i int) any { - switch v := v.(*CleanupSchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[36].Exporter = func(v any, i int) any { - switch v := v.(*CompleteSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[37].Exporter = func(v any, i int) any { - switch v := v.(*CompleteSchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[38].Exporter = func(v any, i int) any { - switch v := v.(*CreateKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[39].Exporter = func(v any, i int) any { - switch v := v.(*CreateKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[40].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[41].Exporter = func(v any, i int) any { - switch v := v.(*CreateShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*DeleteCellInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[43].Exporter = func(v any, i int) any { - switch v := v.(*DeleteCellInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*DeleteCellsAliasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[45].Exporter = func(v any, i int) any { - switch v := v.(*DeleteCellsAliasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[46].Exporter = func(v any, i int) any { - switch v := v.(*DeleteKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[47].Exporter = func(v any, i int) any { - switch v := v.(*DeleteKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[48].Exporter = func(v any, i int) any { - switch v := v.(*DeleteShardsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[49].Exporter = func(v any, i int) any { - switch v := v.(*DeleteShardsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[50].Exporter = func(v any, i int) any { - switch v := v.(*DeleteSrvVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[51].Exporter = func(v any, i int) any { - switch v := v.(*DeleteSrvVSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[52].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTabletsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[53].Exporter = func(v any, i int) any { - switch v := v.(*DeleteTabletsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[54].Exporter = func(v any, i int) any { - switch v := v.(*EmergencyReparentShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[55].Exporter = func(v any, i int) any { - switch v := v.(*EmergencyReparentShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[56].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAppRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[57].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsAppResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[58].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsDBARequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[59].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteFetchAsDBAResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[60].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteHookRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[61].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteHookResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[62].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteMultiFetchAsDBARequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[63].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteMultiFetchAsDBAResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[64].Exporter = func(v any, i int) any { - switch v := v.(*FindAllShardsInKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[65].Exporter = func(v any, i int) any { - switch v := v.(*FindAllShardsInKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[66].Exporter = func(v any, i int) any { - switch v := v.(*ForceCutOverSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[67].Exporter = func(v any, i int) any { - switch v := v.(*ForceCutOverSchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[68].Exporter = func(v any, i int) any { - switch v := v.(*GetBackupsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[69].Exporter = func(v any, i int) any { - switch v := v.(*GetBackupsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[70].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[71].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[72].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfoNamesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[73].Exporter = func(v any, i int) any { - switch v := v.(*GetCellInfoNamesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[74].Exporter = func(v any, i int) any { - switch v := v.(*GetCellsAliasesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[75].Exporter = func(v any, i int) any { - switch v := v.(*GetCellsAliasesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[76].Exporter = func(v any, i int) any { - switch v := v.(*GetFullStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[77].Exporter = func(v any, i int) any { - switch v := v.(*GetFullStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[78].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspacesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[79].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspacesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[80].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[81].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[82].Exporter = func(v any, i int) any { - switch v := v.(*GetPermissionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[83].Exporter = func(v any, i int) any { - switch v := v.(*GetPermissionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[84].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspaceRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[85].Exporter = func(v any, i int) any { - switch v := v.(*GetKeyspaceRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[86].Exporter = func(v any, i int) any { - switch v := v.(*GetRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[87].Exporter = func(v any, i int) any { - switch v := v.(*GetRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[88].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[89].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[90].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaMigrationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[91].Exporter = func(v any, i int) any { - switch v := v.(*GetSchemaMigrationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[92].Exporter = func(v any, i int) any { - switch v := v.(*GetShardReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[93].Exporter = func(v any, i int) any { - switch v := v.(*GetShardReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[94].Exporter = func(v any, i int) any { - switch v := v.(*GetShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[95].Exporter = func(v any, i int) any { - switch v := v.(*GetShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[96].Exporter = func(v any, i int) any { - switch v := v.(*GetShardRoutingRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[97].Exporter = func(v any, i int) any { - switch v := v.(*GetShardRoutingRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[98].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspaceNamesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[99].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspaceNamesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[100].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspacesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[101].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspacesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[102].Exporter = func(v any, i int) any { - switch v := v.(*UpdateThrottlerConfigRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[103].Exporter = func(v any, i int) any { - switch v := v.(*UpdateThrottlerConfigResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[104].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[105].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[106].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[107].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvVSchemasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[108].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[109].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[110].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[111].Exporter = func(v any, i int) any { - switch v := v.(*GetTabletsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[112].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[113].Exporter = func(v any, i int) any { - switch v := v.(*GetThrottlerStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[114].Exporter = func(v any, i int) any { - switch v := v.(*GetTopologyPathRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[115].Exporter = func(v any, i int) any { - switch v := v.(*GetTopologyPathResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[116].Exporter = func(v any, i int) any { - switch v := v.(*TopologyCell); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[117].Exporter = func(v any, i int) any { - switch v := v.(*GetUnresolvedTransactionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[118].Exporter = func(v any, i int) any { - switch v := v.(*GetUnresolvedTransactionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[119].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[120].Exporter = func(v any, i int) any { - switch v := v.(*ShardTransactionState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[121].Exporter = func(v any, i int) any { - switch v := v.(*GetTransactionInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[122].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[123].Exporter = func(v any, i int) any { - switch v := v.(*ConcludeTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*GetVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*GetVersionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*GetVersionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[127].Exporter = func(v any, i int) any { - switch v := v.(*GetVSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[128].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[129].Exporter = func(v any, i int) any { - switch v := v.(*GetWorkflowsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[130].Exporter = func(v any, i int) any { - switch v := v.(*InitShardPrimaryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[131].Exporter = func(v any, i int) any { - switch v := v.(*InitShardPrimaryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[132].Exporter = func(v any, i int) any { - switch v := v.(*LaunchSchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[133].Exporter = func(v any, i int) any { - switch v := v.(*LaunchSchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[134].Exporter = func(v any, i int) any { - switch v := v.(*LookupVindexCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[135].Exporter = func(v any, i int) any { - switch v := v.(*LookupVindexCreateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[136].Exporter = func(v any, i int) any { - switch v := v.(*LookupVindexExternalizeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[137].Exporter = func(v any, i int) any { - switch v := v.(*LookupVindexExternalizeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[138].Exporter = func(v any, i int) any { - switch v := v.(*MaterializeCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[139].Exporter = func(v any, i int) any { - switch v := v.(*MaterializeCreateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[140].Exporter = func(v any, i int) any { - switch v := v.(*MigrateCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[141].Exporter = func(v any, i int) any { - switch v := v.(*MigrateCompleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[142].Exporter = func(v any, i int) any { - switch v := v.(*MigrateCompleteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[143].Exporter = func(v any, i int) any { - switch v := v.(*MountRegisterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[144].Exporter = func(v any, i int) any { - switch v := v.(*MountRegisterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[145].Exporter = func(v any, i int) any { - switch v := v.(*MountUnregisterRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[146].Exporter = func(v any, i int) any { - switch v := v.(*MountUnregisterResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[147].Exporter = func(v any, i int) any { - switch v := v.(*MountShowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[148].Exporter = func(v any, i int) any { - switch v := v.(*MountShowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[149].Exporter = func(v any, i int) any { - switch v := v.(*MountListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[150].Exporter = func(v any, i int) any { - switch v := v.(*MountListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[151].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[152].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCreateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[153].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCompleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[154].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCompleteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[155].Exporter = func(v any, i int) any { - switch v := v.(*PingTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[156].Exporter = func(v any, i int) any { - switch v := v.(*PingTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[157].Exporter = func(v any, i int) any { - switch v := v.(*PlannedReparentShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[158].Exporter = func(v any, i int) any { - switch v := v.(*PlannedReparentShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[159].Exporter = func(v any, i int) any { - switch v := v.(*RebuildKeyspaceGraphRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[160].Exporter = func(v any, i int) any { - switch v := v.(*RebuildKeyspaceGraphResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[161].Exporter = func(v any, i int) any { - switch v := v.(*RebuildVSchemaGraphRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[162].Exporter = func(v any, i int) any { - switch v := v.(*RebuildVSchemaGraphResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[163].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[164].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[165].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateByShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[166].Exporter = func(v any, i int) any { - switch v := v.(*RefreshStateByShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[167].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[168].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[169].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[170].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[171].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[172].Exporter = func(v any, i int) any { - switch v := v.(*ReloadSchemaShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[173].Exporter = func(v any, i int) any { - switch v := v.(*RemoveBackupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[174].Exporter = func(v any, i int) any { - switch v := v.(*RemoveBackupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[175].Exporter = func(v any, i int) any { - switch v := v.(*RemoveKeyspaceCellRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[176].Exporter = func(v any, i int) any { - switch v := v.(*RemoveKeyspaceCellResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[177].Exporter = func(v any, i int) any { - switch v := v.(*RemoveShardCellRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[178].Exporter = func(v any, i int) any { - switch v := v.(*RemoveShardCellResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[179].Exporter = func(v any, i int) any { - switch v := v.(*ReparentTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[180].Exporter = func(v any, i int) any { - switch v := v.(*ReparentTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[181].Exporter = func(v any, i int) any { - switch v := v.(*ReshardCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[182].Exporter = func(v any, i int) any { - switch v := v.(*RestoreFromBackupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[183].Exporter = func(v any, i int) any { - switch v := v.(*RestoreFromBackupResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[184].Exporter = func(v any, i int) any { - switch v := v.(*RetrySchemaMigrationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[185].Exporter = func(v any, i int) any { - switch v := v.(*RetrySchemaMigrationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[186].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[187].Exporter = func(v any, i int) any { - switch v := v.(*RunHealthCheckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[188].Exporter = func(v any, i int) any { - switch v := v.(*SetKeyspaceDurabilityPolicyRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[189].Exporter = func(v any, i int) any { - switch v := v.(*SetKeyspaceDurabilityPolicyResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[190].Exporter = func(v any, i int) any { - switch v := v.(*SetKeyspaceShardingInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[191].Exporter = func(v any, i int) any { - switch v := v.(*SetKeyspaceShardingInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[192].Exporter = func(v any, i int) any { - switch v := v.(*SetShardIsPrimaryServingRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[193].Exporter = func(v any, i int) any { - switch v := v.(*SetShardIsPrimaryServingResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[194].Exporter = func(v any, i int) any { - switch v := v.(*SetShardTabletControlRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[195].Exporter = func(v any, i int) any { - switch v := v.(*SetShardTabletControlResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[196].Exporter = func(v any, i int) any { - switch v := v.(*SetWritableRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[197].Exporter = func(v any, i int) any { - switch v := v.(*SetWritableResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[198].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationAddRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[199].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationAddResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[200].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationFixRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[201].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationFixResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[202].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationPositionsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[203].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationPositionsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[204].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationRemoveRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[205].Exporter = func(v any, i int) any { - switch v := v.(*ShardReplicationRemoveResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[206].Exporter = func(v any, i int) any { - switch v := v.(*SleepTabletRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[207].Exporter = func(v any, i int) any { - switch v := v.(*SleepTabletResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[208].Exporter = func(v any, i int) any { - switch v := v.(*SourceShardAddRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[209].Exporter = func(v any, i int) any { - switch v := v.(*SourceShardAddResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[210].Exporter = func(v any, i int) any { - switch v := v.(*SourceShardDeleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[211].Exporter = func(v any, i int) any { - switch v := v.(*SourceShardDeleteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[212].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[213].Exporter = func(v any, i int) any { - switch v := v.(*StartReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[214].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[215].Exporter = func(v any, i int) any { - switch v := v.(*StopReplicationResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[216].Exporter = func(v any, i int) any { - switch v := v.(*TabletExternallyReparentedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[217].Exporter = func(v any, i int) any { - switch v := v.(*TabletExternallyReparentedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[218].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCellInfoRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[219].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCellInfoResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[220].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCellsAliasRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[221].Exporter = func(v any, i int) any { - switch v := v.(*UpdateCellsAliasResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[222].Exporter = func(v any, i int) any { - switch v := v.(*ValidateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[223].Exporter = func(v any, i int) any { - switch v := v.(*ValidateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[224].Exporter = func(v any, i int) any { - switch v := v.(*ValidateKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[225].Exporter = func(v any, i int) any { - switch v := v.(*ValidateKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[226].Exporter = func(v any, i int) any { - switch v := v.(*ValidateSchemaKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[227].Exporter = func(v any, i int) any { - switch v := v.(*ValidateSchemaKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[228].Exporter = func(v any, i int) any { - switch v := v.(*ValidateShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[229].Exporter = func(v any, i int) any { - switch v := v.(*ValidateShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[230].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionKeyspaceRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[231].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionKeyspaceResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[232].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionShardRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[233].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVersionShardResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[234].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVSchemaRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[235].Exporter = func(v any, i int) any { - switch v := v.(*ValidateVSchemaResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[236].Exporter = func(v any, i int) any { - switch v := v.(*VDiffCreateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[237].Exporter = func(v any, i int) any { - switch v := v.(*VDiffCreateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[238].Exporter = func(v any, i int) any { - switch v := v.(*VDiffDeleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[239].Exporter = func(v any, i int) any { - switch v := v.(*VDiffDeleteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[240].Exporter = func(v any, i int) any { - switch v := v.(*VDiffResumeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[241].Exporter = func(v any, i int) any { - switch v := v.(*VDiffResumeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[242].Exporter = func(v any, i int) any { - switch v := v.(*VDiffShowRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[243].Exporter = func(v any, i int) any { - switch v := v.(*VDiffShowResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[244].Exporter = func(v any, i int) any { - switch v := v.(*VDiffStopRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[245].Exporter = func(v any, i int) any { - switch v := v.(*VDiffStopResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[246].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowDeleteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[247].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowDeleteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[248].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowStatusRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[249].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowStatusResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[250].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowSwitchTrafficRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[251].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowSwitchTrafficResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[252].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowUpdateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[253].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowUpdateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[254].Exporter = func(v any, i int) any { - switch v := v.(*GetMirrorRulesRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[255].Exporter = func(v any, i int) any { - switch v := v.(*GetMirrorRulesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[256].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowMirrorTrafficRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[257].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowMirrorTrafficResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[260].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_ReplicationLocation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[261].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_ShardStream); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[262].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_Stream); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[263].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_Stream_CopyState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[264].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_Stream_Log); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[265].Exporter = func(v any, i int) any { - switch v := v.(*Workflow_Stream_ThrottlerStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[268].Exporter = func(v any, i int) any { - switch v := v.(*ApplyVSchemaResponse_ParamList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[280].Exporter = func(v any, i int) any { - switch v := v.(*GetSrvKeyspaceNamesResponse_NameList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[284].Exporter = func(v any, i int) any { - switch v := v.(*MoveTablesCreateResponse_TabletInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[294].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowDeleteResponse_TabletInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[295].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowStatusResponse_TableCopyState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[296].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowStatusResponse_ShardStreamState); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[297].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowStatusResponse_ShardStreams); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtctldata_proto_msgTypes[300].Exporter = func(v any, i int) any { - switch v := v.(*WorkflowUpdateResponse_TabletInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } file_vtctldata_proto_msgTypes[23].OneofWrappers = []any{} file_vtctldata_proto_msgTypes[236].OneofWrappers = []any{} type x struct{} diff --git a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go index 455819ba614..947b5ce9f43 100644 --- a/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go +++ b/go/vt/proto/vtctldata/vtctldata_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vtctldata.proto package vtctldata diff --git a/go/vt/proto/vtctlservice/vtctlservice.pb.go b/go/vt/proto/vtctlservice/vtctlservice.pb.go index cafdee2c15f..9ffe2fa9aae 100644 --- a/go/vt/proto/vtctlservice/vtctlservice.pb.go +++ b/go/vt/proto/vtctlservice/vtctlservice.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtctlservice.proto diff --git a/go/vt/proto/vtgate/vtgate.pb.go b/go/vt/proto/vtgate/vtgate.pb.go index 58392f86bb3..f2b2bc47736 100644 --- a/go/vt/proto/vtgate/vtgate.pb.go +++ b/go/vt/proto/vtgate/vtgate.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtgate.proto @@ -231,11 +231,9 @@ type Session struct { func (x *Session) Reset() { *x = Session{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Session) String() string { @@ -246,7 +244,7 @@ func (*Session) ProtoMessage() {} func (x *Session) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -455,11 +453,9 @@ type PrepareData struct { func (x *PrepareData) Reset() { *x = PrepareData{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrepareData) String() string { @@ -470,7 +466,7 @@ func (*PrepareData) ProtoMessage() {} func (x *PrepareData) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -513,11 +509,9 @@ type ReadAfterWrite struct { func (x *ReadAfterWrite) Reset() { *x = ReadAfterWrite{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReadAfterWrite) String() string { @@ -528,7 +522,7 @@ func (*ReadAfterWrite) ProtoMessage() {} func (x *ReadAfterWrite) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -581,11 +575,9 @@ type ExecuteRequest struct { func (x *ExecuteRequest) Reset() { *x = ExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteRequest) String() string { @@ -596,7 +588,7 @@ func (*ExecuteRequest) ProtoMessage() {} func (x *ExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -650,11 +642,9 @@ type ExecuteResponse struct { func (x *ExecuteResponse) Reset() { *x = ExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteResponse) String() string { @@ -665,7 +655,7 @@ func (*ExecuteResponse) ProtoMessage() {} func (x *ExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -718,11 +708,9 @@ type ExecuteBatchRequest struct { func (x *ExecuteBatchRequest) Reset() { *x = ExecuteBatchRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteBatchRequest) String() string { @@ -733,7 +721,7 @@ func (*ExecuteBatchRequest) ProtoMessage() {} func (x *ExecuteBatchRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -787,11 +775,9 @@ type ExecuteBatchResponse struct { func (x *ExecuteBatchResponse) Reset() { *x = ExecuteBatchResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExecuteBatchResponse) String() string { @@ -802,7 +788,7 @@ func (*ExecuteBatchResponse) ProtoMessage() {} func (x *ExecuteBatchResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -855,11 +841,9 @@ type StreamExecuteRequest struct { func (x *StreamExecuteRequest) Reset() { *x = StreamExecuteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamExecuteRequest) String() string { @@ -870,7 +854,7 @@ func (*StreamExecuteRequest) ProtoMessage() {} func (x *StreamExecuteRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -924,11 +908,9 @@ type StreamExecuteResponse struct { func (x *StreamExecuteResponse) Reset() { *x = StreamExecuteResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *StreamExecuteResponse) String() string { @@ -939,7 +921,7 @@ func (*StreamExecuteResponse) ProtoMessage() {} func (x *StreamExecuteResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -983,11 +965,9 @@ type ResolveTransactionRequest struct { func (x *ResolveTransactionRequest) Reset() { *x = ResolveTransactionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTransactionRequest) String() string { @@ -998,7 +978,7 @@ func (*ResolveTransactionRequest) ProtoMessage() {} func (x *ResolveTransactionRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1036,11 +1016,9 @@ type ResolveTransactionResponse struct { func (x *ResolveTransactionResponse) Reset() { *x = ResolveTransactionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResolveTransactionResponse) String() string { @@ -1051,7 +1029,7 @@ func (*ResolveTransactionResponse) ProtoMessage() {} func (x *ResolveTransactionResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1090,11 +1068,9 @@ type VStreamFlags struct { func (x *VStreamFlags) Reset() { *x = VStreamFlags{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamFlags) String() string { @@ -1105,7 +1081,7 @@ func (*VStreamFlags) ProtoMessage() {} func (x *VStreamFlags) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1194,11 +1170,9 @@ type VStreamRequest struct { func (x *VStreamRequest) Reset() { *x = VStreamRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamRequest) String() string { @@ -1209,7 +1183,7 @@ func (*VStreamRequest) ProtoMessage() {} func (x *VStreamRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1270,11 +1244,9 @@ type VStreamResponse struct { func (x *VStreamResponse) Reset() { *x = VStreamResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VStreamResponse) String() string { @@ -1285,7 +1257,7 @@ func (*VStreamResponse) ProtoMessage() {} func (x *VStreamResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1324,11 +1296,9 @@ type PrepareRequest struct { func (x *PrepareRequest) Reset() { *x = PrepareRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrepareRequest) String() string { @@ -1339,7 +1309,7 @@ func (*PrepareRequest) ProtoMessage() {} func (x *PrepareRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1393,11 +1363,9 @@ type PrepareResponse struct { func (x *PrepareResponse) Reset() { *x = PrepareResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PrepareResponse) String() string { @@ -1408,7 +1376,7 @@ func (*PrepareResponse) ProtoMessage() {} func (x *PrepareResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1459,11 +1427,9 @@ type CloseSessionRequest struct { func (x *CloseSessionRequest) Reset() { *x = CloseSessionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CloseSessionRequest) String() string { @@ -1474,7 +1440,7 @@ func (*CloseSessionRequest) ProtoMessage() {} func (x *CloseSessionRequest) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1517,11 +1483,9 @@ type CloseSessionResponse struct { func (x *CloseSessionResponse) Reset() { *x = CloseSessionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CloseSessionResponse) String() string { @@ -1532,7 +1496,7 @@ func (*CloseSessionResponse) ProtoMessage() {} func (x *CloseSessionResponse) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1569,11 +1533,9 @@ type Session_ShardSession struct { func (x *Session_ShardSession) Reset() { *x = Session_ShardSession{} - if protoimpl.UnsafeEnabled { - mi := &file_vtgate_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtgate_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Session_ShardSession) String() string { @@ -1584,7 +1546,7 @@ func (*Session_ShardSession) ProtoMessage() {} func (x *Session_ShardSession) ProtoReflect() protoreflect.Message { mi := &file_vtgate_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2050,236 +2012,6 @@ func file_vtgate_proto_init() { if File_vtgate_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vtgate_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Session); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*PrepareData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*ReadAfterWrite); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[3].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[4].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[5].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteBatchRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[6].Exporter = func(v any, i int) any { - switch v := v.(*ExecuteBatchResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[7].Exporter = func(v any, i int) any { - switch v := v.(*StreamExecuteRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[8].Exporter = func(v any, i int) any { - switch v := v.(*StreamExecuteResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[9].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTransactionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[10].Exporter = func(v any, i int) any { - switch v := v.(*ResolveTransactionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[11].Exporter = func(v any, i int) any { - switch v := v.(*VStreamFlags); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[12].Exporter = func(v any, i int) any { - switch v := v.(*VStreamRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[13].Exporter = func(v any, i int) any { - switch v := v.(*VStreamResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[14].Exporter = func(v any, i int) any { - switch v := v.(*PrepareRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[15].Exporter = func(v any, i int) any { - switch v := v.(*PrepareResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[16].Exporter = func(v any, i int) any { - switch v := v.(*CloseSessionRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[17].Exporter = func(v any, i int) any { - switch v := v.(*CloseSessionResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtgate_proto_msgTypes[18].Exporter = func(v any, i int) any { - switch v := v.(*Session_ShardSession); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/vtgate/vtgate_vtproto.pb.go b/go/vt/proto/vtgate/vtgate_vtproto.pb.go index d32eee0428a..5d9393b881c 100644 --- a/go/vt/proto/vtgate/vtgate_vtproto.pb.go +++ b/go/vt/proto/vtgate/vtgate_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vtgate.proto package vtgate diff --git a/go/vt/proto/vtgateservice/vtgateservice.pb.go b/go/vt/proto/vtgateservice/vtgateservice.pb.go index 165e3c0bbef..3abab1e7dbf 100644 --- a/go/vt/proto/vtgateservice/vtgateservice.pb.go +++ b/go/vt/proto/vtgateservice/vtgateservice.pb.go @@ -18,7 +18,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtgateservice.proto diff --git a/go/vt/proto/vtrpc/vtrpc.pb.go b/go/vt/proto/vtrpc/vtrpc.pb.go index 802e78ab5d3..6f6a204277c 100644 --- a/go/vt/proto/vtrpc/vtrpc.pb.go +++ b/go/vt/proto/vtrpc/vtrpc.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vtrpc.proto @@ -258,11 +258,9 @@ type CallerID struct { func (x *CallerID) Reset() { *x = CallerID{} - if protoimpl.UnsafeEnabled { - mi := &file_vtrpc_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtrpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CallerID) String() string { @@ -273,7 +271,7 @@ func (*CallerID) ProtoMessage() {} func (x *CallerID) ProtoReflect() protoreflect.Message { mi := &file_vtrpc_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -331,11 +329,9 @@ type RPCError struct { func (x *RPCError) Reset() { *x = RPCError{} - if protoimpl.UnsafeEnabled { - mi := &file_vtrpc_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vtrpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RPCError) String() string { @@ -346,7 +342,7 @@ func (*RPCError) ProtoMessage() {} func (x *RPCError) ProtoReflect() protoreflect.Message { mi := &file_vtrpc_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -454,32 +450,6 @@ func file_vtrpc_proto_init() { if File_vtrpc_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vtrpc_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*CallerID); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vtrpc_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*RPCError); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go b/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go index b518e3bd372..23bc792e9ad 100644 --- a/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go +++ b/go/vt/proto/vtrpc/vtrpc_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vtrpc.proto package vtrpc diff --git a/go/vt/proto/vttest/vttest.pb.go b/go/vt/proto/vttest/vttest.pb.go index 8dca7c6f112..ee78cc5231a 100644 --- a/go/vt/proto/vttest/vttest.pb.go +++ b/go/vt/proto/vttest/vttest.pb.go @@ -41,7 +41,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vttest.proto @@ -80,11 +80,9 @@ type Shard struct { func (x *Shard) Reset() { *x = Shard{} - if protoimpl.UnsafeEnabled { - mi := &file_vttest_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vttest_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Shard) String() string { @@ -95,7 +93,7 @@ func (*Shard) ProtoMessage() {} func (x *Shard) ProtoReflect() protoreflect.Message { mi := &file_vttest_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -142,11 +140,9 @@ type Keyspace struct { func (x *Keyspace) Reset() { *x = Keyspace{} - if protoimpl.UnsafeEnabled { - mi := &file_vttest_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vttest_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Keyspace) String() string { @@ -157,7 +153,7 @@ func (*Keyspace) ProtoMessage() {} func (x *Keyspace) ProtoReflect() protoreflect.Message { mi := &file_vttest_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -218,11 +214,9 @@ type VTTestTopology struct { func (x *VTTestTopology) Reset() { *x = VTTestTopology{} - if protoimpl.UnsafeEnabled { - mi := &file_vttest_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vttest_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *VTTestTopology) String() string { @@ -233,7 +227,7 @@ func (*VTTestTopology) ProtoMessage() {} func (x *VTTestTopology) ProtoReflect() protoreflect.Message { mi := &file_vttest_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -351,44 +345,6 @@ func file_vttest_proto_init() { if File_vttest_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vttest_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Shard); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vttest_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*Keyspace); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vttest_proto_msgTypes[2].Exporter = func(v any, i int) any { - switch v := v.(*VTTestTopology); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/vttest/vttest_vtproto.pb.go b/go/vt/proto/vttest/vttest_vtproto.pb.go index 84d4b706a7e..b6a887ad41f 100644 --- a/go/vt/proto/vttest/vttest_vtproto.pb.go +++ b/go/vt/proto/vttest/vttest_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vttest.proto package vttest diff --git a/go/vt/proto/vttime/vttime.pb.go b/go/vt/proto/vttime/vttime.pb.go index af624e5e251..957ca7f0969 100644 --- a/go/vt/proto/vttime/vttime.pb.go +++ b/go/vt/proto/vttime/vttime.pb.go @@ -17,7 +17,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 +// protoc-gen-go v1.35.1 // protoc v3.21.3 // source: vttime.proto @@ -50,11 +50,9 @@ type Time struct { func (x *Time) Reset() { *x = Time{} - if protoimpl.UnsafeEnabled { - mi := &file_vttime_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vttime_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Time) String() string { @@ -65,7 +63,7 @@ func (*Time) ProtoMessage() {} func (x *Time) ProtoReflect() protoreflect.Message { mi := &file_vttime_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -105,11 +103,9 @@ type Duration struct { func (x *Duration) Reset() { *x = Duration{} - if protoimpl.UnsafeEnabled { - mi := &file_vttime_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_vttime_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Duration) String() string { @@ -120,7 +116,7 @@ func (*Duration) ProtoMessage() {} func (x *Duration) ProtoReflect() protoreflect.Message { mi := &file_vttime_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -197,32 +193,6 @@ func file_vttime_proto_init() { if File_vttime_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_vttime_proto_msgTypes[0].Exporter = func(v any, i int) any { - switch v := v.(*Time); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vttime_proto_msgTypes[1].Exporter = func(v any, i int) any { - switch v := v.(*Duration); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/go/vt/proto/vttime/vttime_vtproto.pb.go b/go/vt/proto/vttime/vttime_vtproto.pb.go index 16687011e63..08e712e7139 100644 --- a/go/vt/proto/vttime/vttime_vtproto.pb.go +++ b/go/vt/proto/vttime/vttime_vtproto.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-go-vtproto. DO NOT EDIT. -// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10 +// protoc-gen-go-vtproto version: v0.6.1-0.20241011083415-71c992bc3c87 // source: vttime.proto package vttime From 9fdfdb962a6f38b61dc171d0121371ae7be075a0 Mon Sep 17 00:00:00 2001 From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com> Date: Fri, 15 Nov 2024 10:07:58 +0530 Subject: [PATCH 03/22] Fix deadlock in messager and health streamer (#17230) Signed-off-by: Manan Gupta --- .../vttablet/tabletserver/health_streamer.go | 60 +++++++++++-------- .../tabletserver/health_streamer_test.go | 40 +++++++++++++ .../vttablet/tabletserver/messager/engine.go | 30 ++++++---- .../tabletserver/messager/engine_test.go | 33 +++++++++- go/vt/vttablet/tabletserver/schema/engine.go | 8 +++ 5 files changed, 134 insertions(+), 37 deletions(-) diff --git a/go/vt/vttablet/tabletserver/health_streamer.go b/go/vt/vttablet/tabletserver/health_streamer.go index cfc5ea5e974..f9f65d197b2 100644 --- a/go/vt/vttablet/tabletserver/health_streamer.go +++ b/go/vt/vttablet/tabletserver/health_streamer.go @@ -66,11 +66,18 @@ type healthStreamer struct { degradedThreshold time.Duration unhealthyThreshold atomic.Int64 - mu sync.Mutex - ctx context.Context - cancel context.CancelFunc - clients map[chan *querypb.StreamHealthResponse]struct{} - state *querypb.StreamHealthResponse + // cancelMu is a mutex used to protect the cancel variable + // and for ensuring we don't call setup functions in parallel. + cancelMu sync.Mutex + ctx context.Context + cancel context.CancelFunc + + // fieldsMu is used to protect access to the fields below. + // We require two separate mutexes, so that we don't have to acquire the same mutex + // in Close and reload that can lead to a deadlock described in https://github.com/vitessio/vitess/issues/17229#issuecomment-2476136610. + fieldsMu sync.Mutex + clients map[chan *querypb.StreamHealthResponse]struct{} + state *querypb.StreamHealthResponse // isServingPrimary stores if this tablet is currently the serving primary or not. isServingPrimary bool @@ -110,8 +117,8 @@ func (hs *healthStreamer) InitDBConfig(target *querypb.Target) { } func (hs *healthStreamer) Open() { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.cancelMu.Lock() + defer hs.cancelMu.Unlock() if hs.cancel != nil { return @@ -120,8 +127,8 @@ func (hs *healthStreamer) Open() { } func (hs *healthStreamer) Close() { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.cancelMu.Lock() + defer hs.cancelMu.Unlock() if hs.cancel != nil { hs.se.UnregisterNotifier("healthStreamer") @@ -158,13 +165,16 @@ func (hs *healthStreamer) Stream(ctx context.Context, callback func(*querypb.Str } func (hs *healthStreamer) register() (chan *querypb.StreamHealthResponse, context.Context) { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.cancelMu.Lock() + defer hs.cancelMu.Unlock() if hs.cancel == nil { return nil, nil } + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() + ch := make(chan *querypb.StreamHealthResponse, streamHealthBufferSize) hs.clients[ch] = struct{}{} @@ -174,15 +184,15 @@ func (hs *healthStreamer) register() (chan *querypb.StreamHealthResponse, contex } func (hs *healthStreamer) unregister(ch chan *querypb.StreamHealthResponse) { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() delete(hs.clients, ch) } func (hs *healthStreamer) ChangeState(tabletType topodatapb.TabletType, ptsTimestamp time.Time, lag time.Duration, err error, serving bool) { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() hs.state.Target.TabletType = tabletType if tabletType == topodatapb.TabletType_PRIMARY { @@ -236,8 +246,8 @@ func (hs *healthStreamer) broadCastToClients(shr *querypb.StreamHealthResponse) } func (hs *healthStreamer) AppendDetails(details []*kv) []*kv { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() if hs.state.Target.TabletType == topodatapb.TabletType_PRIMARY { return details } @@ -282,8 +292,8 @@ func (hs *healthStreamer) SetUnhealthyThreshold(v time.Duration) { // MakePrimary tells the healthstreamer that the current tablet is now the primary, // so it can read and write to the MySQL instance for schema-tracking. func (hs *healthStreamer) MakePrimary(serving bool) { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() hs.isServingPrimary = serving // We register for notifications from the schema Engine only when schema tracking is enabled, // and we are going to a serving primary state. @@ -298,15 +308,15 @@ func (hs *healthStreamer) MakePrimary(serving bool) { // MakeNonPrimary tells the healthstreamer that the current tablet is now not a primary. func (hs *healthStreamer) MakeNonPrimary() { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() hs.isServingPrimary = false } // reload reloads the schema from the underlying mysql for the tables that we get the alert on. func (hs *healthStreamer) reload(created, altered, dropped []*schema.Table, udfsChanged bool) error { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() // Schema Reload to happen only on primary when it is serving. // We can be in a state when the primary is not serving after we have run DemotePrimary. In that case, // we don't want to run any queries in MySQL, so we shouldn't reload anything in the healthStreamer. @@ -349,8 +359,8 @@ func (hs *healthStreamer) reload(created, altered, dropped []*schema.Table, udfs // sendUnresolvedTransactionSignal sends broadcast message about unresolved transactions. func (hs *healthStreamer) sendUnresolvedTransactionSignal() { - hs.mu.Lock() - defer hs.mu.Unlock() + hs.fieldsMu.Lock() + defer hs.fieldsMu.Unlock() // send signal only when primary is serving. if !hs.isServingPrimary { return diff --git a/go/vt/vttablet/tabletserver/health_streamer_test.go b/go/vt/vttablet/tabletserver/health_streamer_test.go index 5cf434e8fa2..3421141ff80 100644 --- a/go/vt/vttablet/tabletserver/health_streamer_test.go +++ b/go/vt/vttablet/tabletserver/health_streamer_test.go @@ -572,3 +572,43 @@ func testStream(hs *healthStreamer) (<-chan *querypb.StreamHealthResponse, conte func testBlpFunc() (int64, int32) { return 1, 2 } + +// TestDeadlockBwCloseAndReload tests the deadlock observed between Close and Reload +// functions. More details can be found in the issue https://github.com/vitessio/vitess/issues/17229#issuecomment-2476136610. +func TestDeadlockBwCloseAndReload(t *testing.T) { + cfg := newConfig(nil) + env := tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "TestNotServingPrimary") + alias := &topodatapb.TabletAlias{ + Cell: "cell", + Uid: 1, + } + se := schema.NewEngineForTests() + // Create a new health streamer and set it to a serving primary state + hs := newHealthStreamer(env, alias, se) + hs.signalWhenSchemaChange = true + hs.Open() + hs.MakePrimary(true) + defer hs.Close() + + wg := sync.WaitGroup{} + wg.Add(2) + // Try running Close and reload in parallel multiple times. + // This reproduces the deadlock quite readily. + go func() { + defer wg.Done() + for i := 0; i < 100; i++ { + hs.Close() + hs.Open() + } + }() + + go func() { + defer wg.Done() + for i := 0; i < 100; i++ { + se.BroadcastForTesting(nil, nil, nil, true) + } + }() + + // Wait for wait group to finish. + wg.Wait() +} diff --git a/go/vt/vttablet/tabletserver/messager/engine.go b/go/vt/vttablet/tabletserver/messager/engine.go index 2e526fcdc3d..9d8b09e819a 100644 --- a/go/vt/vttablet/tabletserver/messager/engine.go +++ b/go/vt/vttablet/tabletserver/messager/engine.go @@ -52,9 +52,16 @@ type VStreamer interface { // Engine is the engine for handling messages. type Engine struct { - mu sync.Mutex - isOpen bool - managers map[string]*messageManager + // mu is a mutex used to protect the isOpen variable + // and for ensuring we don't call setup functions in parallel. + mu sync.Mutex + isOpen bool + + // managersMu is a mutex used to protect the managers field. + // We require two separate mutexes, so that we don't have to acquire the same mutex + // in Close and schemaChanged which can lead to a deadlock described in https://github.com/vitessio/vitess/issues/17229. + managersMu sync.Mutex + managers map[string]*messageManager tsv TabletService se *schema.Engine @@ -76,15 +83,12 @@ func NewEngine(tsv TabletService, se *schema.Engine, vs VStreamer) *Engine { // Open starts the Engine service. func (me *Engine) Open() { me.mu.Lock() + defer me.mu.Unlock() if me.isOpen { - me.mu.Unlock() return } me.isOpen = true - me.mu.Unlock() log.Info("Messager: opening") - // Unlock before invoking RegisterNotifier because it - // obtains the same lock. me.se.RegisterNotifier("messages", me.schemaChanged, true) } @@ -102,6 +106,8 @@ func (me *Engine) Close() { log.Infof("messager Engine - unregistering notifiers") me.se.UnregisterNotifier("messages") log.Infof("messager Engine - closing all managers") + me.managersMu.Lock() + defer me.managersMu.Unlock() for _, mm := range me.managers { mm.Close() } @@ -110,8 +116,8 @@ func (me *Engine) Close() { } func (me *Engine) GetGenerator(name string) (QueryGenerator, error) { - me.mu.Lock() - defer me.mu.Unlock() + me.managersMu.Lock() + defer me.managersMu.Unlock() mm := me.managers[name] if mm == nil { return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "message table %s not found in schema", name) @@ -132,6 +138,8 @@ func (me *Engine) Subscribe(ctx context.Context, name string, send func(*sqltype if !me.isOpen { return nil, vterrors.Errorf(vtrpcpb.Code_UNAVAILABLE, "messager engine is closed, probably because this is not a primary any more") } + me.managersMu.Lock() + defer me.managersMu.Unlock() mm := me.managers[name] if mm == nil { return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "message table %s not found", name) @@ -140,8 +148,8 @@ func (me *Engine) Subscribe(ctx context.Context, name string, send func(*sqltype } func (me *Engine) schemaChanged(tables map[string]*schema.Table, created, altered, dropped []*schema.Table, _ bool) { - me.mu.Lock() - defer me.mu.Unlock() + me.managersMu.Lock() + defer me.managersMu.Unlock() for _, table := range append(dropped, altered...) { name := table.Name.String() mm := me.managers[name] diff --git a/go/vt/vttablet/tabletserver/messager/engine_test.go b/go/vt/vttablet/tabletserver/messager/engine_test.go index 30e849ac73b..124e6a9a380 100644 --- a/go/vt/vttablet/tabletserver/messager/engine_test.go +++ b/go/vt/vttablet/tabletserver/messager/engine_test.go @@ -19,6 +19,7 @@ package messager import ( "context" "reflect" + "sync" "testing" "vitess.io/vitess/go/sqltypes" @@ -156,7 +157,7 @@ func newTestEngine() *Engine { tsv := &fakeTabletServer{ Env: tabletenv.NewEnv(vtenv.NewTestEnv(), cfg, "MessagerTest"), } - se := schema.NewEngine(tsv) + se := schema.NewEngineForTests() te := NewEngine(tsv, se, newFakeVStreamer()) te.Open() return te @@ -169,3 +170,33 @@ func newEngineReceiver() (f func(qr *sqltypes.Result) error, ch chan *sqltypes.R return nil }, ch } + +// TestDeadlockBwCloseAndSchemaChange tests the deadlock observed between Close and schemaChanged +// functions. More details can be found in the issue https://github.com/vitessio/vitess/issues/17229. +func TestDeadlockBwCloseAndSchemaChange(t *testing.T) { + engine := newTestEngine() + defer engine.Close() + se := engine.se + + wg := sync.WaitGroup{} + wg.Add(2) + // Try running Close and schemaChanged in parallel multiple times. + // This reproduces the deadlock quite readily. + go func() { + defer wg.Done() + for i := 0; i < 100; i++ { + engine.Close() + engine.Open() + } + }() + + go func() { + defer wg.Done() + for i := 0; i < 100; i++ { + se.BroadcastForTesting(nil, nil, nil, true) + } + }() + + // Wait for wait group to finish. + wg.Wait() +} diff --git a/go/vt/vttablet/tabletserver/schema/engine.go b/go/vt/vttablet/tabletserver/schema/engine.go index 09b3a91ffed..fb4a9d9367a 100644 --- a/go/vt/vttablet/tabletserver/schema/engine.go +++ b/go/vt/vttablet/tabletserver/schema/engine.go @@ -865,6 +865,13 @@ func (se *Engine) broadcast(created, altered, dropped []*Table, udfsChanged bool } } +// BroadcastForTesting is meant to be a testing function that triggers a broadcast call. +func (se *Engine) BroadcastForTesting(created, altered, dropped []*Table, udfsChanged bool) { + se.mu.Lock() + defer se.mu.Unlock() + se.broadcast(created, altered, dropped, udfsChanged) +} + // GetTable returns the info for a table. func (se *Engine) GetTable(tableName sqlparser.IdentifierCS) *Table { se.mu.Lock() @@ -951,6 +958,7 @@ func NewEngineForTests() *Engine { tables: make(map[string]*Table), historian: newHistorian(false, 0, nil), env: tabletenv.NewEnv(vtenv.NewTestEnv(), tabletenv.NewDefaultConfig(), "SchemaEngineForTests"), + notifiers: make(map[string]notifier), } return se } From 216fd70be49fa14ddd22ea97d26a9434770c0ca2 Mon Sep 17 00:00:00 2001 From: Matt Lord Date: Fri, 15 Nov 2024 21:39:37 -0500 Subject: [PATCH 04/22] Binlog: Improve ZstdInMemoryDecompressorMaxSize management (#17220) Signed-off-by: Matt Lord --- go/flags/endtoend/vtcombo.txt | 1 + go/flags/endtoend/vttablet.txt | 1 + go/mysql/binlog_event_compression.go | 21 ++++++++++++--------- go/mysql/binlog_event_mysql56_test.go | 8 +++++++- go/vt/vttablet/common/flags.go | 3 +++ 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/go/flags/endtoend/vtcombo.txt b/go/flags/endtoend/vtcombo.txt index 8c6eafe9c1c..01a391d0cad 100644 --- a/go/flags/endtoend/vtcombo.txt +++ b/go/flags/endtoend/vtcombo.txt @@ -21,6 +21,7 @@ Flags: --backup_storage_compress if set, the backup files will be compressed. (default true) --backup_storage_number_blocks int if backup_storage_compress is true, backup_storage_number_blocks sets the number of blocks that can be processed, in parallel, before the writer blocks, during compression (default is 2). It should be equal to the number of CPUs available for compression. (default 2) --bind-address string Bind address for the server. If empty, the server will listen on all available unicast and anycast IP addresses of the local system. + --binlog-in-memory-decompressor-max-size uint This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode. (default 134217728) --binlog_host string PITR restore parameter: hostname/IP of binlog server. --binlog_password string PITR restore parameter: password of binlog server. --binlog_player_protocol string the protocol to download binlogs from a vttablet (default "grpc") diff --git a/go/flags/endtoend/vttablet.txt b/go/flags/endtoend/vttablet.txt index 35a07b265bc..8be7b620469 100644 --- a/go/flags/endtoend/vttablet.txt +++ b/go/flags/endtoend/vttablet.txt @@ -56,6 +56,7 @@ Flags: --backup_storage_implementation string Which backup storage implementation to use for creating and restoring backups. --backup_storage_number_blocks int if backup_storage_compress is true, backup_storage_number_blocks sets the number of blocks that can be processed, in parallel, before the writer blocks, during compression (default is 2). It should be equal to the number of CPUs available for compression. (default 2) --bind-address string Bind address for the server. If empty, the server will listen on all available unicast and anycast IP addresses of the local system. + --binlog-in-memory-decompressor-max-size uint This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode. (default 134217728) --binlog_host string PITR restore parameter: hostname/IP of binlog server. --binlog_password string PITR restore parameter: password of binlog server. --binlog_player_grpc_ca string the server ca to use to validate servers when connecting diff --git a/go/mysql/binlog_event_compression.go b/go/mysql/binlog_event_compression.go index 1cb38d5cb16..7455218d4b5 100644 --- a/go/mysql/binlog_event_compression.go +++ b/go/mysql/binlog_event_compression.go @@ -58,11 +58,6 @@ const ( // Length of the binlog event header for internal events within // the transaction payload. headerLen = binlogEventLenOffset + eventLenBytes - - // At what size should we switch from the in-memory buffer - // decoding to streaming mode which is much slower, but does - // not require everything be done in memory. - zstdInMemoryDecompressorMaxSize = 128 << (10 * 2) // 128MiB ) var ( @@ -75,13 +70,18 @@ var ( compressedTrxPayloadsInMem = stats.NewCounter("CompressedTransactionPayloadsInMemory", "The number of compressed binlog transaction payloads that were processed in memory") compressedTrxPayloadsUsingStream = stats.NewCounter("CompressedTransactionPayloadsViaStream", "The number of compressed binlog transaction payloads that were processed using a stream") + // At what size should we switch from the in-memory buffer + // decoding to streaming mode which is much slower, but does + // not require everything be done in memory all at once. + ZstdInMemoryDecompressorMaxSize = uint64(128 << (10 * 2)) // 128MiB + // A concurrent stateless decoder that caches decompressors. This is // used for smaller payloads that we want to handle entirely using // in-memory buffers via DecodeAll. statelessDecoder *zstd.Decoder // A pool of stateful decoders for larger payloads that we want to - // stream. The number of large (> zstdInMemoryDecompressorMaxSize) + // stream. The number of large (> ZstdInMemoryDecompressorMaxSize) // payloads should typically be relatively low, but there may be times // where there are many of them -- and users like vstreamer may have // N concurrent streams per tablet which could lead to a lot of @@ -271,7 +271,7 @@ func (tp *TransactionPayload) decode() error { } // decompress decompresses the payload. If the payload is larger than -// zstdInMemoryDecompressorMaxSize then we stream the decompression via +// ZstdInMemoryDecompressorMaxSize then we stream the decompression via // the package's pool of zstd.Decoders, otherwise we use in-memory // buffers with the package's concurrent statelessDecoder. // In either case, we setup the reader that can be used within the @@ -284,7 +284,7 @@ func (tp *TransactionPayload) decompress() error { // Switch to slower but less memory intensive stream mode for // larger payloads. - if tp.uncompressedSize > zstdInMemoryDecompressorMaxSize { + if tp.uncompressedSize > ZstdInMemoryDecompressorMaxSize { in := bytes.NewReader(tp.payload) streamDecoder, err := statefulDecoderPool.Get(in) if err != nil { @@ -366,7 +366,10 @@ func (dp *decoderPool) Get(reader io.Reader) (*zstd.Decoder, error) { return nil, vterrors.Errorf(vtrpcpb.Code_INTERNAL, "[BUG] expected *zstd.Decoder but got %T", pooled) } } else { - d, err := zstd.NewReader(nil, zstd.WithDecoderMaxMemory(zstdInMemoryDecompressorMaxSize)) + // Use the minimum amount of memory we can in processing the transaction by + // setting lowMem to true and limiting the decoder concurrency to 1 so that + // there's no async decoding of multiple windows or blocks. + d, err := zstd.NewReader(nil, zstd.WithDecoderLowmem(true), zstd.WithDecoderConcurrency(1)) if err != nil { // Should only happen e.g. due to ENOMEM return nil, vterrors.Wrap(err, "failed to create stateful stream decoder") } diff --git a/go/mysql/binlog_event_mysql56_test.go b/go/mysql/binlog_event_mysql56_test.go index f173e27e4af..861d98c6e4f 100644 --- a/go/mysql/binlog_event_mysql56_test.go +++ b/go/mysql/binlog_event_mysql56_test.go @@ -141,6 +141,12 @@ func TestMysql56DecodeTransactionPayload(t *testing.T) { }, } + // Ensure that we can process events where the *uncompressed* size is + // larger than ZstdInMemoryDecompressorMaxSize. The *compressed* size + // of the payload in large_compressed_trx_payload.bin is 16KiB so we + // set the max to 2KiB to test this. + ZstdInMemoryDecompressorMaxSize = 2048 + for _, tc := range testCases { memDecodingCnt := compressedTrxPayloadsInMem.Get() streamDecodingCnt := compressedTrxPayloadsUsingStream.Get() @@ -191,7 +197,7 @@ func TestMysql56DecodeTransactionPayload(t *testing.T) { totalSize += len(eventStr) require.True(t, strings.HasPrefix(eventStr, want)) } - require.Greater(t, totalSize, zstdInMemoryDecompressorMaxSize) + require.Greater(t, uint64(totalSize), ZstdInMemoryDecompressorMaxSize) } } } diff --git a/go/vt/vttablet/common/flags.go b/go/vt/vttablet/common/flags.go index f9775b8af3e..3c6141d62eb 100644 --- a/go/vt/vttablet/common/flags.go +++ b/go/vt/vttablet/common/flags.go @@ -21,6 +21,7 @@ import ( "github.com/spf13/pflag" + "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/vt/servenv" ) @@ -94,4 +95,6 @@ func registerFlags(fs *pflag.FlagSet) { fs.BoolVar(&vreplicationStoreCompressedGTID, "vreplication_store_compressed_gtid", vreplicationStoreCompressedGTID, "Store compressed gtids in the pos column of the sidecar database's vreplication table") fs.IntVar(&vreplicationParallelInsertWorkers, "vreplication-parallel-insert-workers", vreplicationParallelInsertWorkers, "Number of parallel insertion workers to use during copy phase. Set <= 1 to disable parallelism, or > 1 to enable concurrent insertion during copy phase.") + + fs.Uint64Var(&mysql.ZstdInMemoryDecompressorMaxSize, "binlog-in-memory-decompressor-max-size", mysql.ZstdInMemoryDecompressorMaxSize, "This value sets the uncompressed transaction payload size at which we switch from in-memory buffer based decompression to the slower streaming mode.") } From 7baa4f28e2e649e73790c319fb7dfbfb05d87bf5 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Tue, 19 Nov 2024 11:13:33 +0200 Subject: [PATCH 05/22] Handle MySQL handler error codes (#17252) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/mysql/sqlerror/constants.go | 190 ++++++++++++++++++ go/mysql/sqlerror/sql_error.go | 12 ++ go/mysql/sqlerror/sql_error_test.go | 21 ++ .../tabletmanager/vreplication/utils.go | 18 ++ .../tabletmanager/vreplication/utils_test.go | 10 + 5 files changed, 251 insertions(+) diff --git a/go/mysql/sqlerror/constants.go b/go/mysql/sqlerror/constants.go index da2351bf00d..5fedf567998 100644 --- a/go/mysql/sqlerror/constants.go +++ b/go/mysql/sqlerror/constants.go @@ -203,6 +203,7 @@ const ( ERBlobKeyWithoutLength = ErrorCode(1170) ERPrimaryCantHaveNull = ErrorCode(1171) ERTooManyRows = ErrorCode(1172) + ERErrorDuringCommit = ErrorCode(1180) ERLockOrActiveTransaction = ErrorCode(1192) ERUnknownSystemVariable = ErrorCode(1193) ERSetConstantsOnly = ErrorCode(1204) @@ -301,6 +302,195 @@ const ( ERServerIsntAvailable = ErrorCode(3168) ) +// HandlerErrorCode is for errors thrown by the handler, and which are then embedded in other errors. +// See https://github.com/mysql/mysql-server/blob/trunk/include/my_base.h +type HandlerErrorCode uint16 + +func (e HandlerErrorCode) ToString() string { + return strconv.FormatUint(uint64(e), 10) +} + +const ( + // Didn't find key on read or update + HaErrKeyNotFound = HandlerErrorCode(120) + // Duplicate key on write + HaErrFoundDuppKey = HandlerErrorCode(121) + // Internal error + HaErrInternalError = HandlerErrorCode(122) + // Uppdate with is recoverable + HaErrRecordChanged = HandlerErrorCode(123) + // Wrong index given to function + HaErrWrongIndex = HandlerErrorCode(124) + // Transaction has been rolled back + HaErrRolledBack = HandlerErrorCode(125) + // Indexfile is crashed + HaErrCrashed = HandlerErrorCode(126) + // Record-file is crashed + HaErrWrongInRecord = HandlerErrorCode(127) + // Record-file is crashed + HaErrOutOfMem = HandlerErrorCode(128) + // not a MYI file - no signature + HaErrNotATable = HandlerErrorCode(130) + // Command not supported + HaErrWrongCommand = HandlerErrorCode(131) + // old database file + HaErrOldFile = HandlerErrorCode(132) + // No record read in update() + HaErrNoActiveRecord = HandlerErrorCode(133) + // A record is not there + HaErrRecordDeleted = HandlerErrorCode(134) + // No more room in file + HaErrRecordFileFull = HandlerErrorCode(135) + // No more room in file + HaErrIndexFileFull = HandlerErrorCode(136) + // end in next/prev/first/last + HaErrEndOfFile = HandlerErrorCode(137) + // unsupported extension used + HaErrUnsupported = HandlerErrorCode(138) + // Too big row + HaErrTooBigRow = HandlerErrorCode(139) + // Wrong create option + HaWrongCreateOption = HandlerErrorCode(140) + // Duplicate unique on write + HaErrFoundDuppUnique = HandlerErrorCode(141) + // Can't open charset + HaErrUnknownCharset = HandlerErrorCode(142) + // conflicting tables in MERGE + HaErrWrongMrgTableDef = HandlerErrorCode(143) + // Last (automatic?) repair failed + HaErrCrashedOnRepair = HandlerErrorCode(144) + // Table must be repaired + HaErrCrashedOnUsage = HandlerErrorCode(145) + // Lock wait timeout + HaErrLockWaitTimeout = HandlerErrorCode(146) + // Lock table is full + HaErrLockTableFull = HandlerErrorCode(147) + // Updates not allowed + HaErrReadOnlyTransaction = HandlerErrorCode(148) + // Deadlock found when trying to get lock + HaErrLockDeadlock = HandlerErrorCode(149) + // Cannot add a foreign key constr. + HaErrCannotAddForeign = HandlerErrorCode(150) + // Cannot add a child row + HaErrNoReferencedRow = HandlerErrorCode(151) + // Cannot delete a parent row + HaErrRowIsReferenced = HandlerErrorCode(152) + // No savepoint with that name + HaErrNoSavepoint = HandlerErrorCode(153) + // Non unique key block size + HaErrNonUniqueBlockSize = HandlerErrorCode(154) + // The table does not exist in engine + HaErrNoSuchTable = HandlerErrorCode(155) + // The table existed in storage engine + HaErrTableExist = HandlerErrorCode(156) + // Could not connect to storage engine + HaErrNoConnection = HandlerErrorCode(157) + // NULLs are not supported in spatial index + HaErrNullInSpatial = HandlerErrorCode(158) + // The table changed in storage engine + HaErrTableDefChanged = HandlerErrorCode(159) + // There's no partition in table for given value + HaErrNoPartitionFound = HandlerErrorCode(160) + // Row-based binlogging of row failed + HaErrRbrLoggingFailed = HandlerErrorCode(161) + // Index needed in foreign key constraint + HaErrDropIndexFk = HandlerErrorCode(162) + // Upholding foreign key constraints would lead to a duplicate key error in some other table. + HaErrForeignDuplicateKey = HandlerErrorCode(163) + // The table changed in storage engine + HaErrTableNeedsUpgrade = HandlerErrorCode(164) + // The table is not writable + HaErrTableReadonly = HandlerErrorCode(165) + // Failed to get next autoinc value + HaErrAutoincReadFailed = HandlerErrorCode(166) + // Failed to set row autoinc value + HaErrAutoincErange = HandlerErrorCode(167) + // Generic error + HaErrGeneric = HandlerErrorCode(168) + // row not actually updated: new values same as the old values + HaErrRecordIsTheSame = HandlerErrorCode(169) + // It is not possible to log this statement + HaErrLoggingImpossible = HandlerErrorCode(170) + // The event was corrupt, leading to illegal data being read + HaErrCorruptEvent = HandlerErrorCode(171) + // New file format + HaErrNewFile = HandlerErrorCode(172) + // The event could not be processed no other handler error happened + HaErrRowsEventApply = HandlerErrorCode(173) + // Error during initialization + HaErrInitialization = HandlerErrorCode(174) + // File too short + HaErrFileTooShort = HandlerErrorCode(175) + // Wrong CRC on page + HaErrWrongCrc = HandlerErrorCode(176) + // Too many active concurrent transactions + HaErrTooManyConcurrentTrxs = HandlerErrorCode(177) + // There's no explicitly listed partition in table for the given value + HaErrNotInLockPartitions = HandlerErrorCode(178) + // Index column length exceeds limit + HaErrIndexColTooLong = HandlerErrorCode(179) + // InnoDB index corrupted + HaErrIndexCorrupt = HandlerErrorCode(180) + // Undo log record too big + HaErrUndoRecTooBig = HandlerErrorCode(181) + // Invalid InnoDB Doc ID + HaFtsInvalidDocid = HandlerErrorCode(182) + // Table being used in foreign key check + HaErrTableInFkCheck = HandlerErrorCode(183) + // The tablespace existed in storage engine + HaErrTablespaceExists = HandlerErrorCode(184) + // Table has too many columns + HaErrTooManyFields = HandlerErrorCode(185) + // Row in wrong partition + HaErrRowInWrongPartition = HandlerErrorCode(186) + // InnoDB is in read only mode. + HaErrInnodbReadOnly = HandlerErrorCode(187) + // FTS query exceeds result cache limit + HaErrFtsExceedResultCacheLimit = HandlerErrorCode(188) + // Temporary file write failure + HaErrTempFileWriteFailure = HandlerErrorCode(189) + // Innodb is in force recovery mode + HaErrInnodbForcedRecovery = HandlerErrorCode(190) + // Too many words in a phrase + HaErrFtsTooManyWordsInPhrase = HandlerErrorCode(191) + // FK cascade depth exceeded + HaErrFkDepthExceeded = HandlerErrorCode(192) + // Option Missing during Create + HaMissingCreateOption = HandlerErrorCode(193) + // Out of memory in storage engine + HaErrSeOutOfMemory = HandlerErrorCode(194) + // Table/Clustered index is corrupted. + HaErrTableCorrupt = HandlerErrorCode(195) + // The query was interrupted + HaErrQueryInterrupted = HandlerErrorCode(196) + // Missing Tablespace + HaErrTablespaceMissing = HandlerErrorCode(197) + // Tablespace is not empty + HaErrTablespaceIsNotEmpty = HandlerErrorCode(198) + // Invalid Filename + HaErrWrongFileName = HandlerErrorCode(199) + // Operation is not allowed + HaErrNotAllowedCommand = HandlerErrorCode(200) + // Compute generated column value failed + HaErrComputeFailed = HandlerErrorCode(201) + // Table's row format has changed in the storage engine. Information in the data-dictionary needs to be updated. + HaErrRowFormatChanged = HandlerErrorCode(202) + // Don't wait for record lock + HaErrNoWaitLock = HandlerErrorCode(203) + // No more room in disk + HaErrDiskFullNowait = HandlerErrorCode(204) + // No session temporary space available + HaErrNoSessionTemp = HandlerErrorCode(205) + // Wrong or Invalid table name + HaErrWrongTableName = HandlerErrorCode(206) + // Path is too long for the OS + HaErrTooLongPath = HandlerErrorCode(207) + // Histogram sampling initialization failed + HaErrSamplingInitFailed = HandlerErrorCode(208) + // Too many sub-expression in search string + HaErrFtsTooManyNestedExp = HandlerErrorCode(209) +) + // Sql states for errors. // Originally found in include/mysql/sql_state.h const ( diff --git a/go/mysql/sqlerror/sql_error.go b/go/mysql/sqlerror/sql_error.go index f2a5fb46388..4600f0927cc 100644 --- a/go/mysql/sqlerror/sql_error.go +++ b/go/mysql/sqlerror/sql_error.go @@ -53,6 +53,18 @@ func NewSQLError(number ErrorCode, sqlState string, msg string) *SQLError { } } +var handlerErrExtract = regexp.MustCompile(`Got error ([0-9]*) [-] .* (from storage engine|during COMMIT|during ROLLBACK)`) + +func (se *SQLError) HaErrorCode() HandlerErrorCode { + match := handlerErrExtract.FindStringSubmatch(se.Message) + if len(match) >= 1 { + if code, err := strconv.ParseUint(match[1], 10, 16); err == nil { + return HandlerErrorCode(code) + } + } + return 0 +} + // Error implements the error interface func (se *SQLError) Error() string { var buf strings.Builder diff --git a/go/mysql/sqlerror/sql_error_test.go b/go/mysql/sqlerror/sql_error_test.go index b38cec26388..9e73138d60f 100644 --- a/go/mysql/sqlerror/sql_error_test.go +++ b/go/mysql/sqlerror/sql_error_test.go @@ -57,6 +57,7 @@ func TestNewSQLErrorFromError(t *testing.T) { var tCases = []struct { err error num ErrorCode + ha HandlerErrorCode ss string }{ { @@ -179,6 +180,24 @@ func TestNewSQLErrorFromError(t *testing.T) { num: ERDupEntry, ss: SSConstraintViolation, }, + { + err: fmt.Errorf("ERROR HY000: Got error 204 - 'No more room in disk' during COMMIT"), + num: ERUnknownError, + ss: SSUnknownSQLState, + ha: HaErrDiskFullNowait, + }, + { + err: fmt.Errorf("COMMIT failed w/ error: Got error 204 - 'No more room in disk' during COMMIT (errno 1180) (sqlstate HY000) during query: commit"), + num: ERErrorDuringCommit, + ss: SSUnknownSQLState, + ha: HaErrDiskFullNowait, + }, + { + err: fmt.Errorf("COMMIT failed w/ error: Got error 149 - 'Lock deadlock; Retry transaction' during COMMIT (errno 1180) (sqlstate HY000) during query: commit"), + num: ERErrorDuringCommit, + ss: SSUnknownSQLState, + ha: HaErrLockDeadlock, + }, } for _, tc := range tCases { @@ -187,6 +206,8 @@ func TestNewSQLErrorFromError(t *testing.T) { require.ErrorAs(t, NewSQLErrorFromError(tc.err), &err) assert.Equal(t, tc.num, err.Number()) assert.Equal(t, tc.ss, err.SQLState()) + ha := err.HaErrorCode() + assert.Equal(t, tc.ha, ha) }) } } diff --git a/go/vt/vttablet/tabletmanager/vreplication/utils.go b/go/vt/vttablet/tabletmanager/vreplication/utils.go index bb1c469cc93..67b52c56261 100644 --- a/go/vt/vttablet/tabletmanager/vreplication/utils.go +++ b/go/vt/vttablet/tabletmanager/vreplication/utils.go @@ -232,6 +232,24 @@ func isUnrecoverableError(err error) bool { sqlerror.ERWrongValueCountOnRow: log.Errorf("Got unrecoverable error: %v", sqlErr) return true + case sqlerror.ERErrorDuringCommit: + switch sqlErr.HaErrorCode() { + case + 0, // Not really a HA error. + sqlerror.HaErrLockDeadlock, + sqlerror.HaErrLockTableFull, + sqlerror.HaErrLockWaitTimeout, + sqlerror.HaErrNotInLockPartitions, + sqlerror.HaErrQueryInterrupted, + sqlerror.HaErrRolledBack, + sqlerror.HaErrTooManyConcurrentTrxs, + sqlerror.HaErrUndoRecTooBig: + // These are recoverable errors. + return false + default: + log.Errorf("Got unrecoverable error: %v", sqlErr) + return true + } } return false } diff --git a/go/vt/vttablet/tabletmanager/vreplication/utils_test.go b/go/vt/vttablet/tabletmanager/vreplication/utils_test.go index 69a57c34341..15093e299fc 100644 --- a/go/vt/vttablet/tabletmanager/vreplication/utils_test.go +++ b/go/vt/vttablet/tabletmanager/vreplication/utils_test.go @@ -152,6 +152,16 @@ func TestIsUnrecoverableError(t *testing.T) { err: sqlerror.NewSQLError(sqlerror.ERDataOutOfRange, "data out of range", "test"), expected: true, }, + { + name: "SQL error with HaErrDiskFullNowait error", + err: sqlerror.NewSQLError(sqlerror.ERErrorDuringCommit, "unknown", "ERROR HY000: Got error 204 - 'No more room in disk' during COMMIT"), + expected: true, + }, + { + name: "SQL error with HaErrLockDeadlock error", + err: sqlerror.NewSQLError(sqlerror.ERErrorDuringCommit, "unknown", "ERROR HY000: Got error 149 - 'Lock deadlock; Retry transaction' during COMMIT"), + expected: false, + }, } for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { From ea600c3d3569d826710cf9e262967511152e390a Mon Sep 17 00:00:00 2001 From: Florent Poinsard <35779988+frouioui@users.noreply.github.com> Date: Tue, 19 Nov 2024 12:54:29 -0600 Subject: [PATCH 06/22] Use proper keyspace when updating the query graph of a reference DML (#17226) Signed-off-by: Florent Poinsard --- .../queries/reference/reference_test.go | 9 +++++++ go/vt/vtgate/planbuilder/operators/delete.go | 2 +- go/vt/vtgate/planbuilder/plan_test.go | 1 + .../dml_cases_with_user_as_default.json | 24 +++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json diff --git a/go/test/endtoend/vtgate/queries/reference/reference_test.go b/go/test/endtoend/vtgate/queries/reference/reference_test.go index 08e9cbe13b1..66d46dfaf15 100644 --- a/go/test/endtoend/vtgate/queries/reference/reference_test.go +++ b/go/test/endtoend/vtgate/queries/reference/reference_test.go @@ -171,3 +171,12 @@ func TestMultiReferenceQuery(t *testing.T) { utils.Exec(t, conn, query) } + +func TestDMLReferenceUsingShardedKS(t *testing.T) { + utils.SkipIfBinaryIsBelowVersion(t, 22, "vtgate") + conn, closer := start(t) + defer closer() + + utils.Exec(t, conn, "use sks") + utils.Exec(t, conn, "update zip_detail set zip_id = 1 where id = 1") +} diff --git a/go/vt/vtgate/planbuilder/operators/delete.go b/go/vt/vtgate/planbuilder/operators/delete.go index 4d30d9b9cc1..81e36d54315 100644 --- a/go/vt/vtgate/planbuilder/operators/delete.go +++ b/go/vt/vtgate/planbuilder/operators/delete.go @@ -328,7 +328,7 @@ func updateQueryGraphWithSource(ctx *plancontext.PlanningContext, input Operator if tbl.ID != tblID { continue } - tbl.Alias = sqlparser.NewAliasedTableExpr(sqlparser.NewTableName(vTbl.Name.String()), tbl.Alias.As.String()) + tbl.Alias = sqlparser.NewAliasedTableExpr(sqlparser.NewTableNameWithQualifier(vTbl.Name.String(), vTbl.Keyspace.Name), tbl.Alias.As.String()) tbl.Table, _ = tbl.Alias.TableName() } return op, Rewrote("change query table point to source table") diff --git a/go/vt/vtgate/planbuilder/plan_test.go b/go/vt/vtgate/planbuilder/plan_test.go index 9cf92a91ddf..acba2caf937 100644 --- a/go/vt/vtgate/planbuilder/plan_test.go +++ b/go/vt/vtgate/planbuilder/plan_test.go @@ -557,6 +557,7 @@ func (s *planTestSuite) TestWithUserDefaultKeyspaceFromFileSharded() { } s.testFile("select_cases_with_user_as_default.json", vschema, false) + s.testFile("dml_cases_with_user_as_default.json", vschema, false) } func (s *planTestSuite) TestWithSystemSchemaAsDefaultKeyspace() { diff --git a/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json b/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json new file mode 100644 index 00000000000..ff66967c2ce --- /dev/null +++ b/go/vt/vtgate/planbuilder/testdata/dml_cases_with_user_as_default.json @@ -0,0 +1,24 @@ +[ + { + "comment": "Update reference table from sharded keyspace to unsharded keyspace", + "query": "update ambiguous_ref_with_source set done = true where id = 1;", + "plan": { + "QueryType": "UPDATE", + "Original": "update ambiguous_ref_with_source set done = true where id = 1;", + "Instructions": { + "OperatorType": "Update", + "Variant": "Unsharded", + "Keyspace": { + "Name": "main", + "Sharded": false + }, + "TargetTabletType": "PRIMARY", + "Query": "update ambiguous_ref_with_source set done = true where id = 1", + "Table": "ambiguous_ref_with_source" + }, + "TablesUsed": [ + "main.ambiguous_ref_with_source" + ] + } + } +] \ No newline at end of file From d2815bfb23594106fdb396e3372936abc98cf490 Mon Sep 17 00:00:00 2001 From: Gabriel Parreiras Date: Tue, 19 Nov 2024 19:30:49 +0000 Subject: [PATCH 07/22] Add support for receiving `grpc_bind_adress` on `vttestserver` (#17231) Signed-off-by: Gabriel Parreiras --- go/vt/servenv/grpc_server.go | 5 ++++ go/vt/vttest/local_cluster.go | 1 + go/vt/vttest/vtprocess.go | 50 ++++++++++++++++++++++------------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/go/vt/servenv/grpc_server.go b/go/vt/servenv/grpc_server.go index 96fe3c25ea9..8d30ee6d253 100644 --- a/go/vt/servenv/grpc_server.go +++ b/go/vt/servenv/grpc_server.go @@ -169,6 +169,11 @@ func GRPCPort() int { return gRPCPort } +// GRPCPort returns the value of the `--grpc_bind_address` flag. +func GRPCBindAddress() string { + return gRPCBindAddress +} + // isGRPCEnabled returns true if gRPC server is set func isGRPCEnabled() bool { if gRPCPort != 0 { diff --git a/go/vt/vttest/local_cluster.go b/go/vt/vttest/local_cluster.go index 576a78bb761..fa7e40feb12 100644 --- a/go/vt/vttest/local_cluster.go +++ b/go/vt/vttest/local_cluster.go @@ -660,6 +660,7 @@ func (db *LocalCluster) JSONConfig() any { config := map[string]any{ "bind_address": db.vt.BindAddress, "port": db.vt.Port, + "grpc_bind_address": db.vt.BindAddressGprc, "socket": db.mysql.UnixSocket(), "vtcombo_mysql_port": db.Env.PortForProtocol("vtcombo_mysql_port", ""), "mysql": db.Env.PortForProtocol("mysql", ""), diff --git a/go/vt/vttest/vtprocess.go b/go/vt/vttest/vtprocess.go index 3f34994bb75..6371811a60e 100644 --- a/go/vt/vttest/vtprocess.go +++ b/go/vt/vttest/vtprocess.go @@ -44,16 +44,17 @@ type HealthChecker func(addr string) bool // It can be spawned manually or through one of the available // helper methods. type VtProcess struct { - Name string - Directory string - LogDirectory string - Binary string - ExtraArgs []string - Env []string - BindAddress string - Port int - PortGrpc int - HealthCheck HealthChecker + Name string + Directory string + LogDirectory string + Binary string + ExtraArgs []string + Env []string + BindAddress string + BindAddressGprc string + Port int + PortGrpc int + HealthCheck HealthChecker proc *exec.Cmd exit chan error @@ -139,6 +140,11 @@ func (vtp *VtProcess) WaitStart() (err error) { vtp.proc.Args = append(vtp.proc.Args, fmt.Sprintf("%d", vtp.PortGrpc)) } + if vtp.BindAddressGprc != "" { + vtp.proc.Args = append(vtp.proc.Args, "--grpc_bind_address") + vtp.proc.Args = append(vtp.proc.Args, vtp.BindAddressGprc) + } + vtp.proc.Args = append(vtp.proc.Args, vtp.ExtraArgs...) vtp.proc.Env = append(vtp.proc.Env, os.Environ()...) vtp.proc.Env = append(vtp.proc.Env, vtp.Env...) @@ -199,16 +205,22 @@ func VtcomboProcess(environment Environment, args *Config, mysql MySQLManager) ( if args.VtComboBindAddress != "" { vtcomboBindAddress = args.VtComboBindAddress } + grpcBindAddress := "127.0.0.1" + if servenv.GRPCBindAddress() != "" { + grpcBindAddress = servenv.GRPCBindAddress() + } + vt := &VtProcess{ - Name: "vtcombo", - Directory: environment.Directory(), - LogDirectory: environment.LogDirectory(), - Binary: environment.BinaryPath("vtcombo"), - BindAddress: vtcomboBindAddress, - Port: environment.PortForProtocol("vtcombo", ""), - PortGrpc: environment.PortForProtocol("vtcombo", "grpc"), - HealthCheck: environment.ProcessHealthCheck("vtcombo"), - Env: environment.EnvVars(), + Name: "vtcombo", + Directory: environment.Directory(), + LogDirectory: environment.LogDirectory(), + Binary: environment.BinaryPath("vtcombo"), + BindAddress: vtcomboBindAddress, + BindAddressGprc: grpcBindAddress, + Port: environment.PortForProtocol("vtcombo", ""), + PortGrpc: environment.PortForProtocol("vtcombo", "grpc"), + HealthCheck: environment.ProcessHealthCheck("vtcombo"), + Env: environment.EnvVars(), } user, pass := mysql.Auth() From 626b16ff12a328e8a114f431b2ab51a472afcee9 Mon Sep 17 00:00:00 2001 From: Derek Perkins Date: Tue, 19 Nov 2024 18:00:11 -0700 Subject: [PATCH 08/22] sqltypes: add ToTime conversion funcs (#17178) Signed-off-by: Derek Perkins --- go/sqltypes/value.go | 95 +++++++++++++++++ go/sqltypes/value_test.go | 151 +++++++++++++++++++++++++++ go/vt/vitessdriver/convert.go | 6 +- go/vt/vitessdriver/time.go | 71 ------------- go/vt/vitessdriver/time_test.go | 175 -------------------------------- 5 files changed, 248 insertions(+), 250 deletions(-) delete mode 100644 go/vt/vitessdriver/time_test.go diff --git a/go/sqltypes/value.go b/go/sqltypes/value.go index 438b51a13ba..7fb6fa80396 100644 --- a/go/sqltypes/value.go +++ b/go/sqltypes/value.go @@ -26,6 +26,7 @@ import ( "math/big" "strconv" "strings" + "time" "google.golang.org/protobuf/encoding/protowire" @@ -435,6 +436,100 @@ func (v Value) String() string { return fmt.Sprintf("%v(%s)", Type(v.typ), v.val) } +// ToTime returns the value as a time.Time in UTC. +// NULL values are returned as zero time. +func (v Value) ToTime() (time.Time, error) { + return v.ToTimeInLocation(time.UTC) +} + +// ToTimeInLocation returns the value as a time.Time in the provided location. +// NULL values are returned as zero time. +func (v Value) ToTimeInLocation(loc *time.Location) (time.Time, error) { + if v.Type() == Null { + return time.Time{}, nil + } + switch v.Type() { + case Datetime, Timestamp: + return datetimeToNative(v, loc) + case Date: + return dateToNative(v, loc) + default: + return time.Time{}, ErrIncompatibleTypeCast + } +} + +// ErrInvalidTime is returned when we fail to parse a datetime +// string from MySQL. This should never happen unless things are +// seriously messed up. +var ErrInvalidTime = errors.New("invalid MySQL time string") + +var isoTimeFormat = "2006-01-02 15:04:05.999999" +var isoNullTime = "0000-00-00 00:00:00.000000" +var isoTimeLength = len(isoTimeFormat) + +// parseISOTime pases a time string in MySQL's textual datetime format. +// This is very similar to ISO8601, with some differences: +// +// - There is no T separator between the date and time sections; +// a space is used instead. +// - There is never a timezone section in the string, as these datetimes +// are not timezone-aware. There isn't a Z value for UTC times for +// the same reason. +// +// Note that this function can handle both DATE (which should _always_ have +// a length of 10) and DATETIME strings (which have a variable length, 18+ +// depending on the number of decimal sub-second places). +// +// Also note that this function handles the case where MySQL returns a NULL +// time (with a string where all sections are zeroes) by returning a zeroed +// out time.Time object. NULL time strings are not considered a parsing error. +// +// See: isoTimeFormat +func parseISOTime(tstr string, loc *time.Location, minLen, maxLen int) (t time.Time, err error) { + tlen := len(tstr) + if tlen < minLen || tlen > maxLen { + err = ErrInvalidTime + return + } + + if tstr == isoNullTime[:tlen] { + // This is what MySQL would send when the date is NULL, + // so return an empty time.Time instead. + // This is not a parsing error + return + } + + if loc == nil { + loc = time.UTC + } + + // Since the time format returned from MySQL never has a Timezone + // section, ParseInLocation will initialize the time.Time struct + // with the default `loc` we're passing here. + return time.ParseInLocation(isoTimeFormat[:tlen], tstr, loc) +} + +// datetimeToNative converts a Datetime Value into a time.Time +func datetimeToNative(v Value, loc *time.Location) (time.Time, error) { + // Valid format string offsets for a DATETIME + // |DATETIME |19+ + // |------------------|------| + // "2006-01-02 15:04:05.999999" + return parseISOTime(v.ToString(), loc, 19, isoTimeLength) +} + +// dateToNative converts a Date Value into a time.Time. +// Note that there's no specific type in the Go stdlib to represent +// dates without time components, so the returned Time will have +// their hours/mins/seconds zeroed out. +func dateToNative(v Value, loc *time.Location) (time.Time, error) { + // Valid format string offsets for a DATE + // |DATE |10 + // |---------| + // "2006-01-02 00:00:00.000000" + return parseISOTime(v.ToString(), loc, 10, 10) +} + // EncodeSQL encodes the value into an SQL statement. Can be binary. func (v Value) EncodeSQL(b BinWriter) { switch { diff --git a/go/sqltypes/value_test.go b/go/sqltypes/value_test.go index fbf9be5b19b..99f8566472e 100644 --- a/go/sqltypes/value_test.go +++ b/go/sqltypes/value_test.go @@ -18,8 +18,10 @@ package sqltypes import ( "math" + "reflect" "strings" "testing" + "time" "github.com/stretchr/testify/assert" @@ -611,6 +613,155 @@ func TestToUint32(t *testing.T) { } } +var randomLocation = time.FixedZone("Nowhere", 3*60*60) + +func DatetimeValue(str string) Value { + return TestValue(Datetime, str) +} + +func DateValue(str string) Value { + return TestValue(Date, str) +} + +func TestDatetimeToNative(t *testing.T) { + tcases := []struct { + val Value + loc *time.Location + out time.Time + err bool + }{{ + val: DatetimeValue("1899-08-24 17:20:00"), + out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), + }, { + val: DatetimeValue("1952-03-11 01:02:03"), + loc: time.Local, + out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.Local), + }, { + val: DatetimeValue("1952-03-11 01:02:03"), + loc: randomLocation, + out: time.Date(1952, 3, 11, 1, 2, 3, 0, randomLocation), + }, { + val: DatetimeValue("1952-03-11 01:02:03"), + loc: time.UTC, + out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.UTC), + }, { + val: DatetimeValue("1899-08-24 17:20:00.000000"), + out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), + }, { + val: DatetimeValue("1899-08-24 17:20:00.000001"), + out: time.Date(1899, 8, 24, 17, 20, 0, int(1*time.Microsecond), time.UTC), + }, { + val: DatetimeValue("1899-08-24 17:20:00.123456"), + out: time.Date(1899, 8, 24, 17, 20, 0, int(123456*time.Microsecond), time.UTC), + }, { + val: DatetimeValue("1899-08-24 17:20:00.222"), + out: time.Date(1899, 8, 24, 17, 20, 0, int(222*time.Millisecond), time.UTC), + }, { + val: DatetimeValue("1899-08-24 17:20:00.1234567"), + err: true, + }, { + val: DatetimeValue("1899-08-24 17:20:00.1"), + out: time.Date(1899, 8, 24, 17, 20, 0, int(100*time.Millisecond), time.UTC), + }, { + val: DatetimeValue("0000-00-00 00:00:00"), + out: time.Time{}, + }, { + val: DatetimeValue("0000-00-00 00:00:00.0"), + out: time.Time{}, + }, { + val: DatetimeValue("0000-00-00 00:00:00.000"), + out: time.Time{}, + }, { + val: DatetimeValue("0000-00-00 00:00:00.000000"), + out: time.Time{}, + }, { + val: DatetimeValue("0000-00-00 00:00:00.0000000"), + err: true, + }, { + val: DatetimeValue("1899-08-24T17:20:00.000000"), + err: true, + }, { + val: DatetimeValue("1899-02-31 17:20:00.000000"), + err: true, + }, { + val: DatetimeValue("1899-08-24 17:20:00."), + out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), + }, { + val: DatetimeValue("0000-00-00 00:00:00.000001"), + err: true, + }, { + val: DatetimeValue("1899-08-24 17:20:00 +02:00"), + err: true, + }, { + val: DatetimeValue("1899-08-24"), + err: true, + }, { + val: DatetimeValue("This is not a valid timestamp"), + err: true, + }} + + for _, tcase := range tcases { + got, err := datetimeToNative(tcase.val, tcase.loc) + if tcase.err && err == nil { + t.Errorf("datetimeToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc) + } + if !tcase.err && err != nil { + t.Errorf("datetimeToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err) + } + if !reflect.DeepEqual(got, tcase.out) { + t.Errorf("datetimeToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out) + } + } +} + +func TestDateToNative(t *testing.T) { + tcases := []struct { + val Value + loc *time.Location + out time.Time + err bool + }{{ + val: DateValue("1899-08-24"), + out: time.Date(1899, 8, 24, 0, 0, 0, 0, time.UTC), + }, { + val: DateValue("1952-03-11"), + loc: time.Local, + out: time.Date(1952, 3, 11, 0, 0, 0, 0, time.Local), + }, { + val: DateValue("1952-03-11"), + loc: randomLocation, + out: time.Date(1952, 3, 11, 0, 0, 0, 0, randomLocation), + }, { + val: DateValue("0000-00-00"), + out: time.Time{}, + }, { + val: DateValue("1899-02-31"), + err: true, + }, { + val: DateValue("1899-08-24 17:20:00"), + err: true, + }, { + val: DateValue("0000-00-00 00:00:00"), + err: true, + }, { + val: DateValue("This is not a valid timestamp"), + err: true, + }} + + for _, tcase := range tcases { + got, err := dateToNative(tcase.val, tcase.loc) + if tcase.err && err == nil { + t.Errorf("dateToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc) + } + if !tcase.err && err != nil { + t.Errorf("dateToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err) + } + if !reflect.DeepEqual(got, tcase.out) { + t.Errorf("dateToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out) + } + } +} + func TestEncodeSQLStringBuilder(t *testing.T) { testcases := []struct { in Value diff --git a/go/vt/vitessdriver/convert.go b/go/vt/vitessdriver/convert.go index 7ba95db4147..aa8bcedc7ee 100644 --- a/go/vt/vitessdriver/convert.go +++ b/go/vt/vitessdriver/convert.go @@ -43,10 +43,8 @@ func (cv *converter) ToNative(v sqltypes.Value) (any, error) { return v.ToUint64() case v.IsFloat(): return v.ToFloat64() - case v.Type() == sqltypes.Datetime, v.Type() == sqltypes.Timestamp: - return datetimeToNative(v, cv.location) - case v.Type() == sqltypes.Date: - return dateToNative(v, cv.location) + case v.Type() == sqltypes.Datetime, v.Type() == sqltypes.Timestamp, v.Type() == sqltypes.Date: + return v.ToTimeInLocation(cv.location) case v.IsQuoted() || v.Type() == sqltypes.Bit || v.Type() == sqltypes.Decimal: out, err = v.ToBytes() case v.Type() == sqltypes.Expression: diff --git a/go/vt/vitessdriver/time.go b/go/vt/vitessdriver/time.go index 70ec2d679ae..c6526197d9d 100644 --- a/go/vt/vitessdriver/time.go +++ b/go/vt/vitessdriver/time.go @@ -17,83 +17,12 @@ limitations under the License. package vitessdriver import ( - "errors" "time" "vitess.io/vitess/go/sqltypes" ) -// ErrInvalidTime is returned when we fail to parse a datetime -// string from MySQL. This should never happen unless things are -// seriously messed up. -var ErrInvalidTime = errors.New("invalid MySQL time string") - var isoTimeFormat = "2006-01-02 15:04:05.999999" -var isoNullTime = "0000-00-00 00:00:00.000000" -var isoTimeLength = len(isoTimeFormat) - -// parseISOTime pases a time string in MySQL's textual datetime format. -// This is very similar to ISO8601, with some differences: -// -// - There is no T separator between the date and time sections; -// a space is used instead. -// - There is never a timezone section in the string, as these datetimes -// are not timezone-aware. There isn't a Z value for UTC times for -// the same reason. -// -// Note that this function can handle both DATE (which should _always_ have -// a length of 10) and DATETIME strings (which have a variable length, 18+ -// depending on the number of decimal sub-second places). -// -// Also note that this function handles the case where MySQL returns a NULL -// time (with a string where all sections are zeroes) by returning a zeroed -// out time.Time object. NULL time strings are not considered a parsing error. -// -// See: isoTimeFormat -func parseISOTime(tstr string, loc *time.Location, minLen, maxLen int) (t time.Time, err error) { - tlen := len(tstr) - if tlen < minLen || tlen > maxLen { - err = ErrInvalidTime - return - } - - if tstr == isoNullTime[:tlen] { - // This is what MySQL would send when the date is NULL, - // so return an empty time.Time instead. - // This is not a parsing error - return - } - - if loc == nil { - loc = time.UTC - } - - // Since the time format returned from MySQL never has a Timezone - // section, ParseInLocation will initialize the time.Time struct - // with the default `loc` we're passing here. - return time.ParseInLocation(isoTimeFormat[:tlen], tstr, loc) -} - -// datetimeToNative converts a Datetime Value into a time.Time -func datetimeToNative(v sqltypes.Value, loc *time.Location) (time.Time, error) { - // Valid format string offsets for a DATETIME - // |DATETIME |19+ - // |------------------|------| - // "2006-01-02 15:04:05.999999" - return parseISOTime(v.ToString(), loc, 19, isoTimeLength) -} - -// dateToNative converts a Date Value into a time.Time. -// Note that there's no specific type in the Go stdlib to represent -// dates without time components, so the returned Time will have -// their hours/mins/seconds zeroed out. -func dateToNative(v sqltypes.Value, loc *time.Location) (time.Time, error) { - // Valid format string offsets for a DATE - // |DATE |10 - // |---------| - // "2006-01-02 00:00:00.000000" - return parseISOTime(v.ToString(), loc, 10, 10) -} // NewDatetime builds a Datetime Value func NewDatetime(t time.Time, defaultLoc *time.Location) sqltypes.Value { diff --git a/go/vt/vitessdriver/time_test.go b/go/vt/vitessdriver/time_test.go deleted file mode 100644 index 949d8f43354..00000000000 --- a/go/vt/vitessdriver/time_test.go +++ /dev/null @@ -1,175 +0,0 @@ -/* -Copyright 2019 The Vitess Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package vitessdriver - -import ( - "reflect" - "testing" - "time" - - "vitess.io/vitess/go/sqltypes" -) - -var randomLocation = time.FixedZone("Nowhere", 3*60*60) - -func DatetimeValue(str string) sqltypes.Value { - return sqltypes.TestValue(sqltypes.Datetime, str) -} - -func DateValue(str string) sqltypes.Value { - return sqltypes.TestValue(sqltypes.Date, str) -} - -func TestDatetimeToNative(t *testing.T) { - - tcases := []struct { - val sqltypes.Value - loc *time.Location - out time.Time - err bool - }{{ - val: DatetimeValue("1899-08-24 17:20:00"), - out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), - }, { - val: DatetimeValue("1952-03-11 01:02:03"), - loc: time.Local, - out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.Local), - }, { - val: DatetimeValue("1952-03-11 01:02:03"), - loc: randomLocation, - out: time.Date(1952, 3, 11, 1, 2, 3, 0, randomLocation), - }, { - val: DatetimeValue("1952-03-11 01:02:03"), - loc: time.UTC, - out: time.Date(1952, 3, 11, 1, 2, 3, 0, time.UTC), - }, { - val: DatetimeValue("1899-08-24 17:20:00.000000"), - out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), - }, { - val: DatetimeValue("1899-08-24 17:20:00.000001"), - out: time.Date(1899, 8, 24, 17, 20, 0, int(1*time.Microsecond), time.UTC), - }, { - val: DatetimeValue("1899-08-24 17:20:00.123456"), - out: time.Date(1899, 8, 24, 17, 20, 0, int(123456*time.Microsecond), time.UTC), - }, { - val: DatetimeValue("1899-08-24 17:20:00.222"), - out: time.Date(1899, 8, 24, 17, 20, 0, int(222*time.Millisecond), time.UTC), - }, { - val: DatetimeValue("1899-08-24 17:20:00.1234567"), - err: true, - }, { - val: DatetimeValue("1899-08-24 17:20:00.1"), - out: time.Date(1899, 8, 24, 17, 20, 0, int(100*time.Millisecond), time.UTC), - }, { - val: DatetimeValue("0000-00-00 00:00:00"), - out: time.Time{}, - }, { - val: DatetimeValue("0000-00-00 00:00:00.0"), - out: time.Time{}, - }, { - val: DatetimeValue("0000-00-00 00:00:00.000"), - out: time.Time{}, - }, { - val: DatetimeValue("0000-00-00 00:00:00.000000"), - out: time.Time{}, - }, { - val: DatetimeValue("0000-00-00 00:00:00.0000000"), - err: true, - }, { - val: DatetimeValue("1899-08-24T17:20:00.000000"), - err: true, - }, { - val: DatetimeValue("1899-02-31 17:20:00.000000"), - err: true, - }, { - val: DatetimeValue("1899-08-24 17:20:00."), - out: time.Date(1899, 8, 24, 17, 20, 0, 0, time.UTC), - }, { - val: DatetimeValue("0000-00-00 00:00:00.000001"), - err: true, - }, { - val: DatetimeValue("1899-08-24 17:20:00 +02:00"), - err: true, - }, { - val: DatetimeValue("1899-08-24"), - err: true, - }, { - val: DatetimeValue("This is not a valid timestamp"), - err: true, - }} - - for _, tcase := range tcases { - got, err := datetimeToNative(tcase.val, tcase.loc) - if tcase.err && err == nil { - t.Errorf("datetimeToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc) - } - if !tcase.err && err != nil { - t.Errorf("datetimeToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err) - } - if !reflect.DeepEqual(got, tcase.out) { - t.Errorf("datetimeToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out) - } - } -} - -func TestDateToNative(t *testing.T) { - tcases := []struct { - val sqltypes.Value - loc *time.Location - out time.Time - err bool - }{{ - val: DateValue("1899-08-24"), - out: time.Date(1899, 8, 24, 0, 0, 0, 0, time.UTC), - }, { - val: DateValue("1952-03-11"), - loc: time.Local, - out: time.Date(1952, 3, 11, 0, 0, 0, 0, time.Local), - }, { - val: DateValue("1952-03-11"), - loc: randomLocation, - out: time.Date(1952, 3, 11, 0, 0, 0, 0, randomLocation), - }, { - val: DateValue("0000-00-00"), - out: time.Time{}, - }, { - val: DateValue("1899-02-31"), - err: true, - }, { - val: DateValue("1899-08-24 17:20:00"), - err: true, - }, { - val: DateValue("0000-00-00 00:00:00"), - err: true, - }, { - val: DateValue("This is not a valid timestamp"), - err: true, - }} - - for _, tcase := range tcases { - got, err := dateToNative(tcase.val, tcase.loc) - if tcase.err && err == nil { - t.Errorf("dateToNative(%v, %#v) succeeded; expected error", tcase.val, tcase.loc) - } - if !tcase.err && err != nil { - t.Errorf("dateToNative(%v, %#v) failed: %v", tcase.val, tcase.loc, err) - } - if !reflect.DeepEqual(got, tcase.out) { - t.Errorf("dateToNative(%v, %#v): %v, want %v", tcase.val, tcase.loc, got, tcase.out) - } - } -} From 2c6e053e5078197ad20742b79215239d156fb46e Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Wed, 20 Nov 2024 08:39:26 +0200 Subject: [PATCH 09/22] VReplication: recover from closed connection (#17249) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/binlog/binlogplayer/dbclient.go | 5 +++++ go/vt/binlog/binlogplayer/fake_dbclient.go | 4 ++++ go/vt/binlog/binlogplayer/mock_dbclient.go | 4 ++++ .../vttablet/tabletmanager/vdiff/framework_test.go | 4 ++++ .../tabletmanager/vreplication/framework_test.go | 4 ++++ .../tabletmanager/vreplication/vreplicator.go | 13 ++++++++++--- go/vt/wrangler/fake_dbclient_test.go | 4 ++++ 7 files changed, 35 insertions(+), 3 deletions(-) diff --git a/go/vt/binlog/binlogplayer/dbclient.go b/go/vt/binlog/binlogplayer/dbclient.go index c3463b4cc2c..4cbfd962528 100644 --- a/go/vt/binlog/binlogplayer/dbclient.go +++ b/go/vt/binlog/binlogplayer/dbclient.go @@ -40,6 +40,7 @@ type DBClient interface { Commit() error Rollback() error Close() + IsClosed() bool ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error) ExecuteFetchMulti(query string, maxrows int) (qrs []*sqltypes.Result, err error) SupportsCapability(capability capabilities.FlavorCapability) (bool, error) @@ -125,6 +126,10 @@ func (dc *dbClientImpl) Close() { dc.dbConn.Close() } +func (dc *dbClientImpl) IsClosed() bool { + return dc.dbConn.IsClosed() +} + func (dc *dbClientImpl) SupportsCapability(capability capabilities.FlavorCapability) (bool, error) { return dc.dbConn.SupportsCapability(capability) } diff --git a/go/vt/binlog/binlogplayer/fake_dbclient.go b/go/vt/binlog/binlogplayer/fake_dbclient.go index 234dfd528e0..69bbd06f7c6 100644 --- a/go/vt/binlog/binlogplayer/fake_dbclient.go +++ b/go/vt/binlog/binlogplayer/fake_dbclient.go @@ -56,6 +56,10 @@ func (dc *fakeDBClient) Rollback() error { func (dc *fakeDBClient) Close() { } +func (dc *fakeDBClient) IsClosed() bool { + return false +} + func (dc *fakeDBClient) ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error) { query = strings.ToLower(query) switch { diff --git a/go/vt/binlog/binlogplayer/mock_dbclient.go b/go/vt/binlog/binlogplayer/mock_dbclient.go index f0a811a30cf..12005a16c2e 100644 --- a/go/vt/binlog/binlogplayer/mock_dbclient.go +++ b/go/vt/binlog/binlogplayer/mock_dbclient.go @@ -181,6 +181,10 @@ func (dc *MockDBClient) Rollback() error { func (dc *MockDBClient) Close() { } +func (dc *MockDBClient) IsClosed() bool { + return false +} + // ExecuteFetch is part of the DBClient interface func (dc *MockDBClient) ExecuteFetch(query string, maxrows int) (qr *sqltypes.Result, err error) { // Serialize ExecuteFetch to enforce a strict order on shared dbClients. diff --git a/go/vt/vttablet/tabletmanager/vdiff/framework_test.go b/go/vt/vttablet/tabletmanager/vdiff/framework_test.go index 33a0da8e23f..7d4cdb78c20 100644 --- a/go/vt/vttablet/tabletmanager/vdiff/framework_test.go +++ b/go/vt/vttablet/tabletmanager/vdiff/framework_test.go @@ -396,6 +396,10 @@ func (dbc *realDBClient) Close() { dbc.conn.Close() } +func (dbc *realDBClient) IsClosed() bool { + return dbc.conn.IsClosed() +} + func (dbc *realDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) { // Use Clone() because the contents of memory region referenced by // string can change when clients (e.g. vcopier) use unsafe string methods. diff --git a/go/vt/vttablet/tabletmanager/vreplication/framework_test.go b/go/vt/vttablet/tabletmanager/vreplication/framework_test.go index 12d20e3a867..fe8b62d3cef 100644 --- a/go/vt/vttablet/tabletmanager/vreplication/framework_test.go +++ b/go/vt/vttablet/tabletmanager/vreplication/framework_test.go @@ -479,6 +479,10 @@ func (dbc *realDBClient) Close() { dbc.conn.Close() } +func (dbc *realDBClient) IsClosed() bool { + return dbc.conn.IsClosed() +} + func (dbc *realDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) { // Use Clone() because the contents of memory region referenced by // string can change when clients (e.g. vcopier) use unsafe string methods. diff --git a/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go b/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go index 0c5c0b5b334..9ec274ab0ea 100644 --- a/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go +++ b/go/vt/vttablet/tabletmanager/vreplication/vreplicator.go @@ -186,11 +186,18 @@ func newVReplicator(id int32, source *binlogdatapb.BinlogSource, sourceVStreamer // code. func (vr *vreplicator) Replicate(ctx context.Context) error { err := vr.replicate(ctx) - if err != nil { - if err := vr.setMessage(err.Error()); err != nil { - binlogplayer.LogError("Failed to set error state", err) + if err == nil { + return nil + } + if vr.dbClient.IsClosed() { + // Connection was possible terminated by the server. We should renew it. + if cerr := vr.dbClient.Connect(); cerr != nil { + return vterrors.Wrapf(err, "failed to reconnect to the database: %v", cerr) } } + if err := vr.setMessage(err.Error()); err != nil { + binlogplayer.LogError("Failed to set error state", err) + } return err } diff --git a/go/vt/wrangler/fake_dbclient_test.go b/go/vt/wrangler/fake_dbclient_test.go index 14ef0913383..02ee79210d7 100644 --- a/go/vt/wrangler/fake_dbclient_test.go +++ b/go/vt/wrangler/fake_dbclient_test.go @@ -153,6 +153,10 @@ func (dc *fakeDBClient) Rollback() error { func (dc *fakeDBClient) Close() { } +func (dc *fakeDBClient) IsClosed() bool { + return false +} + // ExecuteFetch is part of the DBClient interface func (dc *fakeDBClient) ExecuteFetch(query string, maxrows int) (*sqltypes.Result, error) { dc.mu.Lock() From fb79106214a55e9ce0031fe50eaec0f83e46f0eb Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:11:57 +0200 Subject: [PATCH 10/22] Tablet throttler: read and use MySQL host metrics (#16904) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/osutil/loadavg.go | 33 ++++ go/osutil/loadavg_darwin.go | 40 +++++ go/osutil/loadavg_linux.go | 33 ++++ go/osutil/loadavg_other.go | 25 +++ go/osutil/loadavg_test.go | 77 +++++++++ .../throttler_topo/throttler_test.go | 64 +++++-- go/test/endtoend/throttler/util.go | 8 +- go/textutil/strings.go | 13 ++ go/textutil/strings_test.go | 58 +++++++ go/vt/mysqlctl/mysqld.go | 14 +- .../throttle/base/metric_cache.go | 5 +- .../tabletserver/throttle/base/metric_name.go | 12 +- .../throttle/base/metric_name_test.go | 24 +++ .../tabletserver/throttle/base/self_metric.go | 11 +- .../throttle/base/self_metric_custom_query.go | 6 +- .../throttle/base/self_metric_default.go | 4 +- .../throttle/base/self_metric_lag.go | 5 +- .../throttle/base/self_metric_loadavg.go | 49 +++--- .../throttle/base/self_metric_mysqld.go | 156 ++++++++++++++++++ .../throttle/base/self_metric_mysqld_test.go | 72 ++++++++ .../base/self_metric_threads_running.go | 6 +- .../base/throttler_metrics_publisher.go | 4 +- go/vt/vttablet/tabletserver/throttle/check.go | 8 +- .../tabletserver/throttle/throttler.go | 52 +++--- .../tabletserver/throttle/throttler_test.go | 74 +++++++-- 25 files changed, 735 insertions(+), 118 deletions(-) create mode 100644 go/osutil/loadavg.go create mode 100644 go/osutil/loadavg_darwin.go create mode 100644 go/osutil/loadavg_linux.go create mode 100644 go/osutil/loadavg_other.go create mode 100644 go/osutil/loadavg_test.go create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go diff --git a/go/osutil/loadavg.go b/go/osutil/loadavg.go new file mode 100644 index 00000000000..0c71f9e18b1 --- /dev/null +++ b/go/osutil/loadavg.go @@ -0,0 +1,33 @@ +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osutil + +import ( + "fmt" + "strconv" + "strings" +) + +// parseLoadAvg parses the load average from the content of /proc/loadavg or sysctl output. +// Input such as "1.00 0.99 0.98 1/1 1", "2.83 3.01 3.36" +func parseLoadAvg(content string) (float64, error) { + fields := strings.Fields(content) + if len(fields) == 0 { + return 0, fmt.Errorf("unexpected loadavg content: %s", content) + } + return strconv.ParseFloat(fields[0], 64) +} diff --git a/go/osutil/loadavg_darwin.go b/go/osutil/loadavg_darwin.go new file mode 100644 index 00000000000..f7b5b6e492a --- /dev/null +++ b/go/osutil/loadavg_darwin.go @@ -0,0 +1,40 @@ +//go:build darwin + +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osutil + +import ( + "fmt" + "os/exec" +) + +// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems. +// On other systems, it returns 0 with no error. +func LoadAvg() (float64, error) { + cmd := exec.Command("sysctl", "-n", "vm.loadavg") + // Sample output: `{ 2.83 3.01 3.36 }` + output, err := cmd.CombinedOutput() + if err != nil { + return 0, err + } + if len(output) < 1 { + return 0, fmt.Errorf("unexpected sysctl output: %q", output) + } + output = output[1:] // Remove the leading `{ ` + return parseLoadAvg(string(output)) +} diff --git a/go/osutil/loadavg_linux.go b/go/osutil/loadavg_linux.go new file mode 100644 index 00000000000..7663bf60ab7 --- /dev/null +++ b/go/osutil/loadavg_linux.go @@ -0,0 +1,33 @@ +//go:build linux + +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osutil + +import ( + "os" +) + +// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems. +// On other systems, it returns 0 with no error. +func LoadAvg() (float64, error) { + content, err := os.ReadFile("/proc/loadavg") + if err != nil { + return 0, err + } + return parseLoadAvg(string(content)) +} diff --git a/go/osutil/loadavg_other.go b/go/osutil/loadavg_other.go new file mode 100644 index 00000000000..a516cb46a66 --- /dev/null +++ b/go/osutil/loadavg_other.go @@ -0,0 +1,25 @@ +//go:build !linux && !darwin + +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osutil + +// LoadAvg returns the past 1 minute system load average. This works on linux and darwin systems. +// On other systems, it returns 0 with no error. +func LoadAvg() (float64, error) { + return 0, nil +} diff --git a/go/osutil/loadavg_test.go b/go/osutil/loadavg_test.go new file mode 100644 index 00000000000..5f3831648c6 --- /dev/null +++ b/go/osutil/loadavg_test.go @@ -0,0 +1,77 @@ +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osutil + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestLoadAvgValue(t *testing.T) { + tcases := []struct { + input string + loadavg float64 + isError bool + }{ + { + input: "", + isError: true, + }, + { + input: "{}", + isError: true, + }, + { + input: "{ x y z }", + isError: true, + }, + { + input: "1", + loadavg: 1.0, + }, + { + input: "0.00 0.00 0.00 1/1 1", + loadavg: 0.0, + }, + { + input: "2.72 2.89 3.17", + loadavg: 2.72, + }, + { + input: " 2.72 2.89 3.17", + loadavg: 2.72, + }, + } + for _, tcase := range tcases { + t.Run(tcase.input, func(t *testing.T) { + loadavg, err := parseLoadAvg(tcase.input) + if tcase.isError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, tcase.loadavg, loadavg) + } + }) + } +} + +func TestLoadAvg(t *testing.T) { + loadavg, err := LoadAvg() + assert.NoError(t, err) + assert.GreaterOrEqual(t, loadavg, 0.0) +} diff --git a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go index 08cea643940..f96069c81b8 100644 --- a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go +++ b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go @@ -215,7 +215,7 @@ func warmUpHeartbeat(t *testing.T) tabletmanagerdatapb.CheckThrottlerResponseCod } // waitForThrottleCheckStatus waits for the tablet to return the provided HTTP code in a throttle check -func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode tabletmanagerdatapb.CheckThrottlerResponseCode) bool { +func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode tabletmanagerdatapb.CheckThrottlerResponseCode) (*tabletmanagerdatapb.CheckThrottlerResponse, bool) { _ = warmUpHeartbeat(t) ctx, cancel := context.WithTimeout(context.Background(), onDemandHeartbeatDuration*4) defer cancel() @@ -229,11 +229,11 @@ func waitForThrottleCheckStatus(t *testing.T, tablet *cluster.Vttablet, wantCode if wantCode == resp.Check.ResponseCode { // Wait for any cached check values to be cleared and the new // status value to be in effect everywhere before returning. - return true + return resp.Check, true } select { case <-ctx.Done(): - return assert.EqualValues(t, wantCode, resp.Check.StatusCode, "response: %+v", resp) + return resp.Check, false case <-ticker.C: } } @@ -779,16 +779,16 @@ func TestUpdateAppCheckedMetrics(t *testing.T) { } waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED) }) - t.Run("assigning 'loadavg' metrics to 'test' app", func(t *testing.T) { + t.Run("assigning 'threads_running' metrics to 'test' app", func(t *testing.T) { { - req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: "loadavg", Threshold: 7777} + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.ThreadsRunningMetricName.String(), Threshold: 7777} _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) assert.NoError(t, err) } { req := &vtctldatapb.UpdateThrottlerConfigRequest{} appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{ - testAppName.String(): {Names: []string{"loadavg"}}, + testAppName.String(): {Names: []string{base.ThreadsRunningMetricName.String()}}, } _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics) assert.NoError(t, err) @@ -802,18 +802,18 @@ func TestUpdateAppCheckedMetrics(t *testing.T) { for _, tablet := range []cluster.Vttablet{*primaryTablet, *replicaTablet} { throttler.WaitForThrottlerStatusEnabled(t, &clusterInstance.VtctldClientProcess, &tablet, true, &throttler.Config{Query: throttler.DefaultQuery, Threshold: unreasonablyLowThreshold.Seconds()}, throttlerEnabledTimeout) } - t.Run("validating OK response from throttler since it's checking loadavg", func(t *testing.T) { - if !waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK) { + t.Run("validating OK response from throttler since it's checking threads_running", func(t *testing.T) { + if _, ok := waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK); !ok { t.Logf("throttler primary status: %+v", throttleStatus(t, primaryTablet)) t.Logf("throttler replica status: %+v", throttleStatus(t, replicaTablet)) } }) }) - t.Run("assigning 'loadavg,lag' metrics to 'test' app", func(t *testing.T) { + t.Run("assigning 'threads_running,lag' metrics to 'test' app", func(t *testing.T) { { req := &vtctldatapb.UpdateThrottlerConfigRequest{} appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{ - testAppName.String(): {Names: []string{"loadavg,lag"}}, + testAppName.String(): {Names: []string{base.ThreadsRunningMetricName.String(), base.LagMetricName.String()}}, } _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics) assert.NoError(t, err) @@ -831,9 +831,51 @@ func TestUpdateAppCheckedMetrics(t *testing.T) { waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED) }) }) + t.Run("assigning 'mysqld-loadavg,mysqld-datadir-used-ratio' metrics to 'test' app", func(t *testing.T) { + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldDatadirUsedRatioMetricName.String(), Threshold: 0.9999} + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) + assert.NoError(t, err) + } + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldLoadAvgMetricName.String(), Threshold: 5555} + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) + assert.NoError(t, err) + } + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{} + appCheckedMetrics := map[string]*topodatapb.ThrottlerConfig_MetricNames{ + testAppName.String(): {Names: []string{base.MysqldDatadirUsedRatioMetricName.String(), base.MysqldLoadAvgMetricName.String()}}, + } + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, appCheckedMetrics) + assert.NoError(t, err) + } + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: extremelyHighThreshold.Seconds()} + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) + assert.NoError(t, err) + } + // Wait for the throttler to be enabled everywhere with new config. + for _, tablet := range []cluster.Vttablet{*primaryTablet, *replicaTablet} { + throttler.WaitForThrottlerStatusEnabled(t, &clusterInstance.VtctldClientProcess, &tablet, true, &throttler.Config{Query: throttler.DefaultQuery, Threshold: extremelyHighThreshold.Seconds()}, throttlerEnabledTimeout) + } + t.Run("validating OK response from throttler since it's checking mysqld-loadavg,mysqld-datadir-used-ratio", func(t *testing.T) { + resp, ok := waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK) + if !ok { + t.Logf("response: %+v", resp) + t.Logf("throttler primary status: %+v", throttleStatus(t, primaryTablet)) + t.Logf("throttler replica status: %+v", throttleStatus(t, replicaTablet)) + } + require.Contains(t, resp.Metrics, base.MysqldDatadirUsedRatioMetricName.String()) + require.Contains(t, resp.Metrics, base.MysqldLoadAvgMetricName.String()) + assert.NotContains(t, resp.Metrics, base.ThreadsRunningMetricName.String()) + + assert.NotZero(t, resp.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) + }) + }) t.Run("removing assignment from 'test' app and restoring defaults", func(t *testing.T) { { - req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: "loadavg", Threshold: 0} + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.ThreadsRunningMetricName.String(), Threshold: 0} _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) assert.NoError(t, err) } diff --git a/go/test/endtoend/throttler/util.go b/go/test/endtoend/throttler/util.go index fccad19c324..a426355e01c 100644 --- a/go/test/endtoend/throttler/util.go +++ b/go/test/endtoend/throttler/util.go @@ -529,7 +529,7 @@ func WaitForValidData(t *testing.T, tablet *cluster.Vttablet, timeout time.Durat selfCheckURL := fmt.Sprintf("http://localhost:%d/throttler/check-self", tablet.HTTPPort) ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() - ticker := time.NewTicker(500 * time.Millisecond) + ticker := time.NewTicker(time.Second) defer ticker.Stop() for { @@ -548,8 +548,10 @@ func WaitForValidData(t *testing.T, tablet *cluster.Vttablet, timeout time.Durat } select { case <-ctx.Done(): - t.Errorf("timed out waiting for %s tablet's throttler to return a valid result after %v; last seen value: %+v", - tablet.Alias, timeout, checkResp) + respByte, _ := io.ReadAll(checkResp.Body) + body := string(respByte) + require.Failf(t, "time out", "waiting for %s tablet's throttler to return a valid result after %v; last seen result: %+v", + tablet.Alias, timeout, body) return case <-ticker.C: } diff --git a/go/textutil/strings.go b/go/textutil/strings.go index 2a923cd3259..a17daf8d382 100644 --- a/go/textutil/strings.go +++ b/go/textutil/strings.go @@ -90,6 +90,19 @@ func SingleWordCamel(w string) string { return strings.ToUpper(w[0:1]) + strings.ToLower(w[1:]) } +var multiWordSplitterRegexp = regexp.MustCompile(`[-_.\s]+`) + +// PascalCase turns a string into PascalCase by splitting it into words and +// capitalizing the first letter of each word. +func PascalCase(w string) string { + var b strings.Builder + words := multiWordSplitterRegexp.Split(w, -1) + for _, word := range words { + b.WriteString(SingleWordCamel(word)) + } + return b.String() +} + // ValueIsSimulatedNull returns true if the slice value represents // a NULL or unknown/unspecified value. This is used to distinguish // between a zero value empty slice and a user provided value of an diff --git a/go/textutil/strings_test.go b/go/textutil/strings_test.go index d65c187c4cb..828f39847cf 100644 --- a/go/textutil/strings_test.go +++ b/go/textutil/strings_test.go @@ -122,6 +122,64 @@ func TestSingleWordCamel(t *testing.T) { } } +func TestPascalCase(t *testing.T) { + tt := []struct { + word string + expect string + }{ + { + word: "", + expect: "", + }, + { + word: "_", + expect: "", + }, + { + word: "_a", + expect: "A", + }, + { + word: "A", + expect: "A", + }, + { + word: "mysql", + expect: "Mysql", + }, + { + word: "mySQL", + expect: "Mysql", + }, + { + word: "foo-bar", + expect: "FooBar", + }, + { + word: "mysql-server", + expect: "MysqlServer", + }, + { + word: "io_util", + expect: "IoUtil", + }, + { + word: "there and back again", + expect: "ThereAndBackAgain", + }, + { + word: "combine_all_OF the\tabove", + expect: "CombineAllOfTheAbove", + }, + } + for _, tc := range tt { + t.Run(tc.word, func(t *testing.T) { + pascal := PascalCase(tc.word) + assert.Equal(t, tc.expect, pascal) + }) + } +} + func TestValueIsSimulatedNull(t *testing.T) { tt := []struct { name string diff --git a/go/vt/mysqlctl/mysqld.go b/go/vt/mysqlctl/mysqld.go index 72c1d8f6658..d7435705a8a 100644 --- a/go/vt/mysqlctl/mysqld.go +++ b/go/vt/mysqlctl/mysqld.go @@ -47,6 +47,7 @@ import ( "vitess.io/vitess/config" "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/mysql/sqlerror" + "vitess.io/vitess/go/osutil" "vitess.io/vitess/go/protoutil" "vitess.io/vitess/go/sqltypes" "vitess.io/vitess/go/vt/dbconfigs" @@ -1332,18 +1333,7 @@ func hostMetrics(ctx context.Context, cnf *Mycnf) (*mysqlctlpb.HostMetricsRespon _ = func() error { metric := newMetric("loadavg") - if runtime.GOOS != "linux" { - return withError(metric, fmt.Errorf("loadavg metric is only available on Linux")) - } - content, err := os.ReadFile("/proc/loadavg") - if err != nil { - return withError(metric, err) - } - fields := strings.Fields(string(content)) - if len(fields) == 0 { - return withError(metric, fmt.Errorf("unexpected /proc/loadavg content")) - } - loadAvg, err := strconv.ParseFloat(fields[0], 64) + loadAvg, err := osutil.LoadAvg() if err != nil { return withError(metric, err) } diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go b/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go index 8695cb83229..faad65ca79e 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go +++ b/go/vt/vttablet/tabletserver/throttle/base/metric_cache.go @@ -49,6 +49,7 @@ import ( "github.com/patrickmn/go-cache" "vitess.io/vitess/go/stats" + "vitess.io/vitess/go/vt/vttablet/tmclient" ) // MetricsQueryType indicates the type of metrics query on MySQL backend. See following. @@ -142,13 +143,13 @@ func (metric *ThrottleMetric) WithError(err error) *ThrottleMetric { // ReadThrottleMetrics returns a metric for the given probe. Either by explicit query // or via SHOW REPLICA STATUS -func ReadThrottleMetrics(ctx context.Context, probe *Probe, metricsFunc func(context.Context) ThrottleMetrics) ThrottleMetrics { +func ReadThrottleMetrics(ctx context.Context, probe *Probe, tmClient tmclient.TabletManagerClient, metricsFunc func(context.Context, tmclient.TabletManagerClient) ThrottleMetrics) ThrottleMetrics { if metrics := getCachedThrottleMetrics(probe); metrics != nil { return metrics } started := time.Now() - throttleMetrics := metricsFunc(ctx) + throttleMetrics := metricsFunc(ctx, tmClient) go func(metrics ThrottleMetrics, started time.Time) { stats.GetOrNewGauge("ThrottlerProbesLatency", "probes latency").Set(time.Since(started).Nanoseconds()) diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go index 98e1288fb23..607192b9c0c 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go +++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go @@ -60,11 +60,13 @@ func (names MetricNames) Unique() MetricNames { } const ( - DefaultMetricName MetricName = "default" - LagMetricName MetricName = "lag" - ThreadsRunningMetricName MetricName = "threads_running" - CustomMetricName MetricName = "custom" - LoadAvgMetricName MetricName = "loadavg" + DefaultMetricName MetricName = "default" + LagMetricName MetricName = "lag" + ThreadsRunningMetricName MetricName = "threads_running" + CustomMetricName MetricName = "custom" + LoadAvgMetricName MetricName = "loadavg" + MysqldLoadAvgMetricName MetricName = "mysqld-loadavg" + MysqldDatadirUsedRatioMetricName MetricName = "mysqld-datadir-used-ratio" ) func (metric MetricName) DefaultScope() Scope { diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go index 9867ca18db3..ffd7f674cc2 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go +++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go @@ -21,6 +21,9 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "vitess.io/vitess/go/textutil" ) func TestAggregateName(t *testing.T) { @@ -238,4 +241,25 @@ func TestKnownMetricNames(t *testing.T) { assert.Contains(t, KnownMetricNames, LoadAvgMetricName) assert.Contains(t, KnownMetricNames, CustomMetricName) assert.Contains(t, KnownMetricNames, DefaultMetricName) + assert.Contains(t, KnownMetricNames, MysqldLoadAvgMetricName) + assert.Contains(t, KnownMetricNames, MysqldDatadirUsedRatioMetricName) +} + +func TestSingleWordCamelKnownMetricNames(t *testing.T) { + expectCases := map[MetricName]string{ + LagMetricName: "Lag", + ThreadsRunningMetricName: "ThreadsRunning", + LoadAvgMetricName: "Loadavg", + CustomMetricName: "Custom", + DefaultMetricName: "Default", + MysqldLoadAvgMetricName: "MysqldLoadavg", + MysqldDatadirUsedRatioMetricName: "MysqldDatadirUsedRatio", + } + for _, metricName := range KnownMetricNames { + t.Run(metricName.String(), func(t *testing.T) { + expect, ok := expectCases[metricName] + require.True(t, ok) + assert.Equal(t, expect, textutil.PascalCase(metricName.String())) + }) + } } diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric.go index 220dfa6bf60..88fbe2bdd13 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric.go @@ -21,15 +21,24 @@ import ( "fmt" "strconv" + "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" + "vitess.io/vitess/go/vt/vttablet/tmclient" ) +type SelfMetricReadParams struct { + Throttler metricsPublisher + Conn *connpool.Conn + TmClient tmclient.TabletManagerClient + TabletInfo *topo.TabletInfo +} + type SelfMetric interface { Name() MetricName DefaultScope() Scope DefaultThreshold() float64 RequiresConn() bool - Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric + Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric } var ( diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go index 585e63ea285..88f789e5dcd 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_custom_query.go @@ -18,8 +18,6 @@ package base import ( "context" - - "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" ) var _ SelfMetric = registerSelfMetric(&CustomQuerySelfMetric{}) @@ -43,6 +41,6 @@ func (m *CustomQuerySelfMetric) RequiresConn() bool { return true } -func (m *CustomQuerySelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric { - return ReadSelfMySQLThrottleMetric(ctx, conn, throttler.GetCustomMetricsQuery()) +func (m *CustomQuerySelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + return ReadSelfMySQLThrottleMetric(ctx, params.Conn, params.Throttler.GetCustomMetricsQuery()) } diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go index 8bce295da7c..97309fa6ea9 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_default.go @@ -19,8 +19,6 @@ package base import ( "context" "fmt" - - "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" ) var _ SelfMetric = registerSelfMetric(&DefaultSelfMetric{}) @@ -44,7 +42,7 @@ func (m *DefaultSelfMetric) RequiresConn() bool { return false } -func (m *DefaultSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric { +func (m *DefaultSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { return &ThrottleMetric{ Err: fmt.Errorf("unexpected direct call to DefaultSelfMetric.Read"), } diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go index dc25ee5622a..3d0e4beebe1 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_lag.go @@ -23,7 +23,6 @@ import ( "vitess.io/vitess/go/constants/sidecar" "vitess.io/vitess/go/vt/sqlparser" - "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" ) var ( @@ -65,6 +64,6 @@ func (m *LagSelfMetric) RequiresConn() bool { return true } -func (m *LagSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric { - return ReadSelfMySQLThrottleMetric(ctx, conn, m.GetQuery()) +func (m *LagSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + return ReadSelfMySQLThrottleMetric(ctx, params.Conn, m.GetQuery()) } diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go index 40a2878421a..2d880169020 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_loadavg.go @@ -18,20 +18,16 @@ package base import ( "context" - "fmt" - "os" "runtime" - "strconv" - "strings" + "sync/atomic" + "time" - "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" + "vitess.io/vitess/go/osutil" ) var ( - loadavgOnlyAvailableOnLinuxMetric = &ThrottleMetric{ - Scope: SelfScope, - Err: fmt.Errorf("loadavg metric is only available on Linux"), - } + cachedLoadAvgMetric atomic.Pointer[ThrottleMetric] + loadAvgCacheDuration = 1 * time.Second ) var _ SelfMetric = registerSelfMetric(&LoadAvgSelfMetric{}) @@ -55,27 +51,26 @@ func (m *LoadAvgSelfMetric) RequiresConn() bool { return false } -func (m *LoadAvgSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric { - if runtime.GOOS != "linux" { - return loadavgOnlyAvailableOnLinuxMetric +func (m *LoadAvgSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + // This function will be called sequentially, and therefore does not need strong mutex protection. Still, we use atomics + // to ensure correctness in case an external goroutine tries to read the metric concurrently. + metric := cachedLoadAvgMetric.Load() + if metric != nil { + return metric } - metric := &ThrottleMetric{ + metric = &ThrottleMetric{ Scope: SelfScope, } - { - content, err := os.ReadFile("/proc/loadavg") - if err != nil { - return metric.WithError(err) - } - fields := strings.Fields(string(content)) - if len(fields) == 0 { - return metric.WithError(fmt.Errorf("unexpected /proc/loadavg content")) - } - loadAvg, err := strconv.ParseFloat(fields[0], 64) - if err != nil { - return metric.WithError(err) - } - metric.Value = loadAvg / float64(runtime.NumCPU()) + val, err := osutil.LoadAvg() + if err != nil { + return metric.WithError(err) } + metric.Value = val / float64(runtime.NumCPU()) + + cachedLoadAvgMetric.Store(metric) + time.AfterFunc(loadAvgCacheDuration, func() { + cachedLoadAvgMetric.Store(nil) + }) + return metric } diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go new file mode 100644 index 00000000000..321837d86b4 --- /dev/null +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld.go @@ -0,0 +1,156 @@ +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package base + +import ( + "context" + "errors" + "fmt" + "sync/atomic" + "time" + + "vitess.io/vitess/go/timer" + + tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata" +) + +var ( + mysqlHostMetricsRpcTimeout = 5 * time.Second + mysqlHostMetricsRateLimit = 10 * time.Second + mysqlHostMetricsRateLimiter atomic.Pointer[timer.RateLimiter] + lastMySQLHostMetricsResponse atomic.Pointer[tabletmanagerdatapb.MysqlHostMetricsResponse] +) + +// getMysqlMetricsRateLimiter returns a rate limiter that is active until the given context is cancelled. +// This function will be called sequentially, but nonetheless it offers _some_ concurrent safety. Namely, +// that a created rate limiter is guaranteed to be cleaned up +func getMysqlMetricsRateLimiter(ctx context.Context, rateLimit time.Duration) *timer.RateLimiter { + rateLimiter := mysqlHostMetricsRateLimiter.Load() + if rateLimiter == nil { + rateLimiter = timer.NewRateLimiter(rateLimit) + go func() { + defer mysqlHostMetricsRateLimiter.Store(nil) + defer rateLimiter.Stop() + <-ctx.Done() + }() + mysqlHostMetricsRateLimiter.Store(rateLimiter) + } + return rateLimiter +} + +// readMysqlHostMetrics reads MySQL host metrics sporadically from the tablet manager (which in turn reads +// them from mysql deamon). The metrics are then cached, whether successful or not. +// This idea is that is is very wasteful to read these metrics for every single query. E.g. right now the throttler +// can issue 4 reads per second, which is wasteful to go through two RPCs to get the disk space usage for example. Even the load +// average on the MySQL server is not that susceptible to change. +func readMysqlHostMetrics(ctx context.Context, params *SelfMetricReadParams) error { + if params.TmClient == nil { + return fmt.Errorf("tmClient is nil") + } + if params.TabletInfo == nil { + return fmt.Errorf("tabletInfo is nil") + } + rateLimiter := getMysqlMetricsRateLimiter(ctx, mysqlHostMetricsRateLimit) + err := rateLimiter.Do(func() error { + ctx, cancel := context.WithTimeout(ctx, mysqlHostMetricsRpcTimeout) + defer cancel() + + resp, err := params.TmClient.MysqlHostMetrics(ctx, params.TabletInfo.Tablet, &tabletmanagerdatapb.MysqlHostMetricsRequest{}) + if err != nil { + return err + } + lastMySQLHostMetricsResponse.Store(resp) + return nil + }) + return err +} + +// getMysqlHostMetric gets a metric from the last read MySQL host metrics. The metric will either be directly read from +// tablet manager (which then reads it from the mysql deamon), or from the cache. +func getMysqlHostMetric(ctx context.Context, params *SelfMetricReadParams, mysqlHostMetricName string) *ThrottleMetric { + metric := &ThrottleMetric{ + Scope: SelfScope, + } + if err := readMysqlHostMetrics(ctx, params); err != nil { + return metric.WithError(err) + } + resp := lastMySQLHostMetricsResponse.Load() + if resp == nil { + return metric.WithError(ErrNoResultYet) + } + mysqlMetric := resp.HostMetrics.Metrics[mysqlHostMetricName] + if mysqlMetric == nil { + return metric.WithError(ErrNoSuchMetric) + } + metric.Value = mysqlMetric.Value + if mysqlMetric.Error != nil { + metric.Err = errors.New(mysqlMetric.Error.Message) + } + return metric +} + +var _ SelfMetric = registerSelfMetric(&MysqldLoadAvgSelfMetric{}) +var _ SelfMetric = registerSelfMetric(&MysqldDatadirUsedRatioSelfMetric{}) + +// MysqldLoadAvgSelfMetric stands for the load average per cpu, on the MySQL host. +type MysqldLoadAvgSelfMetric struct { +} + +func (m *MysqldLoadAvgSelfMetric) Name() MetricName { + return MysqldLoadAvgMetricName +} + +func (m *MysqldLoadAvgSelfMetric) DefaultScope() Scope { + return SelfScope +} + +func (m *MysqldLoadAvgSelfMetric) DefaultThreshold() float64 { + return 1.0 +} + +func (m *MysqldLoadAvgSelfMetric) RequiresConn() bool { + return false +} + +func (m *MysqldLoadAvgSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + return getMysqlHostMetric(ctx, params, "loadavg") +} + +// MysqldDatadirUsedRatioSelfMetric stands for the disk space usage of the mount where MySQL's datadir is located. +// Range: 0.0 (empty) - 1.0 (full) +type MysqldDatadirUsedRatioSelfMetric struct { +} + +func (m *MysqldDatadirUsedRatioSelfMetric) Name() MetricName { + return MysqldDatadirUsedRatioMetricName +} + +func (m *MysqldDatadirUsedRatioSelfMetric) DefaultScope() Scope { + return SelfScope +} + +func (m *MysqldDatadirUsedRatioSelfMetric) DefaultThreshold() float64 { + return 0.98 +} + +func (m *MysqldDatadirUsedRatioSelfMetric) RequiresConn() bool { + return false +} + +func (m *MysqldDatadirUsedRatioSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + return getMysqlHostMetric(ctx, params, "datadir-used-ratio") +} diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go new file mode 100644 index 00000000000..39d3f3f5ec2 --- /dev/null +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_mysqld_test.go @@ -0,0 +1,72 @@ +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package base + +import ( + "context" + "fmt" + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestGetMysqlMetricsRateLimiter(t *testing.T) { + rateLimit := 10 * time.Millisecond + for i := range 3 { + testName := fmt.Sprintf("iteration %d", i) + t.Run(testName, func(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + { + rateLimiter := mysqlHostMetricsRateLimiter.Load() + assert.Nil(t, rateLimiter) + } + rateLimiter := getMysqlMetricsRateLimiter(ctx, rateLimit) + assert.NotNil(t, rateLimiter) + for range 5 { + r := getMysqlMetricsRateLimiter(ctx, rateLimit) + // Returning the same rate limiter + assert.Equal(t, rateLimiter, r) + } + val := 0 + incr := func() error { + val++ + return nil + } + for range 10 { + rateLimiter.Do(incr) + time.Sleep(2 * rateLimit) + } + assert.EqualValues(t, 10, val) + cancel() + // There can be a race condition where the rate limiter still emits one final tick after the context is cancelled. + // So we wait enough time to ensure that tick is "wasted". + time.Sleep(2 * rateLimit) + // Now that the rate limited was stopped (we invoked `cancel()`), its `Do()` should not invoke the function anymore. + for range 7 { + rateLimiter.Do(incr) + time.Sleep(time.Millisecond) + } + assert.EqualValues(t, 10, val) // Same "10" value as before. + { + rateLimiter := mysqlHostMetricsRateLimiter.Load() + assert.Nil(t, rateLimiter) + } + }) + } +} diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go index 08f7d408d1c..cb59547a768 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_threads_running.go @@ -18,8 +18,6 @@ package base import ( "context" - - "vitess.io/vitess/go/vt/vttablet/tabletserver/connpool" ) var ( @@ -47,6 +45,6 @@ func (m *ThreadsRunningSelfMetric) RequiresConn() bool { return true } -func (m *ThreadsRunningSelfMetric) Read(ctx context.Context, throttler ThrottlerMetricsPublisher, conn *connpool.Conn) *ThrottleMetric { - return ReadSelfMySQLThrottleMetric(ctx, conn, threadsRunningMetricQuery) +func (m *ThreadsRunningSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + return ReadSelfMySQLThrottleMetric(ctx, params.Conn, threadsRunningMetricQuery) } diff --git a/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go b/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go index 1d2d4d0652c..10020af27e6 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go +++ b/go/vt/vttablet/tabletserver/throttle/base/throttler_metrics_publisher.go @@ -16,8 +16,8 @@ limitations under the License. package base -// ThrottlerMetricsPublisher is implemented by throttler.Throttler and is used by SelfMetric +// metricsPublisher is implemented by throttler.Throttler and is used by SelfMetric // implementations to query the throttler. -type ThrottlerMetricsPublisher interface { +type metricsPublisher interface { GetCustomMetricsQuery() string } diff --git a/go/vt/vttablet/tabletserver/throttle/check.go b/go/vt/vttablet/tabletserver/throttle/check.go index ccdfcb2ce23..d7f43d85e9d 100644 --- a/go/vt/vttablet/tabletserver/throttle/check.go +++ b/go/vt/vttablet/tabletserver/throttle/check.go @@ -188,9 +188,9 @@ func (check *ThrottlerCheck) Check(ctx context.Context, appName string, scope ba // Out of abundance of caution, we will protect against such a scenario. return } - stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sTotal", textutil.SingleWordCamel(metricScope.String()), textutil.SingleWordCamel(metricName.String())), "").Add(1) + stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sTotal", textutil.PascalCase(metricScope.String()), textutil.PascalCase(metricName.String())), "").Add(1) if !metricCheckResult.IsOK() { - stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sError", textutil.SingleWordCamel(metricScope.String()), textutil.SingleWordCamel(metricName.String())), "").Add(1) + stats.GetOrNewCounter(fmt.Sprintf("ThrottlerCheck%s%sError", textutil.PascalCase(metricScope.String()), textutil.PascalCase(metricName.String())), "").Add(1) } }(metricCheckResult) } @@ -249,7 +249,7 @@ func (check *ThrottlerCheck) localCheck(ctx context.Context, aggregatedMetricNam check.throttler.markMetricHealthy(aggregatedMetricName) } if timeSinceHealthy, found := check.throttler.timeSinceMetricHealthy(aggregatedMetricName); found { - go stats.GetOrNewGauge(fmt.Sprintf("ThrottlerCheck%sSecondsSinceHealthy", textutil.SingleWordCamel(scope.String())), fmt.Sprintf("seconds since last healthy check for %v", scope)).Set(int64(timeSinceHealthy.Seconds())) + go stats.GetOrNewGauge(fmt.Sprintf("ThrottlerCheck%sSecondsSinceHealthy", textutil.PascalCase(scope.String())), fmt.Sprintf("seconds since last healthy check for %v", scope)).Set(int64(timeSinceHealthy.Seconds())) } return checkResult @@ -261,7 +261,7 @@ func (check *ThrottlerCheck) reportAggregated(aggregatedMetricName string, metri return } if value, err := metricResult.Get(); err == nil { - stats.GetOrNewGaugeFloat64(fmt.Sprintf("ThrottlerAggregated%s%s", textutil.SingleWordCamel(scope.String()), textutil.SingleWordCamel(metricName.String())), fmt.Sprintf("aggregated value for %v", scope)).Set(value) + stats.GetOrNewGaugeFloat64(fmt.Sprintf("ThrottlerAggregated%s%s", textutil.PascalCase(scope.String()), textutil.PascalCase(metricName.String())), fmt.Sprintf("aggregated value for %v", scope)).Set(value) } } diff --git a/go/vt/vttablet/tabletserver/throttle/throttler.go b/go/vt/vttablet/tabletserver/throttle/throttler.go index af7f59abb7e..839ba9d43b8 100644 --- a/go/vt/vttablet/tabletserver/throttle/throttler.go +++ b/go/vt/vttablet/tabletserver/throttle/throttler.go @@ -95,7 +95,6 @@ const ( DefaultThrottleRatio = 1.0 defaultReplicationLagQuery = "select unix_timestamp(now(6))-max(ts/1000000000) as replication_lag from %s.heartbeat" - threadsRunningQuery = "show global status like 'threads_running'" inventoryPrefix = "inventory/" throttlerConfigPrefix = "config/" @@ -137,6 +136,7 @@ type Throttler struct { keyspace string shard string tabletAlias *topodatapb.TabletAlias + tabletInfo atomic.Pointer[topo.TabletInfo] check *ThrottlerCheck isEnabled atomic.Bool @@ -190,7 +190,7 @@ type Throttler struct { cancelEnableContext context.CancelFunc throttledAppsMutex sync.Mutex - readSelfThrottleMetrics func(context.Context) base.ThrottleMetrics // overwritten by unit test + readSelfThrottleMetrics func(context.Context, tmclient.TabletManagerClient) base.ThrottleMetrics // overwritten by unit test } // ThrottlerStatus published some status values from the throttler @@ -262,8 +262,8 @@ func NewThrottler(env tabletenv.Env, srvTopoServer srvtopo.Server, ts *topo.Serv } throttler.StoreMetricsThreshold(base.RegisteredSelfMetrics[base.LagMetricName].DefaultThreshold()) - throttler.readSelfThrottleMetrics = func(ctx context.Context) base.ThrottleMetrics { - return throttler.readSelfThrottleMetricsInternal(ctx) + throttler.readSelfThrottleMetrics = func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics { + return throttler.readSelfThrottleMetricsInternal(ctx, tmClient) } return throttler } @@ -338,6 +338,15 @@ func (throttler *Throttler) initConfig() { // readThrottlerConfig proactively reads the throttler's config from SrvKeyspace in local topo func (throttler *Throttler) readThrottlerConfig(ctx context.Context) (*topodatapb.ThrottlerConfig, error) { + // since we're reading from topo, let's seize this opportunity to read table info as well + if throttler.tabletInfo.Load() == nil { + if ti, err := throttler.ts.GetTablet(ctx, throttler.tabletAlias); err == nil { + throttler.tabletInfo.Store(ti) + } else { + log.Errorf("Throttler: error reading tablet info: %v", err) + } + } + srvks, err := throttler.ts.GetSrvKeyspace(ctx, throttler.tabletAlias.Cell, throttler.keyspace) if err != nil { return nil, err @@ -804,7 +813,7 @@ func (throttler *Throttler) Operate(ctx context.Context, wg *sync.WaitGroup) { if throttler.IsOpen() { // frequent // Always collect self metrics: - throttler.collectSelfMetrics(ctx) + throttler.collectSelfMetrics(ctx, tmClient) if !throttler.isDormant() { throttler.collectShardMetrics(ctx, tmClient) } @@ -869,7 +878,7 @@ func (throttler *Throttler) Operate(ctx context.Context, wg *sync.WaitGroup) { }() } -func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClient tmclient.TabletManagerClient, probe *base.Probe) (probeFunc func(context.Context) base.ThrottleMetrics) { +func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, probe *base.Probe) (probeFunc func(context.Context, tmclient.TabletManagerClient) base.ThrottleMetrics) { metricsWithError := func(err error) base.ThrottleMetrics { metrics := base.ThrottleMetrics{} for _, metricName := range base.KnownMetricNames { @@ -882,7 +891,7 @@ func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClie } return metrics } - return func(ctx context.Context) base.ThrottleMetrics { + return func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics { // Some reasonable timeout, to ensure we release connections even if they're hanging (otherwise grpc-go keeps polling those connections forever) ctx, cancel := context.WithTimeout(ctx, 4*activeCollectInterval) defer cancel() @@ -940,7 +949,7 @@ func (throttler *Throttler) generateTabletProbeFunction(scope base.Scope, tmClie // readSelfThrottleMetricsInternal rreads all registsred self metrics on this tablet (or backend MySQL server). // This is the actual place where metrics are read, to be later aggregated and/or propagated to other tablets. -func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context) base.ThrottleMetrics { +func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics { result := make(base.ThrottleMetrics, len(base.RegisteredSelfMetrics)) writeMetric := func(metric *base.ThrottleMetric) { select { @@ -950,15 +959,20 @@ func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context) } } readMetric := func(selfMetric base.SelfMetric) *base.ThrottleMetric { - if !selfMetric.RequiresConn() { - return selfMetric.Read(ctx, throttler, nil) + params := &base.SelfMetricReadParams{ + Throttler: throttler, + TmClient: tmClient, + TabletInfo: throttler.tabletInfo.Load(), } - conn, err := throttler.pool.Get(ctx, nil) - if err != nil { - return &base.ThrottleMetric{Err: err} + if selfMetric.RequiresConn() { + conn, err := throttler.pool.Get(ctx, nil) + if err != nil { + return &base.ThrottleMetric{Err: err} + } + defer conn.Recycle() + params.Conn = conn.Conn } - defer conn.Recycle() - return selfMetric.Read(ctx, throttler, conn.Conn) + return selfMetric.Read(ctx, params) } for metricName, selfMetric := range base.RegisteredSelfMetrics { if metricName == base.DefaultMetricName { @@ -975,7 +989,7 @@ func (throttler *Throttler) readSelfThrottleMetricsInternal(ctx context.Context) return result } -func (throttler *Throttler) collectSelfMetrics(ctx context.Context) { +func (throttler *Throttler) collectSelfMetrics(ctx context.Context, tmClient tmclient.TabletManagerClient) { probe := throttler.inventory.ClustersProbes[throttler.tabletAliasString()] if probe == nil { // probe not created yet @@ -990,7 +1004,7 @@ func (throttler *Throttler) collectSelfMetrics(ctx context.Context) { defer atomic.StoreInt64(&probe.QueryInProgress, 0) // Throttler is probing its own tablet's metrics: - _ = base.ReadThrottleMetrics(ctx, probe, throttler.readSelfThrottleMetrics) + _ = base.ReadThrottleMetrics(ctx, probe, tmClient, throttler.readSelfThrottleMetrics) }() } @@ -1011,9 +1025,9 @@ func (throttler *Throttler) collectShardMetrics(ctx context.Context, tmClient tm defer atomic.StoreInt64(&probe.QueryInProgress, 0) // Throttler probing other tablets: - throttleMetricFunc := throttler.generateTabletProbeFunction(base.ShardScope, tmClient, probe) + throttleMetricFunc := throttler.generateTabletProbeFunction(base.ShardScope, probe) - throttleMetrics := base.ReadThrottleMetrics(ctx, probe, throttleMetricFunc) + throttleMetrics := base.ReadThrottleMetrics(ctx, probe, tmClient, throttleMetricFunc) for _, metric := range throttleMetrics { select { case <-ctx.Done(): diff --git a/go/vt/vttablet/tabletserver/throttle/throttler_test.go b/go/vt/vttablet/tabletserver/throttle/throttler_test.go index fd7921899da..0a1162b02d3 100644 --- a/go/vt/vttablet/tabletserver/throttle/throttler_test.go +++ b/go/vt/vttablet/tabletserver/throttle/throttler_test.go @@ -71,6 +71,18 @@ var ( Value: 2.718, Err: nil, }, + base.MysqldLoadAvgMetricName: &base.ThrottleMetric{ + Scope: base.SelfScope, + Alias: "", + Value: 0.3311, + Err: nil, + }, + base.MysqldDatadirUsedRatioMetricName: &base.ThrottleMetric{ + Scope: base.SelfScope, + Alias: "", + Value: 0.85, + Err: nil, + }, } replicaMetrics = map[string]*MetricResult{ base.LagMetricName.String(): { @@ -93,6 +105,16 @@ var ( ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, Value: 5.1, }, + base.MysqldLoadAvgMetricName.String(): { + StatusCode: http.StatusOK, + ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, + Value: 0.2211, + }, + base.MysqldDatadirUsedRatioMetricName.String(): { + StatusCode: http.StatusOK, + ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, + Value: 0.87, + }, } nonPrimaryTabletType atomic.Int32 ) @@ -283,7 +305,7 @@ func newTestThrottler() *Throttler { throttler.recentCheckDormantDiff = int64(throttler.dormantPeriod / recentCheckRateLimiterInterval) throttler.recentCheckDiff = int64(3 * time.Second / recentCheckRateLimiterInterval) - throttler.readSelfThrottleMetrics = func(ctx context.Context) base.ThrottleMetrics { + throttler.readSelfThrottleMetrics = func(ctx context.Context, tmClient tmclient.TabletManagerClient) base.ThrottleMetrics { for _, metric := range selfMetrics { go func() { select { @@ -1827,10 +1849,12 @@ func TestChecks(t *testing.T) { assert.Equal(t, testAppName.String(), checkResult.AppName) assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics)) - assert.EqualValues(t, 0.3, checkResult.Metrics[base.LagMetricName.String()].Value) // self lag value, because flags.Scope is set - assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set - assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set - assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 0.3, checkResult.Metrics[base.LagMetricName.String()].Value) // self lag value, because flags.Scope is set + assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because flags.Scope is set for _, metric := range checkResult.Metrics { assert.EqualValues(t, base.SelfScope.String(), metric.Scope) } @@ -1886,10 +1910,12 @@ func TestChecks(t *testing.T) { assert.Equal(t, testAppName.String(), checkResult.AppName) assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics)) - assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because flags.Scope is set - assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set - assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set - assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because flags.Scope is set + assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, because flags.Scope is set for _, metric := range checkResult.Metrics { assert.EqualValues(t, base.ShardScope.String(), metric.Scope) } @@ -1918,14 +1944,18 @@ func TestChecks(t *testing.T) { assert.ErrorIs(t, checkResult.Error, base.ErrThresholdExceeded) assert.Equal(t, len(base.KnownMetricNames), len(checkResult.Metrics)) - assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because "shard" is the default scope for lag - assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running - assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom - assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg + assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, because "shard" is the default scope for lag + assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running + assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom + assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg + assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg + assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because "self" is the default scope for loadavg assert.EqualValues(t, base.ShardScope.String(), checkResult.Metrics[base.LagMetricName.String()].Scope) assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.ThreadsRunningMetricName.String()].Scope) assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.CustomMetricName.String()].Scope) assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.LoadAvgMetricName.String()].Scope) + assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Scope) + assert.EqualValues(t, base.SelfScope.String(), checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Scope) }) }) t.Run("checks, defined scope masks explicit scope metrics", func(t *testing.T) { @@ -1939,6 +1969,8 @@ func TestChecks(t *testing.T) { base.MetricName("self/threads_running"), base.MetricName("custom"), base.MetricName("shard/loadavg"), + base.MetricName("shard/mysqld-loadavg"), + base.MetricName("self/mysqld-datadir-used-ratio"), base.MetricName("default"), } checkResult := throttler.Check(ctx, testAppName.String(), metricNames, flags) @@ -1950,10 +1982,12 @@ func TestChecks(t *testing.T) { assert.ErrorIs(t, checkResult.Error, base.ErrThresholdExceeded) assert.Equal(t, len(metricNames), len(checkResult.Metrics)) - assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, even though scope name is in metric name - assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name - assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set - assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set + assert.EqualValues(t, 0.9, checkResult.Metrics[base.LagMetricName.String()].Value) // shard lag value, even though scope name is in metric name + assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name + assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set + assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set + assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set + assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, even though scope name is in metric name for _, metric := range checkResult.Metrics { assert.EqualValues(t, base.ShardScope.String(), metric.Scope) } @@ -2222,8 +2256,12 @@ func TestReplica(t *testing.T) { base.DefaultMetricName: assert.Error(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold) assert.ErrorIs(t, metricResult.Error, base.ErrThresholdExceeded) - case base.ThreadsRunningMetricName: + case base.ThreadsRunningMetricName, + base.MysqldLoadAvgMetricName, + base.MysqldDatadirUsedRatioMetricName: assert.NoError(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold) + default: + assert.Fail(t, "unexpected metric", "name=%v", metricName) } } }) From c5d0eccd8735719f94fbae147cedddf6b53ad044 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Wed, 20 Nov 2024 09:48:26 +0200 Subject: [PATCH 11/22] Online DDL: dynamic cut-over threshold via `ALTER VITESS_MIGRATION ... CUTOVER_THRESHOLD ...` command (#17126) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- .../scheduler/onlineddl_scheduler_test.go | 29 +- go/test/endtoend/onlineddl/vtgate_util.go | 10 + go/vt/schema/online_ddl.go | 2 + .../schema/onlineddl/schema_migrations.sql | 1 + go/vt/sqlparser/ast.go | 11 +- go/vt/sqlparser/ast_equals.go | 1 + go/vt/sqlparser/ast_format.go | 5 + go/vt/sqlparser/ast_format_fast.go | 7 + go/vt/sqlparser/cached_size.go | 4 +- go/vt/sqlparser/constants.go | 1 + go/vt/sqlparser/keywords.go | 1 + go/vt/sqlparser/parse_test.go | 2 + go/vt/sqlparser/sql.go | 18434 ++++++++-------- go/vt/sqlparser/sql.y | 11 +- go/vt/vttablet/onlineddl/executor.go | 109 +- go/vt/vttablet/onlineddl/executor_test.go | 57 + go/vt/vttablet/onlineddl/schema.go | 9 +- go/vt/vttablet/tabletserver/query_executor.go | 2 + 18 files changed, 9469 insertions(+), 9227 deletions(-) diff --git a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go index 7b8180e80fb..53a1c8137fd 100644 --- a/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go +++ b/go/test/endtoend/onlineddl/scheduler/onlineddl_scheduler_test.go @@ -484,7 +484,7 @@ func testScheduler(t *testing.T) { testTableSequentialTimes(t, t1uuid, t2uuid) }) t.Run("Postpone launch CREATE", func(t *testing.T) { - t1uuid = testOnlineDDLStatement(t, createParams(createT1IfNotExistsStatement, ddlStrategy+" --postpone-launch", "vtgate", "", "", true)) // skip wait + t1uuid = testOnlineDDLStatement(t, createParams(createT1IfNotExistsStatement, ddlStrategy+" --postpone-launch --cut-over-threshold=14s", "vtgate", "", "", true)) // skip wait time.Sleep(2 * time.Second) rs := onlineddl.ReadMigrations(t, &vtParams, t1uuid) require.NotNil(t, rs) @@ -501,6 +501,10 @@ func testScheduler(t *testing.T) { for _, row := range rs.Named().Rows { postponeLaunch := row.AsInt64("postpone_launch", 0) assert.Equal(t, int64(0), postponeLaunch) + + cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0) + // Threshold supplied in DDL strategy + assert.EqualValues(t, 14, cutOverThresholdSeconds) } status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) fmt.Printf("# Migration status (for debug purposes): <%s>\n", status) @@ -580,6 +584,9 @@ func testScheduler(t *testing.T) { assert.Equal(t, int64(1), postponeCompletion) } }) + t.Run("set cut-over threshold", func(t *testing.T) { + onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, t1uuid, 17700*time.Millisecond, "") + }) t.Run("complete", func(t *testing.T) { onlineddl.CheckCompleteMigration(t, &vtParams, shards, t1uuid, true) status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, t1uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) @@ -592,6 +599,11 @@ func testScheduler(t *testing.T) { for _, row := range rs.Named().Rows { postponeCompletion := row.AsInt64("postpone_completion", 0) assert.Equal(t, int64(0), postponeCompletion) + + cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0) + // Expect 17800*time.Millisecond to be truncated to 17 seconds + assert.EqualValues(t, 17, cutOverThresholdSeconds) + assert.False(t, row["shadow_analyzed_timestamp"].IsNull()) } }) @@ -1062,6 +1074,10 @@ func testScheduler(t *testing.T) { for _, row := range rs.Named().Rows { retries := row.AsInt64("retries", 0) assert.Greater(t, retries, int64(0)) + + cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0) + // No explicit cut-over threshold given. Expect the default 10s + assert.EqualValues(t, 10, cutOverThresholdSeconds) } }) }) @@ -1088,6 +1104,13 @@ func testScheduler(t *testing.T) { executedUUID := testOnlineDDLStatement(t, createParams(trivialAlterT1Statement, ddlStrategy, "vtctl", "", "", true)) // skip wait require.Equal(t, uuid, executedUUID) + t.Run("set low cut-over threshold", func(t *testing.T) { + onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, uuid, 2*time.Second, "cut-over min value") + }) + t.Run("set high cut-over threshold", func(t *testing.T) { + onlineddl.CheckSetMigrationCutOverThreshold(t, &vtParams, shards, uuid, 2000*time.Second, "cut-over max value") + }) + // expect it to complete status := onlineddl.WaitForMigrationStatus(t, &vtParams, shards, uuid, normalWaitTime, schema.OnlineDDLStatusComplete, schema.OnlineDDLStatusFailed) fmt.Printf("# Migration status (for debug purposes): <%s>\n", status) @@ -1098,6 +1121,10 @@ func testScheduler(t *testing.T) { for _, row := range rs.Named().Rows { retries := row.AsInt64("retries", 0) assert.Greater(t, retries, int64(0)) + + cutOverThresholdSeconds := row.AsInt64("cutover_threshold_seconds", 0) + // Teh default remains unchanged. + assert.EqualValues(t, 10, cutOverThresholdSeconds) } }) }) diff --git a/go/test/endtoend/onlineddl/vtgate_util.go b/go/test/endtoend/onlineddl/vtgate_util.go index 639b3ce8eb4..ffb6423a346 100644 --- a/go/test/endtoend/onlineddl/vtgate_util.go +++ b/go/test/endtoend/onlineddl/vtgate_util.go @@ -255,6 +255,16 @@ func CheckForceMigrationCutOver(t *testing.T, vtParams *mysql.ConnParams, shards } } +// CheckSetMigrationCutOverThreshold sets the cut-over threshold for a given migration. +func CheckSetMigrationCutOverThreshold(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, threshold time.Duration, expectError string) { + query, err := sqlparser.ParseAndBind("alter vitess_migration %a cutover_threshold %a", + sqltypes.StringBindVariable(uuid), + sqltypes.StringBindVariable(threshold.String()), + ) + require.NoError(t, err) + _ = VtgateExecQuery(t, vtParams, query, expectError) +} + // CheckMigrationStatus verifies that the migration indicated by given UUID has the given expected status func CheckMigrationStatus(t *testing.T, vtParams *mysql.ConnParams, shards []cluster.Shard, uuid string, expectStatuses ...schema.OnlineDDLStatus) bool { ksName := shards[0].PrimaryTablet().VttabletProcess.Keyspace diff --git a/go/vt/schema/online_ddl.go b/go/vt/schema/online_ddl.go index 59363b00889..8de54d98b1e 100644 --- a/go/vt/schema/online_ddl.go +++ b/go/vt/schema/online_ddl.go @@ -24,6 +24,7 @@ import ( "regexp" "strconv" "strings" + "time" vtrpcpb "vitess.io/vitess/go/vt/proto/vtrpc" "vitess.io/vitess/go/vt/sqlparser" @@ -116,6 +117,7 @@ type OnlineDDL struct { Retries int64 `json:"retries,omitempty"` ReadyToComplete int64 `json:"ready_to_complete,omitempty"` WasReadyToComplete int64 `json:"was_ready_to_complete,omitempty"` + CutOverThreshold time.Duration `json:"cutover_threshold,omitempty"` } // ParseOnlineDDLStatement parses the given SQL into a statement and returns the action type of the DDL statement, or error diff --git a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql index e0b4e27b180..91c0323e54b 100644 --- a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql +++ b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql @@ -76,6 +76,7 @@ CREATE TABLE IF NOT EXISTS schema_migrations `removed_foreign_key_names` text NOT NULL, `last_cutover_attempt_timestamp` timestamp NULL DEFAULT NULL, `force_cutover` tinyint unsigned NOT NULL DEFAULT '0', + `cutover_threshold_seconds` int unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `uuid_idx` (`migration_uuid`), KEY `keyspace_shard_idx` (`keyspace`(64), `shard`(64)), diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 3d4f56ef628..92c67d55999 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -491,11 +491,12 @@ type ( // AlterMigration represents a ALTER VITESS_MIGRATION statement AlterMigration struct { - Type AlterMigrationType - UUID string - Expire string - Ratio *Literal - Shards string + Type AlterMigrationType + UUID string + Expire string + Ratio *Literal + Threshold string + Shards string } // AlterTable represents a ALTER TABLE statement. diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 502a4a78d88..c4c0b34c271 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1790,6 +1790,7 @@ func (cmp *Comparator) RefOfAlterMigration(a, b *AlterMigration) bool { } return a.UUID == b.UUID && a.Expire == b.Expire && + a.Threshold == b.Threshold && a.Shards == b.Shards && a.Type == b.Type && cmp.RefOfLiteral(a.Ratio, b.Ratio) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index b9af85d410e..dff17911d8e 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -322,8 +322,13 @@ func (node *AlterMigration) Format(buf *TrackedBuffer) { alterType = "force_cutover" case ForceCutOverAllMigrationType: alterType = "force_cutover all" + case SetCutOverThresholdMigrationType: + alterType = "cutover_threshold" } buf.astPrintf(node, " %#s", alterType) + if node.Threshold != "" { + buf.astPrintf(node, " '%#s'", node.Threshold) + } if node.Expire != "" { buf.astPrintf(node, " expire '%#s'", node.Expire) } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 1950a79a613..9855c70a21d 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -448,9 +448,16 @@ func (node *AlterMigration) FormatFast(buf *TrackedBuffer) { alterType = "force_cutover" case ForceCutOverAllMigrationType: alterType = "force_cutover all" + case SetCutOverThresholdMigrationType: + alterType = "cutover_threshold" } buf.WriteByte(' ') buf.WriteString(alterType) + if node.Threshold != "" { + buf.WriteString(" '") + buf.WriteString(node.Threshold) + buf.WriteByte('\'') + } if node.Expire != "" { buf.WriteString(" expire '") buf.WriteString(node.Expire) diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 9703d189b7a..524291a03b4 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -208,7 +208,7 @@ func (cached *AlterMigration) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(64) + size += int64(80) } // field UUID string size += hack.RuntimeAllocSize(int64(len(cached.UUID))) @@ -216,6 +216,8 @@ func (cached *AlterMigration) CachedSize(alloc bool) int64 { size += hack.RuntimeAllocSize(int64(len(cached.Expire))) // field Ratio *vitess.io/vitess/go/vt/sqlparser.Literal size += cached.Ratio.CachedSize(true) + // field Threshold string + size += hack.RuntimeAllocSize(int64(len(cached.Threshold))) // field Shards string size += hack.RuntimeAllocSize(int64(len(cached.Shards))) return size diff --git a/go/vt/sqlparser/constants.go b/go/vt/sqlparser/constants.go index 1c8f831274c..bdf35a2654d 100644 --- a/go/vt/sqlparser/constants.go +++ b/go/vt/sqlparser/constants.go @@ -915,6 +915,7 @@ const ( UnthrottleAllMigrationType ForceCutOverMigrationType ForceCutOverAllMigrationType + SetCutOverThresholdMigrationType ) // ColumnStorage constants diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index e32d7d0b72a..5c1b881df30 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -205,6 +205,7 @@ var keywords = []keyword{ {"current_timestamp", CURRENT_TIMESTAMP}, {"current_user", CURRENT_USER}, {"cursor", UNUSED}, + {"cutover_threshold", CUTOVER_THRESHOLD}, {"data", DATA}, {"database", DATABASE}, {"databases", DATABASES}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 3a769f05688..d3d5fd469e7 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2482,6 +2482,8 @@ var ( input: "alter vitess_migration force_cutover all", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' force_cutover", + }, { + input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' cutover_threshold '17s'", }, { input: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' FORCE_CUTOVER", output: "alter vitess_migration '9748c3b7_7fdb_11eb_ac2c_f875a4d24e90' force_cutover", diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 682efc9f6ec..befd9b44c3b 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -340,431 +340,432 @@ const CLEANUP = 57647 const THROTTLE = 57648 const UNTHROTTLE = 57649 const FORCE_CUTOVER = 57650 -const EXPIRE = 57651 -const RATIO = 57652 -const VITESS_THROTTLER = 57653 -const BEGIN = 57654 -const START = 57655 -const TRANSACTION = 57656 -const COMMIT = 57657 -const ROLLBACK = 57658 -const SAVEPOINT = 57659 -const RELEASE = 57660 -const WORK = 57661 -const CONSISTENT = 57662 -const SNAPSHOT = 57663 -const UNRESOLVED = 57664 -const TRANSACTIONS = 57665 -const BIT = 57666 -const TINYINT = 57667 -const SMALLINT = 57668 -const MEDIUMINT = 57669 -const INT = 57670 -const INTEGER = 57671 -const BIGINT = 57672 -const INTNUM = 57673 -const REAL = 57674 -const DOUBLE = 57675 -const FLOAT_TYPE = 57676 -const FLOAT4_TYPE = 57677 -const FLOAT8_TYPE = 57678 -const DECIMAL_TYPE = 57679 -const NUMERIC = 57680 -const TIME = 57681 -const TIMESTAMP = 57682 -const DATETIME = 57683 -const YEAR = 57684 -const CHAR = 57685 -const VARCHAR = 57686 -const BOOL = 57687 -const CHARACTER = 57688 -const VARBINARY = 57689 -const NCHAR = 57690 -const TEXT = 57691 -const TINYTEXT = 57692 -const MEDIUMTEXT = 57693 -const LONGTEXT = 57694 -const BLOB = 57695 -const TINYBLOB = 57696 -const MEDIUMBLOB = 57697 -const LONGBLOB = 57698 -const JSON = 57699 -const JSON_SCHEMA_VALID = 57700 -const JSON_SCHEMA_VALIDATION_REPORT = 57701 -const ENUM = 57702 -const GEOMETRY = 57703 -const POINT = 57704 -const LINESTRING = 57705 -const POLYGON = 57706 -const GEOMCOLLECTION = 57707 -const GEOMETRYCOLLECTION = 57708 -const MULTIPOINT = 57709 -const MULTILINESTRING = 57710 -const MULTIPOLYGON = 57711 -const ASCII = 57712 -const UNICODE = 57713 -const VECTOR = 57714 -const NULLX = 57715 -const AUTO_INCREMENT = 57716 -const APPROXNUM = 57717 -const SIGNED = 57718 -const UNSIGNED = 57719 -const ZEROFILL = 57720 -const PURGE = 57721 -const BEFORE = 57722 -const CODE = 57723 -const COLLATION = 57724 -const COLUMNS = 57725 -const DATABASES = 57726 -const ENGINES = 57727 -const EVENT = 57728 -const EXTENDED = 57729 -const FIELDS = 57730 -const FULL = 57731 -const FUNCTION = 57732 -const GTID_EXECUTED = 57733 -const KEYSPACES = 57734 -const OPEN = 57735 -const PLUGINS = 57736 -const PRIVILEGES = 57737 -const PROCESSLIST = 57738 -const SCHEMAS = 57739 -const TABLES = 57740 -const TRIGGERS = 57741 -const USER = 57742 -const VGTID_EXECUTED = 57743 -const VITESS_KEYSPACES = 57744 -const VITESS_METADATA = 57745 -const VITESS_MIGRATIONS = 57746 -const VITESS_REPLICATION_STATUS = 57747 -const VITESS_SHARDS = 57748 -const VITESS_TABLETS = 57749 -const VITESS_TARGET = 57750 -const VSCHEMA = 57751 -const VITESS_THROTTLED_APPS = 57752 -const NAMES = 57753 -const GLOBAL = 57754 -const SESSION = 57755 -const ISOLATION = 57756 -const LEVEL = 57757 -const READ = 57758 -const WRITE = 57759 -const ONLY = 57760 -const REPEATABLE = 57761 -const COMMITTED = 57762 -const UNCOMMITTED = 57763 -const SERIALIZABLE = 57764 -const ADDDATE = 57765 -const CURRENT_TIMESTAMP = 57766 -const DATABASE = 57767 -const CURRENT_DATE = 57768 -const CURDATE = 57769 -const DATE_ADD = 57770 -const DATE_SUB = 57771 -const NOW = 57772 -const SUBDATE = 57773 -const CURTIME = 57774 -const CURRENT_TIME = 57775 -const LOCALTIME = 57776 -const LOCALTIMESTAMP = 57777 -const CURRENT_USER = 57778 -const UTC_DATE = 57779 -const UTC_TIME = 57780 -const UTC_TIMESTAMP = 57781 -const SYSDATE = 57782 -const DAY = 57783 -const DAY_HOUR = 57784 -const DAY_MICROSECOND = 57785 -const DAY_MINUTE = 57786 -const DAY_SECOND = 57787 -const HOUR = 57788 -const HOUR_MICROSECOND = 57789 -const HOUR_MINUTE = 57790 -const HOUR_SECOND = 57791 -const MICROSECOND = 57792 -const MINUTE = 57793 -const MINUTE_MICROSECOND = 57794 -const MINUTE_SECOND = 57795 -const MONTH = 57796 -const QUARTER = 57797 -const SECOND = 57798 -const SECOND_MICROSECOND = 57799 -const YEAR_MONTH = 57800 -const WEEK = 57801 -const SQL_TSI_DAY = 57802 -const SQL_TSI_WEEK = 57803 -const SQL_TSI_HOUR = 57804 -const SQL_TSI_MINUTE = 57805 -const SQL_TSI_MONTH = 57806 -const SQL_TSI_QUARTER = 57807 -const SQL_TSI_SECOND = 57808 -const SQL_TSI_MICROSECOND = 57809 -const SQL_TSI_YEAR = 57810 -const REPLACE = 57811 -const CONVERT = 57812 -const CAST = 57813 -const SUBSTR = 57814 -const SUBSTRING = 57815 -const MID = 57816 -const SEPARATOR = 57817 -const TIMESTAMPADD = 57818 -const TIMESTAMPDIFF = 57819 -const WEIGHT_STRING = 57820 -const LTRIM = 57821 -const RTRIM = 57822 -const TRIM = 57823 -const JSON_ARRAY = 57824 -const JSON_OBJECT = 57825 -const JSON_QUOTE = 57826 -const JSON_DEPTH = 57827 -const JSON_TYPE = 57828 -const JSON_LENGTH = 57829 -const JSON_VALID = 57830 -const JSON_ARRAY_APPEND = 57831 -const JSON_ARRAY_INSERT = 57832 -const JSON_INSERT = 57833 -const JSON_MERGE = 57834 -const JSON_MERGE_PATCH = 57835 -const JSON_MERGE_PRESERVE = 57836 -const JSON_REMOVE = 57837 -const JSON_REPLACE = 57838 -const JSON_SET = 57839 -const JSON_UNQUOTE = 57840 -const COUNT = 57841 -const AVG = 57842 -const MAX = 57843 -const MIN = 57844 -const SUM = 57845 -const GROUP_CONCAT = 57846 -const BIT_AND = 57847 -const BIT_OR = 57848 -const BIT_XOR = 57849 -const STD = 57850 -const STDDEV = 57851 -const STDDEV_POP = 57852 -const STDDEV_SAMP = 57853 -const VAR_POP = 57854 -const VAR_SAMP = 57855 -const VARIANCE = 57856 -const ANY_VALUE = 57857 -const REGEXP_INSTR = 57858 -const REGEXP_LIKE = 57859 -const REGEXP_REPLACE = 57860 -const REGEXP_SUBSTR = 57861 -const ExtractValue = 57862 -const UpdateXML = 57863 -const GET_LOCK = 57864 -const RELEASE_LOCK = 57865 -const RELEASE_ALL_LOCKS = 57866 -const IS_FREE_LOCK = 57867 -const IS_USED_LOCK = 57868 -const LOCATE = 57869 -const POSITION = 57870 -const ST_GeometryCollectionFromText = 57871 -const ST_GeometryFromText = 57872 -const ST_LineStringFromText = 57873 -const ST_MultiLineStringFromText = 57874 -const ST_MultiPointFromText = 57875 -const ST_MultiPolygonFromText = 57876 -const ST_PointFromText = 57877 -const ST_PolygonFromText = 57878 -const ST_GeometryCollectionFromWKB = 57879 -const ST_GeometryFromWKB = 57880 -const ST_LineStringFromWKB = 57881 -const ST_MultiLineStringFromWKB = 57882 -const ST_MultiPointFromWKB = 57883 -const ST_MultiPolygonFromWKB = 57884 -const ST_PointFromWKB = 57885 -const ST_PolygonFromWKB = 57886 -const ST_AsBinary = 57887 -const ST_AsText = 57888 -const ST_Dimension = 57889 -const ST_Envelope = 57890 -const ST_IsSimple = 57891 -const ST_IsEmpty = 57892 -const ST_GeometryType = 57893 -const ST_X = 57894 -const ST_Y = 57895 -const ST_Latitude = 57896 -const ST_Longitude = 57897 -const ST_EndPoint = 57898 -const ST_IsClosed = 57899 -const ST_Length = 57900 -const ST_NumPoints = 57901 -const ST_StartPoint = 57902 -const ST_PointN = 57903 -const ST_Area = 57904 -const ST_Centroid = 57905 -const ST_ExteriorRing = 57906 -const ST_InteriorRingN = 57907 -const ST_NumInteriorRings = 57908 -const ST_NumGeometries = 57909 -const ST_GeometryN = 57910 -const ST_LongFromGeoHash = 57911 -const ST_PointFromGeoHash = 57912 -const ST_LatFromGeoHash = 57913 -const ST_GeoHash = 57914 -const ST_AsGeoJSON = 57915 -const ST_GeomFromGeoJSON = 57916 -const MATCH = 57917 -const AGAINST = 57918 -const BOOLEAN = 57919 -const LANGUAGE = 57920 -const WITH = 57921 -const QUERY = 57922 -const EXPANSION = 57923 -const WITHOUT = 57924 -const VALIDATION = 57925 -const ROLLUP = 57926 -const UNUSED = 57927 -const ARRAY = 57928 -const BYTE = 57929 -const CUME_DIST = 57930 -const DESCRIPTION = 57931 -const DENSE_RANK = 57932 -const EMPTY = 57933 -const EXCEPT = 57934 -const FIRST_VALUE = 57935 -const GROUPING = 57936 -const GROUPS = 57937 -const JSON_TABLE = 57938 -const LAG = 57939 -const LAST_VALUE = 57940 -const LATERAL = 57941 -const LEAD = 57942 -const NTH_VALUE = 57943 -const NTILE = 57944 -const OF = 57945 -const OVER = 57946 -const PERCENT_RANK = 57947 -const RANK = 57948 -const RECURSIVE = 57949 -const ROW_NUMBER = 57950 -const SYSTEM = 57951 -const WINDOW = 57952 -const ACTIVE = 57953 -const ADMIN = 57954 -const AUTOEXTEND_SIZE = 57955 -const BUCKETS = 57956 -const CLONE = 57957 -const COLUMN_FORMAT = 57958 -const COMPONENT = 57959 -const DEFINITION = 57960 -const ENFORCED = 57961 -const ENGINE_ATTRIBUTE = 57962 -const EXCLUDE = 57963 -const FOLLOWING = 57964 -const GET_MASTER_PUBLIC_KEY = 57965 -const HISTOGRAM = 57966 -const HISTORY = 57967 -const INACTIVE = 57968 -const INVISIBLE = 57969 -const LOCKED = 57970 -const MASTER_COMPRESSION_ALGORITHMS = 57971 -const MASTER_PUBLIC_KEY_PATH = 57972 -const MASTER_TLS_CIPHERSUITES = 57973 -const MASTER_ZSTD_COMPRESSION_LEVEL = 57974 -const NESTED = 57975 -const NETWORK_NAMESPACE = 57976 -const NOWAIT = 57977 -const NULLS = 57978 -const OJ = 57979 -const OLD = 57980 -const OPTIONAL = 57981 -const ORDINALITY = 57982 -const ORGANIZATION = 57983 -const OTHERS = 57984 -const PARTIAL = 57985 -const PATH = 57986 -const PERSIST = 57987 -const PERSIST_ONLY = 57988 -const PRECEDING = 57989 -const PRIVILEGE_CHECKS_USER = 57990 -const PROCESS = 57991 -const RANDOM = 57992 -const REFERENCE = 57993 -const REQUIRE_ROW_FORMAT = 57994 -const RESOURCE = 57995 -const RESPECT = 57996 -const RESTART = 57997 -const RETAIN = 57998 -const REUSE = 57999 -const ROLE = 58000 -const SECONDARY = 58001 -const SECONDARY_ENGINE = 58002 -const SECONDARY_ENGINE_ATTRIBUTE = 58003 -const SECONDARY_LOAD = 58004 -const SECONDARY_UNLOAD = 58005 -const SIMPLE = 58006 -const SKIP = 58007 -const SRID = 58008 -const THREAD_PRIORITY = 58009 -const TIES = 58010 -const UNBOUNDED = 58011 -const VCPU = 58012 -const VISIBLE = 58013 -const RETURNING = 58014 -const FORMAT_BYTES = 58015 -const FORMAT_PICO_TIME = 58016 -const PS_CURRENT_THREAD_ID = 58017 -const PS_THREAD_ID = 58018 -const GTID_SUBSET = 58019 -const GTID_SUBTRACT = 58020 -const WAIT_FOR_EXECUTED_GTID_SET = 58021 -const WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 58022 -const FORMAT = 58023 -const TREE = 58024 -const VITESS = 58025 -const TRADITIONAL = 58026 -const VTEXPLAIN = 58027 -const VEXPLAIN = 58028 -const PLAN = 58029 -const LOCAL = 58030 -const LOW_PRIORITY = 58031 -const NO_WRITE_TO_BINLOG = 58032 -const LOGS = 58033 -const ERROR = 58034 -const GENERAL = 58035 -const HOSTS = 58036 -const OPTIMIZER_COSTS = 58037 -const USER_RESOURCES = 58038 -const SLOW = 58039 -const CHANNEL = 58040 -const RELAY = 58041 -const EXPORT = 58042 -const CURRENT = 58043 -const ROW = 58044 -const ROWS = 58045 -const AVG_ROW_LENGTH = 58046 -const CONNECTION = 58047 -const CHECKSUM = 58048 -const DELAY_KEY_WRITE = 58049 -const ENCRYPTION = 58050 -const ENGINE = 58051 -const INSERT_METHOD = 58052 -const MAX_ROWS = 58053 -const MIN_ROWS = 58054 -const PACK_KEYS = 58055 -const PASSWORD = 58056 -const FIXED = 58057 -const DYNAMIC = 58058 -const COMPRESSED = 58059 -const REDUNDANT = 58060 -const COMPACT = 58061 -const ROW_FORMAT = 58062 -const STATS_AUTO_RECALC = 58063 -const STATS_PERSISTENT = 58064 -const STATS_SAMPLE_PAGES = 58065 -const STORAGE = 58066 -const MEMORY = 58067 -const DISK = 58068 -const PARTITIONS = 58069 -const LINEAR = 58070 -const RANGE = 58071 -const LIST = 58072 -const SUBPARTITION = 58073 -const SUBPARTITIONS = 58074 -const HASH = 58075 +const CUTOVER_THRESHOLD = 57651 +const EXPIRE = 57652 +const RATIO = 57653 +const VITESS_THROTTLER = 57654 +const BEGIN = 57655 +const START = 57656 +const TRANSACTION = 57657 +const COMMIT = 57658 +const ROLLBACK = 57659 +const SAVEPOINT = 57660 +const RELEASE = 57661 +const WORK = 57662 +const CONSISTENT = 57663 +const SNAPSHOT = 57664 +const UNRESOLVED = 57665 +const TRANSACTIONS = 57666 +const BIT = 57667 +const TINYINT = 57668 +const SMALLINT = 57669 +const MEDIUMINT = 57670 +const INT = 57671 +const INTEGER = 57672 +const BIGINT = 57673 +const INTNUM = 57674 +const REAL = 57675 +const DOUBLE = 57676 +const FLOAT_TYPE = 57677 +const FLOAT4_TYPE = 57678 +const FLOAT8_TYPE = 57679 +const DECIMAL_TYPE = 57680 +const NUMERIC = 57681 +const TIME = 57682 +const TIMESTAMP = 57683 +const DATETIME = 57684 +const YEAR = 57685 +const CHAR = 57686 +const VARCHAR = 57687 +const BOOL = 57688 +const CHARACTER = 57689 +const VARBINARY = 57690 +const NCHAR = 57691 +const TEXT = 57692 +const TINYTEXT = 57693 +const MEDIUMTEXT = 57694 +const LONGTEXT = 57695 +const BLOB = 57696 +const TINYBLOB = 57697 +const MEDIUMBLOB = 57698 +const LONGBLOB = 57699 +const JSON = 57700 +const JSON_SCHEMA_VALID = 57701 +const JSON_SCHEMA_VALIDATION_REPORT = 57702 +const ENUM = 57703 +const GEOMETRY = 57704 +const POINT = 57705 +const LINESTRING = 57706 +const POLYGON = 57707 +const GEOMCOLLECTION = 57708 +const GEOMETRYCOLLECTION = 57709 +const MULTIPOINT = 57710 +const MULTILINESTRING = 57711 +const MULTIPOLYGON = 57712 +const ASCII = 57713 +const UNICODE = 57714 +const VECTOR = 57715 +const NULLX = 57716 +const AUTO_INCREMENT = 57717 +const APPROXNUM = 57718 +const SIGNED = 57719 +const UNSIGNED = 57720 +const ZEROFILL = 57721 +const PURGE = 57722 +const BEFORE = 57723 +const CODE = 57724 +const COLLATION = 57725 +const COLUMNS = 57726 +const DATABASES = 57727 +const ENGINES = 57728 +const EVENT = 57729 +const EXTENDED = 57730 +const FIELDS = 57731 +const FULL = 57732 +const FUNCTION = 57733 +const GTID_EXECUTED = 57734 +const KEYSPACES = 57735 +const OPEN = 57736 +const PLUGINS = 57737 +const PRIVILEGES = 57738 +const PROCESSLIST = 57739 +const SCHEMAS = 57740 +const TABLES = 57741 +const TRIGGERS = 57742 +const USER = 57743 +const VGTID_EXECUTED = 57744 +const VITESS_KEYSPACES = 57745 +const VITESS_METADATA = 57746 +const VITESS_MIGRATIONS = 57747 +const VITESS_REPLICATION_STATUS = 57748 +const VITESS_SHARDS = 57749 +const VITESS_TABLETS = 57750 +const VITESS_TARGET = 57751 +const VSCHEMA = 57752 +const VITESS_THROTTLED_APPS = 57753 +const NAMES = 57754 +const GLOBAL = 57755 +const SESSION = 57756 +const ISOLATION = 57757 +const LEVEL = 57758 +const READ = 57759 +const WRITE = 57760 +const ONLY = 57761 +const REPEATABLE = 57762 +const COMMITTED = 57763 +const UNCOMMITTED = 57764 +const SERIALIZABLE = 57765 +const ADDDATE = 57766 +const CURRENT_TIMESTAMP = 57767 +const DATABASE = 57768 +const CURRENT_DATE = 57769 +const CURDATE = 57770 +const DATE_ADD = 57771 +const DATE_SUB = 57772 +const NOW = 57773 +const SUBDATE = 57774 +const CURTIME = 57775 +const CURRENT_TIME = 57776 +const LOCALTIME = 57777 +const LOCALTIMESTAMP = 57778 +const CURRENT_USER = 57779 +const UTC_DATE = 57780 +const UTC_TIME = 57781 +const UTC_TIMESTAMP = 57782 +const SYSDATE = 57783 +const DAY = 57784 +const DAY_HOUR = 57785 +const DAY_MICROSECOND = 57786 +const DAY_MINUTE = 57787 +const DAY_SECOND = 57788 +const HOUR = 57789 +const HOUR_MICROSECOND = 57790 +const HOUR_MINUTE = 57791 +const HOUR_SECOND = 57792 +const MICROSECOND = 57793 +const MINUTE = 57794 +const MINUTE_MICROSECOND = 57795 +const MINUTE_SECOND = 57796 +const MONTH = 57797 +const QUARTER = 57798 +const SECOND = 57799 +const SECOND_MICROSECOND = 57800 +const YEAR_MONTH = 57801 +const WEEK = 57802 +const SQL_TSI_DAY = 57803 +const SQL_TSI_WEEK = 57804 +const SQL_TSI_HOUR = 57805 +const SQL_TSI_MINUTE = 57806 +const SQL_TSI_MONTH = 57807 +const SQL_TSI_QUARTER = 57808 +const SQL_TSI_SECOND = 57809 +const SQL_TSI_MICROSECOND = 57810 +const SQL_TSI_YEAR = 57811 +const REPLACE = 57812 +const CONVERT = 57813 +const CAST = 57814 +const SUBSTR = 57815 +const SUBSTRING = 57816 +const MID = 57817 +const SEPARATOR = 57818 +const TIMESTAMPADD = 57819 +const TIMESTAMPDIFF = 57820 +const WEIGHT_STRING = 57821 +const LTRIM = 57822 +const RTRIM = 57823 +const TRIM = 57824 +const JSON_ARRAY = 57825 +const JSON_OBJECT = 57826 +const JSON_QUOTE = 57827 +const JSON_DEPTH = 57828 +const JSON_TYPE = 57829 +const JSON_LENGTH = 57830 +const JSON_VALID = 57831 +const JSON_ARRAY_APPEND = 57832 +const JSON_ARRAY_INSERT = 57833 +const JSON_INSERT = 57834 +const JSON_MERGE = 57835 +const JSON_MERGE_PATCH = 57836 +const JSON_MERGE_PRESERVE = 57837 +const JSON_REMOVE = 57838 +const JSON_REPLACE = 57839 +const JSON_SET = 57840 +const JSON_UNQUOTE = 57841 +const COUNT = 57842 +const AVG = 57843 +const MAX = 57844 +const MIN = 57845 +const SUM = 57846 +const GROUP_CONCAT = 57847 +const BIT_AND = 57848 +const BIT_OR = 57849 +const BIT_XOR = 57850 +const STD = 57851 +const STDDEV = 57852 +const STDDEV_POP = 57853 +const STDDEV_SAMP = 57854 +const VAR_POP = 57855 +const VAR_SAMP = 57856 +const VARIANCE = 57857 +const ANY_VALUE = 57858 +const REGEXP_INSTR = 57859 +const REGEXP_LIKE = 57860 +const REGEXP_REPLACE = 57861 +const REGEXP_SUBSTR = 57862 +const ExtractValue = 57863 +const UpdateXML = 57864 +const GET_LOCK = 57865 +const RELEASE_LOCK = 57866 +const RELEASE_ALL_LOCKS = 57867 +const IS_FREE_LOCK = 57868 +const IS_USED_LOCK = 57869 +const LOCATE = 57870 +const POSITION = 57871 +const ST_GeometryCollectionFromText = 57872 +const ST_GeometryFromText = 57873 +const ST_LineStringFromText = 57874 +const ST_MultiLineStringFromText = 57875 +const ST_MultiPointFromText = 57876 +const ST_MultiPolygonFromText = 57877 +const ST_PointFromText = 57878 +const ST_PolygonFromText = 57879 +const ST_GeometryCollectionFromWKB = 57880 +const ST_GeometryFromWKB = 57881 +const ST_LineStringFromWKB = 57882 +const ST_MultiLineStringFromWKB = 57883 +const ST_MultiPointFromWKB = 57884 +const ST_MultiPolygonFromWKB = 57885 +const ST_PointFromWKB = 57886 +const ST_PolygonFromWKB = 57887 +const ST_AsBinary = 57888 +const ST_AsText = 57889 +const ST_Dimension = 57890 +const ST_Envelope = 57891 +const ST_IsSimple = 57892 +const ST_IsEmpty = 57893 +const ST_GeometryType = 57894 +const ST_X = 57895 +const ST_Y = 57896 +const ST_Latitude = 57897 +const ST_Longitude = 57898 +const ST_EndPoint = 57899 +const ST_IsClosed = 57900 +const ST_Length = 57901 +const ST_NumPoints = 57902 +const ST_StartPoint = 57903 +const ST_PointN = 57904 +const ST_Area = 57905 +const ST_Centroid = 57906 +const ST_ExteriorRing = 57907 +const ST_InteriorRingN = 57908 +const ST_NumInteriorRings = 57909 +const ST_NumGeometries = 57910 +const ST_GeometryN = 57911 +const ST_LongFromGeoHash = 57912 +const ST_PointFromGeoHash = 57913 +const ST_LatFromGeoHash = 57914 +const ST_GeoHash = 57915 +const ST_AsGeoJSON = 57916 +const ST_GeomFromGeoJSON = 57917 +const MATCH = 57918 +const AGAINST = 57919 +const BOOLEAN = 57920 +const LANGUAGE = 57921 +const WITH = 57922 +const QUERY = 57923 +const EXPANSION = 57924 +const WITHOUT = 57925 +const VALIDATION = 57926 +const ROLLUP = 57927 +const UNUSED = 57928 +const ARRAY = 57929 +const BYTE = 57930 +const CUME_DIST = 57931 +const DESCRIPTION = 57932 +const DENSE_RANK = 57933 +const EMPTY = 57934 +const EXCEPT = 57935 +const FIRST_VALUE = 57936 +const GROUPING = 57937 +const GROUPS = 57938 +const JSON_TABLE = 57939 +const LAG = 57940 +const LAST_VALUE = 57941 +const LATERAL = 57942 +const LEAD = 57943 +const NTH_VALUE = 57944 +const NTILE = 57945 +const OF = 57946 +const OVER = 57947 +const PERCENT_RANK = 57948 +const RANK = 57949 +const RECURSIVE = 57950 +const ROW_NUMBER = 57951 +const SYSTEM = 57952 +const WINDOW = 57953 +const ACTIVE = 57954 +const ADMIN = 57955 +const AUTOEXTEND_SIZE = 57956 +const BUCKETS = 57957 +const CLONE = 57958 +const COLUMN_FORMAT = 57959 +const COMPONENT = 57960 +const DEFINITION = 57961 +const ENFORCED = 57962 +const ENGINE_ATTRIBUTE = 57963 +const EXCLUDE = 57964 +const FOLLOWING = 57965 +const GET_MASTER_PUBLIC_KEY = 57966 +const HISTOGRAM = 57967 +const HISTORY = 57968 +const INACTIVE = 57969 +const INVISIBLE = 57970 +const LOCKED = 57971 +const MASTER_COMPRESSION_ALGORITHMS = 57972 +const MASTER_PUBLIC_KEY_PATH = 57973 +const MASTER_TLS_CIPHERSUITES = 57974 +const MASTER_ZSTD_COMPRESSION_LEVEL = 57975 +const NESTED = 57976 +const NETWORK_NAMESPACE = 57977 +const NOWAIT = 57978 +const NULLS = 57979 +const OJ = 57980 +const OLD = 57981 +const OPTIONAL = 57982 +const ORDINALITY = 57983 +const ORGANIZATION = 57984 +const OTHERS = 57985 +const PARTIAL = 57986 +const PATH = 57987 +const PERSIST = 57988 +const PERSIST_ONLY = 57989 +const PRECEDING = 57990 +const PRIVILEGE_CHECKS_USER = 57991 +const PROCESS = 57992 +const RANDOM = 57993 +const REFERENCE = 57994 +const REQUIRE_ROW_FORMAT = 57995 +const RESOURCE = 57996 +const RESPECT = 57997 +const RESTART = 57998 +const RETAIN = 57999 +const REUSE = 58000 +const ROLE = 58001 +const SECONDARY = 58002 +const SECONDARY_ENGINE = 58003 +const SECONDARY_ENGINE_ATTRIBUTE = 58004 +const SECONDARY_LOAD = 58005 +const SECONDARY_UNLOAD = 58006 +const SIMPLE = 58007 +const SKIP = 58008 +const SRID = 58009 +const THREAD_PRIORITY = 58010 +const TIES = 58011 +const UNBOUNDED = 58012 +const VCPU = 58013 +const VISIBLE = 58014 +const RETURNING = 58015 +const FORMAT_BYTES = 58016 +const FORMAT_PICO_TIME = 58017 +const PS_CURRENT_THREAD_ID = 58018 +const PS_THREAD_ID = 58019 +const GTID_SUBSET = 58020 +const GTID_SUBTRACT = 58021 +const WAIT_FOR_EXECUTED_GTID_SET = 58022 +const WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS = 58023 +const FORMAT = 58024 +const TREE = 58025 +const VITESS = 58026 +const TRADITIONAL = 58027 +const VTEXPLAIN = 58028 +const VEXPLAIN = 58029 +const PLAN = 58030 +const LOCAL = 58031 +const LOW_PRIORITY = 58032 +const NO_WRITE_TO_BINLOG = 58033 +const LOGS = 58034 +const ERROR = 58035 +const GENERAL = 58036 +const HOSTS = 58037 +const OPTIMIZER_COSTS = 58038 +const USER_RESOURCES = 58039 +const SLOW = 58040 +const CHANNEL = 58041 +const RELAY = 58042 +const EXPORT = 58043 +const CURRENT = 58044 +const ROW = 58045 +const ROWS = 58046 +const AVG_ROW_LENGTH = 58047 +const CONNECTION = 58048 +const CHECKSUM = 58049 +const DELAY_KEY_WRITE = 58050 +const ENCRYPTION = 58051 +const ENGINE = 58052 +const INSERT_METHOD = 58053 +const MAX_ROWS = 58054 +const MIN_ROWS = 58055 +const PACK_KEYS = 58056 +const PASSWORD = 58057 +const FIXED = 58058 +const DYNAMIC = 58059 +const COMPRESSED = 58060 +const REDUNDANT = 58061 +const COMPACT = 58062 +const ROW_FORMAT = 58063 +const STATS_AUTO_RECALC = 58064 +const STATS_PERSISTENT = 58065 +const STATS_SAMPLE_PAGES = 58066 +const STORAGE = 58067 +const MEMORY = 58068 +const DISK = 58069 +const PARTITIONS = 58070 +const LINEAR = 58071 +const RANGE = 58072 +const LIST = 58073 +const SUBPARTITION = 58074 +const SUBPARTITIONS = 58075 +const HASH = 58076 var yyToknames = [...]string{ "$end", @@ -1092,6 +1093,7 @@ var yyToknames = [...]string{ "THROTTLE", "UNTHROTTLE", "FORCE_CUTOVER", + "CUTOVER_THRESHOLD", "EXPIRE", "RATIO", "VITESS_THROTTLER", @@ -1537,29 +1539,29 @@ var yyExca = [...]int{ -2, 40, -1, 52, 1, 157, - 751, 157, + 752, 157, -2, 165, -1, 53, 149, 165, 191, 165, - 363, 165, + 364, 165, -2, 523, -1, 61, - 38, 783, - 254, 783, - 265, 783, - 300, 797, - 301, 797, - -2, 785, + 38, 784, + 254, 784, + 265, 784, + 300, 798, + 301, 798, + -2, 786, -1, 66, - 256, 821, - -2, 819, + 256, 822, + -2, 820, -1, 122, - 253, 1620, + 253, 1621, -2, 131, -1, 124, 1, 158, - 751, 158, + 752, 158, -2, 165, -1, 135, 150, 408, @@ -1568,214 +1570,214 @@ var yyExca = [...]int{ -1, 154, 149, 165, 191, 165, - 363, 165, + 364, 165, -2, 532, - -1, 748, + -1, 749, 177, 41, -2, 43, - -1, 957, - 95, 1637, - -2, 1481, -1, 958, 95, 1638, - 236, 1642, -2, 1482, -1, 959, - 236, 1641, + 95, 1639, + 236, 1643, + -2, 1483, + -1, 960, + 236, 1642, -2, 42, - -1, 1043, - 65, 895, - -2, 908, - -1, 1131, - 264, 1108, - 269, 1108, + -1, 1044, + 65, 896, + -2, 909, + -1, 1132, + 264, 1109, + 269, 1109, -2, 419, - -1, 1216, + -1, 1217, 1, 580, - 751, 580, + 752, 580, -2, 165, - -1, 1527, - 236, 1642, - -2, 1482, - -1, 1739, - 65, 896, - -2, 912, + -1, 1528, + 236, 1643, + -2, 1483, -1, 1740, 65, 897, -2, 913, - -1, 1800, + -1, 1741, + 65, 898, + -2, 914, + -1, 1801, 149, 165, 191, 165, - 363, 165, + 364, 165, -2, 458, - -1, 1883, + -1, 1884, 150, 408, 259, 408, -2, 512, - -1, 1892, - 264, 1109, - 269, 1109, + -1, 1893, + 264, 1110, + 269, 1110, -2, 420, - -1, 2341, - 236, 1646, - -2, 1640, -1, 2342, - 236, 1642, - -2, 1638, - -1, 2445, + 236, 1647, + -2, 1641, + -1, 2343, + 236, 1643, + -2, 1639, + -1, 2446, 149, 165, 191, 165, - 363, 165, + 364, 165, -2, 459, - -1, 2452, + -1, 2453, 28, 186, -2, 188, - -1, 2915, + -1, 2917, 86, 96, 96, 96, - -2, 975, - -1, 2983, - 726, 701, - -2, 675, - -1, 3207, - 55, 1585, - -2, 1579, - -1, 4044, - 726, 701, - -2, 689, - -1, 4136, - 98, 633, - 104, 633, - 114, 633, - 193, 633, - 194, 633, - 195, 633, - 196, 633, - 197, 633, - 198, 633, - 199, 633, - 200, 633, - 201, 633, - 202, 633, - 203, 633, - 204, 633, - 205, 633, - 206, 633, - 207, 633, - 208, 633, - 209, 633, - 210, 633, - 211, 633, - 212, 633, - 213, 633, - 214, 633, - 215, 633, - 216, 633, - 217, 633, - 218, 633, - 219, 633, - 220, 633, - 221, 633, - 222, 633, - 223, 633, - 224, 633, - 225, 633, - 226, 633, - 227, 633, - 228, 633, - 229, 633, - 230, 633, - 231, 633, - 232, 633, - 233, 633, - 234, 633, - -2, 2017, + -2, 976, + -1, 2985, + 727, 702, + -2, 676, + -1, 3210, + 55, 1586, + -2, 1580, + -1, 4047, + 727, 702, + -2, 690, + -1, 4139, + 98, 634, + 104, 634, + 114, 634, + 193, 634, + 194, 634, + 195, 634, + 196, 634, + 197, 634, + 198, 634, + 199, 634, + 200, 634, + 201, 634, + 202, 634, + 203, 634, + 204, 634, + 205, 634, + 206, 634, + 207, 634, + 208, 634, + 209, 634, + 210, 634, + 211, 634, + 212, 634, + 213, 634, + 214, 634, + 215, 634, + 216, 634, + 217, 634, + 218, 634, + 219, 634, + 220, 634, + 221, 634, + 222, 634, + 223, 634, + 224, 634, + 225, 634, + 226, 634, + 227, 634, + 228, 634, + 229, 634, + 230, 634, + 231, 634, + 232, 634, + 233, 634, + 234, 634, + -2, 2019, } const yyPrivate = 57344 -const yyLast = 56607 +const yyLast = 57002 var yyAct = [...]int{ - 973, 3695, 3696, 87, 3694, 4025, 4179, 4211, 961, 4115, - 4134, 2146, 3358, 2370, 4007, 4224, 4103, 1282, 4178, 1284, - 968, 3644, 960, 2134, 3259, 2442, 3266, 2072, 3930, 3220, - 5, 3307, 3494, 3316, 3321, 4005, 3318, 3317, 3315, 3320, - 3319, 3073, 3631, 2372, 3158, 3336, 3274, 2517, 2013, 752, - 3335, 3224, 3221, 3534, 3047, 3072, 3540, 3218, 2875, 3737, - 2397, 747, 3338, 3208, 3524, 2480, 746, 922, 2949, 3365, - 1860, 1803, 780, 3029, 2504, 2980, 2485, 1759, 1093, 4076, - 921, 2951, 2950, 2430, 163, 2413, 1041, 2548, 87, 2881, - 2418, 1061, 1038, 1068, 2867, 1908, 2851, 2900, 2326, 2416, - 926, 41, 1163, 42, 1139, 2130, 2294, 1041, 2080, 2417, - 2293, 2526, 3021, 2503, 43, 3562, 2168, 2405, 1890, 2487, - 2565, 2942, 1103, 1126, 1121, 149, 1792, 2917, 1772, 2420, - 100, 1720, 1540, 2174, 104, 105, 2105, 2094, 1465, 1448, - 2009, 1897, 1100, 1097, 1869, 3223, 762, 1132, 1989, 2476, - 1101, 1127, 1128, 1791, 2477, 1777, 1078, 1129, 757, 1080, - 1742, 1050, 2201, 1523, 2182, 2888, 3732, 1499, 749, 1047, - 2849, 2071, 85, 107, 1272, 2021, 167, 127, 2398, 125, - 126, 3495, 1882, 1060, 132, 3724, 1040, 133, 1044, 1045, - 1073, 1212, 93, 923, 3551, 99, 1549, 1036, 1048, 98, - 4212, 750, 1046, 739, 1544, 3632, 1072, 1063, 1280, 3304, - 2519, 1258, 84, 2519, 2520, 2521, 4060, 3003, 3002, 2563, - 2971, 106, 1466, 3624, 1035, 4161, 3037, 3038, 3587, 128, - 1053, 4055, 4056, 2367, 2368, 2087, 134, 3699, 3699, 1168, - 682, 1143, 4061, 1094, 2086, 2085, 2084, 2083, 2082, 2052, - 1228, 679, 2847, 680, 1165, 2616, 3204, 3162, 4234, 2552, - 4177, 4182, 4202, 1176, 4155, 1110, 1105, 1182, 1183, 1184, - 3498, 1187, 1188, 1189, 1190, 1087, 740, 1193, 1194, 1195, - 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, - 1206, 1207, 1208, 1209, 1142, 1088, 1054, 1763, 1039, 1062, - 1753, 128, 1117, 2551, 1116, 1115, 1037, 1118, 2, 1761, - 1482, 95, 3326, 1169, 1172, 1173, 1974, 4034, 95, 2877, - 724, 3497, 3326, 1229, 2394, 4217, 2973, 1764, 1462, 2393, - 1476, 1459, 4056, 3698, 3698, 3323, 2996, 4008, 724, 1762, - 2391, 2812, 95, 4165, 2092, 3384, 1185, 4130, 2993, 1034, - 4216, 4163, 927, 111, 112, 113, 3926, 116, 3925, 1167, - 122, 718, 2108, 191, 1166, 4192, 674, 95, 4164, 128, - 190, 3936, 3324, 1086, 1090, 925, 4162, 3637, 737, 738, - 3638, 4159, 3324, 86, 976, 977, 978, 718, 1029, 1030, - 1031, 1032, 86, 129, 3656, 1043, 86, 1450, 3645, 4104, - 4112, 3330, 2545, 1119, 2623, 3935, 2891, 2139, 4139, 172, - 3410, 3330, 976, 977, 978, 1871, 3256, 3257, 2848, 1086, - 1090, 925, 718, 1075, 1076, 2926, 3655, 1793, 2925, 1794, - 713, 2927, 2437, 2438, 2892, 3255, 1461, 3036, 4116, 2064, - 2065, 2620, 1472, 2550, 2436, 1464, 3020, 3751, 1248, 1253, - 1254, 1277, 1027, 1026, 4026, 2931, 2974, 1211, 1236, 1479, - 1249, 1480, 1481, 1237, 1242, 2938, 95, 718, 718, 169, - 718, 1478, 170, 2017, 2621, 95, 2455, 2454, 698, 95, - 1236, 718, 3362, 3360, 3392, 1237, 1114, 3094, 1221, 1222, - 3390, 696, 4144, 1235, 1443, 1234, 2884, 2885, 189, 2614, - 2063, 732, 2067, 736, 4039, 1995, 2369, 2210, 730, 718, - 2401, 3366, 4142, 1724, 4120, 4183, 3327, 3022, 2572, 2527, - 1224, 2496, 4148, 4149, 2401, 86, 3327, 1789, 88, 2981, - 1964, 693, 3276, 3277, 2566, 3978, 4184, 3979, 3006, 4143, - 708, 1460, 4120, 1466, 1112, 2490, 3353, 1990, 2590, 4214, - 2591, 1186, 2592, 1269, 3354, 703, 1442, 1255, 1250, 1274, - 1449, 1257, 1243, 1500, 1276, 1217, 706, 1256, 2570, 716, - 1275, 1251, 1252, 2573, 1965, 719, 1966, 717, 3363, 3361, - 2617, 3024, 2618, 2568, 3626, 3381, 3625, 1501, 1502, 1503, - 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2593, 1192, - 1191, 719, 3910, 1727, 1079, 1152, 2202, 1141, 95, 1141, - 2569, 2204, 1150, 173, 2018, 2209, 2205, 2530, 3622, 2206, - 2207, 2208, 179, 2571, 2203, 2211, 2212, 2213, 2214, 2215, - 2216, 2217, 2218, 2219, 1122, 3703, 719, 683, 1123, 685, - 699, 3275, 721, 2414, 720, 689, 1123, 687, 691, 700, - 692, 1476, 686, 3278, 697, 3095, 1875, 688, 701, 702, - 705, 709, 710, 711, 707, 704, 4156, 695, 722, 1162, - 1161, 3161, 3010, 1514, 3011, 1160, 1113, 1159, 1158, 3537, - 1157, 719, 719, 1156, 719, 2579, 2575, 2577, 2578, 2576, - 2580, 2581, 2582, 1155, 1154, 719, 3278, 1149, 2489, 4235, - 4189, 1089, 1083, 1081, 1098, 2399, 2400, 1098, 1171, 1135, - 1140, 1096, 1140, 1281, 1134, 1281, 1281, 1098, 1170, 2399, - 2400, 1134, 2010, 719, 1074, 1999, 1870, 1997, 1998, 1996, - 2000, 2001, 2002, 3621, 3025, 2556, 2555, 2006, 1471, 1468, - 1469, 1470, 1475, 1477, 1474, 1451, 1473, 1089, 1083, 1081, - 164, 3189, 1179, 3187, 3298, 1153, 1467, 3005, 1790, 3041, - 1868, 2975, 1151, 1472, 1867, 1041, 1524, 1529, 1530, 1866, - 1533, 1535, 1536, 1537, 1538, 1539, 2991, 1542, 1543, 1545, - 1545, 2007, 1545, 1545, 1550, 1550, 1550, 1553, 1554, 1555, + 974, 3698, 3699, 87, 3697, 4137, 4214, 4028, 4118, 3361, + 4227, 4181, 4106, 3647, 4182, 969, 1285, 961, 3262, 2135, + 2014, 2443, 2170, 3269, 2371, 1283, 3497, 4010, 2147, 3933, + 3319, 3310, 3324, 3321, 3320, 3318, 3323, 3322, 2073, 3223, + 4008, 5, 3634, 2373, 3161, 3076, 3339, 3277, 2518, 753, + 3338, 3227, 3224, 3543, 962, 3221, 3740, 3050, 3537, 923, + 747, 3211, 2877, 3075, 1804, 2398, 2481, 781, 2414, 1760, + 748, 2951, 4079, 3032, 3368, 1861, 3527, 2417, 2982, 922, + 3341, 2505, 2486, 3565, 2952, 2549, 1042, 1164, 87, 163, + 1094, 927, 2953, 2431, 42, 1062, 1039, 743, 2883, 1069, + 1909, 2902, 2419, 2869, 41, 2418, 2853, 1042, 2327, 2294, + 2169, 2295, 2131, 3023, 2527, 149, 43, 1891, 2504, 2081, + 2406, 2488, 1104, 2944, 1122, 2566, 1127, 1793, 2919, 1773, + 2421, 1721, 2890, 1541, 2175, 100, 2106, 2095, 104, 105, + 1466, 1449, 1898, 2010, 1101, 1098, 3226, 763, 1133, 1870, + 1102, 2477, 1990, 1128, 1130, 1129, 2478, 1792, 1079, 1778, + 1081, 1051, 758, 1140, 750, 2399, 1743, 2183, 3735, 2202, + 1048, 2851, 1524, 85, 2072, 2022, 1061, 1041, 107, 1045, + 3727, 1500, 99, 1273, 167, 3554, 3498, 1883, 127, 125, + 126, 132, 1046, 1213, 1037, 133, 924, 1049, 1064, 751, + 1074, 84, 1545, 98, 1047, 106, 4215, 1281, 3635, 3307, + 1259, 740, 1073, 93, 2520, 2521, 2522, 4063, 1550, 2520, + 3005, 3004, 2564, 2973, 3627, 1036, 4164, 683, 3040, 3590, + 3041, 4059, 2368, 2369, 4058, 1054, 2088, 128, 2087, 1166, + 2086, 134, 2085, 4064, 1169, 2084, 1095, 3329, 2083, 2053, + 1229, 4158, 1183, 1184, 1185, 2849, 1188, 1189, 1190, 1191, + 3326, 2618, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1088, + 3207, 4185, 1089, 1055, 741, 2, 680, 1040, 681, 1764, + 1038, 1143, 95, 1975, 1119, 2553, 1762, 3702, 3702, 3329, + 1144, 2879, 4220, 725, 3165, 1111, 2392, 3327, 4237, 128, + 1170, 1173, 1174, 1118, 1117, 1116, 95, 4037, 95, 1765, + 1063, 1463, 1177, 1106, 1460, 2975, 1763, 4219, 4180, 1230, + 111, 112, 113, 1186, 116, 4059, 3333, 122, 725, 2552, + 191, 1483, 95, 675, 4205, 3501, 928, 3500, 4168, 4166, + 1035, 2395, 2394, 2995, 2998, 738, 739, 190, 4011, 3327, + 719, 1754, 2109, 2814, 2093, 1030, 1031, 1032, 1033, 1087, + 1091, 926, 1044, 4167, 4165, 3387, 4133, 128, 3929, 3928, + 129, 1168, 190, 1167, 977, 978, 979, 719, 3333, 977, + 978, 979, 3640, 3701, 3701, 3641, 172, 1451, 4195, 3939, + 1076, 1077, 1120, 4147, 86, 129, 1087, 1091, 926, 4162, + 3659, 3648, 4107, 4115, 2546, 86, 86, 3938, 719, 2625, + 2140, 172, 4142, 4145, 3413, 1872, 3012, 2850, 3013, 1462, + 714, 3259, 3260, 4151, 4152, 2551, 2438, 2439, 4119, 2893, + 3258, 1479, 2933, 3279, 3280, 1794, 1115, 1795, 1222, 1223, + 4146, 3330, 2065, 2066, 3039, 719, 169, 3658, 2928, 170, + 2622, 2927, 2437, 3022, 2929, 1278, 3754, 2894, 1254, 1255, + 1249, 1028, 1110, 1027, 1237, 1112, 4029, 2940, 699, 1238, + 1225, 169, 1250, 1243, 170, 189, 2018, 95, 719, 2623, + 1480, 697, 1481, 1482, 2456, 2455, 3365, 1212, 95, 95, + 719, 3395, 1237, 3330, 1113, 2370, 719, 1238, 3363, 4042, + 189, 2886, 2887, 1444, 4123, 1236, 2616, 1235, 3393, 4123, + 2068, 1790, 2064, 733, 737, 731, 3097, 3369, 2528, 3024, + 1187, 694, 1996, 1725, 1461, 4186, 3981, 3356, 3982, 2983, + 709, 3008, 2567, 2402, 2573, 3357, 1965, 86, 4217, 2592, + 88, 2593, 3278, 2594, 1991, 704, 4187, 1266, 1270, 1268, + 1450, 1252, 1253, 2569, 3281, 1443, 1275, 707, 2211, 1218, + 717, 1258, 2497, 3027, 1115, 720, 1107, 1256, 718, 1277, + 3913, 1251, 1244, 1109, 1108, 1276, 2619, 1257, 2620, 1501, + 1966, 3629, 1967, 3366, 3628, 2595, 2491, 1265, 1267, 2574, + 173, 1080, 720, 3625, 1142, 3364, 1142, 1193, 1192, 179, + 1153, 3384, 1151, 1502, 1503, 1504, 1505, 1506, 1507, 1508, + 1510, 1509, 1511, 1512, 2531, 173, 1728, 1123, 2019, 2571, + 95, 1124, 1113, 720, 179, 3281, 3706, 1114, 684, 2415, + 686, 700, 1124, 722, 1162, 721, 690, 1161, 688, 692, + 701, 693, 1160, 687, 4159, 698, 1159, 1158, 689, 702, + 703, 706, 710, 711, 712, 708, 705, 2203, 696, 723, + 720, 2570, 2205, 1157, 1156, 1155, 2210, 2206, 1150, 1876, + 2207, 2208, 2209, 1163, 2572, 2204, 2212, 2213, 2214, 2215, + 2216, 2217, 2218, 2219, 2220, 3098, 3540, 1099, 1090, 1084, + 1082, 1099, 1136, 720, 2976, 1097, 4238, 1141, 1263, 1141, + 4192, 1099, 1264, 1075, 1282, 720, 1282, 1282, 3624, 3164, + 1135, 720, 1269, 2580, 2576, 2578, 2579, 2577, 2581, 2582, + 2583, 2584, 2011, 1871, 3028, 1090, 1084, 1082, 164, 2400, + 2401, 2557, 3173, 2556, 2007, 1452, 1180, 1262, 3192, 2490, + 3190, 3301, 2000, 1791, 1998, 1999, 1997, 2001, 2002, 2003, + 1154, 3007, 1152, 164, 1869, 1114, 1042, 1525, 1530, 1531, + 1868, 1534, 1536, 1537, 1538, 1539, 1540, 1867, 1543, 1544, + 1546, 1546, 3010, 1546, 1546, 1551, 1551, 1551, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, @@ -1788,1079 +1790,1090 @@ var yyAct = [...]int{ 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, - 1676, 1521, 3697, 3697, 1270, 1677, 4033, 1679, 1680, 1681, - 1682, 1683, 2549, 1440, 1441, 2972, 3585, 3586, 1439, 1550, - 1550, 1550, 1550, 1550, 1550, 974, 2940, 1120, 3654, 1534, - 1223, 1220, 974, 723, 1690, 1691, 1692, 1693, 1694, 1695, - 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 2995, 1525, - 1517, 1518, 1519, 1520, 714, 4118, 974, 94, 1514, 2621, - 1531, 4079, 2852, 2854, 2622, 1717, 94, 1864, 1082, 715, - 94, 1551, 1552, 1227, 1546, 1896, 1547, 1548, 3538, 165, - 3328, 3329, 1215, 4118, 1458, 3482, 177, 4117, 1141, 89, - 3328, 3329, 2994, 3332, 1233, 3382, 673, 1232, 4157, 1238, - 1239, 1240, 1241, 3332, 1976, 1975, 1977, 1978, 1979, 3170, - 3019, 1515, 1516, 3018, 1082, 4117, 4147, 3008, 2547, 1723, - 4021, 2493, 190, 1278, 1279, 3576, 3558, 185, 1041, 2922, - 1752, 3028, 1041, 2887, 1141, 2824, 1246, 1109, 1041, 2142, - 1111, 1265, 1781, 1267, 2638, 129, 1678, 1226, 3169, 1471, - 1468, 1469, 1470, 1475, 1477, 1474, 4228, 1473, 2882, 681, - 4146, 172, 2494, 2443, 1714, 1715, 1178, 1467, 2166, 2492, - 166, 171, 168, 174, 175, 176, 178, 180, 181, 182, - 183, 1264, 1266, 1141, 1895, 1514, 184, 186, 187, 188, - 124, 1140, 1506, 1507, 1509, 1508, 1510, 1511, 1994, 94, - 1511, 3254, 2649, 2495, 1259, 1141, 1753, 1494, 2183, 1057, - 119, 2022, 1273, 2491, 4047, 1684, 1685, 1686, 1687, 1688, - 1689, 169, 1733, 1734, 170, 2184, 104, 105, 1731, 1164, - 3031, 3617, 1735, 1715, 3550, 3030, 2853, 1140, 1040, 1114, - 2110, 1106, 1144, 1134, 1114, 1210, 1721, 1146, 1108, 1107, - 189, 1147, 1145, 2567, 2111, 1512, 1513, 2109, 1141, 2076, - 2003, 1795, 2175, 1231, 3068, 107, 4193, 2158, 2147, 2148, - 2149, 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155, - 2162, 2163, 2164, 2156, 2157, 2159, 1140, 1482, 120, 1141, - 2649, 1262, 1134, 1137, 1138, 1263, 1098, 1112, 1888, 2509, - 1131, 1135, 3031, 1481, 2175, 1268, 2658, 3030, 1140, 1214, - 1729, 1872, 1873, 1874, 1134, 1137, 1138, 3746, 1098, 1718, - 1730, 1130, 1131, 1135, 3592, 2546, 3591, 1732, 2534, 1959, - 1261, 1755, 1898, 1898, 1905, 1910, 2015, 1911, 1758, 1913, - 1915, 1881, 1941, 1919, 1921, 1923, 1925, 1927, 1900, 3262, - 1039, 1037, 1245, 1991, 1904, 1992, 1786, 1787, 1993, 1281, - 2169, 1140, 1260, 1247, 2181, 173, 1144, 1134, 1855, 2023, - 1899, 1146, 1480, 1481, 179, 1147, 1145, 1894, 1949, 1950, - 1753, 2539, 1500, 1216, 1955, 1956, 1863, 2539, 4226, 1482, - 2544, 4227, 1140, 4225, 1177, 2542, 1148, 1878, 1174, 1879, - 3263, 1152, 1877, 1891, 1150, 4236, 1501, 1502, 1503, 1504, - 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1230, 1213, 2098, - 2099, 2096, 2097, 4185, 2543, 3265, 1902, 3577, 1052, 1113, - 2541, 3048, 1753, 1984, 1113, 742, 1479, 4230, 1480, 1481, - 2180, 1736, 4080, 724, 4013, 3260, 2095, 3651, 1945, 3652, - 3918, 1482, 3917, 1937, 2011, 3908, 1940, 1982, 1942, 2098, - 2099, 2628, 2629, 3668, 1971, 3276, 3277, 976, 977, 978, - 3667, 3599, 3261, 1502, 1503, 1504, 1505, 1506, 1507, 1509, - 1508, 1510, 1511, 128, 1117, 3598, 1116, 1115, 3588, 1482, - 1789, 4081, 1500, 4014, 3305, 1496, 3294, 1497, 2947, 2946, - 2945, 4237, 164, 2499, 1983, 1985, 3267, 1969, 1482, 1968, - 2028, 1498, 1512, 1513, 1495, 3050, 1501, 1502, 1503, 1504, - 1505, 1506, 1507, 1509, 1508, 1510, 1511, 1967, 1981, 1281, - 1281, 1957, 1951, 1948, 2050, 1970, 2024, 2025, 1479, 1947, - 1480, 1481, 2331, 4198, 1753, 87, 2328, 3070, 87, 1946, - 2029, 1500, 4186, 3040, 1917, 2330, 1728, 2036, 2037, 2038, - 1482, 3582, 2331, 724, 2929, 3357, 724, 2049, 2515, 1482, - 2514, 972, 1445, 4042, 3275, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1509, 1508, 1510, 1511, 3278, 2166, 3060, 3059, - 3058, 1500, 2513, 3052, 2512, 3056, 2511, 3051, 2510, 3049, - 1479, 4187, 1480, 1481, 3054, 1504, 1505, 1506, 1507, 1509, - 1508, 1510, 1511, 3053, 4041, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1509, 1508, 1510, 1511, 2137, 2137, 2135, 2135, - 2138, 1482, 3055, 3057, 101, 4017, 2697, 2100, 1479, 4016, - 1480, 1481, 1482, 4015, 102, 42, 1478, 1753, 42, 1482, - 2873, 4213, 4196, 1753, 1482, 3913, 2026, 1479, 1766, 1480, - 1481, 4126, 1753, 2030, 1482, 2032, 2033, 2034, 2035, 4173, - 1753, 3399, 2039, 3897, 2221, 1488, 1489, 1490, 1491, 1492, - 1493, 1487, 1484, 3896, 2051, 3745, 2158, 2147, 2148, 2149, - 2150, 2160, 2151, 2152, 2153, 2165, 2161, 2154, 2155, 2162, - 2163, 2164, 2156, 2157, 2159, 1753, 3264, 1767, 3743, 1479, - 3664, 1480, 1481, 1713, 85, 2873, 1753, 85, 1479, 2077, - 1480, 1481, 1712, 4124, 1753, 1753, 1714, 1715, 1711, 1482, - 1478, 1753, 2107, 3596, 4122, 1753, 4035, 2057, 2058, 110, - 3581, 165, 1753, 101, 2170, 3367, 3991, 1753, 177, 103, - 109, 3364, 108, 102, 2112, 3297, 2113, 4030, 2115, 2116, - 2117, 2118, 2119, 2120, 2122, 2124, 2125, 2126, 2127, 2128, - 2129, 1710, 3296, 2956, 1482, 2943, 1708, 1710, 2141, 1704, - 1479, 1706, 1480, 1481, 1707, 1705, 2339, 1709, 2341, 185, - 2114, 1479, 1482, 1480, 1481, 2873, 4111, 3945, 1479, 2245, - 1480, 1481, 1482, 1479, 2611, 1480, 1481, 2603, 1525, 2185, - 2186, 2187, 2188, 1479, 1753, 1480, 1481, 2340, 2406, 2407, - 2602, 3989, 1753, 2199, 2220, 1753, 2176, 2329, 2327, 1482, - 1500, 2561, 166, 171, 168, 174, 175, 176, 178, 180, - 181, 182, 183, 2237, 2560, 1482, 2873, 4090, 184, 186, - 187, 188, 2699, 1482, 1501, 1502, 1503, 1504, 1505, 1506, - 1507, 1509, 1508, 1510, 1511, 1482, 3986, 1753, 3944, 1482, - 2873, 4086, 3998, 1753, 1500, 2396, 2637, 2422, 1479, 2375, - 1480, 1481, 3635, 4032, 2338, 3921, 1753, 2344, 2345, 2339, - 1482, 2341, 2873, 3909, 3968, 1753, 104, 105, 1501, 1502, - 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, 2053, - 1482, 2647, 3635, 1753, 2873, 3633, 3901, 104, 105, 2452, - 2411, 2646, 2386, 1479, 2019, 1480, 1481, 2539, 1753, 3900, - 2374, 3556, 1753, 1482, 2685, 2779, 1753, 3940, 2106, 3287, - 3286, 1479, 103, 1480, 1481, 3523, 1753, 2695, 3268, 1980, - 1103, 1479, 3272, 1480, 1481, 3284, 3285, 3516, 1753, 3271, - 1972, 3513, 1753, 3282, 3283, 2461, 2462, 2463, 2464, 2456, - 2447, 2457, 2458, 2459, 2460, 2446, 1053, 2424, 1479, 1962, - 1480, 1481, 3511, 1753, 1103, 2466, 2428, 1958, 2468, 2469, - 2470, 2471, 2387, 3273, 1479, 1954, 1480, 1481, 3269, 3282, - 3281, 2362, 1479, 3270, 1480, 1481, 2380, 1753, 2381, 2389, - 2482, 1953, 1482, 1952, 1479, 2450, 1480, 1481, 1479, 2870, - 1480, 1481, 1482, 2488, 2409, 2528, 1753, 86, 44, 45, - 88, 2897, 1753, 103, 2434, 2433, 1768, 1087, 2432, 1479, - 1271, 1480, 1481, 2449, 2448, 2918, 92, 1482, 2621, 3004, - 48, 76, 77, 2889, 74, 78, 2525, 1088, 1482, 1479, - 3643, 1480, 1481, 1859, 2985, 2982, 75, 3553, 2498, 1501, - 1502, 1503, 1504, 1505, 1506, 1507, 1509, 1508, 1510, 1511, - 2918, 1143, 1479, 2961, 1480, 1481, 2978, 2979, 109, 2483, - 3219, 1898, 2479, 2472, 2474, 2475, 1482, 2868, 62, 2502, - 2497, 3549, 2501, 2533, 3474, 1753, 2536, 2889, 2537, 2553, - 95, 1482, 3249, 2919, 3472, 1753, 2873, 2872, 2140, 1753, - 1859, 1858, 2621, 2921, 1482, 2483, 2532, 2540, 2535, 2531, - 2897, 1482, 1801, 1800, 1142, 3552, 2896, 2451, 3549, 3468, - 1753, 2557, 190, 2554, 1478, 2558, 2559, 1482, 2919, 4074, - 3465, 1753, 4046, 2976, 2873, 2897, 3502, 110, 2621, 1482, - 83, 1479, 1478, 1480, 1481, 129, 1482, 151, 109, 3600, - 108, 1479, 3284, 1480, 1481, 3192, 1754, 1756, 103, 1482, - 1770, 172, 2435, 2626, 3549, 2779, 2564, 2682, 3463, 1753, - 2645, 2539, 1041, 1041, 1041, 2681, 1479, 2897, 1480, 1481, - 2539, 2522, 2404, 3461, 1753, 1757, 2365, 1479, 2140, 1480, - 1481, 1482, 1535, 2078, 1535, 162, 3459, 1753, 2062, 2005, - 1933, 150, 1788, 3457, 1753, 1125, 3601, 3602, 3603, 1124, - 2641, 1042, 1482, 95, 4152, 4093, 3932, 1760, 2596, 3455, - 1753, 169, 3898, 1753, 170, 1479, 3758, 1480, 1481, 1482, - 2644, 1769, 2341, 3616, 3613, 51, 54, 57, 56, 59, - 1479, 73, 1480, 1481, 82, 79, 1884, 1885, 161, 160, - 189, 3453, 1753, 1479, 1482, 1480, 1481, 1934, 1935, 1936, - 1479, 2340, 1480, 1481, 3594, 3415, 3414, 1861, 61, 91, - 90, 2481, 2613, 71, 72, 58, 1479, 1482, 1480, 1481, - 3355, 80, 81, 3451, 1753, 3310, 1482, 2619, 1479, 3306, - 1480, 1481, 1482, 2986, 95, 1479, 1482, 1480, 1481, 2478, - 1482, 2473, 2467, 2627, 3449, 1753, 1482, 2465, 1479, 1987, - 1480, 1481, 1893, 1889, 1716, 1857, 2633, 121, 2630, 2631, - 2632, 3447, 1753, 1482, 63, 64, 2107, 65, 66, 67, - 68, 3308, 2953, 2952, 1215, 3359, 3563, 3564, 3933, 2496, - 1479, 2378, 1480, 1481, 2055, 4208, 3445, 1753, 4206, 2634, - 4180, 2636, 155, 1886, 158, 4054, 1883, 3973, 156, 157, - 2639, 1479, 2640, 1480, 1481, 173, 3566, 1482, 3302, 3443, - 1753, 1482, 3301, 3569, 179, 3300, 3219, 2657, 1479, 3905, - 1480, 1481, 3568, 2635, 3441, 1753, 1482, 2953, 3439, 1753, - 1482, 60, 3437, 1753, 2965, 2597, 1482, 3238, 3435, 1753, - 3237, 2384, 1482, 1479, 2642, 1480, 1481, 1482, 3241, 3239, - 2823, 2056, 1482, 3242, 3240, 3421, 1753, 1482, 2605, 2606, - 4050, 1482, 3723, 2608, 3722, 1482, 1479, 678, 1480, 1481, - 3934, 1765, 2609, 2693, 2395, 1479, 2811, 1480, 1481, 2654, - 3557, 1479, 2855, 1480, 1481, 1479, 3197, 1480, 1481, 1479, - 3196, 1480, 1481, 1482, 3542, 1479, 1055, 1480, 1481, 3397, - 1753, 1041, 3541, 2844, 1753, 4012, 3736, 2137, 3738, 2135, - 2858, 3545, 1479, 2004, 1480, 1481, 3206, 3721, 2842, 1753, - 1025, 89, 2817, 1753, 2894, 2895, 1482, 2856, 2794, 1753, - 1058, 1482, 3280, 2422, 2786, 1753, 1041, 2914, 1059, 2777, - 1753, 741, 164, 2936, 2775, 1753, 2957, 1056, 2589, 2762, - 1753, 2893, 2183, 2859, 3618, 2861, 1479, 2653, 1480, 1481, - 1479, 1482, 1480, 1481, 3209, 3211, 1482, 2874, 3375, 2184, - 1482, 2588, 2106, 3212, 1482, 1479, 1067, 1480, 1481, 1479, - 2587, 1480, 1481, 2586, 2585, 1479, 2948, 1480, 1481, 2584, - 1066, 1479, 1482, 1480, 1481, 3604, 1479, 1482, 1480, 1481, - 2883, 1479, 1482, 1480, 1481, 1721, 1479, 2846, 1480, 1481, - 1479, 1181, 1480, 1481, 1479, 1929, 1480, 1481, 2760, 1753, - 2583, 1180, 1482, 3571, 42, 2952, 2866, 101, 2939, 2941, - 3034, 94, 2912, 2911, 1715, 1482, 2913, 102, 159, 1444, - 2932, 1482, 1479, 2886, 1480, 1481, 2916, 2871, 3605, 3606, - 3607, 2990, 3547, 2758, 1753, 2103, 2101, 2102, 2756, 1753, - 2992, 129, 2754, 1753, 103, 1482, 3518, 2920, 1930, 1931, - 1932, 2488, 2923, 1482, 4222, 1479, 2969, 1480, 1481, 2930, - 1479, 2933, 1480, 1481, 2752, 1753, 2406, 2407, 2600, 2750, - 1753, 4129, 4031, 3001, 2748, 1753, 2178, 3525, 3928, 2944, - 3279, 2179, 2955, 2910, 2390, 1482, 2625, 2958, 2959, 1482, - 1479, 2061, 1480, 1481, 3514, 1479, 2954, 1480, 1481, 1479, - 2060, 1480, 1481, 1479, 108, 1480, 1481, 3480, 2962, 2966, - 2967, 2968, 2963, 2746, 1753, 1482, 3997, 3195, 70, 2241, - 2998, 1479, 109, 1480, 1481, 3194, 1479, 152, 1480, 1481, - 153, 1479, 3996, 1480, 1481, 3976, 3744, 3476, 1881, 1482, - 3742, 3044, 3045, 2987, 2988, 2744, 1753, 3243, 3741, 2906, - 2907, 1479, 101, 1480, 1481, 2997, 3734, 3614, 103, 3546, - 3544, 165, 102, 110, 1479, 3311, 1480, 1481, 177, 2523, - 1479, 1876, 1480, 1481, 109, 110, 108, 2742, 1753, 1065, - 3733, 2740, 1753, 3535, 1482, 2889, 109, 3707, 1482, 3042, - 3023, 3061, 2870, 1482, 1479, 3026, 1480, 1481, 4209, 2324, - 3098, 2683, 1479, 2376, 1480, 1481, 1482, 2738, 1753, 185, - 4210, 4209, 3, 1482, 1782, 3079, 3080, 3081, 3082, 3083, - 3084, 3085, 3086, 3087, 3088, 1774, 114, 115, 1482, 2356, - 4210, 2736, 1753, 4018, 1479, 3096, 1480, 1481, 1479, 2999, - 1480, 1481, 3580, 3062, 97, 2075, 1754, 2363, 10, 1, - 1033, 1447, 166, 171, 168, 174, 175, 176, 178, 180, - 181, 182, 183, 1446, 1479, 3584, 1480, 1481, 184, 186, - 187, 188, 2073, 4141, 694, 9, 2734, 1753, 2366, 2074, - 2732, 1753, 8, 1719, 4181, 3412, 2388, 4137, 1479, 4138, - 1480, 1481, 1973, 3100, 1963, 3646, 1716, 2292, 2730, 1753, - 3046, 3929, 3314, 3156, 2529, 3411, 3032, 3612, 3063, 3033, - 2486, 1133, 154, 1482, 2444, 2445, 4106, 1482, 118, 1091, - 2728, 1753, 2902, 2905, 2906, 2907, 2903, 117, 2904, 2908, - 3043, 1136, 3174, 1479, 1244, 1480, 1481, 1479, 2524, 1480, - 1481, 3636, 1479, 2235, 1480, 1481, 3163, 2937, 2453, 1807, - 1805, 3165, 1806, 1482, 2977, 1479, 1804, 1480, 1481, 1809, - 1808, 2422, 1479, 1482, 1480, 1481, 4078, 3089, 3383, 2684, - 3481, 2066, 2329, 2327, 2329, 2327, 3136, 1479, 1482, 1480, - 1481, 731, 2909, 3226, 1482, 87, 725, 192, 2422, 2422, - 2422, 2422, 2422, 2500, 1796, 3174, 3146, 3147, 3148, 3149, - 3150, 110, 1775, 2059, 3164, 3403, 3166, 1175, 2422, 2723, - 1753, 2422, 109, 684, 108, 3288, 3231, 1482, 2562, 3248, - 690, 1482, 103, 2318, 2319, 2320, 2321, 2322, 1532, 2054, - 3173, 3193, 2015, 1482, 2924, 1085, 1077, 3185, 2377, 2860, - 2343, 3191, 1482, 2346, 2347, 2719, 1753, 3186, 3188, 3190, - 1482, 3198, 3200, 1084, 3906, 2717, 1753, 3227, 3213, 3214, - 3201, 2424, 1479, 3539, 1480, 1481, 1479, 3205, 1480, 1481, - 2710, 1753, 3207, 2876, 3331, 3210, 2708, 1753, 2364, 3233, - 3234, 3230, 3236, 3203, 3339, 1044, 1045, 1482, 2424, 2424, - 2424, 2424, 2424, 104, 105, 3252, 3244, 3232, 4011, 1046, - 3235, 3735, 1479, 1482, 1480, 1481, 3258, 3250, 2424, 3401, - 3251, 2424, 1479, 2840, 1480, 1481, 4091, 2934, 1771, 1482, - 3501, 2656, 3290, 3199, 3291, 2839, 3289, 1479, 2173, 1480, - 1481, 1522, 756, 1479, 2835, 1480, 1481, 1482, 2421, 3702, - 2093, 754, 2834, 1482, 753, 3292, 3293, 3312, 751, 2862, - 2488, 3343, 3333, 1482, 2890, 1486, 3340, 1482, 1485, 962, - 2850, 1783, 3216, 3350, 3344, 1482, 1479, 2901, 1480, 1481, - 1479, 2899, 1480, 1481, 2898, 3222, 2598, 2429, 3565, 2833, - 3222, 3561, 1479, 3368, 1480, 1481, 3371, 1482, 4133, 2423, - 3370, 1479, 3378, 1480, 1481, 2832, 2419, 2869, 913, 1479, - 912, 1480, 1481, 763, 755, 745, 975, 911, 3388, 3385, - 3386, 2831, 3387, 910, 3341, 3389, 3342, 3391, 3007, 3393, - 3404, 3405, 3406, 3407, 3408, 3356, 3009, 2935, 3352, 2830, - 1463, 1738, 1741, 2385, 1104, 2821, 1479, 3380, 1480, 1481, - 2902, 2905, 2906, 2907, 2903, 2820, 2904, 2908, 4037, 2819, - 3563, 3564, 1479, 2624, 1480, 1481, 3409, 2818, 1535, 1737, - 4044, 3322, 1535, 3630, 3303, 3313, 2983, 2516, 1479, 69, - 1480, 1481, 2643, 46, 4006, 4075, 2648, 905, 3526, 2815, - 3528, 902, 3704, 3705, 3706, 3159, 1479, 3160, 1480, 1481, - 3496, 4057, 1479, 4058, 1480, 1481, 901, 3500, 4059, 2651, - 2230, 2652, 1479, 1457, 1480, 1481, 1479, 2660, 1480, 1481, - 1454, 2662, 2663, 4154, 1479, 2068, 1480, 1481, 96, 36, - 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, - 35, 2680, 34, 3379, 33, 3225, 1479, 32, 1480, 1481, - 2422, 26, 25, 3527, 24, 3529, 23, 22, 29, 3531, - 19, 21, 3536, 3578, 2686, 2687, 2688, 2689, 20, 2691, - 2692, 3543, 2694, 1482, 18, 3325, 2696, 4176, 3548, 4221, - 2701, 2702, 123, 2703, 55, 1482, 2706, 2707, 2709, 2711, - 2712, 2713, 2714, 2715, 2716, 2718, 2720, 2721, 2722, 2724, - 743, 2726, 2727, 2729, 2731, 2733, 2735, 2737, 2739, 2741, - 2743, 2745, 2747, 2749, 2751, 2753, 2755, 2757, 2759, 2761, - 2763, 2764, 2765, 3570, 2767, 3579, 2769, 3334, 2771, 2772, - 3343, 2774, 2776, 2778, 3572, 3340, 3503, 2781, 3505, 3506, - 3507, 2785, 3595, 3344, 3597, 2790, 2791, 2792, 2793, 3573, - 2424, 3567, 1482, 52, 3640, 3641, 3373, 3374, 2804, 2805, - 2806, 2807, 2808, 2809, 3533, 2810, 2813, 2814, 50, 131, - 130, 1482, 53, 49, 2816, 3589, 3590, 2803, 1218, 2822, - 47, 31, 1482, 30, 2825, 2826, 2827, 2828, 2829, 1482, - 17, 16, 15, 14, 1482, 2836, 2837, 3560, 2838, 1482, - 13, 2841, 2843, 2388, 12, 2845, 11, 7, 1482, 1064, - 6, 39, 1070, 1070, 1482, 2857, 3574, 3575, 1482, 38, - 37, 28, 1479, 27, 1480, 1481, 40, 3623, 4, 3642, - 2970, 3627, 3628, 3629, 1479, 2518, 1480, 1481, 0, 0, - 0, 0, 0, 0, 2802, 0, 0, 3658, 0, 0, - 0, 0, 0, 2664, 0, 0, 0, 1482, 0, 0, - 0, 0, 1482, 2801, 0, 0, 0, 0, 0, 1482, - 2679, 0, 3669, 0, 2800, 0, 1482, 0, 0, 0, - 1482, 2799, 0, 0, 1482, 0, 2798, 0, 1482, 0, - 0, 2797, 1482, 0, 0, 0, 1482, 0, 0, 0, - 2796, 1479, 0, 1480, 1481, 0, 2795, 0, 1482, 0, - 2789, 0, 0, 0, 0, 3710, 0, 3711, 3712, 3713, - 1479, 0, 1480, 1481, 0, 3720, 0, 1482, 3727, 0, - 3729, 1479, 0, 1480, 1481, 0, 0, 3700, 1479, 0, - 1480, 1481, 1482, 1479, 3730, 1480, 1481, 0, 1479, 2788, - 1480, 1481, 0, 3226, 2787, 0, 87, 1479, 3226, 1480, - 1481, 2784, 0, 1479, 0, 1480, 1481, 1479, 2783, 1480, - 1481, 0, 2782, 0, 0, 0, 2780, 0, 0, 0, - 2773, 0, 1482, 3752, 2770, 0, 0, 3731, 2768, 0, - 0, 0, 2137, 3663, 2135, 3760, 3740, 3750, 3739, 0, - 2766, 0, 3747, 0, 3749, 0, 1479, 0, 1480, 1481, - 1482, 1479, 0, 1480, 1481, 0, 0, 0, 1479, 2725, - 1480, 1481, 0, 3912, 0, 1479, 0, 1480, 1481, 1479, - 3764, 1480, 1481, 1479, 2705, 1480, 1481, 1479, 0, 1480, - 1481, 1479, 0, 1480, 1481, 1479, 0, 1480, 1481, 0, - 0, 3619, 3620, 0, 0, 0, 42, 1479, 0, 1480, - 1481, 0, 3904, 3931, 3903, 0, 0, 0, 0, 0, - 0, 0, 0, 3919, 2704, 0, 1479, 0, 1480, 1481, - 3923, 3924, 0, 0, 0, 0, 3902, 0, 0, 0, - 0, 1479, 0, 1480, 1481, 0, 3970, 3971, 0, 0, - 0, 0, 2700, 3754, 0, 3074, 3075, 3076, 3077, 3078, - 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0, - 2137, 0, 2135, 3974, 0, 3093, 0, 3914, 3915, 3916, - 0, 1479, 0, 1480, 1481, 0, 0, 0, 3761, 3762, - 0, 0, 0, 3222, 0, 0, 0, 0, 0, 3977, - 0, 4019, 3226, 3980, 0, 0, 0, 0, 3756, 1479, - 0, 1480, 1481, 0, 0, 0, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, - 1567, 1568, 1569, 1570, 1571, 1573, 1574, 1575, 1576, 1577, - 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, - 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, - 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, - 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, - 1648, 1649, 1650, 1652, 1653, 1654, 1655, 1656, 1657, 1658, - 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1673, - 1674, 1675, 1676, 1690, 1691, 1692, 1693, 1694, 1695, 1696, - 1697, 1698, 1699, 1700, 1701, 1702, 1703, 4020, 4004, 0, - 3975, 4003, 0, 0, 0, 3225, 3994, 0, 0, 1482, - 3225, 4038, 0, 4000, 0, 4002, 0, 0, 1482, 0, - 0, 3064, 0, 0, 1743, 0, 0, 0, 0, 87, - 0, 0, 0, 0, 1743, 3228, 0, 0, 1751, 1482, - 4023, 1744, 0, 1482, 0, 0, 0, 0, 1751, 4022, - 0, 1744, 0, 3246, 0, 0, 4045, 3907, 4040, 4027, - 0, 0, 1482, 0, 4043, 0, 2382, 2383, 1750, 1748, - 1749, 1745, 0, 1746, 0, 3911, 1739, 1740, 1750, 1748, - 1749, 1745, 0, 1746, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1747, 0, 0, 0, - 0, 2698, 0, 0, 0, 0, 1747, 0, 0, 0, - 2690, 0, 0, 0, 0, 0, 0, 0, 0, 4063, - 0, 0, 4064, 0, 0, 0, 0, 4088, 0, 42, - 0, 2661, 87, 0, 0, 2655, 0, 0, 0, 0, - 4073, 0, 0, 0, 0, 1483, 0, 0, 4082, 0, - 0, 0, 0, 3138, 2650, 3140, 0, 0, 1479, 4092, - 1480, 1481, 0, 0, 3931, 4108, 4094, 1479, 4119, 1480, - 1481, 3151, 3152, 3153, 3154, 4105, 1541, 0, 4097, 4102, - 3377, 4099, 4098, 4096, 4101, 4100, 0, 0, 1479, 4127, - 1480, 1481, 1479, 0, 1480, 1481, 0, 0, 0, 4024, - 0, 4132, 3394, 3395, 3225, 3396, 3398, 3400, 0, 4150, - 0, 1479, 0, 1480, 1481, 0, 4140, 0, 4145, 0, - 0, 0, 0, 0, 4158, 4119, 4160, 0, 0, 0, - 4171, 0, 42, 3413, 0, 0, 0, 0, 3416, 0, - 3418, 3419, 3420, 3422, 3423, 3424, 3425, 3426, 3427, 3428, - 3429, 3430, 3431, 3432, 3433, 3434, 3436, 3438, 3440, 3442, - 3444, 3446, 3448, 3450, 3452, 3454, 3456, 3458, 3460, 3462, - 3464, 3466, 3467, 3469, 3470, 3471, 3473, 2015, 4194, 3475, - 4191, 3477, 3478, 3479, 4201, 4205, 3483, 3484, 3485, 3486, - 3487, 3488, 3489, 3490, 3491, 3492, 3493, 2137, 4207, 2135, - 4204, 4203, 4119, 4215, 4200, 3499, 4190, 4175, 4170, 3504, - 4223, 4089, 3222, 3508, 3509, 4084, 3510, 3512, 0, 3515, - 3517, 4231, 3519, 3520, 3521, 3522, 4229, 0, 4174, 0, - 0, 0, 3530, 0, 0, 0, 0, 1825, 0, 4029, - 4240, 4241, 3971, 4239, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2137, 0, 2135, 4238, 0, - 0, 0, 0, 4036, 0, 0, 0, 3554, 3555, 0, - 0, 3559, 0, 4048, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1825, 0, 0, 4166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4083, 0, 0, 0, 0, 0, 1773, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3634, 0, 0, 0, - 0, 0, 1722, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1812, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1862, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3653, 0, 0, 3657, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 676, 0, 1812, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3670, 0, - 0, 1028, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1826, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4188, 0, 0, 0, 1716, 0, 0, - 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3693, 0, 0, 0, 0, 1826, 0, 0, - 0, 0, 2020, 0, 0, 3701, 0, 0, 0, 0, - 0, 0, 3708, 1839, 1842, 1843, 1844, 1845, 1846, 1847, - 0, 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828, - 1829, 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815, - 1816, 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823, - 1831, 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0, - 0, 1824, 1839, 1842, 1843, 1844, 1845, 1846, 1847, 0, - 1848, 1849, 1851, 1852, 1850, 1853, 1854, 1827, 1828, 1829, - 1830, 1810, 1811, 1840, 0, 1813, 0, 1814, 1815, 1816, - 1817, 1818, 1819, 1820, 1821, 1822, 0, 0, 1823, 1831, - 1832, 1833, 1834, 0, 1835, 1836, 1837, 1838, 0, 0, - 1824, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3920, 0, 0, 0, 0, 0, 0, 0, 0, - 3927, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3937, 3938, 3939, 0, 3941, 0, 3942, 3943, 0, 0, - 0, 0, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, - 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, - 3964, 3965, 3966, 3967, 0, 3969, 3972, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3691, 0, 0, - 0, 3981, 3982, 3983, 3984, 3985, 3987, 3988, 3990, 3992, - 3993, 3995, 0, 0, 0, 3999, 0, 0, 0, 4001, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2088, - 2089, 2090, 2091, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2104, 1841, 0, 0, 0, - 0, 0, 0, 0, 4028, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2143, 2144, 0, 0, 0, 0, 2167, 0, 0, 2171, - 2172, 0, 0, 0, 2177, 1841, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2189, - 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 0, - 2200, 0, 0, 0, 2222, 2223, 2224, 2225, 2226, 2227, - 2228, 2229, 2231, 0, 2236, 0, 2238, 2239, 2240, 0, - 2242, 2243, 2244, 0, 2246, 2247, 2248, 2249, 2250, 2251, - 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, - 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, - 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, - 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, - 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, - 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, - 2315, 2316, 2317, 0, 0, 0, 0, 0, 2323, 0, - 2325, 0, 2332, 2333, 2334, 2335, 2336, 2337, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 0, - 2357, 2358, 2359, 2360, 2361, 4010, 0, 0, 0, 0, - 0, 4053, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4068, 0, 0, 0, 1070, - 0, 4071, 0, 4072, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 0, 0, 0, 1219, 0, 1225, 0, - 0, 0, 0, 0, 0, 0, 4087, 0, 0, 0, - 2402, 2403, 0, 0, 0, 129, 0, 151, 958, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 4113, 4114, 0, 0, 2441, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4121, 4123, 4125, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1453, 0, 0, 0, 4131, 162, 0, 0, 0, 0, - 0, 150, 0, 0, 195, 0, 4153, 195, 0, 0, - 0, 729, 0, 0, 0, 0, 735, 0, 0, 0, - 0, 169, 0, 0, 170, 0, 0, 195, 2484, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 195, 4172, 0, 138, 139, 161, 160, - 189, 0, 0, 1716, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 735, 195, - 735, 0, 0, 0, 0, 0, 0, 0, 4195, 4197, - 4199, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4052, - 0, 4220, 0, 0, 0, 0, 0, 4062, 0, 0, - 0, 0, 0, 0, 0, 95, 0, 0, 1023, 4232, - 4233, 0, 0, 963, 1024, 976, 977, 978, 964, 0, - 0, 965, 966, 0, 967, 0, 0, 0, 0, 0, - 0, 0, 155, 136, 158, 143, 135, 0, 156, 157, - 972, 0, 979, 980, 0, 173, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 144, 0, 0, 0, 1716, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, - 145, 140, 141, 142, 146, 0, 0, 0, 0, 0, - 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, - 148, 3345, 3346, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 981, 982, 983, 984, 985, 986, 987, + 1676, 1677, 1440, 1522, 1271, 2550, 1678, 4036, 1680, 1681, + 1682, 1683, 1684, 1441, 1442, 2974, 3331, 3332, 3588, 3589, + 1551, 1551, 1551, 1551, 1551, 1551, 1535, 1121, 4150, 3335, + 1515, 975, 4082, 975, 724, 1691, 1692, 1693, 1694, 1695, + 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1518, + 1519, 1520, 1521, 1526, 2997, 715, 4121, 975, 1515, 1532, + 3657, 4121, 1467, 3700, 3700, 1083, 1718, 165, 3331, 3332, + 716, 1224, 4149, 1547, 177, 1548, 1549, 1234, 1459, 94, + 2624, 3335, 1977, 1976, 1978, 1979, 1980, 1717, 4120, 1221, + 94, 94, 165, 4120, 1552, 1553, 3541, 1216, 2996, 177, + 2977, 1897, 1083, 2993, 1233, 1142, 1239, 1240, 1241, 1242, + 2008, 1865, 89, 1172, 2623, 185, 3044, 3485, 1228, 1135, + 1724, 674, 3385, 1171, 1753, 4160, 2548, 2854, 2856, 1042, + 1279, 1280, 3021, 1042, 4024, 3020, 1467, 1516, 1517, 1042, + 185, 4231, 3579, 3561, 2640, 2924, 2889, 2826, 2143, 1782, + 3031, 719, 1679, 1179, 1227, 1142, 1715, 3172, 166, 171, + 168, 174, 175, 176, 178, 180, 181, 182, 183, 1716, + 1477, 1247, 2884, 2494, 184, 186, 187, 188, 1142, 682, + 2444, 1515, 124, 166, 171, 168, 174, 175, 176, 178, + 180, 181, 182, 183, 2402, 3257, 1512, 1142, 2184, 184, + 186, 187, 188, 2651, 1260, 1495, 3265, 1058, 1141, 1274, + 1896, 2176, 4050, 1165, 2495, 2185, 119, 3620, 3553, 1754, + 1732, 2493, 94, 1232, 1736, 2023, 2568, 1734, 1735, 2077, + 1041, 104, 105, 2004, 1796, 3071, 2510, 1716, 1685, 1686, + 1687, 1688, 1689, 1690, 1477, 1995, 4196, 3749, 1722, 1507, + 1508, 1510, 1509, 1511, 1512, 2496, 1482, 3266, 1141, 1115, + 1211, 3595, 4188, 1145, 1135, 2492, 1481, 1482, 1147, 3594, + 2535, 107, 1148, 1146, 1906, 1483, 1142, 2176, 1905, 2660, + 1895, 1141, 3268, 1473, 2540, 3034, 1465, 1135, 1138, 1139, + 3033, 1099, 2540, 1149, 120, 1132, 1136, 1873, 1874, 1875, + 1141, 2855, 3263, 2651, 1730, 1142, 1135, 1138, 1139, 2545, + 1099, 1889, 2543, 1153, 1132, 1136, 1131, 1151, 1053, 1756, + 3580, 3034, 3279, 3280, 1215, 1733, 3033, 2544, 1719, 3264, + 1960, 4233, 1882, 2547, 2016, 2542, 1038, 4083, 1759, 4016, + 1040, 1911, 1731, 1912, 1985, 1914, 1916, 3921, 1901, 1920, + 1922, 1924, 1926, 1928, 2182, 1942, 3920, 1473, 3051, 2332, + 1282, 1983, 1261, 3270, 1950, 1951, 720, 1787, 1788, 2167, + 1956, 1957, 1900, 4229, 1856, 1217, 4230, 1231, 4228, 1141, + 2111, 1178, 3654, 2024, 3655, 1175, 4084, 1246, 4017, 1864, + 2400, 2401, 1899, 1899, 2112, 1513, 1514, 2110, 1248, 4239, + 1992, 3911, 1993, 1879, 3671, 1994, 3670, 1880, 1141, 1892, + 3602, 1878, 2332, 1145, 1135, 1984, 2329, 1972, 1147, 1737, + 3601, 1754, 1148, 1146, 1480, 2331, 1481, 1482, 725, 2181, + 1903, 3278, 1982, 3073, 1214, 3591, 1946, 2099, 2100, 2097, + 2098, 973, 3053, 3281, 977, 978, 979, 1483, 3308, 3297, + 1114, 2949, 1483, 2099, 2100, 2630, 2631, 1938, 2012, 1483, + 1941, 2948, 1943, 2947, 2096, 2500, 2697, 1986, 2159, 2148, + 2149, 2150, 2151, 2161, 2152, 2153, 2154, 2166, 2162, 2155, + 2156, 2163, 2164, 2165, 2157, 2158, 2160, 1483, 1971, 1970, + 190, 1969, 128, 1483, 1968, 4240, 1118, 1117, 1116, 1483, + 1958, 2978, 1505, 1506, 1507, 1508, 1510, 1509, 1511, 1512, + 1790, 2029, 1952, 129, 1949, 151, 3063, 3062, 3061, 2407, + 2408, 3055, 1948, 3059, 1947, 3054, 1918, 3052, 1729, 172, + 1282, 1282, 3057, 1483, 3360, 1446, 2025, 2026, 1483, 4201, + 1754, 3056, 2875, 4216, 2051, 1754, 87, 4189, 4045, 87, + 2030, 4199, 1754, 3552, 3585, 3402, 725, 2037, 2038, 2039, + 3058, 3060, 4044, 162, 3267, 4020, 2931, 2050, 725, 150, + 1489, 1490, 1491, 1492, 1493, 1494, 1488, 1485, 4019, 1472, + 1469, 1470, 1471, 1476, 1478, 1475, 2516, 1474, 2515, 169, + 4018, 3943, 170, 1754, 1767, 2699, 1480, 1468, 1481, 1482, + 2514, 1480, 2513, 1481, 1482, 1479, 1754, 2942, 1480, 101, + 1481, 1482, 4176, 1754, 1885, 1886, 161, 160, 189, 102, + 3916, 1483, 2138, 2138, 2136, 2136, 1754, 2139, 2875, 1754, + 4129, 1754, 1483, 2512, 3900, 2511, 1480, 42, 1481, 1482, + 42, 3899, 1480, 1768, 1481, 1482, 3748, 2101, 1480, 1717, + 1481, 1482, 1483, 1472, 1469, 1470, 1471, 1476, 1478, 1475, + 3746, 1474, 4038, 2027, 1479, 1754, 2875, 4114, 2875, 4093, + 2031, 1468, 2033, 2034, 2035, 2036, 2687, 3667, 1501, 2040, + 1754, 1497, 1480, 1498, 1481, 1482, 1714, 1480, 1713, 1481, + 1482, 2052, 2222, 1483, 2875, 4089, 2236, 1499, 1513, 1514, + 1496, 1712, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, + 1509, 1511, 1512, 4127, 1754, 1483, 85, 3599, 1715, 85, + 155, 1887, 158, 2078, 1884, 1754, 156, 157, 4001, 1754, + 3948, 1716, 3584, 173, 2108, 3370, 1483, 2058, 2059, 2171, + 3638, 4035, 179, 1503, 1504, 1505, 1506, 1507, 1508, 1510, + 1509, 1511, 1512, 2114, 1483, 2116, 2117, 2118, 2119, 2120, + 2121, 2123, 2125, 2126, 2127, 2128, 2129, 2130, 1483, 2113, + 1480, 3367, 1481, 1482, 3300, 2649, 2319, 2320, 2321, 2322, + 2323, 1480, 2656, 1481, 1482, 2648, 2342, 110, 2142, 2115, + 2341, 3924, 1754, 2344, 2246, 2340, 2347, 2348, 109, 101, + 108, 1480, 3299, 1481, 1482, 103, 3271, 4125, 1754, 102, + 3275, 3025, 1526, 2186, 2187, 2188, 2189, 3274, 2875, 3912, + 3947, 2328, 2330, 3638, 1754, 2875, 3636, 2200, 3994, 1754, + 2177, 2365, 2221, 2540, 1754, 3559, 1754, 2781, 1754, 3904, + 2238, 1483, 1480, 2958, 1481, 1482, 3992, 1754, 3290, 3289, + 3903, 3276, 2945, 2920, 1483, 1711, 3272, 3287, 3288, 103, + 2655, 3273, 3285, 3286, 1480, 2647, 1481, 1482, 3285, 3284, + 1754, 164, 1483, 1754, 2899, 1754, 2623, 3006, 2423, 2339, + 1705, 1711, 2345, 2346, 1483, 1480, 1709, 1481, 1482, 2342, + 2613, 1707, 1483, 2412, 1708, 1706, 2605, 1710, 2340, 1860, + 2987, 104, 105, 1480, 2604, 1481, 1482, 2980, 2981, 3646, + 1501, 2562, 3043, 1771, 2561, 1483, 2453, 1480, 2397, 1481, + 1482, 2921, 104, 105, 1754, 2375, 1483, 2376, 1501, 2387, + 2054, 2923, 2020, 2107, 1502, 1503, 1504, 1505, 1506, 1507, + 1508, 1510, 1509, 1511, 1512, 1981, 3989, 1754, 2875, 2874, + 2701, 1104, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, + 1509, 1511, 1512, 1973, 3971, 1754, 2984, 159, 1963, 2425, + 2963, 2462, 2463, 2464, 2465, 2457, 3574, 2458, 2459, 2460, + 2461, 2447, 1054, 2448, 1770, 1104, 2891, 2872, 1959, 2363, + 1480, 2467, 1481, 1482, 2469, 2470, 2471, 2472, 2429, 2388, + 2381, 103, 2382, 1480, 1955, 1481, 1482, 3526, 1754, 2452, + 2390, 1954, 2483, 2141, 1754, 95, 1953, 1769, 3521, 2451, + 109, 1480, 1272, 1481, 1482, 3556, 1501, 2529, 2639, 2410, + 1483, 2489, 2891, 1480, 1483, 1481, 1482, 1479, 2434, 2435, + 2433, 1480, 1088, 1481, 1482, 1089, 2450, 2920, 2449, 2541, + 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511, + 1512, 1860, 1859, 2899, 1480, 2870, 1481, 1482, 4077, 2526, + 1802, 1801, 2499, 2898, 4049, 1480, 152, 1481, 1482, 153, + 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511, + 1512, 3222, 2484, 3555, 1479, 2480, 2473, 2475, 2476, 2875, + 2899, 2498, 3552, 2534, 1483, 2503, 2537, 2502, 2538, 3552, + 165, 3252, 3505, 2540, 3287, 2921, 3195, 177, 3603, 2436, + 2781, 2623, 2554, 4190, 2684, 2623, 3519, 1754, 2484, 2533, + 2536, 2532, 1143, 2683, 2899, 1501, 2540, 1483, 2523, 2405, + 1758, 1144, 1483, 2366, 2141, 2079, 2063, 2555, 1483, 2558, + 2006, 1899, 1483, 2559, 2560, 1789, 1483, 1126, 185, 1502, + 1503, 1504, 1505, 1506, 1507, 1508, 1510, 1509, 1511, 1512, + 1483, 1755, 1757, 1125, 1483, 3604, 3605, 3606, 1483, 1480, + 4155, 1481, 1482, 1480, 2628, 1481, 1482, 4096, 3935, 1043, + 1761, 3901, 3311, 1042, 1042, 1042, 3516, 1754, 2565, 3761, + 3619, 166, 171, 168, 174, 175, 176, 178, 180, 181, + 182, 183, 110, 1536, 3616, 1536, 3597, 184, 186, 187, + 188, 3418, 1483, 109, 3417, 108, 1862, 2482, 3572, 3514, + 1754, 2643, 3358, 103, 3477, 1754, 3313, 3309, 2988, 1483, + 3475, 1754, 2598, 1483, 3471, 1754, 2479, 2955, 3468, 1754, + 2342, 1501, 1483, 1480, 2341, 1481, 1482, 1483, 2474, 2646, + 2468, 1483, 3466, 1754, 2466, 1483, 3464, 1754, 1988, 1483, + 3462, 1754, 95, 1894, 1483, 1502, 1503, 1504, 1505, 1506, + 1507, 1508, 1510, 1509, 1511, 1512, 1480, 1890, 1481, 1482, + 1483, 1480, 1858, 1481, 1482, 2615, 2666, 1480, 1754, 1481, + 1482, 1480, 121, 1481, 1482, 1480, 1216, 1481, 1482, 2954, + 2621, 3566, 3567, 2681, 3460, 1754, 3362, 3936, 1483, 1480, + 2497, 1481, 1482, 1480, 2629, 1481, 1482, 1480, 1934, 1481, + 1482, 3458, 1754, 2379, 4211, 3456, 1754, 2635, 2056, 4209, + 2632, 2633, 2634, 1483, 3454, 1754, 4053, 1483, 2108, 3452, + 1754, 1483, 4183, 3450, 1754, 679, 4057, 3448, 1754, 3976, + 1483, 3446, 1754, 2955, 1483, 3569, 2636, 4033, 2638, 3305, + 3304, 1480, 1483, 1481, 1482, 3303, 3222, 2641, 2967, 2642, + 1483, 2599, 3444, 1754, 1483, 1935, 1936, 1937, 1480, 1766, + 1481, 1482, 1480, 3244, 1481, 1482, 3571, 1483, 3245, 2659, + 3241, 1480, 2637, 1481, 1482, 2057, 1480, 3240, 1481, 1482, + 1480, 3908, 1481, 1482, 1480, 1056, 1481, 1482, 1480, 3242, + 1481, 1482, 3937, 1480, 3243, 1481, 1482, 1483, 2644, 742, + 2396, 2825, 2385, 1483, 3560, 3442, 1754, 3200, 3199, 1480, + 3621, 1481, 1482, 3440, 1754, 2607, 2608, 4015, 1483, 3739, + 2610, 3548, 3438, 1754, 3545, 2695, 3517, 2167, 1483, 2611, + 3741, 2813, 3544, 2857, 3424, 1754, 1057, 1480, 3209, 1481, + 1482, 2005, 3400, 1754, 1026, 3283, 2846, 1754, 3246, 2938, + 2908, 2909, 1042, 2138, 3726, 2136, 3725, 2860, 1483, 2844, + 1754, 2959, 1480, 2184, 1481, 1482, 1480, 2591, 1481, 1482, + 1480, 1483, 1481, 1482, 2590, 2896, 2897, 1182, 2858, 1480, + 2185, 1481, 1482, 1480, 2423, 1481, 1482, 1042, 2916, 2819, + 1754, 1480, 2589, 1481, 1482, 2796, 1754, 2588, 2861, 1480, + 2863, 1481, 1482, 1480, 2587, 1481, 1482, 1059, 1483, 3724, + 2788, 1754, 1483, 2895, 2586, 1060, 1480, 2107, 1481, 1482, + 2779, 1754, 1483, 2876, 2585, 1181, 2159, 2148, 2149, 2150, + 2151, 2161, 2152, 2153, 2154, 2166, 2162, 2155, 2156, 2163, + 2164, 2165, 2157, 2158, 2160, 3378, 1480, 2954, 1481, 1482, + 2777, 1754, 1480, 3037, 1481, 1482, 1483, 1722, 2848, 1445, + 2885, 2914, 1068, 2764, 1754, 2994, 42, 1480, 129, 1481, + 1482, 101, 3550, 1483, 103, 2913, 1067, 1480, 2915, 1481, + 1482, 102, 2868, 4225, 2941, 2943, 2971, 1483, 1716, 3212, + 3214, 1483, 2104, 2102, 2103, 2888, 2934, 1483, 3215, 2873, + 2762, 1754, 2992, 1483, 2760, 1754, 101, 1480, 2918, 1481, + 1482, 2602, 103, 4132, 2758, 1754, 102, 4034, 3931, 2922, + 1480, 3528, 1481, 1482, 2925, 1483, 110, 2407, 2408, 2489, + 2932, 3282, 2912, 2391, 1483, 2935, 2627, 109, 2957, 108, + 3003, 2179, 3198, 2960, 2961, 2062, 2180, 103, 2756, 1754, + 3197, 2061, 2946, 108, 4000, 3999, 3607, 1480, 1483, 1481, + 1482, 1480, 3979, 1481, 1482, 2754, 1754, 1483, 3747, 2956, + 3745, 1480, 3744, 1481, 1482, 1483, 3737, 3736, 3617, 2752, + 1754, 3549, 2964, 3483, 2242, 2968, 2969, 2970, 2965, 2750, + 1754, 110, 1483, 3547, 3000, 2748, 1754, 1483, 3314, 1882, + 2524, 1483, 109, 1930, 108, 1480, 1877, 1481, 1482, 3608, + 3609, 3610, 110, 2989, 2990, 1066, 109, 2746, 1754, 3538, + 4212, 2891, 1480, 109, 1481, 1482, 2744, 1754, 3710, 2999, + 3047, 3048, 4213, 4212, 4213, 3067, 1480, 2872, 1481, 1482, + 1480, 1483, 1481, 1482, 3101, 1483, 1480, 2685, 1481, 1482, + 2742, 1754, 1480, 1483, 1481, 1482, 1931, 1932, 1933, 2740, + 1754, 2377, 1483, 3026, 2325, 1783, 3064, 2738, 1754, 1483, + 3045, 1775, 114, 115, 1480, 4021, 1481, 1482, 3029, 1483, + 3583, 3, 97, 1480, 3479, 1481, 1482, 1, 2076, 2736, + 1754, 10, 1034, 3415, 2357, 3082, 3083, 3084, 3085, 3086, + 3087, 3088, 3089, 3090, 3091, 2074, 1448, 1480, 9, 1481, + 1482, 1755, 2364, 3001, 2075, 3099, 1480, 8, 1481, 1482, + 1447, 3587, 3065, 4144, 1480, 695, 1481, 1482, 2367, 1720, + 4184, 4140, 4141, 2734, 1754, 1974, 1964, 2732, 1754, 3649, + 2293, 1480, 1483, 1481, 1482, 3414, 1480, 3932, 1481, 1482, + 1480, 2389, 1481, 1482, 2730, 1754, 1483, 3317, 2530, 3615, + 1483, 2725, 1754, 2487, 1483, 1134, 154, 3141, 3049, 3143, + 2445, 3406, 3103, 2446, 1483, 3159, 3066, 3035, 4109, 118, + 3036, 1092, 117, 1137, 1483, 3154, 3155, 3156, 3157, 1245, + 1480, 2979, 1481, 1482, 1480, 2525, 1481, 1482, 1483, 3639, + 3046, 2939, 1480, 2454, 1481, 1482, 1808, 1806, 1807, 1805, + 1810, 1480, 3177, 1481, 1482, 1809, 4081, 3386, 1480, 2686, + 1481, 1482, 3166, 3168, 3484, 2067, 732, 2911, 1480, 726, + 1481, 1482, 192, 2423, 2721, 1754, 3092, 2328, 2330, 2328, + 2330, 1483, 1797, 1776, 2060, 1176, 685, 3291, 2719, 1754, + 2563, 691, 3404, 3139, 1533, 3229, 2842, 87, 2501, 2055, + 2423, 2423, 2423, 2423, 2423, 3196, 2841, 3149, 3150, 3151, + 3152, 3153, 2926, 1086, 1078, 3177, 2712, 1754, 2378, 2862, + 2423, 1085, 3909, 2423, 3230, 3542, 3167, 3208, 3169, 3210, + 2837, 1480, 1483, 1481, 1482, 2878, 3176, 1483, 3234, 3213, + 3206, 2016, 3251, 4014, 3738, 1480, 4094, 1481, 1482, 1480, + 3204, 1481, 1482, 1480, 2936, 1481, 1482, 1483, 3194, 3188, + 1772, 1483, 3504, 1480, 2425, 1481, 1482, 1483, 2658, 2174, + 3203, 1523, 3201, 1480, 2950, 1481, 1482, 757, 2422, 3216, + 3217, 3705, 2094, 755, 754, 752, 3334, 1480, 1045, 1481, + 1482, 2425, 2425, 2425, 2425, 2425, 3342, 3253, 3233, 1483, + 3254, 1046, 3202, 3236, 3237, 3235, 3239, 1483, 3238, 104, + 105, 2425, 3247, 1047, 2425, 1483, 2864, 3255, 3189, 3191, + 3193, 2892, 1487, 3261, 2710, 1754, 1486, 963, 2852, 2836, + 1480, 1784, 1481, 1482, 1483, 2903, 3292, 2901, 3294, 2900, + 2600, 2430, 3295, 3296, 3568, 3293, 1483, 3564, 4136, 2835, + 2424, 2420, 2871, 2834, 914, 3346, 913, 764, 756, 2833, + 746, 976, 912, 3343, 911, 3344, 3345, 3219, 3009, 2489, + 3336, 3315, 3359, 3011, 2937, 3347, 3355, 1464, 3353, 1739, + 1742, 1480, 2386, 1481, 1482, 1105, 1480, 3383, 1481, 1482, + 3225, 2832, 4040, 2626, 3412, 3225, 1483, 1738, 4047, 2823, + 3325, 3371, 3374, 3373, 3633, 3306, 1480, 2822, 1481, 1482, + 1480, 2985, 1481, 1482, 3381, 2517, 1480, 69, 1481, 1482, + 46, 4009, 3391, 4078, 906, 903, 2821, 3388, 3389, 3707, + 3390, 3708, 3709, 3392, 3162, 3394, 3163, 3396, 2820, 4060, + 4061, 3407, 3408, 3409, 3410, 3411, 902, 4062, 1480, 2231, + 1481, 1482, 1458, 1455, 4157, 2069, 1480, 96, 1481, 1482, + 36, 35, 34, 33, 1480, 32, 1481, 1482, 26, 25, + 24, 1536, 23, 22, 29, 1536, 19, 2645, 21, 20, + 3316, 2650, 18, 1480, 3328, 1481, 1482, 4179, 2817, 4224, + 123, 3529, 55, 3531, 52, 1480, 50, 1481, 1482, 131, + 130, 53, 49, 1219, 2653, 47, 2654, 3499, 31, 30, + 17, 16, 2662, 15, 3503, 14, 2664, 2665, 13, 12, + 11, 7, 6, 39, 38, 2671, 2672, 2673, 2674, 2675, + 2676, 2677, 2678, 2679, 2680, 37, 2682, 28, 27, 40, + 4, 3228, 2972, 2519, 3382, 1480, 0, 1481, 1482, 0, + 0, 0, 1717, 2423, 0, 0, 3534, 1483, 0, 2688, + 2689, 2690, 2691, 744, 2693, 2694, 3581, 2696, 3530, 3539, + 3532, 2698, 3546, 0, 0, 2703, 2704, 0, 2705, 3551, + 0, 2708, 2709, 2711, 2713, 2714, 2715, 2716, 2717, 2718, + 2720, 2722, 2723, 2724, 2726, 3337, 2728, 2729, 2731, 2733, + 2735, 2737, 2739, 2741, 2743, 2745, 2747, 2749, 2751, 2753, + 2755, 2757, 2759, 2761, 2763, 2765, 2766, 2767, 3573, 2769, + 3575, 2771, 3570, 2773, 2774, 3346, 2776, 2778, 2780, 0, + 3576, 0, 2783, 3343, 3536, 3506, 2787, 3508, 3509, 3510, + 2792, 2793, 2794, 2795, 2425, 3347, 3582, 1483, 0, 2812, + 3598, 0, 3600, 2806, 2807, 2808, 2809, 2810, 2811, 1483, + 0, 2815, 2816, 3592, 3593, 3376, 3377, 3563, 1483, 2818, + 0, 0, 1065, 1483, 2824, 1071, 1071, 0, 1483, 2827, + 2828, 2829, 2830, 2831, 0, 0, 3577, 3578, 0, 0, + 2838, 2839, 0, 2840, 0, 1483, 2843, 2845, 2389, 1483, + 2847, 0, 0, 3643, 3644, 0, 1480, 0, 1481, 1482, + 2859, 1483, 0, 0, 0, 3626, 0, 1483, 0, 3630, + 3631, 3632, 1483, 0, 3645, 0, 1483, 0, 0, 0, + 0, 1483, 0, 0, 2904, 2907, 2908, 2909, 2905, 2805, + 2906, 2910, 0, 0, 3566, 3567, 0, 0, 0, 0, + 1483, 2804, 0, 0, 0, 3661, 0, 1483, 0, 0, + 2803, 1483, 0, 0, 0, 2802, 0, 0, 0, 0, + 2801, 0, 0, 1483, 0, 0, 0, 0, 1483, 0, + 0, 0, 0, 3672, 0, 0, 0, 2800, 0, 1483, + 0, 2799, 0, 1483, 0, 0, 1480, 0, 1481, 1482, + 0, 0, 3694, 2798, 0, 0, 0, 0, 1480, 2797, + 1481, 1482, 1483, 0, 2791, 0, 0, 1480, 2790, 1481, + 1482, 0, 1480, 2789, 1481, 1482, 1483, 1480, 3723, 1481, + 1482, 3730, 0, 3732, 0, 3713, 0, 3714, 3715, 3716, + 1483, 0, 2786, 3703, 1480, 1483, 1481, 1482, 1480, 2785, + 1481, 1482, 0, 2784, 0, 0, 3229, 0, 3733, 87, + 1480, 3229, 1481, 1482, 0, 2782, 1480, 0, 1481, 1482, + 2775, 1480, 0, 1481, 1482, 1480, 1483, 1481, 1482, 0, + 1480, 2772, 1481, 1482, 0, 2770, 0, 1483, 0, 3666, + 2138, 1483, 2136, 0, 3763, 3734, 3743, 3755, 3742, 1480, + 3753, 1481, 1482, 0, 2768, 3750, 1480, 3752, 1481, 1482, + 1480, 0, 1481, 1482, 1483, 0, 0, 0, 2727, 0, + 3622, 3623, 1480, 0, 1481, 1482, 3915, 1480, 0, 1481, + 1482, 0, 2707, 3767, 0, 0, 0, 2706, 1480, 0, + 1481, 1482, 1480, 0, 1481, 1482, 0, 0, 0, 0, + 42, 2904, 2907, 2908, 2909, 2905, 0, 2906, 2910, 0, + 0, 1480, 0, 1481, 1482, 0, 3907, 3906, 2702, 0, + 0, 0, 0, 0, 3934, 1480, 3922, 1481, 1482, 2700, + 0, 3905, 0, 2692, 3926, 3927, 0, 0, 0, 1480, + 0, 1481, 1482, 0, 1480, 0, 1481, 1482, 0, 3973, + 3974, 3077, 3078, 3079, 3080, 3081, 2663, 3757, 3764, 3765, + 0, 0, 3731, 0, 0, 3917, 3918, 3919, 2138, 0, + 2136, 3096, 3977, 0, 0, 1480, 0, 1481, 1482, 0, + 0, 0, 0, 0, 0, 0, 1480, 0, 1481, 1482, + 1480, 0, 1481, 1482, 0, 0, 0, 0, 0, 3225, + 0, 0, 3980, 0, 4022, 3229, 3983, 0, 3759, 0, + 4013, 0, 0, 1480, 0, 1481, 1482, 0, 0, 1554, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575, + 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, + 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, + 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, + 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, + 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, + 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, + 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, + 1646, 1647, 1648, 1649, 1650, 1651, 1653, 1654, 1655, 1656, + 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, + 1667, 1668, 1674, 1675, 1676, 1677, 1691, 1692, 1693, 1694, + 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, + 3978, 4023, 3228, 4007, 3997, 4006, 1483, 3228, 1744, 0, + 0, 4003, 0, 4005, 4041, 0, 0, 0, 0, 0, + 0, 0, 1752, 0, 0, 1745, 3910, 0, 0, 0, + 0, 3231, 87, 0, 0, 0, 4026, 0, 1717, 1483, + 0, 0, 0, 4025, 0, 0, 1744, 0, 0, 3249, + 2383, 2384, 1751, 1749, 1750, 1746, 0, 1747, 0, 4030, + 1752, 4043, 0, 1745, 0, 0, 0, 4046, 0, 0, + 4048, 0, 3914, 0, 0, 0, 0, 0, 0, 0, + 1748, 0, 0, 0, 0, 0, 0, 0, 1740, 1741, + 1751, 1749, 1750, 1746, 4055, 1747, 0, 0, 2657, 0, + 0, 0, 4065, 0, 0, 0, 0, 0, 0, 1484, + 0, 0, 0, 0, 0, 0, 0, 0, 1748, 0, + 0, 0, 0, 42, 0, 0, 4066, 0, 0, 4067, + 4091, 2652, 0, 0, 0, 87, 0, 0, 0, 0, + 1542, 0, 0, 0, 0, 0, 0, 0, 4076, 0, + 0, 0, 0, 0, 0, 1480, 0, 1481, 1482, 0, + 0, 4085, 0, 0, 1717, 0, 0, 0, 4027, 4097, + 0, 0, 0, 4095, 0, 3934, 4111, 3380, 4100, 4108, + 4105, 4102, 4101, 4099, 4104, 4103, 0, 0, 1480, 0, + 1481, 1482, 0, 0, 0, 0, 0, 0, 0, 3397, + 3398, 3228, 3399, 3401, 3403, 4130, 0, 0, 4153, 0, + 0, 0, 0, 4143, 0, 4135, 0, 4122, 4148, 0, + 0, 0, 0, 0, 4161, 0, 42, 0, 4163, 0, + 3416, 0, 0, 4174, 0, 3419, 0, 3421, 3422, 3423, + 3425, 3426, 3427, 3428, 3429, 3430, 3431, 3432, 3433, 3434, + 3435, 3436, 3437, 3439, 3441, 3443, 3445, 3447, 3449, 3451, + 3453, 3455, 3457, 3459, 3461, 3463, 3465, 3467, 3469, 3470, + 3472, 3473, 3474, 3476, 4122, 4194, 3478, 2016, 3480, 3481, + 3482, 4193, 4204, 3486, 3487, 3488, 3489, 3490, 3491, 3492, + 3493, 3494, 3495, 3496, 4210, 2138, 4208, 2136, 4197, 4207, + 4206, 4203, 3502, 4178, 4173, 4218, 3507, 4092, 4032, 4087, + 3511, 3512, 0, 3513, 3515, 4226, 3518, 3520, 3225, 3522, + 3523, 3524, 3525, 4234, 4232, 0, 0, 0, 0, 3533, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4051, 4243, 4244, 3974, 4242, 0, 0, 0, + 0, 4122, 0, 2138, 0, 2136, 0, 4241, 0, 0, + 4039, 0, 0, 0, 3557, 3558, 0, 0, 3562, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4169, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4086, + 1774, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 44, 45, 88, 0, 0, 1863, 0, + 0, 0, 0, 3637, 0, 0, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 48, 76, 77, 0, 74, + 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 1723, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3656, 0, + 0, 3660, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 95, 0, 1024, 0, 0, + 2332, 0, 0, 1025, 0, 3673, 0, 0, 0, 0, + 0, 0, 4191, 2137, 0, 0, 677, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1029, 0, 0, 0, + 0, 0, 0, 0, 0, 83, 2021, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3696, + 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, + 0, 0, 3704, 0, 0, 0, 0, 0, 0, 3711, + 0, 0, 982, 983, 984, 985, 986, 987, 988, 989, + 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, + 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, + 1020, 1021, 1022, 1023, 0, 0, 0, 0, 0, 0, + 51, 54, 57, 56, 59, 0, 73, 0, 0, 82, + 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 61, 91, 90, 0, 0, 71, 72, + 58, 0, 0, 0, 0, 0, 80, 81, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3923, 0, + 0, 0, 0, 0, 0, 0, 0, 3930, 0, 0, + 63, 64, 0, 65, 66, 67, 68, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3940, 3941, 3942, + 0, 3944, 0, 3945, 3946, 0, 0, 0, 0, 3949, + 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, + 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, + 3970, 0, 3972, 3975, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2089, 2090, 2091, 2092, 60, 3984, 3985, + 3986, 3987, 3988, 3990, 3991, 3993, 3995, 3996, 3998, 2105, + 0, 0, 4002, 0, 0, 0, 4004, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2144, 2145, 0, 0, 0, 0, + 2168, 4031, 0, 2172, 2173, 0, 0, 0, 2178, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2190, 2191, 2192, 2193, 2194, 2195, 2196, + 2197, 2198, 2199, 0, 2201, 0, 0, 89, 2223, 2224, + 2225, 2226, 2227, 2228, 2229, 2230, 2232, 0, 2237, 0, + 2239, 2240, 2241, 0, 2243, 2244, 2245, 0, 2247, 2248, + 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, + 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, + 2289, 2290, 2291, 2292, 2296, 2297, 2298, 2299, 2300, 2301, + 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, + 2312, 2313, 2314, 2315, 2316, 2317, 2318, 0, 0, 0, + 0, 0, 2324, 0, 2326, 0, 2333, 2334, 2335, 2336, + 2337, 2338, 0, 0, 0, 0, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 2349, 2350, 2351, 2352, 2353, + 2354, 2355, 2356, 0, 2358, 2359, 2360, 2361, 2362, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 190, 0, 0, 1071, 4177, 0, 0, 0, 4056, 0, + 0, 0, 0, 1826, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 0, 151, 0, 0, 0, 0, + 0, 0, 4071, 0, 2403, 2404, 0, 0, 4074, 172, + 4075, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 2442, 0, 0, 4090, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 190, 0, 0, 1826, 150, + 0, 0, 1220, 0, 1226, 0, 1881, 0, 0, 4116, + 4117, 0, 0, 0, 959, 0, 0, 0, 129, 169, + 151, 0, 170, 4124, 4126, 4128, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 0, 0, 0, 0, 0, + 0, 4134, 2485, 0, 138, 139, 161, 160, 189, 0, + 0, 0, 0, 4156, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1454, 0, 162, 0, + 195, 0, 0, 195, 150, 0, 0, 730, 0, 0, + 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, + 1813, 4175, 0, 195, 169, 0, 0, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1885, + 1886, 161, 160, 189, 0, 4198, 4200, 4202, 0, 0, + 0, 0, 0, 0, 736, 195, 736, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 155, 136, 158, 143, 135, 1813, 156, 157, 4223, 0, + 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, + 0, 0, 179, 144, 1827, 0, 4235, 4236, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 147, 145, 140, + 141, 142, 146, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 0, 0, 0, 0, 0, 0, 148, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 155, 1887, 158, 0, 1884, + 0, 156, 157, 0, 0, 0, 0, 0, 173, 1827, + 1840, 1843, 1844, 1845, 1846, 1847, 1848, 179, 1849, 1850, + 1852, 1853, 1851, 1854, 1855, 1828, 1829, 1830, 1831, 1811, + 1812, 1841, 0, 1814, 0, 1815, 1816, 1817, 1818, 1819, + 1820, 1821, 1822, 1823, 0, 0, 1824, 1832, 1833, 1834, + 1835, 0, 1836, 1837, 1838, 1839, 0, 0, 1825, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 164, 0, 0, 0, 1840, 1843, 1844, 1845, 1846, + 1847, 1848, 0, 1849, 1850, 1852, 1853, 1851, 1854, 1855, + 1828, 1829, 1830, 1831, 1811, 1812, 1841, 0, 1814, 0, + 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 0, + 0, 1824, 1832, 1833, 1834, 1835, 0, 1836, 1837, 1838, + 1839, 0, 0, 1825, 0, 0, 0, 0, 0, 0, + 2661, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2667, 2668, 2669, 2670, 0, 0, 164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, + 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1542, 0, 0, 0, 0, + 0, 1803, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1842, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1944, 0, 152, 0, 0, 153, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1989, + 165, 0, 0, 0, 0, 0, 0, 177, 0, 0, + 0, 0, 0, 0, 0, 0, 2017, 0, 1842, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2028, 0, 0, 0, 0, 0, 0, 2032, + 0, 152, 0, 0, 153, 0, 0, 0, 185, 1774, + 2043, 2044, 2045, 2046, 2047, 2048, 2049, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 165, 0, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 171, 168, 174, 175, 176, 178, 180, 181, + 182, 183, 0, 0, 0, 0, 0, 184, 186, 187, + 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, + 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 166, 171, 168, 174, + 175, 176, 178, 180, 181, 182, 183, 0, 0, 0, + 0, 0, 184, 186, 187, 188, 0, 0, 736, 0, + 736, 736, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 736, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2082, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3042, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3068, + 3069, 3070, 0, 0, 3072, 0, 0, 3074, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3093, 3094, 3095, + 0, 0, 0, 0, 0, 0, 3100, 0, 0, 0, + 0, 3102, 0, 0, 3104, 3105, 3106, 0, 0, 0, + 3107, 3108, 0, 0, 3109, 0, 3110, 0, 0, 0, + 0, 0, 0, 3111, 0, 3112, 0, 0, 0, 3113, + 0, 3114, 0, 0, 3115, 0, 3116, 0, 3117, 0, + 3118, 0, 3119, 0, 3120, 0, 3121, 0, 3122, 0, + 3123, 0, 3124, 0, 3125, 0, 3126, 0, 3127, 0, + 3128, 0, 3129, 0, 3130, 0, 3131, 0, 3132, 0, + 0, 0, 3133, 0, 3134, 0, 3135, 0, 0, 3136, + 0, 3137, 0, 3138, 0, 2296, 3140, 0, 0, 3142, + 0, 0, 3144, 3145, 3146, 3147, 0, 0, 0, 0, + 3148, 2296, 2296, 2296, 2296, 2296, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3158, 0, 0, 0, + 0, 0, 0, 0, 3171, 0, 0, 3175, 0, 0, + 0, 0, 0, 0, 0, 0, 3178, 3179, 3180, 3181, + 3182, 3183, 0, 0, 0, 3184, 3185, 0, 3186, 0, + 3187, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 736, 736, 0, 0, + 0, 0, 0, 0, 1071, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3220, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3250, 736, 0, 2409, 0, 0, 0, 0, 195, 0, + 0, 2413, 736, 2416, 0, 0, 2082, 0, 0, 0, + 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 736, 0, 736, 0, 0, + 0, 0, 0, 0, 0, 736, 0, 0, 1528, 736, + 3312, 0, 736, 736, 736, 736, 0, 736, 0, 736, + 736, 0, 736, 736, 736, 736, 736, 736, 0, 0, + 0, 0, 0, 0, 0, 1528, 736, 736, 1528, 736, + 1528, 195, 736, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 0, 195, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, + 736, 0, 195, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3405, 0, 195, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 195, 195, 195, 195, + 195, 195, 195, 195, 736, 3420, 0, 0, 0, 1024, + 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2137, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2082, 0, 0, 0, + 0, 0, 0, 2575, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2596, 2597, 0, 0, 2601, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2606, 0, 0, 0, 0, 0, 0, 2609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2612, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1022, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 164, 0, 0, 0, 3347, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1785, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1802, 2659, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2665, 2666, 2667, 2668, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3348, 3349, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, - 0, 1541, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1943, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1988, 0, 0, 0, 0, 0, 0, - 0, 928, 0, 0, 0, 0, 0, 932, 0, 0, - 2016, 929, 930, 0, 0, 0, 931, 933, 0, 0, - 0, 0, 0, 0, 0, 0, 2027, 0, 0, 0, - 0, 0, 0, 2031, 0, 0, 0, 152, 0, 0, - 153, 0, 0, 0, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 165, 0, 0, 0, 0, 0, 0, 177, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1773, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 190, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1880, 0, 0, 0, - 0, 0, 195, 0, 195, 0, 0, 0, 129, 0, - 151, 0, 166, 171, 168, 174, 175, 176, 178, 180, - 181, 182, 183, 0, 172, 0, 0, 0, 184, 186, - 187, 188, 1023, 0, 0, 2331, 0, 0, 1024, 0, - 0, 735, 0, 735, 735, 0, 0, 0, 2136, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, - 0, 0, 0, 0, 150, 735, 195, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 169, 0, 0, 170, 0, 0, - 0, 0, 0, 0, 1527, 0, 0, 2081, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1884, - 1885, 161, 160, 189, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 0, - 0, 0, 0, 0, 0, 0, 0, 3039, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3065, 3066, 3067, 0, 0, 3069, - 0, 0, 3071, 0, 0, 155, 1886, 158, 0, 1883, - 0, 156, 157, 0, 0, 0, 0, 0, 173, 0, - 0, 0, 3090, 3091, 3092, 0, 0, 179, 0, 0, - 0, 3097, 0, 0, 0, 0, 3099, 0, 0, 3101, - 3102, 3103, 0, 0, 0, 3104, 3105, 0, 0, 3106, - 0, 3107, 0, 0, 0, 0, 0, 0, 3108, 0, - 3109, 0, 0, 0, 3110, 0, 3111, 0, 0, 3112, - 0, 3113, 0, 3114, 0, 3115, 0, 3116, 0, 3117, - 0, 3118, 0, 3119, 0, 3120, 0, 3121, 0, 3122, - 0, 3123, 0, 3124, 0, 3125, 0, 3126, 0, 3127, - 0, 3128, 0, 3129, 0, 0, 0, 3130, 0, 3131, - 0, 3132, 0, 0, 3133, 0, 3134, 0, 3135, 0, - 2295, 3137, 0, 0, 3139, 0, 0, 3141, 3142, 3143, - 3144, 0, 0, 0, 0, 3145, 2295, 2295, 2295, 2295, - 2295, 0, 0, 0, 0, 195, 0, 0, 0, 735, - 735, 3155, 0, 0, 0, 164, 0, 0, 0, 3168, - 0, 0, 3172, 0, 0, 0, 0, 0, 195, 0, - 0, 3175, 3176, 3177, 3178, 3179, 3180, 0, 0, 0, - 3181, 3182, 0, 3183, 0, 3184, 0, 0, 0, 735, - 0, 0, 195, 0, 0, 0, 0, 2408, 0, 0, - 0, 0, 0, 0, 735, 2412, 0, 2415, 0, 1070, - 2081, 195, 0, 0, 0, 735, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, - 3217, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, - 735, 159, 0, 0, 0, 3247, 0, 0, 735, 0, - 0, 1527, 735, 0, 0, 735, 735, 735, 735, 0, - 735, 0, 735, 735, 0, 735, 735, 735, 735, 735, - 735, 0, 0, 0, 0, 0, 0, 0, 1527, 735, - 735, 1527, 735, 1527, 195, 735, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 3309, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 735, 0, 195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 735, 0, 0, 735, 0, 195, 195, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 152, 0, 195, 153, 0, 0, 0, 0, 0, 195, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 735, 0, 0, - 0, 0, 0, 0, 165, 0, 0, 0, 0, 0, - 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 2081, 3402, 0, 0, 1023, 0, 0, 2574, 0, 0, - 1024, 0, 0, 0, 0, 0, 0, 0, 2594, 2595, - 2136, 0, 2599, 0, 0, 0, 0, 0, 0, 3417, - 0, 0, 185, 0, 2604, 0, 0, 0, 0, 0, - 0, 2607, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2610, 0, 0, - 0, 0, 0, 0, 0, 166, 171, 168, 174, 175, - 176, 178, 180, 181, 182, 183, 0, 0, 0, 0, - 0, 184, 186, 187, 188, 0, 0, 0, 0, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 0, 0, 0, 0, 0, 0, 735, 735, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, + 1018, 1019, 1020, 1021, 1022, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 736, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1527, 0, 0, 0, 3615, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1527, 0, 957, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3642, 0, 0, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3639, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3662, 0, 3663, 0, 3664, 0, + 3665, 0, 0, 0, 0, 0, 0, 0, 3668, 3669, + 0, 0, 0, 0, 0, 0, 0, 0, 3674, 0, + 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3675, 0, 3676, 0, 3677, 0, 3678, 0, + 3679, 0, 3680, 0, 3681, 0, 3682, 0, 3683, 0, + 3684, 0, 3685, 0, 3686, 0, 3687, 0, 3688, 0, + 3689, 0, 3690, 0, 0, 3691, 0, 0, 0, 3692, + 0, 3693, 0, 0, 0, 0, 0, 3695, 0, 0, + 0, 0, 0, 713, 0, 0, 0, 0, 0, 735, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3712, + 0, 0, 0, 0, 2343, 0, 0, 0, 3717, 0, + 3718, 3719, 0, 3720, 0, 3721, 0, 0, 0, 0, + 3722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 735, 0, 0, 0, 3751, 195, 0, + 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, + 3760, 0, 0, 3762, 0, 0, 2917, 0, 0, 0, + 0, 0, 0, 0, 0, 3766, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 0, 736, 0, 0, 0, + 0, 3902, 0, 0, 0, 0, 0, 0, 0, 0, + 195, 0, 0, 0, 736, 0, 0, 2343, 195, 0, + 195, 0, 195, 195, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, - 0, 734, 0, 0, 0, 0, 0, 0, 3659, 0, - 3660, 0, 3661, 0, 3662, 0, 0, 0, 0, 0, - 0, 0, 3665, 3666, 0, 0, 0, 0, 0, 0, - 0, 0, 3671, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3672, 0, 3673, 0, - 3674, 0, 3675, 734, 3676, 734, 3677, 0, 3678, 0, - 3679, 0, 3680, 0, 3681, 0, 3682, 2342, 3683, 0, - 3684, 0, 3685, 0, 3686, 0, 3687, 0, 0, 3688, - 0, 0, 0, 3689, 0, 3690, 0, 0, 0, 0, - 0, 3692, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 195, 0, 3709, 0, 0, 735, 0, 0, 0, - 2915, 0, 3714, 0, 3715, 3716, 0, 3717, 0, 3718, - 0, 0, 0, 0, 3719, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 195, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3748, 0, 195, 0, 0, 0, 735, 0, 0, - 2342, 195, 0, 195, 3757, 195, 195, 3759, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3763, - 735, 0, 0, 0, 0, 2964, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3899, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, + 0, 0, 736, 736, 736, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3014, 3015, 3016, + 3017, 3018, 3019, 736, 0, 0, 0, 0, 0, 736, + 736, 0, 0, 736, 0, 736, 0, 0, 0, 0, + 4012, 736, 0, 0, 0, 0, 2082, 3030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, - 0, 0, 0, 0, 0, 735, 735, 735, 195, 0, - 0, 3012, 3013, 3014, 3015, 3016, 3017, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, - 0, 0, 735, 735, 0, 0, 735, 0, 735, 2081, - 3027, 0, 0, 0, 735, 0, 0, 0, 0, 0, + 0, 3038, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 736, 0, 0, 0, 736, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3035, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, - 0, 0, 0, 0, 735, 0, 0, 0, 735, 735, - 0, 0, 0, 0, 4009, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 195, 0, 0, 195, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 914, 0, 0, 195, 0, 0, + 0, 195, 195, 0, 0, 195, 0, 195, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 195, 0, 0, + 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 735, 0, 0, 0, 0, + 195, 0, 0, 0, 0, 0, 0, 195, 0, 0, + 0, 0, 736, 95, 0, 0, 1024, 0, 0, 0, + 0, 964, 1025, 977, 978, 979, 965, 0, 0, 966, + 967, 0, 968, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 973, 0, + 980, 981, 0, 0, 0, 0, 0, 4054, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1528, 0, 2343, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3348, + 3349, 0, 0, 4068, 0, 0, 4069, 0, 4070, 0, + 0, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 733, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4154, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170, + 0, 4171, 0, 4172, 0, 0, 0, 0, 0, 0, + 0, 3340, 0, 0, 0, 735, 1439, 735, 735, 0, + 0, 0, 0, 0, 0, 3354, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3351, 3352, 0, 0, 735, + 0, 0, 0, 0, 0, 0, 3372, 0, 0, 3375, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1527, - 0, 2342, 0, 0, 1095, 0, 1102, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0, + 0, 195, 0, 4221, 0, 4222, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4051, 0, 0, 0, 0, 0, 0, 0, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 929, 0, 0, 0, 0, 0, 933, 0, 195, 0, + 930, 931, 0, 195, 0, 932, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4065, 0, 0, - 4066, 0, 4067, 0, 0, 0, 0, 0, 0, 0, + 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 1438, 734, 734, - 0, 0, 0, 0, 0, 0, 0, 0, 3299, 0, + 0, 0, 736, 0, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 0, 3535, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 734, 736, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, + 736, 736, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3337, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3351, 1526, - 0, 0, 0, 0, 4151, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3369, 0, - 0, 3372, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4167, 0, 4168, 0, 4169, 0, 0, + 0, 1528, 736, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 195, 195, 195, 195, 195, 195, + 1096, 0, 1103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3596, + 0, 0, 0, 195, 195, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3611, + 0, 3612, 3613, 3614, 0, 0, 0, 0, 195, 0, + 0, 0, 0, 735, 735, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, + 0, 0, 0, 0, 736, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 4218, 0, 4219, - 0, 195, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 735, 0, 735, 0, 0, 0, 0, 0, + 0, 0, 735, 0, 0, 1527, 735, 0, 0, 735, + 735, 735, 735, 0, 735, 0, 735, 735, 0, 735, + 735, 735, 735, 735, 735, 0, 0, 0, 0, 0, + 0, 0, 1527, 735, 735, 1527, 735, 1527, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 736, + 0, 0, 0, 0, 735, 0, 0, 735, 0, 0, + 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 735, 3532, 0, 0, 0, - 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 195, 0, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 0, 0, 0, 1528, 0, + 0, 736, 736, 1528, 195, 195, 195, 195, 195, 0, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 0, 0, 195, 0, 195, 0, 0, 195, 195, 195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 735, 0, 0, 0, 0, 0, 0, 735, - 0, 0, 0, 735, 735, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1527, 735, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 195, 195, 195, - 195, 195, 195, 0, 734, 734, 0, 0, 0, 0, - 0, 3593, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 195, 195, 0, 0, 0, - 0, 3608, 0, 3609, 3610, 3611, 0, 0, 0, 0, - 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 0, 735, 0, 0, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 736, 0, 0, 1528, 0, + 0, 0, 0, 736, 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 734, 0, 734, 0, 0, 0, 0, - 0, 0, 0, 734, 0, 0, 1526, 734, 0, 0, - 734, 734, 734, 734, 0, 734, 735, 734, 734, 0, - 734, 734, 734, 734, 734, 734, 0, 0, 0, 0, - 0, 0, 0, 1526, 734, 734, 1526, 734, 1526, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1283, 0, 1283, - 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 1452, 0, 0, 0, 734, 0, 0, 734, 0, + 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 0, 195, 0, 0, 0, + 0, 735, 735, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 735, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1527, 0, 0, + 0, 0, 0, 0, 0, 0, 2146, 0, 0, 0, + 0, 0, 0, 0, 0, 1527, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1284, 0, 1284, 1284, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1453, 0, + 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 916, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4052, 0, 0, 195, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 195, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 193, 0, 0, 678, 0, 0, 195, 0, 195, 195, + 195, 0, 0, 0, 0, 0, 0, 0, 736, 736, + 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, + 735, 0, 0, 0, 0, 0, 0, 0, 0, 1052, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1072, 1072, 0, 0, + 0, 0, 0, 735, 0, 678, 0, 736, 736, 736, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 735, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, - 1527, 0, 0, 735, 735, 1527, 195, 195, 195, 195, - 195, 0, 0, 0, 0, 0, 0, 0, 195, 0, - 0, 0, 0, 0, 195, 0, 195, 0, 0, 195, - 195, 195, 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 735, 193, 0, - 1527, 677, 734, 734, 0, 735, 0, 0, 0, 0, - 195, 0, 0, 0, 0, 0, 0, 734, 0, 0, - 0, 677, 0, 0, 195, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1051, 0, 0, - 0, 0, 0, 0, 195, 0, 0, 195, 0, 0, - 0, 0, 0, 0, 1071, 1071, 0, 0, 0, 0, - 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1725, 1726, 0, 734, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1526, 0, - 0, 0, 0, 0, 0, 0, 0, 2145, 0, 0, - 0, 0, 0, 0, 0, 0, 1526, 0, 0, 0, - 0, 0, 0, 0, 0, 1779, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1856, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1095, 735, 1892, 0, 0, 0, - 0, 0, 0, 0, 1901, 0, 0, 0, 1903, 0, - 0, 1906, 1907, 1909, 1909, 0, 1909, 0, 1909, 1909, - 0, 1918, 1909, 1909, 1909, 1909, 1909, 0, 0, 0, - 0, 0, 195, 0, 0, 1938, 1939, 0, 1095, 0, - 0, 1944, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1986, 0, 0, 4049, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2008, 0, 195, 2012, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 734, 0, 0, 0, 0, 0, 195, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1283, 0, 0, 0, 195, 0, 195, - 195, 195, 0, 0, 734, 0, 0, 0, 0, 735, - 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 735, 735, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 735, 0, 0, 0, 0, 0, 0, 735, 735, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 735, 0, 1726, 1727, 0, 0, 735, 735, 0, 0, + 735, 0, 735, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, - 734, 734, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1780, 0, 736, 0, 736, 0, 195, 0, + 0, 0, 0, 735, 0, 0, 0, 1798, 735, 0, + 0, 0, 735, 735, 0, 0, 0, 1528, 1857, 0, + 0, 195, 0, 0, 736, 0, 736, 0, 1866, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 734, 0, 0, 0, 0, 0, 734, 734, 0, - 0, 734, 0, 734, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1283, 1283, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2069, 0, - 0, 0, 0, 0, 734, 0, 0, 0, 0, 734, - 0, 0, 0, 734, 734, 0, 0, 0, 0, 0, + 0, 1096, 0, 1893, 0, 0, 0, 0, 0, 0, + 0, 1902, 0, 0, 0, 1904, 0, 0, 1907, 1908, + 1910, 1910, 0, 1910, 0, 1910, 1910, 0, 1919, 1910, + 1910, 1910, 1910, 1910, 736, 0, 0, 0, 0, 0, + 0, 0, 1939, 1940, 0, 1096, 0, 195, 1945, 0, + 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, + 1987, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2009, 0, 0, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 735, 0, 735, 0, 195, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2131, - 0, 0, 0, 0, 0, 0, 0, 0, 1527, 0, - 0, 0, 195, 0, 0, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 736, 0, + 1284, 0, 0, 0, 0, 736, 0, 736, 0, 0, + 0, 0, 0, 1527, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 677, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 735, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 0, - 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1526, 0, 734, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1283, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 735, - 0, 0, 0, 0, 0, 0, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2379, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1779, 0, 0, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1284, 1284, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 0, 0, 0, 0, 2070, 0, 0, 0, 678, + 0, 678, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 736, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0, - 0, 2505, 2506, 2507, 0, 0, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 2132, 0, 0, 0, + 0, 0, 0, 678, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1095, 195, 0, 0, 0, 0, 1102, 1901, - 0, 0, 1901, 0, 1901, 0, 0, 0, 734, 0, - 2538, 735, 195, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 677, + 0, 735, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 1529, 0, 0, 0, 0, 736, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1528, 736, 0, 736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1095, 0, 0, 0, 0, - 2131, 0, 1051, 0, 2131, 2131, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2928, 0, 0, - 0, 0, 0, 0, 0, 0, 677, 735, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, - 0, 0, 0, 0, 0, 677, 0, 1527, 735, 0, + 0, 0, 0, 0, 0, 0, 2930, 0, 0, 0, + 0, 0, 0, 0, 736, 2343, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 195, 736, 0, 0, 735, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, + 0, 0, 0, 735, 0, 0, 736, 735, 735, 0, + 1284, 0, 735, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1527, 735, + 736, 0, 0, 0, 0, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 736, + 0, 736, 0, 0, 0, 0, 0, 0, 0, 2380, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1780, 0, 0, 1284, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1096, 0, 0, 0, 0, 0, 0, + 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1052, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, + 0, 1103, 0, 0, 0, 0, 0, 0, 2506, 2507, + 2508, 0, 0, 0, 0, 0, 0, 0, 678, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1096, + 0, 0, 0, 0, 0, 1103, 1902, 0, 0, 1902, + 0, 1902, 0, 0, 0, 0, 0, 2539, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1096, 0, 0, 0, 0, 2132, 0, 0, + 0, 2132, 2132, 0, 0, 1529, 735, 0, 1529, 0, + 1529, 678, 0, 0, 0, 0, 0, 0, 735, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 678, 0, 0, 735, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2015, 678, 0, 0, 0, 735, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 678, + 0, 735, 0, 0, 0, 1527, 678, 0, 735, 735, + 1527, 0, 0, 0, 0, 2041, 2042, 678, 678, 678, + 678, 678, 678, 678, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2617, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3298, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 735, 0, 0, 1527, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1284, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 735, 2342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1528, 0, 734, 0, 0, - 0, 0, 0, 0, 734, 0, 0, 0, 734, 734, - 0, 0, 0, 734, 0, 0, 195, 735, 0, 0, - 0, 2615, 1528, 0, 0, 1528, 0, 1528, 677, 1526, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1960, 0, - 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, - 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2014, - 677, 735, 0, 0, 0, 0, 195, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 677, 1283, 0, 0, - 735, 0, 735, 677, 0, 0, 0, 0, 0, 0, - 0, 0, 2040, 2041, 677, 677, 677, 677, 677, 677, - 677, 734, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 734, 0, + 2880, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 3586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 677, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 734, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2863, - 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, - 0, 0, 0, 2878, 0, 0, 0, 0, 0, 0, - 0, 734, 0, 0, 0, 1526, 0, 0, 734, 734, - 1526, 0, 0, 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 735, 735, 0, 0, 0, + 0, 0, 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3295, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2962, 0, + 0, 0, 0, 0, 735, 735, 735, 735, 1961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2960, 734, 0, 0, 1526, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2392, 0, - 0, 0, 0, 0, 0, 2984, 0, 0, 0, 1901, - 1901, 0, 0, 0, 2989, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1072, 2393, 0, 0, 0, 0, + 0, 0, 2986, 0, 0, 0, 1902, 1902, 0, 0, + 0, 2991, 0, 1052, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, + 678, 0, 0, 0, 0, 0, 0, 2015, 678, 0, + 678, 0, 678, 2432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3000, 3376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1071, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0, - 1051, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 677, 0, 0, - 734, 0, 0, 0, 2014, 677, 0, 677, 0, 677, - 2431, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2132, 0, 0, 0, 0, 2509, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1527, 0, 0, 0, 0, 0, + 2132, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3157, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1283, - 0, 0, 0, 0, 734, 734, 0, 0, 0, 0, + 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 678, 0, 0, 0, 735, 0, 0, + 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 735, 678, 678, 0, 0, 678, 0, 2603, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, + 0, 0, 0, 0, 678, 3160, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1284, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 678, 0, 0, 0, 0, 0, 0, 2614, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1910, 0, + 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, + 0, 0, 735, 0, 735, 0, 3205, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1284, 0, 0, 0, 0, 0, 0, 3232, 1910, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1529, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1909, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3202, 0, - 0, 0, 0, 734, 734, 734, 734, 0, 0, 0, - 677, 0, 1283, 0, 0, 0, 0, 677, 0, 3229, - 1909, 0, 0, 0, 0, 0, 0, 0, 677, 677, - 0, 0, 677, 0, 2601, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 677, 0, 0, 0, 0, 0, - 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 677, 0, 0, - 0, 0, 0, 0, 2612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0, - 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1096, 0, 0, 0, 0, 0, 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1528, 0, 2014, 0, 0, 0, 0, - 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1526, 0, 0, 0, 0, 0, 0, - 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, - 0, 1856, 0, 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, + 0, 678, 0, 735, 0, 0, 0, 0, 0, 1961, + 1857, 0, 0, 1527, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, - 0, 734, 0, 734, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 677, 0, - 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 735, 735, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, + 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2392, 2392, 0, 0, 0, - 0, 0, 0, 0, 0, 677, 0, 0, 0, 0, - 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3647, 3648, 3649, 3650, 0, 0, + 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, + 0, 0, 0, 0, 0, 0, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2393, 2393, 735, 0, 735, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 677, 0, 0, 0, 0, + 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 678, 678, 678, 678, 678, 678, + 0, 0, 0, 3650, 3651, 3652, 3653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 678, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 677, 677, 677, 677, 677, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 677, - 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 677, 0, 0, 0, 0, 0, - 0, 3725, 734, 3725, 0, 0, 0, 0, 0, 0, - 0, 0, 1526, 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3753, 0, 3755, 0, 0, 0, 0, 0, 0, - 734, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, - 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1283, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 734, 0, 734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3728, 0, 3728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3725, 0, 0, 0, 0, - 0, 0, 3725, 0, 3725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3756, 0, 3758, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, - 0, 1071, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1528, 0, 0, 0, 0, 1528, - 677, 677, 677, 677, 677, 0, 0, 0, 0, 0, - 0, 0, 3245, 0, 0, 0, 0, 0, 1960, 0, - 677, 0, 0, 677, 3253, 2014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 677, 0, + 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3925, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1284, + 0, 0, 0, 0, 0, 1072, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1528, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 677, 0, 0, 0, 0, 0, - 0, 0, 0, 2392, 0, 0, 0, 0, 677, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1529, 0, + 0, 0, 0, 1529, 678, 678, 678, 678, 678, 0, + 0, 0, 0, 0, 0, 0, 3248, 0, 0, 0, + 0, 0, 1961, 0, 678, 0, 0, 678, 3256, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 677, 0, - 0, 677, 0, 0, 0, 0, 0, 2392, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785, - 3787, 3786, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3788, - 3789, 805, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 3728, 0, 0, 0, 0, 0, + 0, 3728, 0, 3728, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2393, 0, 0, 0, 0, 0, 1529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4069, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2392, 0, 4085, 0, 0, 0, + 0, 0, 0, 678, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1283, 1283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4135, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4077, 0, 0, 0, 0, 0, 0, + 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 677, 0, 0, 0, 0, 2392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1856, 0, 4135, 0, - 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3793, 0, 0, 0, 0, 0, 0, 0, - 0, 677, 0, 677, 677, 677, 0, 3801, 3802, 0, - 0, 3877, 3876, 3875, 0, 0, 3873, 3874, 3872, 0, + 0, 0, 0, 0, 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3878, 928, 0, 781, 782, 3879, 3880, 932, - 3881, 784, 785, 929, 930, 0, 779, 783, 931, 933, + 0, 0, 4072, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4080, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2393, 0, 4088, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1284, 1284, 3788, 3790, 3789, 3855, 3856, 3857, 3858, 3859, + 3860, 3861, 3791, 3792, 806, 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 678, 0, 678, 678, + 678, 0, 4138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3782, 3783, 3784, 3790, 3791, - 3792, 3803, 3850, 3851, 3859, 3861, 884, 3860, 3862, 3863, - 3864, 3867, 3868, 3869, 3870, 3865, 3866, 3871, 3765, 3769, - 3766, 3767, 3768, 3780, 3770, 3771, 3772, 3773, 3774, 3775, - 3776, 3777, 3778, 3779, 3781, 3882, 3883, 3884, 3885, 3886, - 3887, 3796, 3800, 3799, 3797, 3798, 3794, 3795, 3822, 3821, - 3823, 3824, 3825, 3826, 3827, 3828, 3830, 3829, 3831, 3832, - 3833, 3834, 3835, 3836, 3804, 3805, 3808, 3809, 3807, 3806, - 3810, 3819, 3820, 3811, 3812, 3813, 3814, 3815, 3816, 3818, - 3817, 3837, 3838, 3839, 3840, 3841, 3843, 3842, 3846, 3847, - 3845, 3844, 3849, 3848, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1960, 0, 0, 0, 934, 0, 935, - 0, 0, 939, 0, 0, 0, 941, 940, 0, 942, - 904, 903, 1528, 0, 936, 937, 1960, 938, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1857, 0, 4138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 3895, - 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2870,1620 +2883,1793 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3804, 3805, 0, 0, 3880, 3879, 3878, 1961, 0, + 3876, 3877, 3875, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1529, 0, 0, + 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3881, 929, 0, 782, + 783, 3882, 3883, 933, 3884, 785, 786, 930, 931, 0, + 780, 784, 932, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1961, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3785, + 3786, 3787, 3793, 3794, 3795, 3806, 3853, 3854, 3862, 3864, + 885, 3863, 3865, 3866, 3867, 3870, 3871, 3872, 3873, 3868, + 3869, 3874, 3768, 3772, 3769, 3770, 3771, 3783, 3773, 3774, + 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3784, 3885, + 3886, 3887, 3888, 3889, 3890, 3799, 3803, 3802, 3800, 3801, + 3797, 3798, 3825, 3824, 3826, 3827, 3828, 3829, 3830, 3831, + 3833, 3832, 3834, 3835, 3836, 3837, 3838, 3839, 3807, 3808, + 3811, 3812, 3810, 3809, 3813, 3822, 3823, 3814, 3815, 3816, + 3817, 3818, 3819, 3821, 3820, 3840, 3841, 3842, 3843, 3844, + 3846, 3845, 3849, 3850, 3848, 3847, 3852, 3851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 935, 0, 936, 0, 0, 940, 0, 0, 0, + 942, 941, 0, 943, 905, 904, 0, 0, 937, 938, + 0, 939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3891, 3892, 3893, 3894, + 3895, 3896, 3897, 3898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1961, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 678, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4107, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1960, 0, 0, 396, 0, 0, 0, 0, 0, 0, - 1421, 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, 1337, - 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289, - 1317, 1349, 270, 1314, 1407, 1366, 1423, 366, 267, 1295, - 1286, 204, 505, 1320, 430, 1336, 203, 1386, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 1430, 370, 1372, 0, 497, 401, 0, 0, - 2014, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385, - 1303, 1371, 1425, 1332, 1381, 1426, 323, 248, 325, 202, - 413, 498, 286, 0, 0, 0, 0, 4109, 507, 959, - 0, 0, 0, 0, 4110, 0, 0, 0, 0, 238, - 0, 0, 245, 0, 0, 0, 351, 360, 359, 339, - 340, 342, 344, 350, 357, 363, 336, 345, 1328, 1378, - 609, 1420, 1329, 1380, 265, 321, 272, 264, 580, 1431, - 1412, 1292, 1359, 1419, 1354, 596, 0, 0, 229, 1422, - 1353, 0, 1383, 0, 1437, 1287, 1374, 0, 1290, 1294, - 1433, 1417, 1323, 275, 0, 0, 0, 0, 0, 0, - 0, 1350, 1361, 1395, 1399, 1344, 0, 0, 0, 0, - 0, 0, 0, 0, 1321, 0, 1370, 0, 0, 0, - 1299, 1291, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1348, 0, 0, 0, 0, 1302, - 0, 1322, 1396, 0, 1285, 297, 1296, 402, 257, 0, - 453, 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300, - 1409, 1335, 365, 1298, 330, 197, 225, 0, 1333, 412, - 461, 473, 1408, 1318, 1327, 253, 1325, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 1369, 1388, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 589, 590, 256, 652, 228, - 622, 220, 1297, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 355, 356, 280, 307, 447, 375, - 448, 306, 308, 404, 403, 405, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 1313, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 1404, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 1393, 1436, 425, 472, 240, 606, 496, 199, - 1307, 1312, 1305, 0, 254, 255, 1375, 575, 1308, 1306, - 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 1397, 1301, 0, 1310, 1311, - 398, 1406, 591, 592, 672, 384, 486, 603, 335, 349, - 352, 341, 361, 0, 362, 337, 338, 343, 346, 347, - 348, 353, 354, 358, 364, 249, 210, 390, 399, 578, - 312, 216, 217, 218, 524, 525, 526, 527, 619, 620, - 624, 205, 462, 463, 464, 465, 292, 614, 309, 468, - 467, 331, 332, 379, 449, 540, 542, 553, 557, 559, - 561, 567, 570, 541, 543, 554, 558, 560, 562, 568, - 571, 530, 532, 534, 536, 549, 548, 545, 573, 574, - 551, 556, 535, 547, 552, 565, 572, 569, 529, 533, - 537, 546, 564, 563, 544, 555, 566, 550, 538, 531, - 539, 1368, 196, 221, 368, 1432, 454, 288, 650, 618, - 484, 613, 206, 223, 1304, 262, 1316, 1324, 0, 1330, - 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379, - 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 301, - 302, 444, 445, 314, 315, 646, 647, 300, 600, 633, - 597, 645, 627, 438, 378, 1367, 1373, 381, 281, 305, - 320, 1382, 617, 502, 227, 466, 290, 251, 1400, 1402, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 1363, 1391, 376, 576, 577, 316, - 396, 0, 0, 0, 0, 0, 0, 1421, 1405, 528, - 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340, 1384, 1293, - 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317, 1349, 270, - 1314, 1407, 1366, 1423, 366, 267, 1295, 1286, 204, 505, - 1320, 430, 1336, 203, 1386, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 1430, - 370, 1372, 0, 497, 401, 0, 0, 0, 1411, 1410, - 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303, 1371, 1425, - 1332, 1381, 1426, 323, 248, 325, 202, 413, 498, 286, - 0, 0, 0, 0, 0, 507, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 1961, 0, 0, 397, 0, + 0, 0, 0, 0, 0, 1422, 1406, 529, 0, 1348, + 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, + 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, + 1367, 1424, 367, 268, 1296, 1287, 204, 506, 1321, 431, + 1337, 203, 1387, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 1431, 371, 1373, + 0, 498, 402, 0, 0, 2015, 1412, 1411, 1342, 1352, + 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, + 1427, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 4112, 508, 960, 0, 0, 0, 0, 4113, + 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 1329, 1379, 610, 1421, 1330, 1381, 266, + 322, 273, 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, + 597, 0, 0, 229, 1423, 1354, 0, 1384, 0, 1438, + 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324, 276, 0, + 0, 0, 0, 0, 0, 0, 1351, 1362, 1396, 1400, + 1345, 0, 0, 0, 0, 0, 0, 0, 0, 1322, + 0, 1371, 0, 0, 0, 1300, 1292, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, + 0, 0, 0, 0, 1303, 0, 1323, 1397, 0, 1286, + 298, 1297, 403, 258, 0, 454, 1404, 1417, 1346, 630, + 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, + 197, 225, 0, 1334, 413, 462, 474, 1409, 1319, 1328, + 254, 1326, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 1370, 1389, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 1298, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 1314, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 1405, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 1394, 1437, + 426, 473, 240, 607, 497, 199, 1308, 1313, 1306, 0, + 255, 256, 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, + 1429, 1430, 1415, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 1398, 1302, 0, 1311, 1312, 399, 1407, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 1369, 196, 221, + 369, 1433, 455, 289, 651, 619, 485, 614, 206, 223, + 1305, 263, 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, + 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, + 1402, 1416, 1436, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 1368, 1374, 382, 282, 306, 321, 1383, 618, 503, + 227, 467, 291, 251, 1401, 1403, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 1364, 1392, 377, 577, 578, 317, 397, 0, 0, 0, + 0, 0, 0, 1422, 1406, 529, 0, 1348, 1425, 1316, + 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, + 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, + 367, 268, 1296, 1287, 204, 506, 1321, 431, 1337, 203, + 1387, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 1431, 371, 1373, 0, 498, + 402, 0, 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, + 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 1329, 1379, 610, 1421, 1330, 1381, 266, 322, 273, + 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, + 0, 229, 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, + 0, 1291, 1295, 1434, 1418, 1324, 276, 0, 0, 0, + 0, 0, 0, 0, 1351, 1362, 1396, 1400, 1345, 0, + 0, 0, 0, 0, 0, 3257, 0, 1322, 0, 1371, + 0, 0, 0, 1300, 1292, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1349, 0, 0, + 0, 0, 1303, 0, 1323, 1397, 0, 1286, 298, 1297, + 403, 258, 0, 454, 1404, 1417, 1346, 630, 1419, 1344, + 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, 197, 225, + 0, 1334, 413, 462, 474, 1409, 1319, 1328, 254, 1326, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 1370, 1389, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 1298, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 1314, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 1405, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 1394, 1437, 426, 473, + 240, 607, 497, 199, 1308, 1313, 1306, 0, 255, 256, + 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, + 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 1398, + 1302, 0, 1311, 1312, 399, 1407, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 1369, 196, 221, 369, 1433, + 455, 289, 651, 619, 485, 614, 206, 223, 1305, 263, + 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, + 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, + 1436, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 1368, + 1374, 382, 282, 306, 321, 1383, 618, 503, 227, 467, + 291, 251, 1401, 1403, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 1364, 1392, + 377, 577, 578, 317, 397, 0, 0, 0, 0, 0, + 0, 1422, 1406, 529, 0, 1348, 1425, 1316, 1335, 1435, + 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327, + 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, 367, 268, + 1296, 1287, 204, 506, 1321, 431, 1337, 203, 1387, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 1431, 371, 1373, 0, 498, 402, 0, + 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347, + 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 1329, + 1379, 610, 1421, 1330, 1381, 266, 322, 273, 265, 581, + 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, 0, 229, + 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, 0, 1291, + 1295, 1434, 1418, 1324, 276, 0, 0, 0, 0, 0, + 0, 0, 1351, 1362, 1396, 1400, 1345, 0, 0, 0, + 0, 0, 0, 3218, 0, 1322, 0, 1371, 0, 0, + 0, 1300, 1292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1349, 0, 0, 0, 0, + 1303, 0, 1323, 1397, 0, 1286, 298, 1297, 403, 258, + 0, 454, 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391, + 1301, 1410, 1336, 366, 1299, 331, 197, 225, 0, 1334, + 413, 462, 474, 1409, 1319, 1328, 254, 1326, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 1370, 1389, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 1298, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 1314, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 1405, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 1394, 1437, 426, 473, 240, 607, + 497, 199, 1308, 1313, 1306, 0, 255, 256, 1376, 576, + 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 1398, 1302, 0, + 1311, 1312, 399, 1407, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 1369, 196, 221, 369, 1433, 455, 289, + 651, 619, 485, 614, 206, 223, 1305, 263, 1317, 1325, + 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377, + 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 1368, 1374, 382, + 282, 306, 321, 1383, 618, 503, 227, 467, 291, 251, + 1401, 1403, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 1364, 1392, 377, 577, + 578, 317, 397, 0, 0, 0, 0, 0, 0, 1422, + 1406, 529, 0, 1348, 1425, 1316, 1335, 1435, 1338, 1341, + 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327, 1290, 1318, + 1350, 271, 1315, 1408, 1367, 1424, 367, 268, 1296, 1287, + 204, 506, 1321, 431, 1337, 203, 1387, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 1431, 371, 1373, 0, 498, 402, 0, 0, 0, + 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347, 1386, 1304, + 1372, 1426, 1333, 1382, 1427, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 960, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 1329, 1379, 610, + 1421, 1330, 1381, 266, 322, 273, 265, 581, 1432, 1413, + 1293, 1360, 1420, 1355, 597, 0, 0, 229, 1423, 1354, + 0, 1384, 0, 1438, 1288, 1375, 0, 1291, 1295, 1434, + 1418, 1324, 276, 0, 0, 0, 0, 0, 0, 0, + 1351, 1362, 1396, 1400, 1345, 0, 0, 0, 0, 0, + 0, 2411, 0, 1322, 0, 1371, 0, 0, 0, 1300, + 1292, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1349, 0, 0, 0, 0, 1303, 0, + 1323, 1397, 0, 1286, 298, 1297, 403, 258, 0, 454, + 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391, 1301, 1410, + 1336, 366, 1299, 331, 197, 225, 0, 1334, 413, 462, + 474, 1409, 1319, 1328, 254, 1326, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 1370, 1389, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 1298, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 1314, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 1405, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 1394, 1437, 426, 473, 240, 607, 497, 199, + 1308, 1313, 1306, 0, 255, 256, 1376, 576, 1309, 1307, + 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 1398, 1302, 0, 1311, 1312, + 399, 1407, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 1369, 196, 221, 369, 1433, 455, 289, 651, 619, + 485, 614, 206, 223, 1305, 263, 1317, 1325, 0, 1331, + 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377, 1378, 1380, + 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 1368, 1374, 382, 282, 306, + 321, 1383, 618, 503, 227, 467, 291, 251, 1401, 1403, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 1364, 1392, 377, 577, 578, 317, + 397, 0, 0, 0, 0, 0, 0, 1422, 1406, 529, + 0, 1348, 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294, + 1363, 417, 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271, + 1315, 1408, 1367, 1424, 367, 268, 1296, 1287, 204, 506, + 1321, 431, 1337, 203, 1387, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 1431, + 371, 1373, 0, 498, 402, 0, 0, 0, 1412, 1411, + 1342, 1352, 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426, + 1333, 1382, 1427, 324, 248, 326, 202, 414, 499, 287, + 0, 95, 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, - 0, 0, 0, 351, 360, 359, 339, 340, 342, 344, - 350, 357, 363, 336, 345, 1328, 1378, 609, 1420, 1329, - 1380, 265, 321, 272, 264, 580, 1431, 1412, 1292, 1359, - 1419, 1354, 596, 0, 0, 229, 1422, 1353, 0, 1383, - 0, 1437, 1287, 1374, 0, 1290, 1294, 1433, 1417, 1323, - 275, 0, 0, 0, 0, 0, 0, 0, 1350, 1361, - 1395, 1399, 1344, 0, 0, 0, 0, 0, 0, 3254, - 0, 1321, 0, 1370, 0, 0, 0, 1299, 1291, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1348, 0, 0, 0, 0, 1302, 0, 1322, 1396, - 0, 1285, 297, 1296, 402, 257, 0, 453, 1403, 1416, - 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409, 1335, 365, - 1298, 330, 197, 225, 0, 1333, 412, 461, 473, 1408, - 1318, 1327, 253, 1325, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 1369, 1388, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 589, 590, 256, 652, 228, 622, 220, 1297, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 355, 356, 280, 307, 447, 375, 448, 306, 308, - 404, 403, 405, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 1313, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 1404, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 1393, - 1436, 425, 472, 240, 606, 496, 199, 1307, 1312, 1305, - 0, 254, 255, 1375, 575, 1308, 1306, 1364, 1365, 1309, - 1427, 1428, 1429, 1414, 654, 655, 656, 657, 658, 659, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 1329, 1379, 610, 1421, 1330, + 1381, 266, 322, 273, 265, 581, 1432, 1413, 1293, 1360, + 1420, 1355, 597, 0, 0, 229, 1423, 1354, 0, 1384, + 0, 1438, 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324, + 276, 0, 0, 0, 0, 0, 0, 0, 1351, 1362, + 1396, 1400, 1345, 0, 0, 0, 0, 0, 0, 0, + 0, 1322, 0, 1371, 0, 0, 0, 1300, 1292, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1349, 0, 0, 0, 0, 1303, 0, 1323, 1397, + 0, 1286, 298, 1297, 403, 258, 0, 454, 1404, 1417, + 1346, 630, 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366, + 1299, 331, 197, 225, 0, 1334, 413, 462, 474, 1409, + 1319, 1328, 254, 1326, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 1370, 1389, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 1298, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 1314, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 1405, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 1394, 1437, 426, 473, 240, 607, 497, 199, 1308, 1313, + 1306, 0, 255, 256, 1376, 576, 1309, 1307, 1365, 1366, + 1310, 1428, 1429, 1430, 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 1397, 1301, 0, 1310, 1311, 398, 1406, 591, - 592, 672, 384, 486, 603, 335, 349, 352, 341, 361, - 0, 362, 337, 338, 343, 346, 347, 348, 353, 354, - 358, 364, 249, 210, 390, 399, 578, 312, 216, 217, - 218, 524, 525, 526, 527, 619, 620, 624, 205, 462, - 463, 464, 465, 292, 614, 309, 468, 467, 331, 332, - 379, 449, 540, 542, 553, 557, 559, 561, 567, 570, - 541, 543, 554, 558, 560, 562, 568, 571, 530, 532, - 534, 536, 549, 548, 545, 573, 574, 551, 556, 535, - 547, 552, 565, 572, 569, 529, 533, 537, 546, 564, - 563, 544, 555, 566, 550, 538, 531, 539, 1368, 196, - 221, 368, 1432, 454, 288, 650, 618, 484, 613, 206, - 223, 1304, 262, 1316, 1324, 0, 1330, 1338, 1339, 1352, - 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387, 1389, 1392, - 1394, 1401, 1415, 1435, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 301, 302, 444, 445, - 314, 315, 646, 647, 300, 600, 633, 597, 645, 627, - 438, 378, 1367, 1373, 381, 281, 305, 320, 1382, 617, - 502, 227, 466, 290, 251, 1400, 1402, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 1363, 1391, 376, 576, 577, 316, 396, 0, 0, - 0, 0, 0, 0, 1421, 1405, 528, 0, 1347, 1424, - 1315, 1334, 1434, 1337, 1340, 1384, 1293, 1362, 416, 1331, - 1319, 1288, 1326, 1289, 1317, 1349, 270, 1314, 1407, 1366, - 1423, 366, 267, 1295, 1286, 204, 505, 1320, 430, 1336, - 203, 1386, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 1430, 370, 1372, 0, - 497, 401, 0, 0, 0, 1411, 1410, 1341, 1351, 1413, - 1360, 1398, 1346, 1385, 1303, 1371, 1425, 1332, 1381, 1426, - 323, 248, 325, 202, 413, 498, 286, 0, 0, 0, - 0, 0, 507, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 245, 0, 0, 0, - 351, 360, 359, 339, 340, 342, 344, 350, 357, 363, - 336, 345, 1328, 1378, 609, 1420, 1329, 1380, 265, 321, - 272, 264, 580, 1431, 1412, 1292, 1359, 1419, 1354, 596, - 0, 0, 229, 1422, 1353, 0, 1383, 0, 1437, 1287, - 1374, 0, 1290, 1294, 1433, 1417, 1323, 275, 0, 0, - 0, 0, 0, 0, 0, 1350, 1361, 1395, 1399, 1344, - 0, 0, 0, 0, 0, 0, 3215, 0, 1321, 0, - 1370, 0, 0, 0, 1299, 1291, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1348, 0, - 0, 0, 0, 1302, 0, 1322, 1396, 0, 1285, 297, - 1296, 402, 257, 0, 453, 1403, 1416, 1345, 629, 1418, - 1343, 1342, 1390, 1300, 1409, 1335, 365, 1298, 330, 197, - 225, 0, 1333, 412, 461, 473, 1408, 1318, 1327, 253, - 1325, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 1369, 1388, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 589, - 590, 256, 652, 228, 622, 220, 1297, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 355, 356, - 280, 307, 447, 375, 448, 306, 308, 404, 403, 405, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 1313, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 1404, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 1393, 1436, 425, 472, - 240, 606, 496, 199, 1307, 1312, 1305, 0, 254, 255, - 1375, 575, 1308, 1306, 1364, 1365, 1309, 1427, 1428, 1429, - 1414, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 1397, - 1301, 0, 1310, 1311, 398, 1406, 591, 592, 672, 384, - 486, 603, 335, 349, 352, 341, 361, 0, 362, 337, - 338, 343, 346, 347, 348, 353, 354, 358, 364, 249, - 210, 390, 399, 578, 312, 216, 217, 218, 524, 525, - 526, 527, 619, 620, 624, 205, 462, 463, 464, 465, - 292, 614, 309, 468, 467, 331, 332, 379, 449, 540, - 542, 553, 557, 559, 561, 567, 570, 541, 543, 554, - 558, 560, 562, 568, 571, 530, 532, 534, 536, 549, - 548, 545, 573, 574, 551, 556, 535, 547, 552, 565, - 572, 569, 529, 533, 537, 546, 564, 563, 544, 555, - 566, 550, 538, 531, 539, 1368, 196, 221, 368, 1432, - 454, 288, 650, 618, 484, 613, 206, 223, 1304, 262, - 1316, 1324, 0, 1330, 1338, 1339, 1352, 1355, 1356, 1357, - 1358, 1376, 1377, 1379, 1387, 1389, 1392, 1394, 1401, 1415, - 1435, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 409, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 301, 302, 444, 445, 314, 315, 646, - 647, 300, 600, 633, 597, 645, 627, 438, 378, 1367, - 1373, 381, 281, 305, 320, 1382, 617, 502, 227, 466, - 290, 251, 1400, 1402, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 1363, 1391, - 376, 576, 577, 316, 396, 0, 0, 0, 0, 0, - 0, 1421, 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, - 1337, 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, - 1289, 1317, 1349, 270, 1314, 1407, 1366, 1423, 366, 267, - 1295, 1286, 204, 505, 1320, 430, 1336, 203, 1386, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 1430, 370, 1372, 0, 497, 401, 0, - 0, 0, 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, - 1385, 1303, 1371, 1425, 1332, 1381, 1426, 323, 248, 325, - 202, 413, 498, 286, 0, 0, 0, 0, 0, 507, - 959, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 238, 0, 0, 245, 0, 0, 0, 351, 360, 359, - 339, 340, 342, 344, 350, 357, 363, 336, 345, 1328, - 1378, 609, 1420, 1329, 1380, 265, 321, 272, 264, 580, - 1431, 1412, 1292, 1359, 1419, 1354, 596, 0, 0, 229, - 1422, 1353, 0, 1383, 0, 1437, 1287, 1374, 0, 1290, - 1294, 1433, 1417, 1323, 275, 0, 0, 0, 0, 0, - 0, 0, 1350, 1361, 1395, 1399, 1344, 0, 0, 0, - 0, 0, 0, 2410, 0, 1321, 0, 1370, 0, 0, - 0, 1299, 1291, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1348, 0, 0, 0, 0, - 1302, 0, 1322, 1396, 0, 1285, 297, 1296, 402, 257, - 0, 453, 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390, - 1300, 1409, 1335, 365, 1298, 330, 197, 225, 0, 1333, - 412, 461, 473, 1408, 1318, 1327, 253, 1325, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 1369, 1388, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 589, 590, 256, 652, - 228, 622, 220, 1297, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 355, 356, 280, 307, 447, - 375, 448, 306, 308, 404, 403, 405, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 1313, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 1404, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 1393, 1436, 425, 472, 240, 606, 496, - 199, 1307, 1312, 1305, 0, 254, 255, 1375, 575, 1308, - 1306, 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 1397, 1301, 0, 1310, - 1311, 398, 1406, 591, 592, 672, 384, 486, 603, 335, - 349, 352, 341, 361, 0, 362, 337, 338, 343, 346, - 347, 348, 353, 354, 358, 364, 249, 210, 390, 399, - 578, 312, 216, 217, 218, 524, 525, 526, 527, 619, - 620, 624, 205, 462, 463, 464, 465, 292, 614, 309, - 468, 467, 331, 332, 379, 449, 540, 542, 553, 557, - 559, 561, 567, 570, 541, 543, 554, 558, 560, 562, - 568, 571, 530, 532, 534, 536, 549, 548, 545, 573, - 574, 551, 556, 535, 547, 552, 565, 572, 569, 529, - 533, 537, 546, 564, 563, 544, 555, 566, 550, 538, - 531, 539, 1368, 196, 221, 368, 1432, 454, 288, 650, - 618, 484, 613, 206, 223, 1304, 262, 1316, 1324, 0, - 1330, 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377, - 1379, 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 301, 302, 444, 445, 314, 315, 646, 647, 300, 600, - 633, 597, 645, 627, 438, 378, 1367, 1373, 381, 281, - 305, 320, 1382, 617, 502, 227, 466, 290, 251, 1400, - 1402, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 1363, 1391, 376, 576, 577, - 316, 396, 0, 0, 0, 0, 0, 0, 1421, 1405, - 528, 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340, 1384, - 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317, 1349, - 270, 1314, 1407, 1366, 1423, 366, 267, 1295, 1286, 204, - 505, 1320, 430, 1336, 203, 1386, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 1430, 370, 1372, 0, 497, 401, 0, 0, 0, 1411, - 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303, 1371, - 1425, 1332, 1381, 1426, 323, 248, 325, 202, 413, 498, - 286, 0, 95, 0, 0, 0, 507, 724, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 245, 0, 0, 0, 351, 360, 359, 339, 340, 342, - 344, 350, 357, 363, 336, 345, 1328, 1378, 609, 1420, - 1329, 1380, 265, 321, 272, 264, 580, 1431, 1412, 1292, - 1359, 1419, 1354, 596, 0, 0, 229, 1422, 1353, 0, - 1383, 0, 1437, 1287, 1374, 0, 1290, 1294, 1433, 1417, - 1323, 275, 0, 0, 0, 0, 0, 0, 0, 1350, - 1361, 1395, 1399, 1344, 0, 0, 0, 0, 0, 0, - 0, 0, 1321, 0, 1370, 0, 0, 0, 1299, 1291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1348, 0, 0, 0, 0, 1302, 0, 1322, - 1396, 0, 1285, 297, 1296, 402, 257, 0, 453, 1403, - 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409, 1335, - 365, 1298, 330, 197, 225, 0, 1333, 412, 461, 473, - 1408, 1318, 1327, 253, 1325, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 1369, 1388, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 589, 590, 256, 652, 228, 622, 220, - 1297, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 355, 356, 280, 307, 447, 375, 448, 306, - 308, 404, 403, 405, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 1313, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 1404, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 1393, 1436, 425, 472, 240, 606, 496, 199, 1307, 1312, - 1305, 0, 254, 255, 1375, 575, 1308, 1306, 1364, 1365, - 1309, 1427, 1428, 1429, 1414, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 1397, 1301, 0, 1310, 1311, 398, 1406, - 591, 592, 672, 384, 486, 603, 335, 349, 352, 341, - 361, 0, 362, 337, 338, 343, 346, 347, 348, 353, - 354, 358, 364, 249, 210, 390, 399, 578, 312, 216, - 217, 218, 524, 525, 526, 527, 619, 620, 624, 205, - 462, 463, 464, 465, 292, 614, 309, 468, 467, 331, - 332, 379, 449, 540, 542, 553, 557, 559, 561, 567, - 570, 541, 543, 554, 558, 560, 562, 568, 571, 530, - 532, 534, 536, 549, 548, 545, 573, 574, 551, 556, - 535, 547, 552, 565, 572, 569, 529, 533, 537, 546, - 564, 563, 544, 555, 566, 550, 538, 531, 539, 1368, - 196, 221, 368, 1432, 454, 288, 650, 618, 484, 613, - 206, 223, 1304, 262, 1316, 1324, 0, 1330, 1338, 1339, - 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387, 1389, - 1392, 1394, 1401, 1415, 1435, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 301, 302, 444, - 445, 314, 315, 646, 647, 300, 600, 633, 597, 645, - 627, 438, 378, 1367, 1373, 381, 281, 305, 320, 1382, - 617, 502, 227, 466, 290, 251, 1400, 1402, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 1363, 1391, 376, 576, 577, 316, 396, 0, - 0, 0, 0, 0, 0, 1421, 1405, 528, 0, 1347, - 1424, 1315, 1334, 1434, 1337, 1340, 1384, 1293, 1362, 416, - 1331, 1319, 1288, 1326, 1289, 1317, 1349, 270, 1314, 1407, - 1366, 1423, 366, 267, 1295, 1286, 204, 505, 1320, 430, - 1336, 203, 1386, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 1430, 370, 1372, - 0, 497, 401, 0, 0, 0, 1411, 1410, 1341, 1351, - 1413, 1360, 1398, 1346, 1385, 1303, 1371, 1425, 1332, 1381, - 1426, 323, 248, 325, 202, 413, 498, 286, 0, 0, - 0, 0, 0, 507, 194, 0, 0, 0, 0, 0, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 1398, 1302, 0, 1311, 1312, 399, 1407, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 1369, + 196, 221, 369, 1433, 455, 289, 651, 619, 485, 614, + 206, 223, 1305, 263, 1317, 1325, 0, 1331, 1339, 1340, + 1353, 1356, 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390, + 1393, 1395, 1402, 1416, 1436, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 1368, 1374, 382, 282, 306, 321, 1383, + 618, 503, 227, 467, 291, 251, 1401, 1403, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 1364, 1392, 377, 577, 578, 317, 397, 0, + 0, 0, 0, 0, 0, 1422, 1406, 529, 0, 1348, + 1425, 1316, 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, + 1332, 1320, 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, + 1367, 1424, 367, 268, 1296, 1287, 204, 506, 1321, 431, + 1337, 203, 1387, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 1431, 371, 1373, + 0, 498, 402, 0, 0, 0, 1412, 1411, 1342, 1352, + 1414, 1361, 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, + 1427, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, - 0, 351, 360, 359, 339, 340, 342, 344, 350, 357, - 363, 336, 345, 1328, 1378, 609, 1420, 1329, 1380, 265, - 321, 272, 264, 580, 1431, 1412, 1292, 1359, 1419, 1354, - 596, 0, 0, 229, 1422, 1353, 0, 1383, 0, 1437, - 1287, 1374, 0, 1290, 1294, 1433, 1417, 1323, 275, 0, - 0, 0, 0, 0, 0, 0, 1350, 1361, 1395, 1399, - 1344, 0, 0, 0, 0, 0, 0, 0, 0, 1321, - 0, 1370, 0, 0, 0, 1299, 1291, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1348, - 0, 0, 0, 0, 1302, 0, 1322, 1396, 0, 1285, - 297, 1296, 402, 257, 0, 453, 1403, 1416, 1345, 629, - 1418, 1343, 1342, 1390, 1300, 1409, 1335, 365, 1298, 330, - 197, 225, 0, 1333, 412, 461, 473, 1408, 1318, 1327, - 253, 1325, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 1369, 1388, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 589, 590, 256, 652, 228, 622, 220, 1297, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 355, - 356, 280, 307, 447, 375, 448, 306, 308, 404, 403, - 405, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 1313, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 1404, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 1393, 1436, 425, - 472, 240, 606, 496, 199, 1307, 1312, 1305, 0, 254, - 255, 1375, 575, 1308, 1306, 1364, 1365, 1309, 1427, 1428, - 1429, 1414, 654, 655, 656, 657, 658, 659, 660, 661, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 1329, 1379, 610, 1421, 1330, 1381, 266, + 322, 273, 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, + 597, 0, 0, 229, 1423, 1354, 0, 1384, 0, 1438, + 1288, 1375, 0, 1291, 1295, 1434, 1418, 1324, 276, 0, + 0, 0, 0, 0, 0, 0, 1351, 1362, 1396, 1400, + 1345, 0, 0, 0, 0, 0, 0, 0, 0, 1322, + 0, 1371, 0, 0, 0, 1300, 1292, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1349, + 0, 0, 0, 0, 1303, 0, 1323, 1397, 0, 1286, + 298, 1297, 403, 258, 0, 454, 1404, 1417, 1346, 630, + 1419, 1344, 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, + 197, 225, 0, 1334, 413, 462, 474, 1409, 1319, 1328, + 254, 1326, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 1370, 1389, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 1298, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 1314, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 1405, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 1394, 1437, + 426, 473, 240, 607, 497, 199, 1308, 1313, 1306, 0, + 255, 256, 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, + 1429, 1430, 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 1397, 1301, 0, 1310, 1311, 398, 1406, 591, 592, 672, - 384, 486, 603, 335, 349, 352, 341, 361, 0, 362, - 337, 338, 343, 346, 347, 348, 353, 354, 358, 364, - 249, 210, 390, 399, 578, 312, 216, 217, 218, 524, - 525, 526, 527, 619, 620, 624, 205, 462, 463, 464, - 465, 292, 614, 309, 468, 467, 331, 332, 379, 449, - 540, 542, 553, 557, 559, 561, 567, 570, 541, 543, - 554, 558, 560, 562, 568, 571, 530, 532, 534, 536, - 549, 548, 545, 573, 574, 551, 556, 535, 547, 552, - 565, 572, 569, 529, 533, 537, 546, 564, 563, 544, - 555, 566, 550, 538, 531, 539, 1368, 196, 221, 368, - 1432, 454, 288, 650, 618, 484, 613, 206, 223, 1304, - 262, 1316, 1324, 0, 1330, 1338, 1339, 1352, 1355, 1356, - 1357, 1358, 1376, 1377, 1379, 1387, 1389, 1392, 1394, 1401, - 1415, 1435, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 301, 302, 444, 445, 314, 315, - 646, 647, 300, 600, 633, 597, 645, 627, 438, 378, - 1367, 1373, 381, 281, 305, 320, 1382, 617, 502, 227, - 466, 290, 251, 1400, 1402, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 1363, - 1391, 376, 576, 577, 316, 396, 0, 0, 0, 0, - 0, 0, 1421, 1405, 528, 0, 1347, 1424, 1315, 1334, - 1434, 1337, 1340, 1384, 1293, 1362, 416, 1331, 1319, 1288, - 1326, 1289, 1317, 1349, 270, 1314, 1407, 1366, 1423, 366, - 267, 1295, 1286, 204, 505, 1320, 430, 1336, 203, 1386, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 1430, 370, 1372, 0, 497, 401, - 0, 0, 0, 1411, 1410, 1341, 1351, 1413, 1360, 1398, - 1346, 1385, 1303, 1371, 1425, 1332, 1381, 1426, 323, 248, - 325, 202, 413, 498, 286, 0, 0, 0, 0, 0, - 507, 724, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 245, 0, 0, 0, 351, 360, - 359, 339, 340, 342, 344, 350, 357, 363, 336, 345, - 1328, 1378, 609, 1420, 1329, 1380, 265, 321, 272, 264, - 580, 1431, 1412, 1292, 1359, 1419, 1354, 596, 0, 0, - 229, 1422, 1353, 0, 1383, 0, 1437, 1287, 1374, 0, - 1290, 1294, 1433, 1417, 1323, 275, 0, 0, 0, 0, - 0, 0, 0, 1350, 1361, 1395, 1399, 1344, 0, 0, - 0, 0, 0, 0, 0, 0, 1321, 0, 1370, 0, - 0, 0, 1299, 1291, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1348, 0, 0, 0, - 0, 1302, 0, 1322, 1396, 0, 1285, 297, 1296, 402, - 257, 0, 453, 1403, 1416, 1345, 629, 1418, 1343, 1342, - 1390, 1300, 1409, 1335, 365, 1298, 330, 197, 225, 0, - 1333, 412, 461, 473, 1408, 1318, 1327, 253, 1325, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 1369, - 1388, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 589, 590, 256, - 652, 228, 622, 220, 1297, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 355, 356, 280, 307, - 447, 375, 448, 306, 308, 404, 403, 405, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 1313, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 1404, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 1393, 1436, 425, 472, 240, 606, - 496, 199, 1307, 1312, 1305, 0, 254, 255, 1375, 575, - 1308, 1306, 1364, 1365, 1309, 1427, 1428, 1429, 1414, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 1397, 1301, 0, - 1310, 1311, 398, 1406, 591, 592, 672, 384, 486, 603, - 335, 349, 352, 341, 361, 0, 362, 337, 338, 343, - 346, 347, 348, 353, 354, 358, 364, 249, 210, 390, - 399, 578, 312, 216, 217, 218, 524, 525, 526, 527, - 619, 620, 624, 205, 462, 463, 464, 465, 292, 614, - 309, 468, 467, 331, 332, 379, 449, 540, 542, 553, - 557, 559, 561, 567, 570, 541, 543, 554, 558, 560, - 562, 568, 571, 530, 532, 534, 536, 549, 548, 545, - 573, 574, 551, 556, 535, 547, 552, 565, 572, 569, - 529, 533, 537, 546, 564, 563, 544, 555, 566, 550, - 538, 531, 539, 1368, 196, 221, 368, 1432, 454, 288, - 650, 618, 484, 613, 206, 223, 1304, 262, 1316, 1324, - 0, 1330, 1338, 1339, 1352, 1355, 1356, 1357, 1358, 1376, - 1377, 1379, 1387, 1389, 1392, 1394, 1401, 1415, 1435, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 301, 302, 444, 445, 314, 315, 646, 647, 300, - 600, 633, 597, 645, 627, 438, 378, 1367, 1373, 381, - 281, 305, 320, 1382, 617, 502, 227, 466, 290, 251, - 1400, 1402, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 1363, 1391, 376, 576, - 577, 316, 396, 0, 0, 0, 0, 0, 0, 1421, - 1405, 528, 0, 1347, 1424, 1315, 1334, 1434, 1337, 1340, - 1384, 1293, 1362, 416, 1331, 1319, 1288, 1326, 1289, 1317, - 1349, 270, 1314, 1407, 1366, 1423, 366, 267, 1295, 1286, - 204, 505, 1320, 430, 1336, 203, 1386, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 1430, 370, 1372, 0, 497, 401, 0, 0, 0, - 1411, 1410, 1341, 1351, 1413, 1360, 1398, 1346, 1385, 1303, - 1371, 1425, 1332, 1381, 1426, 323, 248, 325, 202, 413, - 498, 286, 0, 0, 0, 0, 0, 507, 959, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, - 0, 245, 0, 0, 0, 351, 360, 359, 339, 340, - 342, 344, 350, 357, 363, 336, 345, 1328, 1378, 609, - 1420, 1329, 1380, 265, 321, 272, 264, 580, 1431, 1412, - 1292, 1359, 1419, 1354, 596, 0, 0, 229, 1422, 1353, - 0, 1383, 0, 1437, 1287, 1374, 0, 1290, 1294, 1433, - 1417, 1323, 275, 0, 0, 0, 0, 0, 0, 0, - 1350, 1361, 1395, 1399, 1344, 0, 0, 0, 0, 0, - 0, 0, 0, 1321, 0, 1370, 0, 0, 0, 1299, - 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1348, 0, 0, 0, 0, 1302, 0, - 1322, 1396, 0, 1285, 297, 1296, 402, 257, 0, 453, - 1403, 1416, 1345, 629, 1418, 1343, 1342, 1390, 1300, 1409, - 1335, 365, 1298, 330, 197, 225, 0, 1333, 412, 461, - 473, 1408, 1318, 1327, 253, 1325, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 1369, 1388, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 589, 590, 256, 652, 228, 622, - 220, 1297, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 355, 356, 280, 307, 447, 375, 448, - 306, 308, 404, 403, 405, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 1313, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 1404, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 1393, 1436, 425, 472, 240, 606, 496, 199, 1307, - 1312, 1305, 0, 254, 255, 1375, 575, 1308, 1306, 1364, - 1365, 1309, 1427, 1428, 1429, 1414, 654, 655, 656, 657, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 1398, 1302, 0, 1311, 1312, 399, 1407, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 1369, 196, 221, + 369, 1433, 455, 289, 651, 619, 485, 614, 206, 223, + 1305, 263, 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, + 1357, 1358, 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, + 1402, 1416, 1436, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 1368, 1374, 382, 282, 306, 321, 1383, 618, 503, + 227, 467, 291, 251, 1401, 1403, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 1364, 1392, 377, 577, 578, 317, 397, 0, 0, 0, + 0, 0, 0, 1422, 1406, 529, 0, 1348, 1425, 1316, + 1335, 1435, 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, + 1289, 1327, 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, + 367, 268, 1296, 1287, 204, 506, 1321, 431, 1337, 203, + 1387, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 1431, 371, 1373, 0, 498, + 402, 0, 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, + 1399, 1347, 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 1329, 1379, 610, 1421, 1330, 1381, 266, 322, 273, + 265, 581, 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, + 0, 229, 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, + 0, 1291, 1295, 1434, 1418, 1324, 276, 0, 0, 0, + 0, 0, 0, 0, 1351, 1362, 1396, 1400, 1345, 0, + 0, 0, 0, 0, 0, 0, 0, 1322, 0, 1371, + 0, 0, 0, 1300, 1292, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1349, 0, 0, + 0, 0, 1303, 0, 1323, 1397, 0, 1286, 298, 1297, + 403, 258, 0, 454, 1404, 1417, 1346, 630, 1419, 1344, + 1343, 1391, 1301, 1410, 1336, 366, 1299, 331, 197, 225, + 0, 1334, 413, 462, 474, 1409, 1319, 1328, 254, 1326, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 1370, 1389, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 1298, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 1314, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 1405, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 1394, 1437, 426, 473, + 240, 607, 497, 199, 1308, 1313, 1306, 0, 255, 256, + 1376, 576, 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, + 1415, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 1398, + 1302, 0, 1311, 1312, 399, 1407, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 1369, 196, 221, 369, 1433, + 455, 289, 651, 619, 485, 614, 206, 223, 1305, 263, + 1317, 1325, 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, + 1359, 1377, 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, + 1436, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 1368, + 1374, 382, 282, 306, 321, 1383, 618, 503, 227, 467, + 291, 251, 1401, 1403, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 1364, 1392, + 377, 577, 578, 317, 397, 0, 0, 0, 0, 0, + 0, 1422, 1406, 529, 0, 1348, 1425, 1316, 1335, 1435, + 1338, 1341, 1385, 1294, 1363, 417, 1332, 1320, 1289, 1327, + 1290, 1318, 1350, 271, 1315, 1408, 1367, 1424, 367, 268, + 1296, 1287, 204, 506, 1321, 431, 1337, 203, 1387, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 1431, 371, 1373, 0, 498, 402, 0, + 0, 0, 1412, 1411, 1342, 1352, 1414, 1361, 1399, 1347, + 1386, 1304, 1372, 1426, 1333, 1382, 1427, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 960, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 1329, + 1379, 610, 1421, 1330, 1381, 266, 322, 273, 265, 581, + 1432, 1413, 1293, 1360, 1420, 1355, 597, 0, 0, 229, + 1423, 1354, 0, 1384, 0, 1438, 1288, 1375, 0, 1291, + 1295, 1434, 1418, 1324, 276, 0, 0, 0, 0, 0, + 0, 0, 1351, 1362, 1396, 1400, 1345, 0, 0, 0, + 0, 0, 0, 0, 0, 1322, 0, 1371, 0, 0, + 0, 1300, 1292, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1349, 0, 0, 0, 0, + 1303, 0, 1323, 1397, 0, 1286, 298, 1297, 403, 258, + 0, 454, 1404, 1417, 1346, 630, 1419, 1344, 1343, 1391, + 1301, 1410, 1336, 366, 1299, 331, 197, 225, 0, 1334, + 413, 462, 474, 1409, 1319, 1328, 254, 1326, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 1370, 1389, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 1298, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 1314, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 1405, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 1394, 1437, 426, 473, 240, 607, + 497, 199, 1308, 1313, 1306, 0, 255, 256, 1376, 576, + 1309, 1307, 1365, 1366, 1310, 1428, 1429, 1430, 1415, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 1398, 1302, 0, + 1311, 1312, 399, 1407, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 1369, 196, 221, 369, 1433, 455, 289, + 651, 619, 485, 614, 206, 223, 1305, 263, 1317, 1325, + 0, 1331, 1339, 1340, 1353, 1356, 1357, 1358, 1359, 1377, + 1378, 1380, 1388, 1390, 1393, 1395, 1402, 1416, 1436, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 1368, 1374, 382, + 282, 306, 321, 1383, 618, 503, 227, 467, 291, 251, + 1401, 1403, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 1364, 1392, 377, 577, + 578, 317, 397, 0, 0, 0, 0, 0, 0, 0, + 0, 529, 0, 778, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 765, 0, 0, + 0, 271, 770, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 777, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 772, 773, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 95, 0, 0, 1024, 508, 960, 749, + 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966, + 967, 245, 968, 0, 925, 808, 810, 809, 875, 876, + 877, 878, 879, 880, 881, 811, 812, 806, 973, 610, + 980, 981, 0, 266, 322, 273, 265, 581, 0, 0, + 2233, 2234, 2235, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 745, 762, 0, 776, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, + 760, 0, 0, 0, 0, 920, 0, 761, 0, 0, + 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 919, 0, 0, 630, 0, 0, 917, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 970, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 971, 972, 257, 653, 816, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 824, 825, 281, 308, 901, 900, + 899, 307, 309, 897, 898, 896, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 907, + 929, 918, 782, 783, 908, 909, 933, 910, 785, 786, + 930, 931, 779, 780, 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 1397, 1301, 0, 1310, 1311, 398, - 1406, 591, 592, 672, 384, 486, 603, 335, 349, 352, - 341, 361, 0, 362, 337, 338, 343, 346, 347, 348, - 353, 354, 358, 364, 249, 210, 390, 399, 578, 312, - 216, 217, 218, 524, 525, 526, 527, 619, 620, 624, - 205, 462, 463, 464, 465, 292, 614, 309, 468, 467, - 331, 332, 379, 449, 540, 542, 553, 557, 559, 561, - 567, 570, 541, 543, 554, 558, 560, 562, 568, 571, - 530, 532, 534, 536, 549, 548, 545, 573, 574, 551, - 556, 535, 547, 552, 565, 572, 569, 529, 533, 537, - 546, 564, 563, 544, 555, 566, 550, 538, 531, 539, - 1368, 196, 221, 368, 1432, 454, 288, 650, 618, 484, - 613, 206, 223, 1304, 262, 1316, 1324, 0, 1330, 1338, - 1339, 1352, 1355, 1356, 1357, 1358, 1376, 1377, 1379, 1387, - 1389, 1392, 1394, 1401, 1415, 1435, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 301, 302, - 444, 445, 314, 315, 646, 647, 300, 600, 633, 597, - 645, 627, 438, 378, 1367, 1373, 381, 281, 305, 320, - 1382, 617, 502, 227, 466, 290, 251, 1400, 1402, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 1363, 1391, 376, 576, 577, 316, 396, - 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, - 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 764, 0, 0, 0, 270, 769, - 0, 0, 0, 366, 267, 0, 0, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 776, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 771, 772, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 95, 0, 0, 1023, 507, 959, 748, 925, 963, 1024, - 976, 977, 978, 964, 0, 238, 965, 966, 245, 967, - 0, 924, 807, 809, 808, 874, 875, 876, 877, 878, - 879, 880, 810, 811, 805, 972, 609, 979, 980, 0, - 265, 321, 272, 264, 580, 0, 0, 2232, 2233, 2234, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 744, 761, 0, 775, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 758, 759, 0, 0, - 0, 0, 919, 0, 760, 0, 0, 768, 981, 982, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 921, 768, 767, 0, 774, + 775, 0, 804, 805, 807, 813, 814, 815, 826, 873, + 874, 882, 884, 885, 883, 886, 887, 888, 891, 892, + 893, 894, 889, 890, 895, 787, 791, 788, 789, 790, + 802, 792, 793, 794, 795, 796, 797, 798, 799, 800, + 801, 803, 944, 945, 946, 947, 948, 949, 819, 823, + 822, 820, 821, 817, 818, 845, 844, 846, 847, 848, + 849, 850, 851, 853, 852, 854, 855, 856, 857, 858, + 859, 827, 828, 831, 832, 830, 829, 833, 842, 843, + 834, 835, 836, 837, 838, 839, 841, 840, 860, 861, + 862, 863, 864, 866, 865, 869, 870, 868, 867, 872, + 871, 766, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 935, 263, 936, 0, 0, 940, + 0, 0, 0, 942, 941, 0, 943, 905, 904, 0, + 0, 937, 938, 0, 939, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 950, + 951, 952, 953, 954, 955, 956, 957, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 975, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 778, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 765, + 0, 0, 0, 271, 770, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 777, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 772, 773, 0, + 0, 0, 0, 0, 0, 2440, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508, + 960, 749, 926, 964, 1025, 977, 978, 979, 965, 0, + 238, 966, 967, 245, 968, 0, 925, 808, 810, 809, + 875, 876, 877, 878, 879, 880, 881, 811, 812, 806, + 973, 610, 980, 981, 2441, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 745, 762, 0, + 776, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 759, 760, 0, 0, 0, 0, 920, 0, 761, + 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 919, 0, 0, 630, 0, 0, 917, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 970, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 971, 972, 257, + 653, 816, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 824, 825, 281, 308, + 901, 900, 899, 307, 309, 897, 898, 896, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 907, 929, 918, 782, 783, 908, 909, 933, 910, + 785, 786, 930, 931, 779, 780, 784, 932, 934, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 921, 768, 767, + 0, 774, 775, 0, 804, 805, 807, 813, 814, 815, + 826, 873, 874, 882, 884, 885, 883, 886, 887, 888, + 891, 892, 893, 894, 889, 890, 895, 787, 791, 788, + 789, 790, 802, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 803, 944, 945, 946, 947, 948, 949, + 819, 823, 822, 820, 821, 817, 818, 845, 844, 846, + 847, 848, 849, 850, 851, 853, 852, 854, 855, 856, + 857, 858, 859, 827, 828, 831, 832, 830, 829, 833, + 842, 843, 834, 835, 836, 837, 838, 839, 841, 840, + 860, 861, 862, 863, 864, 866, 865, 869, 870, 868, + 867, 872, 871, 766, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 935, 263, 936, 0, + 0, 940, 0, 0, 0, 942, 941, 0, 943, 905, + 904, 0, 0, 937, 938, 0, 939, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 950, 951, 952, 953, 954, 955, 956, 957, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 975, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 86, 529, 0, 778, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 765, 0, 0, 0, 271, 770, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 777, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 772, + 773, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 95, 0, 0, + 1024, 508, 960, 749, 926, 964, 1025, 977, 978, 979, + 965, 0, 238, 966, 967, 245, 968, 0, 925, 808, + 810, 809, 875, 876, 877, 878, 879, 880, 881, 811, + 812, 806, 973, 610, 980, 981, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 745, + 762, 0, 776, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 759, 760, 0, 0, 0, 0, 920, + 0, 761, 0, 0, 769, 982, 983, 984, 985, 986, + 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, + 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, + 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 771, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 919, 0, 0, 630, 0, 0, + 917, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 970, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 971, + 972, 257, 653, 816, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 824, 825, + 281, 308, 901, 900, 899, 307, 309, 897, 898, 896, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 907, 929, 918, 782, 783, 908, 909, + 933, 910, 785, 786, 930, 931, 779, 780, 784, 932, + 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 921, + 768, 767, 0, 774, 775, 0, 804, 805, 807, 813, + 814, 815, 826, 873, 874, 882, 884, 885, 883, 886, + 887, 888, 891, 892, 893, 894, 889, 890, 895, 787, + 791, 788, 789, 790, 802, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 803, 944, 945, 946, 947, + 948, 949, 819, 823, 822, 820, 821, 817, 818, 845, + 844, 846, 847, 848, 849, 850, 851, 853, 852, 854, + 855, 856, 857, 858, 859, 827, 828, 831, 832, 830, + 829, 833, 842, 843, 834, 835, 836, 837, 838, 839, + 841, 840, 860, 861, 862, 863, 864, 866, 865, 869, + 870, 868, 867, 872, 871, 766, 196, 221, 369, 94, + 455, 289, 651, 619, 485, 614, 206, 223, 935, 263, + 936, 0, 0, 940, 0, 0, 0, 942, 941, 0, + 943, 905, 904, 0, 0, 937, 938, 0, 939, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 950, 951, 952, 953, 954, 955, 956, + 957, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 975, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 778, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 765, 0, 0, 0, 271, 770, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 777, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 772, 773, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 95, + 0, 0, 1024, 508, 960, 749, 926, 964, 1025, 977, + 978, 979, 965, 0, 238, 966, 967, 245, 968, 0, + 925, 808, 810, 809, 875, 876, 877, 878, 879, 880, + 881, 811, 812, 806, 973, 610, 980, 981, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 745, 762, 0, 776, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 759, 760, 0, 0, 0, + 0, 920, 0, 761, 0, 0, 769, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 771, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 919, 0, 0, 630, + 0, 0, 917, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 970, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 4098, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 971, 972, 257, 653, 816, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 824, 825, 281, 308, 901, 900, 899, 307, 309, 897, + 898, 896, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 907, 929, 918, 782, 783, + 908, 909, 933, 910, 785, 786, 930, 931, 779, 780, + 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 921, 768, 767, 0, 774, 775, 0, 804, 805, + 807, 813, 814, 815, 826, 873, 874, 882, 884, 885, + 883, 886, 887, 888, 891, 892, 893, 894, 889, 890, + 895, 787, 791, 788, 789, 790, 802, 792, 793, 794, + 795, 796, 797, 798, 799, 800, 801, 803, 944, 945, + 946, 947, 948, 949, 819, 823, 822, 820, 821, 817, + 818, 845, 844, 846, 847, 848, 849, 850, 851, 853, + 852, 854, 855, 856, 857, 858, 859, 827, 828, 831, + 832, 830, 829, 833, 842, 843, 834, 835, 836, 837, + 838, 839, 841, 840, 860, 861, 862, 863, 864, 866, + 865, 869, 870, 868, 867, 872, 871, 766, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 935, 263, 936, 0, 0, 940, 0, 0, 0, 942, + 941, 0, 943, 905, 904, 0, 0, 937, 938, 0, + 939, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 950, 951, 952, 953, 954, + 955, 956, 957, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 975, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 765, 0, 0, 0, 271, + 770, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 777, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 772, 773, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 95, 0, 1754, 1024, 508, 960, 749, 926, 964, + 1025, 977, 978, 979, 965, 0, 238, 966, 967, 245, + 968, 0, 925, 808, 810, 809, 875, 876, 877, 878, + 879, 880, 881, 811, 812, 806, 973, 610, 980, 981, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 745, 762, 0, 776, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 759, 760, 0, + 0, 0, 0, 920, 0, 761, 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - 770, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 918, 0, 0, - 629, 0, 0, 916, 0, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 969, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 970, 971, 256, 652, 815, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 823, 824, 280, 307, 900, 899, 898, 306, 308, 896, - 897, 895, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 906, 928, 917, 781, 782, - 907, 908, 932, 909, 784, 785, 929, 930, 778, 779, - 783, 931, 933, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 920, 767, 766, 0, 773, 774, 0, 803, 804, - 806, 812, 813, 814, 825, 872, 873, 881, 883, 884, - 882, 885, 886, 887, 890, 891, 892, 893, 888, 889, - 894, 786, 790, 787, 788, 789, 801, 791, 792, 793, - 794, 795, 796, 797, 798, 799, 800, 802, 943, 944, - 945, 946, 947, 948, 818, 822, 821, 819, 820, 816, - 817, 844, 843, 845, 846, 847, 848, 849, 850, 852, - 851, 853, 854, 855, 856, 857, 858, 826, 827, 830, - 831, 829, 828, 832, 841, 842, 833, 834, 835, 836, - 837, 838, 840, 839, 859, 860, 861, 862, 863, 865, - 864, 868, 869, 867, 866, 871, 870, 765, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 934, 262, 935, 0, 0, 939, 0, 0, 0, 941, - 940, 0, 942, 904, 903, 0, 0, 936, 937, 0, - 938, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 949, 950, 951, 952, 953, - 954, 955, 956, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 974, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 764, 0, 0, 0, 270, - 769, 0, 0, 0, 366, 267, 0, 0, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 776, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 771, 772, 0, 0, 0, 0, 0, - 0, 2439, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 95, 0, 0, 1023, 507, 959, 748, 925, 963, - 1024, 976, 977, 978, 964, 0, 238, 965, 966, 245, - 967, 0, 924, 807, 809, 808, 874, 875, 876, 877, - 878, 879, 880, 810, 811, 805, 972, 609, 979, 980, - 2440, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 744, 761, 0, 775, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 758, 759, 0, - 0, 0, 0, 919, 0, 760, 0, 0, 768, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 770, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 918, 0, - 0, 629, 0, 0, 916, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 969, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 970, 971, 256, 652, 815, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 823, 824, 280, 307, 900, 899, 898, 306, 308, - 896, 897, 895, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 906, 928, 917, 781, - 782, 907, 908, 932, 909, 784, 785, 929, 930, 778, - 779, 783, 931, 933, 654, 655, 656, 657, 658, 659, + 1023, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 919, 0, + 0, 630, 0, 0, 917, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 970, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 971, 972, 257, 653, 816, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 824, 825, 281, 308, 901, 900, 899, 307, + 309, 897, 898, 896, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 907, 929, 918, + 782, 783, 908, 909, 933, 910, 785, 786, 930, 931, + 779, 780, 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 920, 767, 766, 0, 773, 774, 0, 803, - 804, 806, 812, 813, 814, 825, 872, 873, 881, 883, - 884, 882, 885, 886, 887, 890, 891, 892, 893, 888, - 889, 894, 786, 790, 787, 788, 789, 801, 791, 792, - 793, 794, 795, 796, 797, 798, 799, 800, 802, 943, - 944, 945, 946, 947, 948, 818, 822, 821, 819, 820, - 816, 817, 844, 843, 845, 846, 847, 848, 849, 850, - 852, 851, 853, 854, 855, 856, 857, 858, 826, 827, - 830, 831, 829, 828, 832, 841, 842, 833, 834, 835, - 836, 837, 838, 840, 839, 859, 860, 861, 862, 863, - 865, 864, 868, 869, 867, 866, 871, 870, 765, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 934, 262, 935, 0, 0, 939, 0, 0, 0, - 941, 940, 0, 942, 904, 903, 0, 0, 936, 937, - 0, 938, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 949, 950, 951, 952, - 953, 954, 955, 956, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 974, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 396, 0, 376, 576, 577, 316, 0, 0, 86, - 528, 0, 777, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 416, 0, 0, 0, 764, 0, 0, 0, - 270, 769, 0, 0, 0, 366, 267, 0, 0, 204, - 505, 0, 430, 0, 203, 0, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 776, 370, 0, 0, 497, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 771, 772, 0, 0, 0, 0, - 0, 0, 0, 0, 323, 248, 325, 202, 413, 498, - 286, 0, 95, 0, 0, 1023, 507, 959, 748, 925, - 963, 1024, 976, 977, 978, 964, 0, 238, 965, 966, - 245, 967, 0, 924, 807, 809, 808, 874, 875, 876, - 877, 878, 879, 880, 810, 811, 805, 972, 609, 979, - 980, 0, 265, 321, 272, 264, 580, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 744, 761, 0, 775, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 758, 759, - 0, 0, 0, 0, 919, 0, 760, 0, 0, 768, - 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 921, 768, 767, 0, 774, 775, 0, + 804, 805, 807, 813, 814, 815, 826, 873, 874, 882, + 884, 885, 883, 886, 887, 888, 891, 892, 893, 894, + 889, 890, 895, 787, 791, 788, 789, 790, 802, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 803, + 944, 945, 946, 947, 948, 949, 819, 823, 822, 820, + 821, 817, 818, 845, 844, 846, 847, 848, 849, 850, + 851, 853, 852, 854, 855, 856, 857, 858, 859, 827, + 828, 831, 832, 830, 829, 833, 842, 843, 834, 835, + 836, 837, 838, 839, 841, 840, 860, 861, 862, 863, + 864, 866, 865, 869, 870, 868, 867, 872, 871, 766, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 935, 263, 936, 0, 0, 940, 0, 0, + 0, 942, 941, 0, 943, 905, 904, 0, 0, 937, + 938, 0, 939, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 950, 951, 952, + 953, 954, 955, 956, 957, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 975, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 778, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 765, 0, 0, + 0, 271, 770, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 777, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 772, 773, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 95, 0, 0, 1024, 508, 960, 749, + 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966, + 967, 245, 968, 0, 925, 808, 810, 809, 875, 876, + 877, 878, 879, 880, 881, 811, 812, 806, 973, 610, + 980, 981, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 745, 762, 0, 776, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, + 760, 1070, 0, 0, 0, 920, 0, 761, 0, 0, + 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 770, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 0, 402, 257, 0, 453, 918, - 0, 0, 629, 0, 0, 916, 0, 0, 0, 0, - 365, 0, 330, 197, 225, 0, 0, 412, 461, 473, - 0, 0, 0, 969, 0, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 0, 0, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 970, 971, 256, 652, 815, 622, 220, - 0, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 823, 824, 280, 307, 900, 899, 898, 306, - 308, 896, 897, 895, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 0, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 0, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 0, 0, 425, 472, 240, 606, 496, 906, 928, 917, - 781, 782, 907, 908, 932, 909, 784, 785, 929, 930, - 778, 779, 783, 931, 933, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 920, 767, 766, 0, 773, 774, 0, - 803, 804, 806, 812, 813, 814, 825, 872, 873, 881, - 883, 884, 882, 885, 886, 887, 890, 891, 892, 893, - 888, 889, 894, 786, 790, 787, 788, 789, 801, 791, - 792, 793, 794, 795, 796, 797, 798, 799, 800, 802, - 943, 944, 945, 946, 947, 948, 818, 822, 821, 819, - 820, 816, 817, 844, 843, 845, 846, 847, 848, 849, - 850, 852, 851, 853, 854, 855, 856, 857, 858, 826, - 827, 830, 831, 829, 828, 832, 841, 842, 833, 834, - 835, 836, 837, 838, 840, 839, 859, 860, 861, 862, - 863, 865, 864, 868, 869, 867, 866, 871, 870, 765, - 196, 221, 368, 94, 454, 288, 650, 618, 484, 613, - 206, 223, 934, 262, 935, 0, 0, 939, 0, 0, - 0, 941, 940, 0, 942, 904, 903, 0, 0, 936, - 937, 0, 938, 0, 0, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 949, 950, 951, - 952, 953, 954, 955, 956, 300, 600, 633, 597, 645, - 627, 438, 378, 0, 0, 381, 281, 305, 320, 0, - 617, 502, 227, 466, 290, 251, 974, 0, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 396, 0, 376, 576, 577, 316, 0, 0, - 0, 528, 0, 777, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 0, 0, 0, 764, 0, 0, - 0, 270, 769, 0, 0, 0, 366, 267, 0, 0, - 204, 505, 0, 430, 0, 203, 0, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 776, 370, 0, 0, 497, 401, 0, 0, 0, - 0, 0, 0, 0, 0, 771, 772, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 248, 325, 202, 413, - 498, 286, 0, 95, 0, 0, 1023, 507, 959, 748, - 925, 963, 1024, 976, 977, 978, 964, 0, 238, 965, - 966, 245, 967, 0, 924, 807, 809, 808, 874, 875, - 876, 877, 878, 879, 880, 810, 811, 805, 972, 609, - 979, 980, 0, 265, 321, 272, 264, 580, 0, 0, - 0, 0, 0, 0, 596, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 744, 761, 0, 775, 0, - 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, - 759, 0, 0, 0, 0, 919, 0, 760, 0, 0, - 768, 981, 982, 983, 984, 985, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, - 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, - 1020, 1021, 1022, 770, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 0, 402, 257, 0, 453, - 918, 0, 0, 629, 0, 0, 916, 0, 0, 0, - 0, 365, 0, 330, 197, 225, 0, 0, 412, 461, - 473, 0, 0, 0, 969, 0, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 4095, 0, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 970, 971, 256, 652, 815, 622, - 220, 0, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 823, 824, 280, 307, 900, 899, 898, - 306, 308, 896, 897, 895, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 0, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 0, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 0, 0, 425, 472, 240, 606, 496, 906, 928, - 917, 781, 782, 907, 908, 932, 909, 784, 785, 929, - 930, 778, 779, 783, 931, 933, 654, 655, 656, 657, + 1021, 1022, 1023, 771, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 919, 0, 0, 630, 0, 0, 917, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 970, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 971, 972, 257, 653, 816, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 824, 825, 281, 308, 901, 900, + 899, 307, 309, 897, 898, 896, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 907, + 929, 918, 782, 783, 908, 909, 933, 910, 785, 786, + 930, 931, 779, 780, 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 920, 767, 766, 0, 773, 774, - 0, 803, 804, 806, 812, 813, 814, 825, 872, 873, - 881, 883, 884, 882, 885, 886, 887, 890, 891, 892, - 893, 888, 889, 894, 786, 790, 787, 788, 789, 801, - 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, - 802, 943, 944, 945, 946, 947, 948, 818, 822, 821, - 819, 820, 816, 817, 844, 843, 845, 846, 847, 848, - 849, 850, 852, 851, 853, 854, 855, 856, 857, 858, - 826, 827, 830, 831, 829, 828, 832, 841, 842, 833, - 834, 835, 836, 837, 838, 840, 839, 859, 860, 861, - 862, 863, 865, 864, 868, 869, 867, 866, 871, 870, - 765, 196, 221, 368, 0, 454, 288, 650, 618, 484, - 613, 206, 223, 934, 262, 935, 0, 0, 939, 0, - 0, 0, 941, 940, 0, 942, 904, 903, 0, 0, - 936, 937, 0, 938, 0, 0, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 949, 950, - 951, 952, 953, 954, 955, 956, 300, 600, 633, 597, - 645, 627, 438, 378, 0, 0, 381, 281, 305, 320, - 0, 617, 502, 227, 466, 290, 251, 974, 0, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 396, 0, 376, 576, 577, 316, 0, - 0, 0, 528, 0, 777, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 416, 0, 0, 0, 764, 0, - 0, 0, 270, 769, 0, 0, 0, 366, 267, 0, - 0, 204, 505, 0, 430, 0, 203, 0, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 776, 370, 0, 0, 497, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 771, 772, 0, 0, - 0, 0, 0, 0, 0, 0, 323, 248, 325, 202, - 413, 498, 286, 0, 95, 0, 1753, 1023, 507, 959, - 748, 925, 963, 1024, 976, 977, 978, 964, 0, 238, - 965, 966, 245, 967, 0, 924, 807, 809, 808, 874, - 875, 876, 877, 878, 879, 880, 810, 811, 805, 972, - 609, 979, 980, 0, 265, 321, 272, 264, 580, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 744, 761, 0, 775, - 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 758, 759, 0, 0, 0, 0, 919, 0, 760, 0, - 0, 768, 981, 982, 983, 984, 985, 986, 987, 988, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 921, 768, 767, 0, 774, + 775, 0, 804, 805, 807, 813, 814, 815, 826, 873, + 874, 882, 884, 885, 883, 886, 887, 888, 891, 892, + 893, 894, 889, 890, 895, 787, 791, 788, 789, 790, + 802, 792, 793, 794, 795, 796, 797, 798, 799, 800, + 801, 803, 944, 945, 946, 947, 948, 949, 819, 823, + 822, 820, 821, 817, 818, 845, 844, 846, 847, 848, + 849, 850, 851, 853, 852, 854, 855, 856, 857, 858, + 859, 827, 828, 831, 832, 830, 829, 833, 842, 843, + 834, 835, 836, 837, 838, 839, 841, 840, 860, 861, + 862, 863, 864, 866, 865, 869, 870, 868, 867, 872, + 871, 766, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 935, 263, 936, 0, 0, 940, + 0, 0, 0, 942, 941, 0, 943, 905, 904, 0, + 0, 937, 938, 0, 939, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 950, + 951, 952, 953, 954, 955, 956, 957, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 975, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 778, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 765, + 0, 0, 0, 271, 770, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 777, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 772, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508, + 960, 749, 926, 964, 1025, 977, 978, 979, 965, 0, + 238, 966, 967, 245, 968, 0, 925, 808, 810, 809, + 875, 876, 877, 878, 879, 880, 881, 811, 812, 806, + 973, 610, 980, 981, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 745, 762, 0, + 776, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 759, 760, 0, 0, 0, 0, 920, 0, 761, + 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, - 1019, 1020, 1021, 1022, 770, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 402, 257, 0, - 453, 918, 0, 0, 629, 0, 0, 916, 0, 0, - 0, 0, 365, 0, 330, 197, 225, 0, 0, 412, - 461, 473, 0, 0, 0, 969, 0, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 0, 0, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 970, 971, 256, 652, 815, - 622, 220, 0, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 823, 824, 280, 307, 900, 899, - 898, 306, 308, 896, 897, 895, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 0, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 0, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 0, 0, 425, 472, 240, 606, 496, 906, - 928, 917, 781, 782, 907, 908, 932, 909, 784, 785, - 929, 930, 778, 779, 783, 931, 933, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 920, 767, 766, 0, 773, - 774, 0, 803, 804, 806, 812, 813, 814, 825, 872, - 873, 881, 883, 884, 882, 885, 886, 887, 890, 891, - 892, 893, 888, 889, 894, 786, 790, 787, 788, 789, - 801, 791, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 802, 943, 944, 945, 946, 947, 948, 818, 822, - 821, 819, 820, 816, 817, 844, 843, 845, 846, 847, - 848, 849, 850, 852, 851, 853, 854, 855, 856, 857, - 858, 826, 827, 830, 831, 829, 828, 832, 841, 842, - 833, 834, 835, 836, 837, 838, 840, 839, 859, 860, - 861, 862, 863, 865, 864, 868, 869, 867, 866, 871, - 870, 765, 196, 221, 368, 0, 454, 288, 650, 618, - 484, 613, 206, 223, 934, 262, 935, 0, 0, 939, - 0, 0, 0, 941, 940, 0, 942, 904, 903, 0, - 0, 936, 937, 0, 938, 0, 0, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 949, - 950, 951, 952, 953, 954, 955, 956, 300, 600, 633, - 597, 645, 627, 438, 378, 0, 0, 381, 281, 305, - 320, 0, 617, 502, 227, 466, 290, 251, 974, 0, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 396, 0, 376, 576, 577, 316, - 0, 0, 0, 528, 0, 777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 0, 764, - 0, 0, 0, 270, 769, 0, 0, 0, 366, 267, - 0, 0, 204, 505, 0, 430, 0, 203, 0, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 776, 370, 0, 0, 497, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 771, 772, 0, - 0, 0, 0, 0, 0, 0, 0, 323, 248, 325, - 202, 413, 498, 286, 0, 95, 0, 0, 1023, 507, - 959, 748, 925, 963, 1024, 976, 977, 978, 964, 0, - 238, 965, 966, 245, 967, 0, 924, 807, 809, 808, - 874, 875, 876, 877, 878, 879, 880, 810, 811, 805, - 972, 609, 979, 980, 0, 265, 321, 272, 264, 580, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 744, 761, 0, - 775, 0, 0, 0, 275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 758, 759, 1069, 0, 0, 0, 919, 0, 760, - 0, 0, 768, 981, 982, 983, 984, 985, 986, 987, - 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, - 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, - 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 1020, 1021, 1022, 770, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 402, 257, - 0, 453, 918, 0, 0, 629, 0, 0, 916, 0, - 0, 0, 0, 365, 0, 330, 197, 225, 0, 0, - 412, 461, 473, 0, 0, 0, 969, 0, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 0, 0, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 970, 971, 256, 652, - 815, 622, 220, 0, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 823, 824, 280, 307, 900, - 899, 898, 306, 308, 896, 897, 895, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 0, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 0, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 0, 0, 425, 472, 240, 606, 496, - 906, 928, 917, 781, 782, 907, 908, 932, 909, 784, - 785, 929, 930, 778, 779, 783, 931, 933, 654, 655, + 1019, 1020, 1021, 1022, 1023, 771, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 919, 0, 0, 630, 0, 0, 917, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 970, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 971, 972, 257, + 653, 816, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 824, 825, 281, 308, + 901, 900, 899, 307, 309, 897, 898, 896, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 907, 929, 918, 782, 783, 908, 909, 933, 910, + 785, 786, 930, 931, 779, 780, 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 920, 767, 766, 0, - 773, 774, 0, 803, 804, 806, 812, 813, 814, 825, - 872, 873, 881, 883, 884, 882, 885, 886, 887, 890, - 891, 892, 893, 888, 889, 894, 786, 790, 787, 788, - 789, 801, 791, 792, 793, 794, 795, 796, 797, 798, - 799, 800, 802, 943, 944, 945, 946, 947, 948, 818, - 822, 821, 819, 820, 816, 817, 844, 843, 845, 846, - 847, 848, 849, 850, 852, 851, 853, 854, 855, 856, - 857, 858, 826, 827, 830, 831, 829, 828, 832, 841, - 842, 833, 834, 835, 836, 837, 838, 840, 839, 859, - 860, 861, 862, 863, 865, 864, 868, 869, 867, 866, - 871, 870, 765, 196, 221, 368, 0, 454, 288, 650, - 618, 484, 613, 206, 223, 934, 262, 935, 0, 0, - 939, 0, 0, 0, 941, 940, 0, 942, 904, 903, - 0, 0, 936, 937, 0, 938, 0, 0, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 949, 950, 951, 952, 953, 954, 955, 956, 300, 600, - 633, 597, 645, 627, 438, 378, 0, 0, 381, 281, - 305, 320, 0, 617, 502, 227, 466, 290, 251, 974, - 0, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 396, 0, 376, 576, 577, - 316, 0, 0, 0, 528, 0, 777, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, - 764, 0, 0, 0, 270, 769, 0, 0, 0, 366, - 267, 0, 0, 204, 505, 0, 430, 0, 203, 0, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 776, 370, 0, 0, 497, 401, - 0, 0, 0, 0, 0, 0, 0, 0, 771, 772, - 0, 0, 0, 0, 0, 0, 0, 0, 323, 248, - 325, 202, 413, 498, 286, 0, 95, 0, 0, 1023, - 507, 959, 748, 925, 963, 1024, 976, 977, 978, 964, - 0, 238, 965, 966, 245, 967, 0, 924, 807, 809, - 808, 874, 875, 876, 877, 878, 879, 880, 810, 811, - 805, 972, 609, 979, 980, 0, 265, 321, 272, 264, - 580, 0, 0, 0, 0, 0, 0, 596, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 744, 761, - 0, 775, 0, 0, 0, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 758, 759, 0, 0, 0, 0, 919, 0, - 760, 0, 0, 768, 981, 982, 983, 984, 985, 986, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 921, 768, 767, + 0, 774, 775, 0, 804, 805, 807, 813, 814, 815, + 826, 873, 874, 882, 884, 885, 883, 886, 887, 888, + 891, 892, 893, 894, 889, 890, 895, 787, 791, 788, + 789, 790, 802, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 803, 944, 945, 946, 947, 948, 949, + 819, 823, 822, 820, 821, 817, 818, 845, 844, 846, + 847, 848, 849, 850, 851, 853, 852, 854, 855, 856, + 857, 858, 859, 827, 828, 831, 832, 830, 829, 833, + 842, 843, 834, 835, 836, 837, 838, 839, 841, 840, + 860, 861, 862, 863, 864, 866, 865, 869, 870, 868, + 867, 872, 871, 766, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 935, 263, 936, 0, + 0, 940, 0, 0, 0, 942, 941, 0, 943, 905, + 904, 0, 0, 937, 938, 0, 939, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 950, 951, 952, 953, 954, 955, 956, 957, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 975, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 778, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 765, 0, 0, 0, 271, 770, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 777, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 772, + 773, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 95, 0, 0, + 1024, 508, 960, 749, 926, 964, 1025, 977, 978, 979, + 965, 0, 238, 966, 967, 245, 968, 0, 925, 808, + 810, 809, 875, 876, 877, 878, 879, 880, 881, 811, + 812, 806, 973, 610, 980, 981, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 745, + 762, 0, 776, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 759, 760, 0, 0, 0, 0, 920, + 0, 761, 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, - 1017, 1018, 1019, 1020, 1021, 1022, 770, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 402, - 257, 0, 453, 918, 0, 0, 629, 0, 0, 916, - 0, 0, 0, 0, 365, 0, 330, 197, 225, 0, - 0, 412, 461, 473, 0, 0, 0, 969, 0, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 0, - 0, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 970, 971, 256, - 652, 815, 622, 220, 0, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 823, 824, 280, 307, - 900, 899, 898, 306, 308, 896, 897, 895, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 0, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 0, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 0, 0, 425, 472, 240, 606, - 496, 906, 928, 917, 781, 782, 907, 908, 932, 909, - 784, 785, 929, 930, 778, 779, 783, 931, 933, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 920, 767, 766, - 0, 773, 774, 0, 803, 804, 806, 812, 813, 814, - 825, 872, 873, 881, 883, 884, 882, 885, 886, 887, - 890, 891, 892, 893, 888, 889, 894, 786, 790, 787, - 788, 789, 801, 791, 792, 793, 794, 795, 796, 797, - 798, 799, 800, 802, 943, 944, 945, 946, 947, 948, - 818, 822, 821, 819, 820, 816, 817, 844, 843, 845, - 846, 847, 848, 849, 850, 852, 851, 853, 854, 855, - 856, 857, 858, 826, 827, 830, 831, 829, 828, 832, - 841, 842, 833, 834, 835, 836, 837, 838, 840, 839, - 859, 860, 861, 862, 863, 865, 864, 868, 869, 867, - 866, 871, 870, 765, 196, 221, 368, 0, 454, 288, - 650, 618, 484, 613, 206, 223, 934, 262, 935, 0, - 0, 939, 0, 0, 0, 941, 940, 0, 942, 904, - 903, 0, 0, 936, 937, 0, 938, 0, 0, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 949, 950, 951, 952, 953, 954, 955, 956, 300, - 600, 633, 597, 645, 627, 438, 378, 0, 0, 381, - 281, 305, 320, 0, 617, 502, 227, 466, 290, 251, - 974, 0, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 396, 0, 376, 576, - 577, 316, 0, 0, 0, 528, 0, 777, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, - 0, 764, 0, 0, 0, 270, 769, 0, 0, 0, - 366, 267, 0, 0, 204, 505, 0, 430, 0, 203, - 0, 487, 252, 377, 374, 583, 282, 273, 269, 250, - 317, 385, 428, 518, 422, 776, 370, 0, 0, 497, - 401, 0, 0, 0, 0, 0, 0, 0, 0, 771, - 772, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 248, 325, 202, 413, 498, 286, 0, 95, 0, 0, - 1023, 507, 959, 748, 925, 963, 1024, 976, 977, 978, - 964, 0, 238, 965, 966, 245, 967, 0, 924, 807, - 809, 808, 874, 875, 876, 877, 878, 879, 880, 810, - 811, 805, 972, 609, 979, 980, 0, 265, 321, 272, - 264, 580, 0, 0, 0, 0, 0, 0, 596, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 744, - 761, 0, 775, 0, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 758, 759, 0, 0, 0, 0, 919, - 0, 760, 0, 0, 768, 981, 982, 983, 984, 985, - 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, - 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3171, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 402, 257, 0, 453, 918, 0, 0, 629, 0, 0, - 916, 0, 0, 0, 0, 365, 0, 330, 197, 225, - 0, 0, 412, 461, 473, 0, 0, 0, 969, 0, - 471, 426, 604, 233, 284, 458, 432, 469, 440, 287, - 0, 0, 470, 372, 585, 450, 601, 630, 631, 263, - 406, 615, 522, 623, 648, 226, 260, 420, 506, 607, - 494, 397, 581, 582, 329, 493, 295, 201, 369, 636, - 224, 479, 371, 242, 231, 587, 612, 299, 289, 456, - 643, 213, 517, 598, 239, 483, 0, 0, 651, 247, - 504, 610, 599, 215, 594, 503, 393, 326, 327, 214, - 0, 457, 268, 293, 0, 0, 258, 415, 970, 971, - 256, 652, 815, 622, 220, 0, 621, 408, 584, 595, - 394, 383, 219, 593, 392, 382, 334, 823, 824, 280, - 307, 900, 899, 898, 306, 308, 896, 897, 895, 207, - 608, 626, 0, 208, 0, 499, 611, 653, 452, 212, - 234, 235, 237, 0, 279, 283, 291, 294, 303, 304, - 313, 367, 419, 446, 442, 451, 0, 579, 602, 616, - 628, 634, 635, 637, 638, 639, 640, 641, 644, 642, - 407, 311, 495, 333, 373, 0, 0, 425, 472, 240, - 606, 496, 906, 928, 917, 781, 782, 907, 908, 932, - 909, 784, 785, 929, 930, 778, 779, 783, 931, 933, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 649, 508, - 514, 509, 510, 511, 512, 513, 0, 515, 920, 767, - 766, 0, 773, 774, 0, 803, 804, 806, 812, 813, - 814, 825, 872, 873, 881, 883, 884, 882, 885, 886, - 887, 890, 891, 892, 893, 888, 889, 894, 786, 790, - 787, 788, 789, 801, 791, 792, 793, 794, 795, 796, - 797, 798, 799, 800, 802, 943, 944, 945, 946, 947, - 948, 818, 822, 821, 819, 820, 816, 817, 844, 843, - 845, 846, 847, 848, 849, 850, 852, 851, 853, 854, - 855, 856, 857, 858, 826, 827, 830, 831, 829, 828, - 832, 841, 842, 833, 834, 835, 836, 837, 838, 840, - 839, 859, 860, 861, 862, 863, 865, 864, 868, 869, - 867, 866, 871, 870, 765, 196, 221, 368, 0, 454, - 288, 650, 618, 484, 613, 206, 223, 934, 262, 935, - 0, 0, 939, 0, 0, 0, 941, 940, 0, 942, - 904, 903, 0, 0, 936, 937, 0, 938, 0, 0, - 198, 200, 209, 222, 232, 236, 243, 261, 276, 278, - 285, 298, 310, 318, 319, 322, 328, 380, 386, 387, - 388, 389, 409, 410, 411, 414, 417, 418, 421, 423, - 424, 427, 431, 435, 436, 437, 439, 441, 443, 455, - 460, 474, 475, 476, 477, 478, 481, 482, 488, 489, - 490, 491, 492, 500, 501, 516, 586, 588, 605, 625, - 632, 480, 949, 950, 951, 952, 953, 954, 955, 956, - 300, 600, 633, 597, 645, 627, 438, 378, 0, 0, - 381, 281, 305, 320, 0, 617, 502, 227, 466, 290, - 251, 974, 0, 211, 246, 230, 259, 274, 277, 324, - 391, 400, 429, 434, 296, 271, 244, 459, 241, 485, - 519, 520, 521, 523, 395, 266, 433, 396, 0, 376, - 576, 577, 316, 0, 0, 0, 528, 0, 777, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, - 0, 0, 764, 0, 0, 0, 270, 769, 0, 0, - 0, 366, 267, 0, 0, 204, 505, 0, 430, 0, - 203, 0, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 776, 370, 0, 0, - 497, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 771, 772, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 248, 325, 202, 413, 498, 286, 0, 95, 0, - 0, 1023, 507, 959, 748, 925, 963, 1024, 976, 977, - 978, 964, 0, 238, 965, 966, 245, 967, 0, 924, - 807, 809, 808, 874, 875, 876, 877, 878, 879, 880, - 810, 811, 805, 972, 609, 979, 980, 0, 265, 321, - 272, 264, 580, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 744, 761, 0, 775, 0, 0, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 758, 759, 0, 0, 0, 0, - 919, 0, 760, 0, 0, 768, 981, 982, 983, 984, + 1017, 1018, 1019, 1020, 1021, 1022, 1023, 3174, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 919, 0, 0, 630, 0, 0, + 917, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 970, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 971, + 972, 257, 653, 816, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 824, 825, + 281, 308, 901, 900, 899, 307, 309, 897, 898, 896, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 907, 929, 918, 782, 783, 908, 909, + 933, 910, 785, 786, 930, 931, 779, 780, 784, 932, + 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 921, + 768, 767, 0, 774, 775, 0, 804, 805, 807, 813, + 814, 815, 826, 873, 874, 882, 884, 885, 883, 886, + 887, 888, 891, 892, 893, 894, 889, 890, 895, 787, + 791, 788, 789, 790, 802, 792, 793, 794, 795, 796, + 797, 798, 799, 800, 801, 803, 944, 945, 946, 947, + 948, 949, 819, 823, 822, 820, 821, 817, 818, 845, + 844, 846, 847, 848, 849, 850, 851, 853, 852, 854, + 855, 856, 857, 858, 859, 827, 828, 831, 832, 830, + 829, 833, 842, 843, 834, 835, 836, 837, 838, 839, + 841, 840, 860, 861, 862, 863, 864, 866, 865, 869, + 870, 868, 867, 872, 871, 766, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 935, 263, + 936, 0, 0, 940, 0, 0, 0, 942, 941, 0, + 943, 905, 904, 0, 0, 937, 938, 0, 939, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 950, 951, 952, 953, 954, 955, 956, + 957, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 975, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 778, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 765, 0, 0, 0, 271, 770, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 777, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 772, 773, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 95, + 0, 0, 1024, 508, 960, 749, 926, 964, 1025, 977, + 978, 979, 965, 0, 238, 966, 967, 245, 968, 0, + 925, 808, 810, 809, 875, 876, 877, 878, 879, 880, + 881, 811, 812, 806, 973, 610, 980, 981, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 745, 762, 0, 776, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 759, 760, 0, 0, 0, + 0, 920, 0, 761, 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 3167, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 402, 257, 0, 453, 918, 0, 0, 629, 0, - 0, 916, 0, 0, 0, 0, 365, 0, 330, 197, - 225, 0, 0, 412, 461, 473, 0, 0, 0, 969, - 0, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 0, 0, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 970, - 971, 256, 652, 815, 622, 220, 0, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 823, 824, - 280, 307, 900, 899, 898, 306, 308, 896, 897, 895, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 0, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 0, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 0, 0, 425, 472, - 240, 606, 496, 906, 928, 917, 781, 782, 907, 908, - 932, 909, 784, 785, 929, 930, 778, 779, 783, 931, - 933, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 920, - 767, 766, 0, 773, 774, 0, 803, 804, 806, 812, - 813, 814, 825, 872, 873, 881, 883, 884, 882, 885, - 886, 887, 890, 891, 892, 893, 888, 889, 894, 786, - 790, 787, 788, 789, 801, 791, 792, 793, 794, 795, - 796, 797, 798, 799, 800, 802, 943, 944, 945, 946, - 947, 948, 818, 822, 821, 819, 820, 816, 817, 844, - 843, 845, 846, 847, 848, 849, 850, 852, 851, 853, - 854, 855, 856, 857, 858, 826, 827, 830, 831, 829, - 828, 832, 841, 842, 833, 834, 835, 836, 837, 838, - 840, 839, 859, 860, 861, 862, 863, 865, 864, 868, - 869, 867, 866, 871, 870, 765, 196, 221, 368, 0, - 454, 288, 650, 618, 484, 613, 206, 223, 934, 262, - 935, 0, 0, 939, 0, 0, 0, 941, 940, 0, - 942, 904, 903, 0, 0, 936, 937, 0, 938, 0, - 0, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 409, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 949, 950, 951, 952, 953, 954, 955, - 956, 300, 600, 633, 597, 645, 627, 438, 378, 0, - 0, 381, 281, 305, 320, 0, 617, 502, 227, 466, - 290, 251, 974, 0, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 396, 0, - 376, 576, 577, 316, 0, 0, 0, 528, 0, 777, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, - 0, 0, 0, 764, 0, 0, 0, 270, 769, 0, - 0, 0, 366, 267, 0, 0, 204, 505, 0, 430, - 0, 203, 0, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 776, 370, 0, - 0, 497, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 771, 772, 0, 0, 0, 0, 0, 0, 0, - 0, 323, 248, 325, 202, 413, 498, 286, 0, 95, - 0, 0, 1023, 507, 959, 1090, 925, 963, 1024, 976, - 977, 978, 964, 0, 238, 965, 966, 245, 967, 0, - 924, 807, 809, 808, 874, 875, 876, 877, 878, 879, - 880, 810, 811, 805, 972, 609, 979, 980, 0, 265, - 321, 272, 264, 580, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 761, 0, 775, 0, 0, 0, 275, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 758, 759, 0, 0, 0, - 0, 919, 0, 760, 0, 0, 768, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, - 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, - 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 770, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 0, 402, 257, 0, 453, 918, 0, 0, 629, - 0, 0, 916, 0, 0, 0, 0, 365, 0, 330, - 197, 225, 0, 0, 412, 461, 473, 0, 0, 0, - 969, 0, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 0, 0, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 970, 971, 256, 652, 815, 622, 220, 0, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 823, - 824, 280, 307, 900, 899, 898, 306, 308, 896, 897, - 895, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 0, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 0, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 0, 0, 425, - 472, 240, 606, 496, 906, 928, 917, 781, 782, 907, - 908, 932, 909, 784, 785, 929, 930, 778, 779, 783, - 931, 933, 654, 655, 656, 657, 658, 659, 660, 661, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 3170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 919, 0, 0, 630, + 0, 0, 917, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 970, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 971, 972, 257, 653, 816, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 824, 825, 281, 308, 901, 900, 899, 307, 309, 897, + 898, 896, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 907, 929, 918, 782, 783, + 908, 909, 933, 910, 785, 786, 930, 931, 779, 780, + 784, 932, 934, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 920, 767, 766, 0, 773, 774, 0, 803, 804, 806, - 812, 813, 814, 825, 872, 873, 881, 883, 884, 882, - 885, 886, 887, 890, 891, 892, 893, 888, 889, 894, - 786, 790, 787, 788, 789, 801, 791, 792, 793, 794, - 795, 796, 797, 798, 799, 800, 802, 943, 944, 945, - 946, 947, 948, 818, 822, 821, 819, 820, 816, 817, - 844, 843, 845, 846, 847, 848, 849, 850, 852, 851, - 853, 854, 855, 856, 857, 858, 826, 827, 830, 831, - 829, 828, 832, 841, 842, 833, 834, 835, 836, 837, - 838, 840, 839, 859, 860, 861, 862, 863, 865, 864, - 868, 869, 867, 866, 871, 870, 765, 196, 221, 368, - 0, 454, 288, 650, 618, 484, 613, 206, 223, 934, - 262, 935, 0, 0, 939, 0, 0, 0, 941, 940, - 0, 942, 904, 903, 0, 0, 936, 937, 0, 938, - 0, 0, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 949, 950, 951, 952, 953, 954, - 955, 956, 300, 600, 633, 597, 645, 627, 438, 378, - 0, 0, 381, 281, 305, 320, 0, 617, 502, 227, - 466, 290, 251, 974, 0, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 396, - 0, 376, 576, 577, 316, 0, 0, 0, 528, 0, - 777, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 764, 0, 0, 0, 270, 769, - 0, 0, 0, 366, 267, 0, 0, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 776, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 771, 772, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 95, 0, 0, 1023, 507, 959, 1090, 925, 963, 1024, - 976, 977, 978, 964, 0, 238, 965, 966, 245, 967, - 0, 924, 807, 809, 808, 874, 875, 876, 877, 878, - 879, 880, 810, 811, 805, 972, 609, 979, 980, 0, - 265, 321, 272, 264, 580, 0, 0, 0, 0, 0, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 761, 0, 775, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 758, 759, 0, 0, - 0, 0, 919, 0, 760, 0, 0, 768, 981, 982, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 921, 768, 767, 0, 774, 775, 0, 804, 805, + 807, 813, 814, 815, 826, 873, 874, 882, 884, 885, + 883, 886, 887, 888, 891, 892, 893, 894, 889, 890, + 895, 787, 791, 788, 789, 790, 802, 792, 793, 794, + 795, 796, 797, 798, 799, 800, 801, 803, 944, 945, + 946, 947, 948, 949, 819, 823, 822, 820, 821, 817, + 818, 845, 844, 846, 847, 848, 849, 850, 851, 853, + 852, 854, 855, 856, 857, 858, 859, 827, 828, 831, + 832, 830, 829, 833, 842, 843, 834, 835, 836, 837, + 838, 839, 841, 840, 860, 861, 862, 863, 864, 866, + 865, 869, 870, 868, 867, 872, 871, 766, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 935, 263, 936, 0, 0, 940, 0, 0, 0, 942, + 941, 0, 943, 905, 904, 0, 0, 937, 938, 0, + 939, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 950, 951, 952, 953, 954, + 955, 956, 957, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 975, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 778, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 765, 0, 0, 0, 271, + 770, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 777, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 772, 773, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 95, 0, 0, 1024, 508, 960, 1091, 926, 964, + 1025, 977, 978, 979, 965, 0, 238, 966, 967, 245, + 968, 0, 925, 808, 810, 809, 875, 876, 877, 878, + 879, 880, 881, 811, 812, 806, 973, 610, 980, 981, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 762, 0, 776, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 759, 760, 0, + 0, 0, 0, 920, 0, 761, 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - 2123, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 918, 0, 0, - 629, 0, 0, 916, 0, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 969, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 970, 971, 256, 652, 815, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 823, 824, 280, 307, 900, 899, 898, 306, 308, 896, - 897, 895, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 906, 928, 917, 781, 782, - 907, 908, 932, 909, 784, 785, 929, 930, 778, 779, - 783, 931, 933, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 920, 767, 766, 0, 773, 774, 0, 803, 804, - 806, 812, 813, 814, 825, 872, 873, 881, 883, 884, - 882, 885, 886, 887, 890, 891, 892, 893, 888, 889, - 894, 786, 790, 787, 788, 789, 801, 791, 792, 793, - 794, 795, 796, 797, 798, 799, 800, 802, 943, 944, - 945, 946, 947, 948, 818, 822, 821, 819, 820, 816, - 817, 844, 843, 845, 846, 847, 848, 849, 850, 852, - 851, 853, 854, 855, 856, 857, 858, 826, 827, 830, - 831, 829, 828, 832, 841, 842, 833, 834, 835, 836, - 837, 838, 840, 839, 859, 860, 861, 862, 863, 865, - 864, 868, 869, 867, 866, 871, 870, 765, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 934, 262, 935, 0, 0, 939, 0, 0, 0, 941, - 940, 0, 942, 904, 903, 0, 0, 936, 937, 0, - 938, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 949, 950, 951, 952, 953, - 954, 955, 956, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 974, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 777, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 764, 0, 0, 0, 270, - 769, 0, 0, 0, 366, 267, 0, 0, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 776, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 771, 772, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 95, 0, 0, 1023, 507, 959, 1090, 925, 963, - 1024, 976, 977, 978, 964, 0, 238, 965, 966, 245, - 967, 0, 924, 807, 809, 808, 874, 875, 876, 877, - 878, 879, 880, 810, 811, 805, 972, 609, 979, 980, - 0, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 761, 0, 775, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 758, 759, 0, - 0, 0, 0, 919, 0, 760, 0, 0, 768, 981, - 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, - 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, - 1022, 2121, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 918, 0, - 0, 629, 0, 0, 916, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 969, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 970, 971, 256, 652, 815, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 823, 824, 280, 307, 900, 899, 898, 306, 308, - 896, 897, 895, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 906, 928, 917, 781, - 782, 907, 908, 932, 909, 784, 785, 929, 930, 778, - 779, 783, 931, 933, 654, 655, 656, 657, 658, 659, + 1023, 771, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 919, 0, + 0, 630, 0, 0, 917, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 970, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 971, 972, 257, 653, 816, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 824, 825, 281, 308, 901, 900, 899, 307, + 309, 897, 898, 896, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 907, 929, 918, + 782, 783, 908, 909, 933, 910, 785, 786, 930, 931, + 779, 780, 784, 932, 934, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 921, 768, 767, 0, 774, 775, 0, + 804, 805, 807, 813, 814, 815, 826, 873, 874, 882, + 884, 885, 883, 886, 887, 888, 891, 892, 893, 894, + 889, 890, 895, 787, 791, 788, 789, 790, 802, 792, + 793, 794, 795, 796, 797, 798, 799, 800, 801, 803, + 944, 945, 946, 947, 948, 949, 819, 823, 822, 820, + 821, 817, 818, 845, 844, 846, 847, 848, 849, 850, + 851, 853, 852, 854, 855, 856, 857, 858, 859, 827, + 828, 831, 832, 830, 829, 833, 842, 843, 834, 835, + 836, 837, 838, 839, 841, 840, 860, 861, 862, 863, + 864, 866, 865, 869, 870, 868, 867, 872, 871, 766, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 935, 263, 936, 0, 0, 940, 0, 0, + 0, 942, 941, 0, 943, 905, 904, 0, 0, 937, + 938, 0, 939, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 950, 951, 952, + 953, 954, 955, 956, 957, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 975, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 778, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 765, 0, 0, + 0, 271, 770, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 777, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 772, 773, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 95, 0, 0, 1024, 508, 960, 1091, + 926, 964, 1025, 977, 978, 979, 965, 0, 238, 966, + 967, 245, 968, 0, 925, 808, 810, 809, 875, 876, + 877, 878, 879, 880, 881, 811, 812, 806, 973, 610, + 980, 981, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 762, 0, 776, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 759, + 760, 0, 0, 0, 0, 920, 0, 761, 0, 0, + 769, 982, 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 2124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 919, 0, 0, 630, 0, 0, 917, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 970, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 971, 972, 257, 653, 816, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 824, 825, 281, 308, 901, 900, + 899, 307, 309, 897, 898, 896, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 907, + 929, 918, 782, 783, 908, 909, 933, 910, 785, 786, + 930, 931, 779, 780, 784, 932, 934, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 921, 768, 767, 0, 774, + 775, 0, 804, 805, 807, 813, 814, 815, 826, 873, + 874, 882, 884, 885, 883, 886, 887, 888, 891, 892, + 893, 894, 889, 890, 895, 787, 791, 788, 789, 790, + 802, 792, 793, 794, 795, 796, 797, 798, 799, 800, + 801, 803, 944, 945, 946, 947, 948, 949, 819, 823, + 822, 820, 821, 817, 818, 845, 844, 846, 847, 848, + 849, 850, 851, 853, 852, 854, 855, 856, 857, 858, + 859, 827, 828, 831, 832, 830, 829, 833, 842, 843, + 834, 835, 836, 837, 838, 839, 841, 840, 860, 861, + 862, 863, 864, 866, 865, 869, 870, 868, 867, 872, + 871, 766, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 935, 263, 936, 0, 0, 940, + 0, 0, 0, 942, 941, 0, 943, 905, 904, 0, + 0, 937, 938, 0, 939, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 950, + 951, 952, 953, 954, 955, 956, 957, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 975, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 778, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 765, + 0, 0, 0, 271, 770, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 777, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 772, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 95, 0, 0, 1024, 508, + 960, 1091, 926, 964, 1025, 977, 978, 979, 965, 0, + 238, 966, 967, 245, 968, 0, 925, 808, 810, 809, + 875, 876, 877, 878, 879, 880, 881, 811, 812, 806, + 973, 610, 980, 981, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 762, 0, + 776, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 759, 760, 0, 0, 0, 0, 920, 0, 761, + 0, 0, 769, 982, 983, 984, 985, 986, 987, 988, + 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 2122, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 919, 0, 0, 630, 0, 0, 917, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 970, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 971, 972, 257, + 653, 816, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 824, 825, 281, 308, + 901, 900, 899, 307, 309, 897, 898, 896, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 907, 929, 918, 782, 783, 908, 909, 933, 910, + 785, 786, 930, 931, 779, 780, 784, 932, 934, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 921, 768, 767, + 0, 774, 775, 0, 804, 805, 807, 813, 814, 815, + 826, 873, 874, 882, 884, 885, 883, 886, 887, 888, + 891, 892, 893, 894, 889, 890, 895, 787, 791, 788, + 789, 790, 802, 792, 793, 794, 795, 796, 797, 798, + 799, 800, 801, 803, 944, 945, 946, 947, 948, 949, + 819, 823, 822, 820, 821, 817, 818, 845, 844, 846, + 847, 848, 849, 850, 851, 853, 852, 854, 855, 856, + 857, 858, 859, 827, 828, 831, 832, 830, 829, 833, + 842, 843, 834, 835, 836, 837, 838, 839, 841, 840, + 860, 861, 862, 863, 864, 866, 865, 869, 870, 868, + 867, 872, 871, 766, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 935, 263, 936, 0, + 0, 940, 0, 0, 0, 942, 941, 0, 943, 905, + 904, 0, 0, 937, 938, 0, 939, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 950, 951, 952, 953, 954, 955, 956, 957, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 975, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 1142, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 1141, 630, 0, 0, + 0, 0, 0, 1138, 1139, 366, 1099, 331, 197, 225, + 1132, 1136, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 86, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 95, + 0, 0, 0, 508, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 94, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 2427, 0, + 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 1777, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 1779, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 1781, 508, 725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 1480, + 0, 1481, 1482, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 920, 767, 766, 0, 773, 774, 0, 803, - 804, 806, 812, 813, 814, 825, 872, 873, 881, 883, - 884, 882, 885, 886, 887, 890, 891, 892, 893, 888, - 889, 894, 786, 790, 787, 788, 789, 801, 791, 792, - 793, 794, 795, 796, 797, 798, 799, 800, 802, 943, - 944, 945, 946, 947, 948, 818, 822, 821, 819, 820, - 816, 817, 844, 843, 845, 846, 847, 848, 849, 850, - 852, 851, 853, 854, 855, 856, 857, 858, 826, 827, - 830, 831, 829, 828, 832, 841, 842, 833, 834, 835, - 836, 837, 838, 840, 839, 859, 860, 861, 862, 863, - 865, 864, 868, 869, 867, 866, 871, 870, 765, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 934, 262, 935, 0, 0, 939, 0, 0, 0, - 941, 940, 0, 942, 904, 903, 0, 0, 936, 937, - 0, 938, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 949, 950, 951, 952, - 953, 954, 955, 956, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 974, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 396, 0, 376, 576, 577, 316, 0, 0, 0, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 0, 0, 0, 366, 267, 0, 0, 204, - 505, 0, 430, 0, 203, 0, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 0, 370, 0, 0, 497, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 323, 248, 325, 202, 413, 498, - 286, 0, 0, 0, 0, 0, 507, 724, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 245, 0, 0, 0, 351, 360, 359, 339, 340, 342, - 344, 350, 357, 363, 336, 345, 0, 0, 609, 0, - 0, 0, 265, 321, 272, 264, 580, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 229, 0, 1141, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 0, 402, 257, 0, 453, 0, - 0, 1140, 629, 0, 0, 0, 0, 0, 1137, 1138, - 365, 1098, 330, 197, 225, 1131, 1135, 412, 461, 473, - 0, 0, 0, 253, 0, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 0, 0, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 589, 590, 256, 652, 228, 622, 220, - 0, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 355, 356, 280, 307, 447, 375, 448, 306, - 308, 404, 403, 405, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 0, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 0, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 0, 0, 425, 472, 240, 606, 496, 199, 0, 0, - 0, 0, 254, 255, 0, 575, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 0, 0, 0, 0, 0, 398, 0, - 591, 592, 672, 384, 486, 603, 335, 349, 352, 341, - 361, 0, 362, 337, 338, 343, 346, 347, 348, 353, - 354, 358, 364, 249, 210, 390, 399, 578, 312, 216, - 217, 218, 524, 525, 526, 527, 619, 620, 624, 205, - 462, 463, 464, 465, 292, 614, 309, 468, 467, 331, - 332, 379, 449, 540, 542, 553, 557, 559, 561, 567, - 570, 541, 543, 554, 558, 560, 562, 568, 571, 530, - 532, 534, 536, 549, 548, 545, 573, 574, 551, 556, - 535, 547, 552, 565, 572, 569, 529, 533, 537, 546, - 564, 563, 544, 555, 566, 550, 538, 531, 539, 0, - 196, 221, 368, 0, 454, 288, 650, 618, 484, 613, - 206, 223, 0, 262, 0, 0, 0, 0, 0, 0, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 301, 302, 444, - 445, 314, 315, 646, 647, 300, 600, 633, 597, 645, - 627, 438, 378, 0, 0, 381, 281, 305, 320, 0, - 617, 502, 227, 466, 290, 251, 0, 0, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 396, 0, 376, 576, 577, 316, 0, 0, - 86, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 0, 0, 0, 366, 267, 0, 0, - 204, 505, 0, 430, 0, 203, 0, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 0, 370, 0, 0, 497, 401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 248, 325, 202, 413, - 498, 286, 0, 95, 0, 0, 0, 507, 194, 0, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 86, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 95, 0, 1754, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, - 0, 245, 0, 0, 0, 351, 360, 359, 339, 340, - 342, 344, 350, 357, 363, 336, 345, 0, 0, 609, - 0, 0, 0, 265, 321, 272, 264, 580, 0, 0, - 0, 0, 0, 0, 596, 0, 0, 229, 0, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4491,1184 +4677,963 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 0, 402, 257, 0, 453, - 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, - 0, 365, 0, 330, 197, 225, 0, 0, 412, 461, - 473, 0, 0, 0, 253, 0, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 0, 0, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 589, 590, 256, 652, 228, 622, - 220, 0, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 355, 356, 280, 307, 447, 375, 448, - 306, 308, 404, 403, 405, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 0, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 0, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 0, 0, 425, 472, 240, 606, 496, 199, 0, - 0, 0, 0, 254, 255, 0, 575, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 654, 655, 656, 657, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 0, 0, 0, 0, 0, 398, - 0, 591, 592, 672, 384, 486, 603, 335, 349, 352, - 341, 361, 0, 362, 337, 338, 343, 346, 347, 348, - 353, 354, 358, 364, 249, 210, 390, 399, 578, 312, - 216, 217, 218, 524, 525, 526, 527, 619, 620, 624, - 205, 462, 463, 464, 465, 292, 614, 309, 468, 467, - 331, 332, 379, 449, 540, 542, 553, 557, 559, 561, - 567, 570, 541, 543, 554, 558, 560, 562, 568, 571, - 530, 532, 534, 536, 549, 548, 545, 573, 574, 551, - 556, 535, 547, 552, 565, 572, 569, 529, 533, 537, - 546, 564, 563, 544, 555, 566, 550, 538, 531, 539, - 0, 196, 221, 368, 94, 454, 288, 650, 618, 484, - 613, 206, 223, 0, 262, 0, 0, 0, 0, 0, - 0, 2426, 0, 0, 2425, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 301, 302, - 444, 445, 314, 315, 646, 647, 300, 600, 633, 597, - 645, 627, 438, 378, 0, 0, 381, 281, 305, 320, - 0, 617, 502, 227, 466, 290, 251, 0, 0, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 1776, 0, 376, 576, 577, 316, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 416, 0, 0, 1778, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 366, 267, 0, - 0, 204, 505, 0, 430, 0, 203, 0, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 0, 370, 0, 0, 497, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 323, 248, 325, 202, - 413, 498, 286, 0, 0, 0, 0, 1780, 507, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, - 0, 0, 245, 0, 0, 0, 351, 360, 359, 339, - 340, 342, 344, 350, 357, 363, 336, 345, 0, 0, - 609, 0, 0, 0, 265, 321, 272, 264, 580, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 229, 0, - 0, 0, 1479, 0, 1480, 1481, 0, 0, 0, 0, - 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 402, 257, 0, - 453, 0, 0, 0, 629, 0, 0, 0, 0, 0, - 0, 0, 365, 0, 330, 197, 225, 0, 0, 412, - 461, 473, 0, 0, 0, 253, 0, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 0, 0, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 589, 590, 256, 652, 228, - 622, 220, 0, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 355, 356, 280, 307, 447, 375, - 448, 306, 308, 404, 403, 405, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 0, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 0, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 0, 0, 425, 472, 240, 606, 496, 199, - 0, 0, 0, 0, 254, 255, 0, 575, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 0, 0, 0, 0, 0, - 398, 0, 591, 592, 672, 384, 486, 603, 335, 349, - 352, 341, 361, 0, 362, 337, 338, 343, 346, 347, - 348, 353, 354, 358, 364, 249, 210, 390, 399, 578, - 312, 216, 217, 218, 524, 525, 526, 527, 619, 620, - 624, 205, 462, 463, 464, 465, 292, 614, 309, 468, - 467, 331, 332, 379, 449, 540, 542, 553, 557, 559, - 561, 567, 570, 541, 543, 554, 558, 560, 562, 568, - 571, 530, 532, 534, 536, 549, 548, 545, 573, 574, - 551, 556, 535, 547, 552, 565, 572, 569, 529, 533, - 537, 546, 564, 563, 544, 555, 566, 550, 538, 531, - 539, 0, 196, 221, 368, 0, 454, 288, 650, 618, - 484, 613, 206, 223, 0, 262, 0, 0, 0, 0, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 94, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 301, - 302, 444, 445, 314, 315, 646, 647, 300, 600, 633, - 597, 645, 627, 438, 378, 0, 0, 381, 281, 305, - 320, 0, 617, 502, 227, 466, 290, 251, 0, 0, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 396, 0, 376, 576, 577, 316, - 0, 0, 86, 528, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 0, 0, 0, 366, 267, - 0, 0, 204, 505, 0, 430, 0, 203, 0, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 0, 370, 0, 0, 497, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 323, 248, 325, - 202, 413, 498, 286, 0, 95, 0, 1753, 0, 507, - 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 238, 0, 0, 245, 0, 0, 0, 351, 360, 359, - 339, 340, 342, 344, 350, 357, 363, 336, 345, 0, - 0, 609, 0, 0, 0, 265, 321, 272, 264, 580, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 402, 257, - 0, 453, 0, 0, 0, 629, 0, 0, 0, 0, - 0, 0, 0, 365, 0, 330, 197, 225, 0, 0, - 412, 461, 473, 0, 0, 0, 253, 0, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 0, 0, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 589, 590, 256, 652, - 228, 622, 220, 0, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 355, 356, 280, 307, 447, - 375, 448, 306, 308, 404, 403, 405, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 0, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 0, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 0, 0, 425, 472, 240, 606, 496, - 199, 0, 0, 0, 0, 254, 255, 0, 575, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 654, 655, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 95, 0, 0, 0, 508, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 0, 0, 0, 0, - 0, 398, 0, 591, 592, 672, 384, 486, 603, 335, - 349, 352, 341, 361, 0, 362, 337, 338, 343, 346, - 347, 348, 353, 354, 358, 364, 249, 210, 390, 399, - 578, 312, 216, 217, 218, 524, 525, 526, 527, 619, - 620, 624, 205, 462, 463, 464, 465, 292, 614, 309, - 468, 467, 331, 332, 379, 449, 540, 542, 553, 557, - 559, 561, 567, 570, 541, 543, 554, 558, 560, 562, - 568, 571, 530, 532, 534, 536, 549, 548, 545, 573, - 574, 551, 556, 535, 547, 552, 565, 572, 569, 529, - 533, 537, 546, 564, 563, 544, 555, 566, 550, 538, - 531, 539, 0, 196, 221, 368, 94, 454, 288, 650, - 618, 484, 613, 206, 223, 0, 262, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 301, 302, 444, 445, 314, 315, 646, 647, 300, 600, - 633, 597, 645, 627, 438, 378, 0, 0, 381, 281, - 305, 320, 0, 617, 502, 227, 466, 290, 251, 0, - 0, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 396, 0, 376, 576, 577, - 316, 0, 0, 0, 528, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 0, 0, 0, 366, - 267, 0, 0, 204, 505, 0, 430, 0, 203, 0, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 0, 370, 0, 0, 497, 401, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 323, 248, - 325, 202, 413, 498, 286, 0, 95, 0, 0, 0, - 507, 194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 245, 0, 0, 0, 351, 360, - 359, 339, 340, 342, 344, 350, 357, 363, 336, 345, - 0, 0, 609, 0, 0, 0, 265, 321, 272, 264, - 580, 0, 0, 0, 0, 0, 0, 596, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 402, - 257, 0, 453, 0, 0, 0, 629, 0, 0, 0, - 0, 0, 0, 0, 365, 0, 330, 197, 225, 0, - 0, 412, 461, 473, 0, 0, 0, 253, 0, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 0, - 0, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 589, 590, 256, - 652, 228, 622, 220, 0, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 355, 356, 280, 307, - 447, 375, 448, 306, 308, 404, 403, 405, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 0, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 0, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 0, 0, 425, 472, 240, 606, - 496, 199, 0, 0, 0, 0, 254, 255, 0, 575, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 0, 0, 0, - 0, 0, 398, 0, 591, 592, 672, 384, 486, 603, - 335, 349, 352, 341, 361, 0, 362, 337, 338, 343, - 346, 347, 348, 353, 354, 358, 364, 249, 210, 390, - 399, 578, 312, 216, 217, 218, 524, 525, 526, 527, - 619, 620, 624, 205, 462, 463, 464, 465, 292, 614, - 309, 468, 467, 331, 332, 379, 449, 540, 542, 553, - 557, 559, 561, 567, 570, 541, 543, 554, 558, 560, - 562, 568, 571, 530, 532, 534, 536, 549, 548, 545, - 573, 574, 551, 556, 535, 547, 552, 565, 572, 569, - 529, 533, 537, 546, 564, 563, 544, 555, 566, 550, - 538, 531, 539, 0, 196, 221, 368, 0, 454, 288, - 650, 618, 484, 613, 206, 223, 0, 262, 0, 0, - 0, 0, 0, 0, 2426, 0, 0, 2425, 0, 0, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, + 0, 0, 0, 0, 2427, 0, 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 301, 302, 444, 445, 314, 315, 646, 647, 300, - 600, 633, 597, 645, 627, 438, 378, 0, 0, 381, - 281, 305, 320, 0, 617, 502, 227, 466, 290, 251, - 0, 0, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 396, 0, 376, 576, - 577, 316, 0, 0, 0, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, - 2373, 0, 0, 0, 0, 270, 0, 0, 0, 0, - 366, 267, 0, 0, 204, 505, 0, 430, 0, 203, - 0, 487, 252, 377, 374, 583, 282, 273, 269, 250, - 317, 385, 428, 518, 422, 0, 370, 0, 0, 497, - 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 248, 325, 202, 413, 498, 286, 0, 0, 0, 0, - 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 245, 0, 0, 0, 351, - 360, 359, 339, 340, 342, 344, 350, 357, 363, 336, - 345, 0, 0, 609, 0, 0, 0, 265, 321, 272, - 264, 580, 0, 0, 0, 0, 0, 0, 596, 0, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 2374, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 1962, 508, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 402, 257, 0, 453, 0, 0, 0, 629, 0, 0, - 0, 0, 0, 0, 0, 365, 0, 330, 197, 225, - 0, 0, 412, 461, 473, 0, 0, 0, 253, 0, - 471, 426, 604, 233, 284, 458, 432, 469, 440, 287, - 0, 2371, 470, 372, 585, 450, 601, 630, 631, 263, - 406, 615, 522, 623, 648, 226, 260, 420, 506, 607, - 494, 397, 581, 582, 329, 493, 295, 201, 369, 636, - 224, 479, 371, 242, 231, 587, 612, 299, 289, 456, - 643, 213, 517, 598, 239, 483, 0, 0, 651, 247, - 504, 610, 599, 215, 594, 503, 393, 326, 327, 214, - 0, 457, 268, 293, 0, 0, 258, 415, 589, 590, - 256, 652, 228, 622, 220, 0, 621, 408, 584, 595, - 394, 383, 219, 593, 392, 382, 334, 355, 356, 280, - 307, 447, 375, 448, 306, 308, 404, 403, 405, 207, - 608, 626, 0, 208, 0, 499, 611, 653, 452, 212, - 234, 235, 237, 0, 279, 283, 291, 294, 303, 304, - 313, 367, 419, 446, 442, 451, 0, 579, 602, 616, - 628, 634, 635, 637, 638, 639, 640, 641, 644, 642, - 407, 311, 495, 333, 373, 0, 0, 425, 472, 240, - 606, 496, 199, 0, 0, 0, 0, 254, 255, 0, - 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 649, 508, - 514, 509, 510, 511, 512, 513, 0, 515, 0, 0, - 0, 0, 0, 398, 0, 591, 592, 672, 384, 486, - 603, 335, 349, 352, 341, 361, 0, 362, 337, 338, - 343, 346, 347, 348, 353, 354, 358, 364, 249, 210, - 390, 399, 578, 312, 216, 217, 218, 524, 525, 526, - 527, 619, 620, 624, 205, 462, 463, 464, 465, 292, - 614, 309, 468, 467, 331, 332, 379, 449, 540, 542, - 553, 557, 559, 561, 567, 570, 541, 543, 554, 558, - 560, 562, 568, 571, 530, 532, 534, 536, 549, 548, - 545, 573, 574, 551, 556, 535, 547, 552, 565, 572, - 569, 529, 533, 537, 546, 564, 563, 544, 555, 566, - 550, 538, 531, 539, 0, 196, 221, 368, 0, 454, - 288, 650, 618, 484, 613, 206, 223, 0, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 200, 209, 222, 232, 236, 243, 261, 276, 278, - 285, 298, 310, 318, 319, 322, 328, 380, 386, 387, - 388, 389, 409, 410, 411, 414, 417, 418, 421, 423, - 424, 427, 431, 435, 436, 437, 439, 441, 443, 455, - 460, 474, 475, 476, 477, 478, 481, 482, 488, 489, - 490, 491, 492, 500, 501, 516, 586, 588, 605, 625, - 632, 480, 301, 302, 444, 445, 314, 315, 646, 647, - 300, 600, 633, 597, 645, 627, 438, 378, 0, 0, - 381, 281, 305, 320, 0, 617, 502, 227, 466, 290, - 251, 0, 0, 211, 246, 230, 259, 274, 277, 324, - 391, 400, 429, 434, 296, 271, 244, 459, 241, 485, - 519, 520, 521, 523, 395, 266, 433, 396, 0, 376, - 576, 577, 316, 0, 0, 0, 528, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, - 0, 366, 267, 0, 0, 204, 505, 0, 430, 0, - 203, 0, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 0, 370, 0, 0, - 497, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 248, 325, 202, 413, 498, 286, 0, 0, 0, - 0, 0, 507, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 245, 0, 0, 0, - 351, 360, 359, 339, 340, 342, 344, 350, 357, 363, - 336, 345, 0, 0, 609, 0, 0, 0, 265, 321, - 272, 264, 580, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 1092, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 402, 257, 0, 453, 0, 0, 0, 629, 0, - 0, 0, 0, 0, 0, 0, 365, 1098, 330, 197, - 225, 1096, 0, 412, 461, 473, 0, 0, 0, 253, - 0, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 0, 0, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 589, - 590, 256, 652, 228, 622, 220, 0, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 355, 356, - 280, 307, 447, 375, 448, 306, 308, 404, 403, 405, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 0, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 0, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 0, 0, 425, 472, - 240, 606, 496, 199, 0, 0, 0, 0, 254, 255, - 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 0, - 0, 0, 0, 0, 398, 0, 591, 592, 672, 384, - 486, 603, 335, 349, 352, 341, 361, 0, 362, 337, - 338, 343, 346, 347, 348, 353, 354, 358, 364, 249, - 210, 390, 399, 578, 312, 216, 217, 218, 524, 525, - 526, 527, 619, 620, 624, 205, 462, 463, 464, 465, - 292, 614, 309, 468, 467, 331, 332, 379, 449, 540, - 542, 553, 557, 559, 561, 567, 570, 541, 543, 554, - 558, 560, 562, 568, 571, 530, 532, 534, 536, 549, - 548, 545, 573, 574, 551, 556, 535, 547, 552, 565, - 572, 569, 529, 533, 537, 546, 564, 563, 544, 555, - 566, 550, 538, 531, 539, 0, 196, 221, 368, 0, - 454, 288, 650, 618, 484, 613, 206, 223, 0, 262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 409, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 301, 302, 444, 445, 314, 315, 646, - 647, 300, 600, 633, 597, 645, 627, 438, 378, 0, - 0, 381, 281, 305, 320, 0, 617, 502, 227, 466, - 290, 251, 0, 0, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 396, 0, - 376, 576, 577, 316, 0, 0, 0, 528, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, - 0, 0, 2373, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 366, 267, 0, 0, 204, 505, 0, 430, - 0, 203, 0, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 0, 370, 0, - 0, 497, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 323, 248, 325, 202, 413, 498, 286, 0, 0, - 0, 0, 1961, 507, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 2372, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, - 0, 351, 360, 359, 339, 340, 342, 344, 350, 357, - 363, 336, 345, 0, 0, 609, 0, 0, 0, 265, - 321, 272, 264, 580, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 1093, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 1099, 331, + 197, 225, 1097, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 2374, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 1962, 508, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 1754, 0, 508, 725, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 0, 402, 257, 0, 453, 0, 0, 0, 629, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 330, - 197, 225, 0, 0, 412, 461, 473, 0, 0, 0, - 253, 0, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 0, 0, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 589, 590, 256, 652, 228, 622, 220, 0, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 355, - 356, 280, 307, 447, 375, 448, 306, 308, 404, 403, - 405, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 0, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 0, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 0, 0, 425, - 472, 240, 606, 496, 199, 0, 0, 0, 0, 254, - 255, 0, 575, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 654, 655, 656, 657, 658, 659, 660, 661, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 3729, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 2133, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2134, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 2881, 508, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2882, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 725, 0, 0, 0, 0, 2866, + 0, 0, 0, 0, 238, 0, 0, 245, 2867, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 0, 0, 0, 0, 0, 398, 0, 591, 592, 672, - 384, 486, 603, 335, 349, 352, 341, 361, 0, 362, - 337, 338, 343, 346, 347, 348, 353, 354, 358, 364, - 249, 210, 390, 399, 578, 312, 216, 217, 218, 524, - 525, 526, 527, 619, 620, 624, 205, 462, 463, 464, - 465, 292, 614, 309, 468, 467, 331, 332, 379, 449, - 540, 542, 553, 557, 559, 561, 567, 570, 541, 543, - 554, 558, 560, 562, 568, 571, 530, 532, 534, 536, - 549, 548, 545, 573, 574, 551, 556, 535, 547, 552, - 565, 572, 569, 529, 533, 537, 546, 564, 563, 544, - 555, 566, 550, 538, 531, 539, 0, 196, 221, 368, - 0, 454, 288, 650, 618, 484, 613, 206, 223, 0, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 301, 302, 444, 445, 314, 315, - 646, 647, 300, 600, 633, 597, 645, 627, 438, 378, - 0, 0, 381, 281, 305, 320, 0, 617, 502, 227, - 466, 290, 251, 0, 0, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 396, - 0, 376, 576, 577, 316, 0, 0, 0, 528, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 0, 0, 0, 366, 267, 0, 0, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 0, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 0, 0, 1753, 0, 507, 724, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, - 0, 0, 351, 360, 359, 339, 340, 342, 344, 350, - 357, 363, 336, 345, 0, 0, 609, 0, 0, 0, - 265, 321, 272, 264, 580, 0, 0, 0, 0, 0, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 0, 0, 0, - 629, 0, 0, 0, 3726, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 253, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 589, 590, 256, 652, 228, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 355, 356, 280, 307, 447, 375, 448, 306, 308, 404, - 403, 405, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 199, 0, 0, 0, 0, - 254, 255, 0, 575, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 0, 0, 0, 0, 0, 398, 0, 591, 592, - 672, 384, 486, 603, 335, 349, 352, 341, 361, 0, - 362, 337, 338, 343, 346, 347, 348, 353, 354, 358, - 364, 249, 210, 390, 399, 578, 312, 216, 217, 218, - 524, 525, 526, 527, 619, 620, 624, 205, 462, 463, - 464, 465, 292, 614, 309, 468, 467, 331, 332, 379, - 449, 540, 542, 553, 557, 559, 561, 567, 570, 541, - 543, 554, 558, 560, 562, 568, 571, 530, 532, 534, - 536, 549, 548, 545, 573, 574, 551, 556, 535, 547, - 552, 565, 572, 569, 529, 533, 537, 546, 564, 563, - 544, 555, 566, 550, 538, 531, 539, 0, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 301, 302, 444, 445, 314, - 315, 646, 647, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 0, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 0, 0, 0, 366, 267, 0, 0, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 0, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 0, 0, 0, 2132, 507, 724, 0, 0, 0, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 1800, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 1799, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, - 0, 0, 0, 351, 360, 359, 339, 340, 342, 344, - 350, 357, 363, 336, 345, 0, 0, 609, 0, 0, - 0, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2133, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 0, 0, - 0, 629, 0, 0, 0, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 253, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 589, 590, 256, 652, 228, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 355, 356, 280, 307, 447, 375, 448, 306, 308, - 404, 403, 405, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 199, 0, 0, 0, - 0, 254, 255, 0, 575, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 654, 655, 656, 657, 658, 659, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 0, 0, 0, 0, 0, 398, 0, 591, - 592, 672, 384, 486, 603, 335, 349, 352, 341, 361, - 0, 362, 337, 338, 343, 346, 347, 348, 353, 354, - 358, 364, 249, 210, 390, 399, 578, 312, 216, 217, - 218, 524, 525, 526, 527, 619, 620, 624, 205, 462, - 463, 464, 465, 292, 614, 309, 468, 467, 331, 332, - 379, 449, 540, 542, 553, 557, 559, 561, 567, 570, - 541, 543, 554, 558, 560, 562, 568, 571, 530, 532, - 534, 536, 549, 548, 545, 573, 574, 551, 556, 535, - 547, 552, 565, 572, 569, 529, 533, 537, 546, 564, - 563, 544, 555, 566, 550, 538, 531, 539, 0, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 0, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 301, 302, 444, 445, - 314, 315, 646, 647, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 0, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 396, 0, 376, 576, 577, 316, 0, 0, 0, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 0, 0, 0, 366, 267, 0, 0, 204, - 505, 0, 430, 0, 203, 0, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 0, 370, 0, 0, 497, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 323, 248, 325, 202, 413, 498, - 286, 0, 0, 0, 0, 2879, 507, 724, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 245, 0, 0, 0, 351, 360, 359, 339, 340, 342, - 344, 350, 357, 363, 336, 345, 0, 0, 609, 0, - 0, 0, 265, 321, 272, 264, 580, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2880, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 0, 402, 257, 0, 453, 0, - 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, - 365, 0, 330, 197, 225, 0, 0, 412, 461, 473, - 0, 0, 0, 253, 0, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 0, 0, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 589, 590, 256, 652, 228, 622, 220, - 0, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 355, 356, 280, 307, 447, 375, 448, 306, - 308, 404, 403, 405, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 0, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 0, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 0, 0, 425, 472, 240, 606, 496, 199, 0, 0, - 0, 0, 254, 255, 0, 575, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 0, 0, 0, 0, 0, 398, 0, - 591, 592, 672, 384, 486, 603, 335, 349, 352, 341, - 361, 0, 362, 337, 338, 343, 346, 347, 348, 353, - 354, 358, 364, 249, 210, 390, 399, 578, 312, 216, - 217, 218, 524, 525, 526, 527, 619, 620, 624, 205, - 462, 463, 464, 465, 292, 614, 309, 468, 467, 331, - 332, 379, 449, 540, 542, 553, 557, 559, 561, 567, - 570, 541, 543, 554, 558, 560, 562, 568, 571, 530, - 532, 534, 536, 549, 548, 545, 573, 574, 551, 556, - 535, 547, 552, 565, 572, 569, 529, 533, 537, 546, - 564, 563, 544, 555, 566, 550, 538, 531, 539, 0, - 196, 221, 368, 0, 454, 288, 650, 618, 484, 613, - 206, 223, 0, 262, 0, 0, 0, 0, 0, 0, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 301, 302, 444, - 445, 314, 315, 646, 647, 300, 600, 633, 597, 645, - 627, 438, 378, 0, 0, 381, 281, 305, 320, 0, - 617, 502, 227, 466, 290, 251, 0, 0, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 396, 0, 376, 576, 577, 316, 0, 0, - 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 0, 0, 0, 366, 267, 0, 0, - 204, 505, 0, 430, 0, 203, 0, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 0, 370, 0, 0, 497, 401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 248, 325, 202, 413, - 498, 286, 0, 0, 0, 0, 0, 507, 724, 0, - 0, 0, 0, 2864, 0, 0, 0, 0, 238, 0, - 0, 245, 2865, 0, 0, 351, 360, 359, 339, 340, - 342, 344, 350, 357, 363, 336, 345, 0, 0, 609, - 0, 0, 0, 265, 321, 272, 264, 580, 0, 0, - 0, 0, 0, 0, 596, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 0, 402, 257, 0, 453, - 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, - 0, 365, 0, 330, 197, 225, 0, 0, 412, 461, - 473, 0, 0, 0, 253, 0, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 0, 0, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 589, 590, 256, 652, 228, 622, - 220, 0, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 355, 356, 280, 307, 447, 375, 448, - 306, 308, 404, 403, 405, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 0, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 0, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 0, 0, 425, 472, 240, 606, 496, 199, 0, - 0, 0, 0, 254, 255, 0, 575, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 654, 655, 656, 657, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 727, 728, + 729, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 0, 0, 0, 0, 0, 398, - 0, 591, 592, 672, 384, 486, 603, 335, 349, 352, - 341, 361, 0, 362, 337, 338, 343, 346, 347, 348, - 353, 354, 358, 364, 249, 210, 390, 399, 578, 312, - 216, 217, 218, 524, 525, 526, 527, 619, 620, 624, - 205, 462, 463, 464, 465, 292, 614, 309, 468, 467, - 331, 332, 379, 449, 540, 542, 553, 557, 559, 561, - 567, 570, 541, 543, 554, 558, 560, 562, 568, 571, - 530, 532, 534, 536, 549, 548, 545, 573, 574, 551, - 556, 535, 547, 552, 565, 572, 569, 529, 533, 537, - 546, 564, 563, 544, 555, 566, 550, 538, 531, 539, - 0, 196, 221, 368, 0, 454, 288, 650, 618, 484, - 613, 206, 223, 0, 262, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 301, 302, - 444, 445, 314, 315, 646, 647, 300, 600, 633, 597, - 645, 627, 438, 378, 0, 0, 381, 281, 305, 320, - 0, 617, 502, 227, 466, 290, 251, 0, 0, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 396, 0, 376, 576, 577, 316, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, - 0, 0, 270, 1799, 0, 0, 0, 366, 267, 0, - 0, 204, 505, 0, 430, 0, 203, 0, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 0, 370, 0, 0, 497, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 323, 248, 325, 202, - 413, 498, 286, 0, 0, 0, 0, 1798, 507, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, - 0, 0, 245, 0, 0, 0, 351, 360, 359, 339, - 340, 342, 344, 350, 357, 363, 336, 345, 0, 0, - 609, 0, 0, 0, 265, 321, 272, 264, 580, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 402, 257, 0, - 453, 0, 0, 0, 629, 0, 0, 0, 0, 0, - 0, 0, 365, 0, 330, 197, 225, 0, 0, 412, - 461, 473, 0, 0, 0, 253, 0, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 0, 0, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 589, 590, 256, 652, 228, - 622, 220, 0, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 355, 356, 280, 307, 447, 375, - 448, 306, 308, 404, 403, 405, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 0, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 0, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 0, 0, 425, 472, 240, 606, 496, 199, - 0, 0, 0, 0, 254, 255, 0, 575, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 0, 0, 0, 0, 0, - 398, 0, 591, 592, 672, 384, 486, 603, 335, 349, - 352, 341, 361, 0, 362, 337, 338, 343, 346, 347, - 348, 353, 354, 358, 364, 249, 210, 390, 399, 578, - 312, 216, 217, 218, 524, 525, 526, 527, 619, 620, - 624, 205, 462, 463, 464, 465, 292, 614, 309, 468, - 467, 331, 332, 379, 449, 540, 542, 553, 557, 559, - 561, 567, 570, 541, 543, 554, 558, 560, 562, 568, - 571, 530, 532, 534, 536, 549, 548, 545, 573, 574, - 551, 556, 535, 547, 552, 565, 572, 569, 529, 533, - 537, 546, 564, 563, 544, 555, 566, 550, 538, 531, - 539, 0, 196, 221, 368, 0, 454, 288, 650, 618, - 484, 613, 206, 223, 0, 262, 0, 0, 0, 0, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 301, - 302, 444, 445, 314, 315, 646, 647, 300, 600, 633, - 597, 645, 627, 438, 378, 0, 0, 381, 281, 305, - 320, 0, 617, 502, 227, 466, 290, 251, 0, 0, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 396, 0, 376, 576, 577, 316, - 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 0, 0, 0, 366, 267, - 0, 0, 204, 505, 0, 430, 0, 203, 0, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 0, 370, 0, 0, 497, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 323, 248, 325, - 202, 413, 498, 286, 0, 0, 0, 0, 0, 507, - 726, 727, 728, 0, 0, 0, 0, 0, 0, 0, - 238, 0, 0, 245, 0, 0, 0, 351, 360, 359, - 339, 340, 342, 344, 350, 357, 363, 336, 345, 0, - 0, 609, 0, 0, 0, 265, 321, 272, 264, 580, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 402, 257, - 0, 453, 0, 0, 0, 629, 0, 0, 0, 0, - 0, 0, 0, 365, 0, 330, 197, 225, 0, 0, - 412, 461, 473, 0, 0, 0, 253, 0, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 0, 0, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 589, 590, 256, 652, - 228, 622, 220, 0, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 355, 356, 280, 307, 447, - 375, 448, 306, 308, 404, 403, 405, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 0, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 0, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 0, 0, 425, 472, 240, 606, 496, - 199, 0, 0, 0, 0, 254, 255, 0, 575, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 654, 655, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 4073, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 0, 0, 0, 0, - 0, 398, 0, 591, 592, 672, 384, 486, 603, 335, - 349, 352, 341, 361, 0, 362, 337, 338, 343, 346, - 347, 348, 353, 354, 358, 364, 249, 210, 390, 399, - 578, 312, 216, 217, 218, 524, 525, 526, 527, 619, - 620, 624, 205, 462, 463, 464, 465, 292, 614, 309, - 468, 467, 331, 332, 379, 449, 540, 542, 553, 557, - 559, 561, 567, 570, 541, 543, 554, 558, 560, 562, - 568, 571, 530, 532, 534, 536, 549, 548, 545, 573, - 574, 551, 556, 535, 547, 552, 565, 572, 569, 529, - 533, 537, 546, 564, 563, 544, 555, 566, 550, 538, - 531, 539, 0, 196, 221, 368, 0, 454, 288, 650, - 618, 484, 613, 206, 223, 0, 262, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 301, 302, 444, 445, 314, 315, 646, 647, 300, 600, - 633, 597, 645, 627, 438, 378, 0, 0, 381, 281, - 305, 320, 0, 617, 502, 227, 466, 290, 251, 0, - 0, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 396, 0, 376, 576, 577, - 316, 0, 0, 0, 528, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 0, 0, 0, 366, - 267, 0, 0, 204, 505, 0, 430, 0, 203, 0, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 0, 370, 0, 0, 497, 401, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 323, 248, - 325, 202, 413, 498, 286, 0, 0, 0, 0, 0, - 507, 724, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 245, 0, 0, 0, 351, 360, - 359, 339, 340, 342, 344, 350, 357, 363, 336, 345, - 0, 0, 609, 0, 0, 0, 265, 321, 272, 264, - 580, 0, 0, 0, 0, 0, 0, 596, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 402, - 257, 0, 453, 0, 0, 0, 629, 0, 0, 0, - 4070, 0, 0, 0, 365, 0, 330, 197, 225, 0, - 0, 412, 461, 473, 0, 0, 0, 253, 0, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 0, - 0, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 589, 590, 256, - 652, 228, 622, 220, 0, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 355, 356, 280, 307, - 447, 375, 448, 306, 308, 404, 403, 405, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 0, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 0, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 0, 0, 425, 472, 240, 606, - 496, 199, 0, 0, 0, 0, 254, 255, 0, 575, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 0, 0, 0, - 0, 0, 398, 0, 591, 592, 672, 384, 486, 603, - 335, 349, 352, 341, 361, 0, 362, 337, 338, 343, - 346, 347, 348, 353, 354, 358, 364, 249, 210, 390, - 399, 578, 312, 216, 217, 218, 524, 525, 526, 527, - 619, 620, 624, 205, 462, 463, 464, 465, 292, 614, - 309, 468, 467, 331, 332, 379, 449, 540, 542, 553, - 557, 559, 561, 567, 570, 541, 543, 554, 558, 560, - 562, 568, 571, 530, 532, 534, 536, 549, 548, 545, - 573, 574, 551, 556, 535, 547, 552, 565, 572, 569, - 529, 533, 537, 546, 564, 563, 544, 555, 566, 550, - 538, 531, 539, 0, 196, 221, 368, 0, 454, 288, - 650, 618, 484, 613, 206, 223, 0, 262, 0, 0, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 301, 302, 444, 445, 314, 315, 646, 647, 300, - 600, 633, 597, 645, 627, 438, 378, 0, 0, 381, - 281, 305, 320, 0, 617, 502, 227, 466, 290, 251, - 0, 0, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 396, 0, 376, 576, - 577, 316, 0, 0, 0, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, - 366, 267, 0, 0, 204, 505, 0, 430, 0, 203, - 0, 487, 252, 377, 374, 583, 282, 273, 269, 250, - 317, 385, 428, 518, 422, 0, 370, 0, 0, 497, - 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 248, 325, 202, 413, 498, 286, 0, 0, 0, 0, - 1961, 507, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 245, 0, 0, 0, 351, - 360, 359, 339, 340, 342, 344, 350, 357, 363, 336, - 345, 0, 0, 609, 0, 0, 0, 265, 321, 272, - 264, 580, 0, 0, 0, 0, 0, 0, 596, 0, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 1962, 508, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 402, 257, 0, 453, 0, 0, 0, 629, 0, 0, - 0, 0, 0, 0, 0, 365, 0, 330, 197, 225, - 0, 0, 412, 461, 473, 0, 0, 0, 253, 0, - 471, 426, 604, 233, 284, 458, 432, 469, 440, 287, - 0, 0, 470, 372, 585, 450, 601, 630, 631, 263, - 406, 615, 522, 623, 648, 226, 260, 420, 506, 607, - 494, 397, 581, 582, 329, 493, 295, 201, 369, 636, - 224, 479, 371, 242, 231, 587, 612, 299, 289, 456, - 643, 213, 517, 598, 239, 483, 0, 0, 651, 247, - 504, 610, 599, 215, 594, 503, 393, 326, 327, 214, - 0, 457, 268, 293, 0, 0, 258, 415, 589, 590, - 256, 652, 228, 622, 220, 0, 621, 408, 584, 595, - 394, 383, 219, 593, 392, 382, 334, 355, 356, 280, - 307, 447, 375, 448, 306, 308, 404, 403, 405, 207, - 608, 626, 0, 208, 0, 499, 611, 653, 452, 212, - 234, 235, 237, 0, 279, 283, 291, 294, 303, 304, - 313, 367, 419, 446, 442, 451, 0, 579, 602, 616, - 628, 634, 635, 637, 638, 639, 640, 641, 644, 642, - 407, 311, 495, 333, 373, 0, 0, 425, 472, 240, - 606, 496, 199, 0, 0, 0, 0, 254, 255, 0, - 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 649, 508, - 514, 509, 510, 511, 512, 513, 0, 515, 0, 0, - 0, 0, 0, 398, 0, 591, 592, 672, 384, 486, - 603, 335, 349, 352, 341, 361, 0, 362, 337, 338, - 343, 346, 347, 348, 353, 354, 358, 364, 249, 210, - 390, 399, 578, 312, 216, 217, 218, 524, 525, 526, - 527, 619, 620, 624, 205, 462, 463, 464, 465, 292, - 614, 309, 468, 467, 331, 332, 379, 449, 540, 542, - 553, 557, 559, 561, 567, 570, 541, 543, 554, 558, - 560, 562, 568, 571, 530, 532, 534, 536, 549, 548, - 545, 573, 574, 551, 556, 535, 547, 552, 565, 572, - 569, 529, 533, 537, 546, 564, 563, 544, 555, 566, - 550, 538, 531, 539, 0, 196, 221, 368, 0, 454, - 288, 650, 618, 484, 613, 206, 223, 0, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 200, 209, 222, 232, 236, 243, 261, 276, 278, - 285, 298, 310, 318, 319, 322, 328, 380, 386, 387, - 388, 389, 409, 410, 411, 414, 417, 418, 421, 423, - 424, 427, 431, 435, 436, 437, 439, 441, 443, 455, - 460, 474, 475, 476, 477, 478, 481, 482, 488, 489, - 490, 491, 492, 500, 501, 516, 586, 588, 605, 625, - 632, 480, 301, 302, 444, 445, 314, 315, 646, 647, - 300, 600, 633, 597, 645, 627, 438, 378, 0, 0, - 381, 281, 305, 320, 0, 617, 502, 227, 466, 290, - 251, 0, 0, 211, 246, 230, 259, 274, 277, 324, - 391, 400, 429, 434, 296, 271, 244, 459, 241, 485, - 519, 520, 521, 523, 395, 266, 433, 396, 0, 376, - 576, 577, 316, 0, 0, 0, 528, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, - 0, 366, 267, 0, 0, 204, 505, 0, 430, 0, - 203, 0, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 0, 370, 0, 0, - 497, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 248, 325, 202, 413, 498, 286, 0, 0, 0, - 0, 0, 507, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 245, 0, 0, 0, - 351, 360, 359, 339, 340, 342, 344, 350, 357, 363, - 336, 345, 0, 0, 609, 0, 0, 0, 265, 321, - 272, 264, 580, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 402, 257, 0, 453, 0, 0, 0, 629, 0, - 0, 0, 3726, 0, 0, 0, 365, 0, 330, 197, - 225, 0, 0, 412, 461, 473, 0, 0, 0, 253, - 0, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 0, 0, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 589, - 590, 256, 652, 228, 622, 220, 0, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 355, 356, - 280, 307, 447, 375, 448, 306, 308, 404, 403, 405, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 0, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 0, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 0, 0, 425, 472, - 240, 606, 496, 199, 0, 0, 0, 0, 254, 255, - 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 0, - 0, 0, 0, 0, 398, 0, 591, 592, 672, 384, - 486, 603, 335, 349, 352, 341, 361, 0, 362, 337, - 338, 343, 346, 347, 348, 353, 354, 358, 364, 249, - 210, 390, 399, 578, 312, 216, 217, 218, 524, 525, - 526, 527, 619, 620, 624, 205, 462, 463, 464, 465, - 292, 614, 309, 468, 467, 331, 332, 379, 449, 540, - 542, 553, 557, 559, 561, 567, 570, 541, 543, 554, - 558, 560, 562, 568, 571, 530, 532, 534, 536, 549, - 548, 545, 573, 574, 551, 556, 535, 547, 552, 565, - 572, 569, 529, 533, 537, 546, 564, 563, 544, 555, - 566, 550, 538, 531, 539, 0, 196, 221, 368, 0, - 454, 288, 650, 618, 484, 613, 206, 223, 0, 262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 409, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 301, 302, 444, 445, 314, 315, 646, - 647, 300, 600, 633, 597, 645, 627, 438, 378, 0, - 0, 381, 281, 305, 320, 0, 617, 502, 227, 466, - 290, 251, 0, 0, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 396, 0, - 376, 576, 577, 316, 0, 0, 0, 528, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 366, 267, 0, 0, 204, 505, 0, 430, - 0, 203, 0, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 0, 370, 0, - 0, 497, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 323, 248, 325, 202, 413, 498, 286, 0, 95, - 0, 0, 0, 507, 724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, - 0, 351, 360, 359, 339, 340, 342, 344, 350, 357, - 363, 336, 345, 0, 0, 609, 0, 0, 0, 265, - 321, 272, 264, 580, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5677,147 +5642,73 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 0, 402, 257, 0, 453, 0, 0, 0, 629, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 330, - 197, 225, 0, 0, 412, 461, 473, 0, 0, 0, - 253, 0, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 0, 0, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 589, 590, 256, 652, 228, 622, 220, 0, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 355, - 356, 280, 307, 447, 375, 448, 306, 308, 404, 403, - 405, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 0, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 0, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 0, 0, 425, - 472, 240, 606, 496, 199, 0, 0, 0, 0, 254, - 255, 0, 575, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 654, 655, 656, 657, 658, 659, 660, 661, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 3729, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 0, 0, 0, 0, 0, 398, 0, 591, 592, 672, - 384, 486, 603, 335, 349, 352, 341, 361, 0, 362, - 337, 338, 343, 346, 347, 348, 353, 354, 358, 364, - 249, 210, 390, 399, 578, 312, 216, 217, 218, 524, - 525, 526, 527, 619, 620, 624, 205, 462, 463, 464, - 465, 292, 614, 309, 468, 467, 331, 332, 379, 449, - 540, 542, 553, 557, 559, 561, 567, 570, 541, 543, - 554, 558, 560, 562, 568, 571, 530, 532, 534, 536, - 549, 548, 545, 573, 574, 551, 556, 535, 547, 552, - 565, 572, 569, 529, 533, 537, 546, 564, 563, 544, - 555, 566, 550, 538, 531, 539, 0, 196, 221, 368, - 0, 454, 288, 650, 618, 484, 613, 206, 223, 0, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 301, 302, 444, 445, 314, 315, - 646, 647, 300, 600, 633, 597, 645, 627, 438, 378, - 0, 0, 381, 281, 305, 320, 0, 617, 502, 227, - 466, 290, 251, 0, 0, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 396, - 0, 376, 576, 577, 316, 0, 0, 0, 528, 0, - 0, 0, 0, 2427, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 0, 0, 0, 366, 267, 0, 0, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 0, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 0, 0, 0, 0, 507, 194, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, - 0, 0, 351, 360, 359, 339, 340, 342, 344, 350, - 357, 363, 336, 345, 0, 0, 609, 0, 0, 0, - 265, 321, 272, 264, 580, 0, 0, 0, 0, 0, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 0, 0, 0, - 629, 0, 0, 0, 0, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 253, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 589, 590, 256, 652, 228, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 355, 356, 280, 307, 447, 375, 448, 306, 308, 404, - 403, 405, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 199, 0, 0, 0, 0, - 254, 255, 0, 575, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 0, 0, 0, 0, 0, 398, 0, 591, 592, - 672, 384, 486, 603, 335, 349, 352, 341, 361, 0, - 362, 337, 338, 343, 346, 347, 348, 353, 354, 358, - 364, 249, 210, 390, 399, 578, 312, 216, 217, 218, - 524, 525, 526, 527, 619, 620, 624, 205, 462, 463, - 464, 465, 292, 614, 309, 468, 467, 331, 332, 379, - 449, 540, 542, 553, 557, 559, 561, 567, 570, 541, - 543, 554, 558, 560, 562, 568, 571, 530, 532, 534, - 536, 549, 548, 545, 573, 574, 551, 556, 535, 547, - 552, 565, 572, 569, 529, 533, 537, 546, 564, 563, - 544, 555, 566, 550, 538, 531, 539, 0, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 301, 302, 444, 445, 314, - 315, 646, 647, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 0, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 0, 0, 0, 366, 267, 0, 0, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 0, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 0, 0, 0, 1780, 507, 724, 0, 0, 0, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 95, 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, - 0, 0, 0, 351, 360, 359, 339, 340, 342, 344, - 350, 357, 363, 336, 345, 0, 0, 609, 0, 0, - 0, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5825,147 +5716,73 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 0, 0, - 0, 629, 0, 0, 0, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 253, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 589, 590, 256, 652, 228, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 355, 356, 280, 307, 447, 375, 448, 306, 308, - 404, 403, 405, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 199, 0, 0, 0, - 0, 254, 255, 0, 575, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 654, 655, 656, 657, 658, 659, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 0, 0, 0, 0, 0, 398, 0, 591, - 592, 672, 384, 486, 603, 335, 349, 352, 341, 361, - 0, 362, 337, 338, 343, 346, 347, 348, 353, 354, - 358, 364, 249, 210, 390, 399, 578, 312, 216, 217, - 218, 524, 525, 526, 527, 619, 620, 624, 205, 462, - 463, 464, 465, 292, 614, 309, 468, 467, 331, 332, - 379, 449, 540, 542, 553, 557, 559, 561, 567, 570, - 541, 543, 554, 558, 560, 562, 568, 571, 530, 532, - 534, 536, 549, 548, 545, 573, 574, 551, 556, 535, - 547, 552, 565, 572, 569, 529, 533, 537, 546, 564, - 563, 544, 555, 566, 550, 538, 531, 539, 0, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 0, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 301, 302, 444, 445, - 314, 315, 646, 647, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 0, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 396, 0, 376, 576, 577, 316, 0, 0, 0, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 0, 0, 0, 366, 267, 0, 0, 204, - 505, 0, 430, 0, 203, 0, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 0, 370, 0, 0, 497, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 323, 248, 325, 202, 413, 498, - 286, 0, 0, 0, 0, 0, 507, 194, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 245, 0, 0, 0, 351, 360, 359, 339, 340, 342, - 344, 350, 357, 363, 336, 345, 0, 0, 609, 0, - 0, 0, 265, 321, 272, 264, 580, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 0, 402, 257, 0, 453, 0, - 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, - 365, 0, 330, 197, 225, 0, 0, 412, 461, 473, - 0, 0, 0, 253, 0, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 0, 0, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 589, 590, 256, 652, 228, 622, 220, - 0, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 355, 356, 280, 307, 447, 375, 448, 306, - 308, 404, 403, 405, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 0, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 0, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 0, 0, 425, 472, 240, 606, 496, 199, 0, 0, - 0, 0, 254, 255, 0, 575, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 0, 0, 0, 0, 0, 398, 0, - 591, 592, 672, 384, 486, 603, 335, 349, 352, 341, - 361, 0, 362, 337, 338, 343, 346, 347, 348, 353, - 354, 358, 364, 249, 210, 390, 399, 578, 312, 216, - 217, 218, 524, 525, 526, 527, 619, 620, 624, 205, - 462, 463, 464, 465, 292, 614, 309, 468, 467, 331, - 332, 379, 449, 540, 542, 553, 557, 559, 561, 567, - 570, 541, 543, 554, 558, 560, 562, 568, 571, 530, - 532, 534, 536, 549, 548, 545, 573, 574, 551, 556, - 535, 547, 552, 565, 572, 569, 529, 533, 537, 546, - 564, 563, 544, 555, 566, 550, 538, 531, 539, 0, - 196, 221, 368, 2079, 454, 288, 650, 618, 484, 613, - 206, 223, 0, 262, 0, 0, 0, 0, 0, 0, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 301, 302, 444, - 445, 314, 315, 646, 647, 300, 600, 633, 597, 645, - 627, 438, 378, 0, 0, 381, 281, 305, 320, 0, - 617, 502, 227, 466, 290, 251, 0, 0, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 396, 0, 376, 576, 577, 316, 0, 0, - 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, - 0, 270, 0, 0, 0, 0, 366, 267, 0, 0, - 204, 505, 0, 430, 0, 203, 0, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 0, 370, 0, 0, 497, 401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 248, 325, 202, 413, - 498, 286, 0, 0, 0, 0, 2070, 507, 724, 0, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 2428, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, - 0, 245, 0, 0, 0, 351, 360, 359, 339, 340, - 342, 344, 350, 357, 363, 336, 345, 0, 0, 609, - 0, 0, 0, 265, 321, 272, 264, 580, 0, 0, - 0, 0, 0, 0, 596, 0, 0, 229, 0, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -5973,443 +5790,221 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 0, 402, 257, 0, 453, - 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, - 0, 365, 0, 330, 197, 225, 0, 0, 412, 461, - 473, 0, 0, 0, 253, 0, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 0, 0, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 589, 590, 256, 652, 228, 622, - 220, 0, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 355, 356, 280, 307, 447, 375, 448, - 306, 308, 404, 403, 405, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 0, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 0, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 0, 0, 425, 472, 240, 606, 496, 199, 0, - 0, 0, 0, 254, 255, 0, 575, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 654, 655, 656, 657, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 0, 0, 0, 0, 0, 398, - 0, 591, 592, 672, 384, 486, 603, 335, 349, 352, - 341, 361, 0, 362, 337, 338, 343, 346, 347, 348, - 353, 354, 358, 364, 249, 210, 390, 399, 578, 312, - 216, 217, 218, 524, 525, 526, 527, 619, 620, 624, - 205, 462, 463, 464, 465, 292, 614, 309, 468, 467, - 331, 332, 379, 449, 540, 542, 553, 557, 559, 561, - 567, 570, 541, 543, 554, 558, 560, 562, 568, 571, - 530, 532, 534, 536, 549, 548, 545, 573, 574, 551, - 556, 535, 547, 552, 565, 572, 569, 529, 533, 537, - 546, 564, 563, 544, 555, 566, 550, 538, 531, 539, - 0, 196, 221, 368, 0, 454, 288, 650, 618, 484, - 613, 206, 223, 0, 262, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 301, 302, - 444, 445, 314, 315, 646, 647, 300, 600, 633, 597, - 645, 627, 438, 378, 0, 0, 381, 281, 305, 320, - 0, 617, 502, 227, 466, 290, 251, 0, 0, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 396, 0, 376, 576, 577, 316, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 366, 267, 0, - 1928, 204, 505, 0, 430, 0, 203, 0, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 0, 370, 0, 0, 497, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 323, 248, 325, 202, - 413, 498, 286, 0, 0, 0, 0, 0, 507, 724, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, - 0, 0, 245, 0, 0, 0, 351, 360, 359, 339, - 340, 342, 344, 350, 357, 363, 336, 345, 0, 0, - 609, 0, 0, 0, 265, 321, 272, 264, 580, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 402, 257, 0, - 453, 0, 0, 0, 629, 0, 0, 0, 0, 0, - 0, 0, 365, 0, 330, 197, 225, 0, 0, 412, - 461, 473, 0, 0, 0, 253, 0, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 0, 0, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 589, 590, 256, 652, 228, - 622, 220, 0, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 355, 356, 280, 307, 447, 375, - 448, 306, 308, 404, 403, 405, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 0, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 0, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 0, 0, 425, 472, 240, 606, 496, 199, - 0, 0, 0, 0, 254, 255, 0, 575, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 0, 0, 0, 0, 0, - 398, 0, 591, 592, 672, 384, 486, 603, 335, 349, - 352, 341, 361, 0, 362, 337, 338, 343, 346, 347, - 348, 353, 354, 358, 364, 249, 210, 390, 399, 578, - 312, 216, 217, 218, 524, 525, 526, 527, 619, 620, - 624, 205, 462, 463, 464, 465, 292, 614, 309, 468, - 467, 331, 332, 379, 449, 540, 542, 553, 557, 559, - 561, 567, 570, 541, 543, 554, 558, 560, 562, 568, - 571, 530, 532, 534, 536, 549, 548, 545, 573, 574, - 551, 556, 535, 547, 552, 565, 572, 569, 529, 533, - 537, 546, 564, 563, 544, 555, 566, 550, 538, 531, - 539, 0, 196, 221, 368, 0, 454, 288, 650, 618, - 484, 613, 206, 223, 0, 262, 0, 0, 0, 0, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 301, - 302, 444, 445, 314, 315, 646, 647, 300, 600, 633, - 597, 645, 627, 438, 378, 0, 0, 381, 281, 305, - 320, 0, 617, 502, 227, 466, 290, 251, 0, 0, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 396, 0, 376, 576, 577, 316, - 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 0, 0, 0, 366, 267, - 0, 1926, 204, 505, 0, 430, 0, 203, 0, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 0, 370, 0, 0, 497, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 323, 248, 325, - 202, 413, 498, 286, 0, 0, 0, 0, 0, 507, - 724, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 238, 0, 0, 245, 0, 0, 0, 351, 360, 359, - 339, 340, 342, 344, 350, 357, 363, 336, 345, 0, - 0, 609, 0, 0, 0, 265, 321, 272, 264, 580, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 402, 257, - 0, 453, 0, 0, 0, 629, 0, 0, 0, 0, - 0, 0, 0, 365, 0, 330, 197, 225, 0, 0, - 412, 461, 473, 0, 0, 0, 253, 0, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 0, 0, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 589, 590, 256, 652, - 228, 622, 220, 0, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 355, 356, 280, 307, 447, - 375, 448, 306, 308, 404, 403, 405, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 0, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 0, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 0, 0, 425, 472, 240, 606, 496, - 199, 0, 0, 0, 0, 254, 255, 0, 575, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 654, 655, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 1781, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 0, 0, 0, 0, - 0, 398, 0, 591, 592, 672, 384, 486, 603, 335, - 349, 352, 341, 361, 0, 362, 337, 338, 343, 346, - 347, 348, 353, 354, 358, 364, 249, 210, 390, 399, - 578, 312, 216, 217, 218, 524, 525, 526, 527, 619, - 620, 624, 205, 462, 463, 464, 465, 292, 614, 309, - 468, 467, 331, 332, 379, 449, 540, 542, 553, 557, - 559, 561, 567, 570, 541, 543, 554, 558, 560, 562, - 568, 571, 530, 532, 534, 536, 549, 548, 545, 573, - 574, 551, 556, 535, 547, 552, 565, 572, 569, 529, - 533, 537, 546, 564, 563, 544, 555, 566, 550, 538, - 531, 539, 0, 196, 221, 368, 0, 454, 288, 650, - 618, 484, 613, 206, 223, 0, 262, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 301, 302, 444, 445, 314, 315, 646, 647, 300, 600, - 633, 597, 645, 627, 438, 378, 0, 0, 381, 281, - 305, 320, 0, 617, 502, 227, 466, 290, 251, 0, - 0, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 396, 0, 376, 576, 577, - 316, 0, 0, 0, 528, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 0, 0, 0, 366, - 267, 0, 1924, 204, 505, 0, 430, 0, 203, 0, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 0, 370, 0, 0, 497, 401, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 323, 248, - 325, 202, 413, 498, 286, 0, 0, 0, 0, 0, - 507, 724, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 245, 0, 0, 0, 351, 360, - 359, 339, 340, 342, 344, 350, 357, 363, 336, 345, - 0, 0, 609, 0, 0, 0, 265, 321, 272, 264, - 580, 0, 0, 0, 0, 0, 0, 596, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 402, - 257, 0, 453, 0, 0, 0, 629, 0, 0, 0, - 0, 0, 0, 0, 365, 0, 330, 197, 225, 0, - 0, 412, 461, 473, 0, 0, 0, 253, 0, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 0, - 0, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 589, 590, 256, - 652, 228, 622, 220, 0, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 355, 356, 280, 307, - 447, 375, 448, 306, 308, 404, 403, 405, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 0, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 0, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 0, 0, 425, 472, 240, 606, - 496, 199, 0, 0, 0, 0, 254, 255, 0, 575, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 0, 0, 0, - 0, 0, 398, 0, 591, 592, 672, 384, 486, 603, - 335, 349, 352, 341, 361, 0, 362, 337, 338, 343, - 346, 347, 348, 353, 354, 358, 364, 249, 210, 390, - 399, 578, 312, 216, 217, 218, 524, 525, 526, 527, - 619, 620, 624, 205, 462, 463, 464, 465, 292, 614, - 309, 468, 467, 331, 332, 379, 449, 540, 542, 553, - 557, 559, 561, 567, 570, 541, 543, 554, 558, 560, - 562, 568, 571, 530, 532, 534, 536, 549, 548, 545, - 573, 574, 551, 556, 535, 547, 552, 565, 572, 569, - 529, 533, 537, 546, 564, 563, 544, 555, 566, 550, - 538, 531, 539, 0, 196, 221, 368, 0, 454, 288, - 650, 618, 484, 613, 206, 223, 0, 262, 0, 0, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 301, 302, 444, 445, 314, 315, 646, 647, 300, - 600, 633, 597, 645, 627, 438, 378, 0, 0, 381, - 281, 305, 320, 0, 617, 502, 227, 466, 290, 251, - 0, 0, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 396, 0, 376, 576, - 577, 316, 0, 0, 0, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, - 366, 267, 0, 1922, 204, 505, 0, 430, 0, 203, - 0, 487, 252, 377, 374, 583, 282, 273, 269, 250, - 317, 385, 428, 518, 422, 0, 370, 0, 0, 497, - 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 248, 325, 202, 413, 498, 286, 0, 0, 0, 0, - 0, 507, 724, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 245, 0, 0, 0, 351, - 360, 359, 339, 340, 342, 344, 350, 357, 363, 336, - 345, 0, 0, 609, 0, 0, 0, 265, 321, 272, - 264, 580, 0, 0, 0, 0, 0, 0, 596, 0, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 402, 257, 0, 453, 0, 0, 0, 629, 0, 0, - 0, 0, 0, 0, 0, 365, 0, 330, 197, 225, - 0, 0, 412, 461, 473, 0, 0, 0, 253, 0, - 471, 426, 604, 233, 284, 458, 432, 469, 440, 287, - 0, 0, 470, 372, 585, 450, 601, 630, 631, 263, - 406, 615, 522, 623, 648, 226, 260, 420, 506, 607, - 494, 397, 581, 582, 329, 493, 295, 201, 369, 636, - 224, 479, 371, 242, 231, 587, 612, 299, 289, 456, - 643, 213, 517, 598, 239, 483, 0, 0, 651, 247, - 504, 610, 599, 215, 594, 503, 393, 326, 327, 214, - 0, 457, 268, 293, 0, 0, 258, 415, 589, 590, - 256, 652, 228, 622, 220, 0, 621, 408, 584, 595, - 394, 383, 219, 593, 392, 382, 334, 355, 356, 280, - 307, 447, 375, 448, 306, 308, 404, 403, 405, 207, - 608, 626, 0, 208, 0, 499, 611, 653, 452, 212, - 234, 235, 237, 0, 279, 283, 291, 294, 303, 304, - 313, 367, 419, 446, 442, 451, 0, 579, 602, 616, - 628, 634, 635, 637, 638, 639, 640, 641, 644, 642, - 407, 311, 495, 333, 373, 0, 0, 425, 472, 240, - 606, 496, 199, 0, 0, 0, 0, 254, 255, 0, - 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 649, 508, - 514, 509, 510, 511, 512, 513, 0, 515, 0, 0, - 0, 0, 0, 398, 0, 591, 592, 672, 384, 486, - 603, 335, 349, 352, 341, 361, 0, 362, 337, 338, - 343, 346, 347, 348, 353, 354, 358, 364, 249, 210, - 390, 399, 578, 312, 216, 217, 218, 524, 525, 526, - 527, 619, 620, 624, 205, 462, 463, 464, 465, 292, - 614, 309, 468, 467, 331, 332, 379, 449, 540, 542, - 553, 557, 559, 561, 567, 570, 541, 543, 554, 558, - 560, 562, 568, 571, 530, 532, 534, 536, 549, 548, - 545, 573, 574, 551, 556, 535, 547, 552, 565, 572, - 569, 529, 533, 537, 546, 564, 563, 544, 555, 566, - 550, 538, 531, 539, 0, 196, 221, 368, 0, 454, - 288, 650, 618, 484, 613, 206, 223, 0, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 200, 209, 222, 232, 236, 243, 261, 276, 278, - 285, 298, 310, 318, 319, 322, 328, 380, 386, 387, - 388, 389, 409, 410, 411, 414, 417, 418, 421, 423, - 424, 427, 431, 435, 436, 437, 439, 441, 443, 455, - 460, 474, 475, 476, 477, 478, 481, 482, 488, 489, - 490, 491, 492, 500, 501, 516, 586, 588, 605, 625, - 632, 480, 301, 302, 444, 445, 314, 315, 646, 647, - 300, 600, 633, 597, 645, 627, 438, 378, 0, 0, - 381, 281, 305, 320, 0, 617, 502, 227, 466, 290, - 251, 0, 0, 211, 246, 230, 259, 274, 277, 324, - 391, 400, 429, 434, 296, 271, 244, 459, 241, 485, - 519, 520, 521, 523, 395, 266, 433, 396, 0, 376, - 576, 577, 316, 0, 0, 0, 528, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, - 0, 366, 267, 0, 1920, 204, 505, 0, 430, 0, - 203, 0, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 0, 370, 0, 0, - 497, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 248, 325, 202, 413, 498, 286, 0, 0, 0, - 0, 0, 507, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 245, 0, 0, 0, - 351, 360, 359, 339, 340, 342, 344, 350, 357, 363, - 336, 345, 0, 0, 609, 0, 0, 0, 265, 321, - 272, 264, 580, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 402, 257, 0, 453, 0, 0, 0, 629, 0, - 0, 0, 0, 0, 0, 0, 365, 0, 330, 197, - 225, 0, 0, 412, 461, 473, 0, 0, 0, 253, - 0, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 0, 0, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 589, - 590, 256, 652, 228, 622, 220, 0, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 355, 356, - 280, 307, 447, 375, 448, 306, 308, 404, 403, 405, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 0, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 0, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 0, 0, 425, 472, - 240, 606, 496, 199, 0, 0, 0, 0, 254, 255, - 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 0, - 0, 0, 0, 0, 398, 0, 591, 592, 672, 384, - 486, 603, 335, 349, 352, 341, 361, 0, 362, 337, - 338, 343, 346, 347, 348, 353, 354, 358, 364, 249, - 210, 390, 399, 578, 312, 216, 217, 218, 524, 525, - 526, 527, 619, 620, 624, 205, 462, 463, 464, 465, - 292, 614, 309, 468, 467, 331, 332, 379, 449, 540, - 542, 553, 557, 559, 561, 567, 570, 541, 543, 554, - 558, 560, 562, 568, 571, 530, 532, 534, 536, 549, - 548, 545, 573, 574, 551, 556, 535, 547, 552, 565, - 572, 569, 529, 533, 537, 546, 564, 563, 544, 555, - 566, 550, 538, 531, 539, 0, 196, 221, 368, 0, - 454, 288, 650, 618, 484, 613, 206, 223, 0, 262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 409, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 301, 302, 444, 445, 314, 315, 646, - 647, 300, 600, 633, 597, 645, 627, 438, 378, 0, - 0, 381, 281, 305, 320, 0, 617, 502, 227, 466, - 290, 251, 0, 0, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 396, 0, - 376, 576, 577, 316, 0, 0, 0, 528, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 366, 267, 0, 1916, 204, 505, 0, 430, - 0, 203, 0, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 0, 370, 0, - 0, 497, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 323, 248, 325, 202, 413, 498, 286, 0, 0, - 0, 0, 0, 507, 724, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 2080, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 2071, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, - 0, 351, 360, 359, 339, 340, 342, 344, 350, 357, - 363, 336, 345, 0, 0, 609, 0, 0, 0, 265, - 321, 272, 264, 580, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6418,147 +6013,73 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 0, 402, 257, 0, 453, 0, 0, 0, 629, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 330, - 197, 225, 0, 0, 412, 461, 473, 0, 0, 0, - 253, 0, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 0, 0, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 589, 590, 256, 652, 228, 622, 220, 0, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 355, - 356, 280, 307, 447, 375, 448, 306, 308, 404, 403, - 405, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 0, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 0, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 0, 0, 425, - 472, 240, 606, 496, 199, 0, 0, 0, 0, 254, - 255, 0, 575, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 654, 655, 656, 657, 658, 659, 660, 661, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 0, 0, 0, 0, 0, 398, 0, 591, 592, 672, - 384, 486, 603, 335, 349, 352, 341, 361, 0, 362, - 337, 338, 343, 346, 347, 348, 353, 354, 358, 364, - 249, 210, 390, 399, 578, 312, 216, 217, 218, 524, - 525, 526, 527, 619, 620, 624, 205, 462, 463, 464, - 465, 292, 614, 309, 468, 467, 331, 332, 379, 449, - 540, 542, 553, 557, 559, 561, 567, 570, 541, 543, - 554, 558, 560, 562, 568, 571, 530, 532, 534, 536, - 549, 548, 545, 573, 574, 551, 556, 535, 547, 552, - 565, 572, 569, 529, 533, 537, 546, 564, 563, 544, - 555, 566, 550, 538, 531, 539, 0, 196, 221, 368, - 0, 454, 288, 650, 618, 484, 613, 206, 223, 0, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 301, 302, 444, 445, 314, 315, - 646, 647, 300, 600, 633, 597, 645, 627, 438, 378, - 0, 0, 381, 281, 305, 320, 0, 617, 502, 227, - 466, 290, 251, 0, 0, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 396, - 0, 376, 576, 577, 316, 0, 0, 0, 528, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 0, 0, 0, 366, 267, 0, 1914, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 0, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 0, 0, 0, 0, 507, 724, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, - 0, 0, 351, 360, 359, 339, 340, 342, 344, 350, - 357, 363, 336, 345, 0, 0, 609, 0, 0, 0, - 265, 321, 272, 264, 580, 0, 0, 0, 0, 0, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 0, 0, 0, - 629, 0, 0, 0, 0, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 253, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 589, 590, 256, 652, 228, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 355, 356, 280, 307, 447, 375, 448, 306, 308, 404, - 403, 405, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 199, 0, 0, 0, 0, - 254, 255, 0, 575, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 0, 0, 0, 0, 0, 398, 0, 591, 592, - 672, 384, 486, 603, 335, 349, 352, 341, 361, 0, - 362, 337, 338, 343, 346, 347, 348, 353, 354, 358, - 364, 249, 210, 390, 399, 578, 312, 216, 217, 218, - 524, 525, 526, 527, 619, 620, 624, 205, 462, 463, - 464, 465, 292, 614, 309, 468, 467, 331, 332, 379, - 449, 540, 542, 553, 557, 559, 561, 567, 570, 541, - 543, 554, 558, 560, 562, 568, 571, 530, 532, 534, - 536, 549, 548, 545, 573, 574, 551, 556, 535, 547, - 552, 565, 572, 569, 529, 533, 537, 546, 564, 563, - 544, 555, 566, 550, 538, 531, 539, 0, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 301, 302, 444, 445, 314, - 315, 646, 647, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 0, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 0, 0, 0, 366, 267, 0, 1912, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 0, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 0, 0, 0, 0, 507, 724, 0, 0, 0, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 1929, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, - 0, 0, 0, 351, 360, 359, 339, 340, 342, 344, - 350, 357, 363, 336, 345, 0, 0, 609, 0, 0, - 0, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6566,147 +6087,73 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 0, 0, - 0, 629, 0, 0, 0, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 253, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 589, 590, 256, 652, 228, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 355, 356, 280, 307, 447, 375, 448, 306, 308, - 404, 403, 405, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 199, 0, 0, 0, - 0, 254, 255, 0, 575, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 654, 655, 656, 657, 658, 659, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 0, 0, 0, 0, 0, 398, 0, 591, - 592, 672, 384, 486, 603, 335, 349, 352, 341, 361, - 0, 362, 337, 338, 343, 346, 347, 348, 353, 354, - 358, 364, 249, 210, 390, 399, 578, 312, 216, 217, - 218, 524, 525, 526, 527, 619, 620, 624, 205, 462, - 463, 464, 465, 292, 614, 309, 468, 467, 331, 332, - 379, 449, 540, 542, 553, 557, 559, 561, 567, 570, - 541, 543, 554, 558, 560, 562, 568, 571, 530, 532, - 534, 536, 549, 548, 545, 573, 574, 551, 556, 535, - 547, 552, 565, 572, 569, 529, 533, 537, 546, 564, - 563, 544, 555, 566, 550, 538, 531, 539, 0, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 0, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 301, 302, 444, 445, - 314, 315, 646, 647, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 0, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 396, 0, 376, 576, 577, 316, 0, 0, 0, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 416, 0, 0, 0, 0, 0, 0, 0, - 270, 0, 0, 0, 0, 366, 267, 0, 0, 204, - 505, 0, 430, 0, 203, 0, 487, 252, 377, 374, - 583, 282, 273, 269, 250, 317, 385, 428, 518, 422, - 0, 370, 0, 0, 497, 401, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 323, 248, 325, 202, 413, 498, - 286, 0, 1887, 0, 0, 0, 507, 724, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, - 245, 0, 0, 0, 351, 360, 359, 339, 340, 342, - 344, 350, 357, 363, 336, 345, 0, 0, 609, 0, - 0, 0, 265, 321, 272, 264, 580, 0, 0, 0, - 0, 0, 0, 596, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 297, 0, 402, 257, 0, 453, 0, - 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, - 365, 0, 330, 197, 225, 0, 0, 412, 461, 473, - 0, 0, 0, 253, 0, 471, 426, 604, 233, 284, - 458, 432, 469, 440, 287, 0, 0, 470, 372, 585, - 450, 601, 630, 631, 263, 406, 615, 522, 623, 648, - 226, 260, 420, 506, 607, 494, 397, 581, 582, 329, - 493, 295, 201, 369, 636, 224, 479, 371, 242, 231, - 587, 612, 299, 289, 456, 643, 213, 517, 598, 239, - 483, 0, 0, 651, 247, 504, 610, 599, 215, 594, - 503, 393, 326, 327, 214, 0, 457, 268, 293, 0, - 0, 258, 415, 589, 590, 256, 652, 228, 622, 220, - 0, 621, 408, 584, 595, 394, 383, 219, 593, 392, - 382, 334, 355, 356, 280, 307, 447, 375, 448, 306, - 308, 404, 403, 405, 207, 608, 626, 0, 208, 0, - 499, 611, 653, 452, 212, 234, 235, 237, 0, 279, - 283, 291, 294, 303, 304, 313, 367, 419, 446, 442, - 451, 0, 579, 602, 616, 628, 634, 635, 637, 638, - 639, 640, 641, 644, 642, 407, 311, 495, 333, 373, - 0, 0, 425, 472, 240, 606, 496, 199, 0, 0, - 0, 0, 254, 255, 0, 575, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 654, 655, 656, 657, 658, - 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, - 669, 670, 671, 649, 508, 514, 509, 510, 511, 512, - 513, 0, 515, 0, 0, 0, 0, 0, 398, 0, - 591, 592, 672, 384, 486, 603, 335, 349, 352, 341, - 361, 0, 362, 337, 338, 343, 346, 347, 348, 353, - 354, 358, 364, 249, 210, 390, 399, 578, 312, 216, - 217, 218, 524, 525, 526, 527, 619, 620, 624, 205, - 462, 463, 464, 465, 292, 614, 309, 468, 467, 331, - 332, 379, 449, 540, 542, 553, 557, 559, 561, 567, - 570, 541, 543, 554, 558, 560, 562, 568, 571, 530, - 532, 534, 536, 549, 548, 545, 573, 574, 551, 556, - 535, 547, 552, 565, 572, 569, 529, 533, 537, 546, - 564, 563, 544, 555, 566, 550, 538, 531, 539, 0, - 196, 221, 368, 0, 454, 288, 650, 618, 484, 613, - 206, 223, 0, 262, 0, 0, 0, 0, 0, 0, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, - 236, 243, 261, 276, 278, 285, 298, 310, 318, 319, - 322, 328, 380, 386, 387, 388, 389, 409, 410, 411, - 414, 417, 418, 421, 423, 424, 427, 431, 435, 436, - 437, 439, 441, 443, 455, 460, 474, 475, 476, 477, - 478, 481, 482, 488, 489, 490, 491, 492, 500, 501, - 516, 586, 588, 605, 625, 632, 480, 301, 302, 444, - 445, 314, 315, 646, 647, 300, 600, 633, 597, 645, - 627, 438, 378, 0, 0, 381, 281, 305, 320, 0, - 617, 502, 227, 466, 290, 251, 0, 0, 211, 246, - 230, 259, 274, 277, 324, 391, 400, 429, 434, 296, - 271, 244, 459, 241, 485, 519, 520, 521, 523, 395, - 266, 433, 396, 0, 376, 576, 577, 316, 0, 0, - 0, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 416, 0, 0, 0, 0, 0, 0, - 1784, 270, 0, 0, 0, 0, 366, 267, 0, 0, - 204, 505, 0, 430, 0, 203, 0, 487, 252, 377, - 374, 583, 282, 273, 269, 250, 317, 385, 428, 518, - 422, 0, 370, 0, 0, 497, 401, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 323, 248, 325, 202, 413, - 498, 286, 0, 0, 0, 0, 0, 507, 194, 0, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 1927, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, - 0, 245, 0, 0, 0, 351, 360, 359, 339, 340, - 342, 344, 350, 357, 363, 336, 345, 0, 0, 609, - 0, 0, 0, 265, 321, 272, 264, 580, 0, 0, - 0, 0, 0, 0, 596, 0, 0, 229, 0, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6714,147 +6161,221 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 297, 0, 402, 257, 0, 453, - 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, - 0, 365, 0, 330, 197, 225, 0, 0, 412, 461, - 473, 0, 0, 0, 253, 0, 471, 426, 604, 233, - 284, 458, 432, 469, 440, 287, 0, 0, 470, 372, - 585, 450, 601, 630, 631, 263, 406, 615, 522, 623, - 648, 226, 260, 420, 506, 607, 494, 397, 581, 582, - 329, 493, 295, 201, 369, 636, 224, 479, 371, 242, - 231, 587, 612, 299, 289, 456, 643, 213, 517, 598, - 239, 483, 0, 0, 651, 247, 504, 610, 599, 215, - 594, 503, 393, 326, 327, 214, 0, 457, 268, 293, - 0, 0, 258, 415, 589, 590, 256, 652, 228, 622, - 220, 0, 621, 408, 584, 595, 394, 383, 219, 593, - 392, 382, 334, 355, 356, 280, 307, 447, 375, 448, - 306, 308, 404, 403, 405, 207, 608, 626, 0, 208, - 0, 499, 611, 653, 452, 212, 234, 235, 237, 0, - 279, 283, 291, 294, 303, 304, 313, 367, 419, 446, - 442, 451, 0, 579, 602, 616, 628, 634, 635, 637, - 638, 639, 640, 641, 644, 642, 407, 311, 495, 333, - 373, 0, 0, 425, 472, 240, 606, 496, 199, 0, - 0, 0, 0, 254, 255, 0, 575, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 654, 655, 656, 657, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, - 668, 669, 670, 671, 649, 508, 514, 509, 510, 511, - 512, 513, 0, 515, 0, 0, 0, 0, 0, 398, - 0, 591, 592, 672, 384, 486, 603, 335, 349, 352, - 341, 361, 0, 362, 337, 338, 343, 346, 347, 348, - 353, 354, 358, 364, 249, 210, 390, 399, 578, 312, - 216, 217, 218, 524, 525, 526, 527, 619, 620, 624, - 205, 462, 463, 464, 465, 292, 614, 309, 468, 467, - 331, 332, 379, 449, 540, 542, 553, 557, 559, 561, - 567, 570, 541, 543, 554, 558, 560, 562, 568, 571, - 530, 532, 534, 536, 549, 548, 545, 573, 574, 551, - 556, 535, 547, 552, 565, 572, 569, 529, 533, 537, - 546, 564, 563, 544, 555, 566, 550, 538, 531, 539, - 0, 196, 221, 368, 0, 454, 288, 650, 618, 484, - 613, 206, 223, 0, 262, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 200, 209, 222, - 232, 236, 243, 261, 276, 278, 285, 298, 310, 318, - 319, 322, 328, 380, 386, 387, 388, 389, 409, 410, - 411, 414, 417, 418, 421, 423, 424, 427, 431, 435, - 436, 437, 439, 441, 443, 455, 460, 474, 475, 476, - 477, 478, 481, 482, 488, 489, 490, 491, 492, 500, - 501, 516, 586, 588, 605, 625, 632, 480, 301, 302, - 444, 445, 314, 315, 646, 647, 300, 600, 633, 597, - 645, 627, 438, 378, 0, 0, 381, 281, 305, 320, - 0, 617, 502, 227, 466, 290, 251, 0, 0, 211, - 246, 230, 259, 274, 277, 324, 391, 400, 429, 434, - 296, 271, 244, 459, 241, 485, 519, 520, 521, 523, - 395, 266, 433, 396, 0, 376, 576, 577, 316, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 366, 267, 0, - 0, 204, 505, 0, 430, 0, 203, 0, 487, 252, - 377, 374, 583, 282, 273, 269, 250, 317, 385, 428, - 518, 422, 0, 370, 0, 0, 497, 401, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 323, 248, 325, 202, - 413, 498, 286, 0, 95, 0, 0, 0, 507, 959, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, - 0, 0, 245, 0, 0, 0, 351, 360, 359, 339, - 340, 342, 344, 350, 357, 363, 336, 345, 0, 0, - 609, 0, 0, 0, 265, 321, 272, 264, 580, 0, - 0, 0, 0, 0, 0, 596, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 297, 0, 402, 257, 0, - 453, 0, 0, 0, 629, 0, 0, 0, 0, 0, - 0, 0, 365, 0, 330, 197, 225, 0, 0, 412, - 461, 473, 0, 0, 0, 253, 0, 471, 426, 604, - 233, 284, 458, 432, 469, 440, 287, 0, 0, 470, - 372, 585, 450, 601, 630, 631, 263, 406, 615, 522, - 623, 648, 226, 260, 420, 506, 607, 494, 397, 581, - 582, 329, 493, 295, 201, 369, 636, 224, 479, 371, - 242, 231, 587, 612, 299, 289, 456, 643, 213, 517, - 598, 239, 483, 0, 0, 651, 247, 504, 610, 599, - 215, 594, 503, 393, 326, 327, 214, 0, 457, 268, - 293, 0, 0, 258, 415, 589, 590, 256, 652, 228, - 622, 220, 0, 621, 408, 584, 595, 394, 383, 219, - 593, 392, 382, 334, 355, 356, 280, 307, 447, 375, - 448, 306, 308, 404, 403, 405, 207, 608, 626, 0, - 208, 0, 499, 611, 653, 452, 212, 234, 235, 237, - 0, 279, 283, 291, 294, 303, 304, 313, 367, 419, - 446, 442, 451, 0, 579, 602, 616, 628, 634, 635, - 637, 638, 639, 640, 641, 644, 642, 407, 311, 495, - 333, 373, 0, 0, 425, 472, 240, 606, 496, 199, - 0, 0, 0, 0, 254, 255, 0, 575, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 654, 655, 656, - 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 649, 508, 514, 509, 510, - 511, 512, 513, 0, 515, 0, 0, 0, 0, 0, - 398, 0, 591, 592, 672, 384, 486, 603, 335, 349, - 352, 341, 361, 0, 362, 337, 338, 343, 346, 347, - 348, 353, 354, 358, 364, 249, 210, 390, 399, 578, - 312, 216, 217, 218, 524, 525, 526, 527, 619, 620, - 624, 205, 462, 463, 464, 465, 292, 614, 309, 468, - 467, 331, 332, 379, 449, 540, 542, 553, 557, 559, - 561, 567, 570, 541, 543, 554, 558, 560, 562, 568, - 571, 530, 532, 534, 536, 549, 548, 545, 573, 574, - 551, 556, 535, 547, 552, 565, 572, 569, 529, 533, - 537, 546, 564, 563, 544, 555, 566, 550, 538, 531, - 539, 0, 196, 221, 368, 0, 454, 288, 650, 618, - 484, 613, 206, 223, 0, 262, 0, 0, 0, 0, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, - 222, 232, 236, 243, 261, 276, 278, 285, 298, 310, - 318, 319, 322, 328, 380, 386, 387, 388, 389, 409, - 410, 411, 414, 417, 418, 421, 423, 424, 427, 431, - 435, 436, 437, 439, 441, 443, 455, 460, 474, 475, - 476, 477, 478, 481, 482, 488, 489, 490, 491, 492, - 500, 501, 516, 586, 588, 605, 625, 632, 480, 301, - 302, 444, 445, 314, 315, 646, 647, 300, 600, 633, - 597, 645, 627, 438, 378, 0, 0, 381, 281, 305, - 320, 0, 617, 502, 227, 466, 290, 251, 0, 0, - 211, 246, 230, 259, 274, 277, 324, 391, 400, 429, - 434, 296, 271, 244, 459, 241, 485, 519, 520, 521, - 523, 395, 266, 433, 396, 0, 376, 576, 577, 316, - 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 416, 0, 0, 0, 0, - 0, 0, 0, 270, 0, 0, 0, 0, 366, 267, - 0, 0, 204, 505, 0, 430, 0, 203, 0, 487, - 252, 377, 374, 583, 282, 273, 269, 250, 317, 385, - 428, 518, 422, 0, 370, 0, 0, 497, 401, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 323, 248, 325, - 202, 413, 498, 286, 0, 0, 0, 0, 0, 507, - 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 238, 0, 0, 245, 0, 0, 0, 351, 360, 359, - 339, 340, 342, 344, 350, 357, 363, 336, 345, 0, - 0, 609, 0, 0, 0, 265, 321, 272, 264, 580, - 0, 0, 0, 0, 0, 0, 596, 0, 0, 229, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 1925, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 1923, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 1921, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -6862,525 +6383,1049 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1456, 0, 297, 0, 402, 257, - 0, 453, 0, 0, 0, 629, 0, 0, 0, 0, - 0, 0, 0, 365, 0, 330, 197, 225, 0, 0, - 412, 461, 473, 0, 0, 0, 253, 0, 471, 426, - 604, 233, 284, 458, 432, 469, 440, 287, 0, 0, - 470, 372, 585, 450, 601, 630, 631, 263, 406, 615, - 522, 623, 648, 226, 260, 420, 506, 607, 494, 397, - 581, 582, 329, 493, 295, 201, 369, 636, 224, 479, - 371, 242, 231, 587, 612, 299, 289, 456, 643, 213, - 517, 598, 239, 483, 0, 0, 651, 247, 504, 610, - 599, 215, 594, 503, 393, 326, 327, 214, 0, 457, - 268, 293, 0, 0, 258, 415, 589, 590, 256, 652, - 228, 622, 220, 0, 621, 408, 584, 595, 394, 383, - 219, 593, 392, 382, 334, 355, 356, 280, 307, 447, - 375, 448, 306, 308, 404, 403, 405, 207, 608, 626, - 0, 208, 0, 499, 611, 653, 452, 212, 234, 235, - 237, 0, 279, 283, 291, 294, 303, 304, 313, 367, - 419, 446, 442, 451, 0, 579, 602, 616, 628, 634, - 635, 637, 638, 639, 640, 641, 644, 642, 407, 311, - 495, 333, 373, 0, 0, 425, 472, 240, 606, 496, - 199, 0, 0, 0, 0, 254, 255, 0, 575, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 654, 655, - 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 666, 667, 668, 669, 670, 671, 649, 508, 514, 509, - 510, 511, 512, 513, 0, 515, 0, 0, 0, 0, - 0, 398, 0, 591, 592, 672, 384, 486, 603, 335, - 349, 352, 341, 361, 0, 362, 337, 338, 343, 346, - 347, 348, 353, 354, 358, 364, 249, 210, 390, 399, - 578, 312, 216, 217, 218, 524, 525, 526, 527, 619, - 620, 624, 205, 462, 463, 464, 465, 292, 614, 309, - 468, 467, 331, 332, 379, 449, 540, 542, 553, 557, - 559, 561, 567, 570, 541, 543, 554, 558, 560, 562, - 568, 571, 530, 532, 534, 536, 549, 548, 545, 573, - 574, 551, 556, 535, 547, 552, 565, 572, 569, 529, - 533, 537, 546, 564, 563, 544, 555, 566, 550, 538, - 531, 539, 0, 196, 221, 368, 0, 454, 288, 650, - 618, 484, 613, 206, 223, 0, 262, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 200, - 209, 222, 232, 236, 243, 261, 276, 278, 285, 298, - 310, 318, 319, 322, 328, 380, 386, 387, 388, 389, - 409, 410, 411, 414, 417, 418, 421, 423, 424, 427, - 431, 435, 436, 437, 439, 441, 443, 455, 460, 474, - 475, 476, 477, 478, 481, 482, 488, 489, 490, 491, - 492, 500, 501, 516, 586, 588, 605, 625, 632, 480, - 301, 302, 444, 445, 314, 315, 646, 647, 1455, 600, - 633, 597, 645, 627, 438, 378, 0, 0, 381, 281, - 305, 320, 0, 617, 502, 227, 466, 290, 251, 0, - 0, 211, 246, 230, 259, 274, 277, 324, 391, 400, - 429, 434, 296, 271, 244, 459, 241, 485, 519, 520, - 521, 523, 395, 266, 433, 396, 0, 376, 576, 577, - 316, 0, 0, 0, 528, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 416, 0, 0, 0, - 0, 0, 0, 0, 270, 0, 0, 0, 0, 366, - 267, 0, 0, 204, 505, 0, 430, 0, 203, 0, - 487, 252, 377, 374, 583, 282, 273, 269, 250, 317, - 385, 428, 518, 422, 0, 370, 0, 0, 497, 401, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 323, 248, - 325, 202, 413, 498, 286, 0, 0, 0, 0, 0, - 507, 194, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 238, 0, 0, 245, 0, 0, 0, 351, 360, - 359, 339, 340, 342, 344, 350, 357, 363, 336, 345, - 0, 0, 609, 0, 0, 0, 265, 321, 272, 264, - 580, 0, 0, 0, 0, 0, 0, 596, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 297, 0, 402, - 257, 0, 453, 0, 0, 0, 629, 0, 0, 0, - 0, 0, 0, 0, 365, 0, 330, 197, 225, 0, - 0, 412, 461, 473, 0, 0, 0, 253, 0, 471, - 426, 604, 233, 284, 458, 432, 469, 440, 287, 0, - 0, 470, 372, 585, 450, 601, 630, 631, 263, 406, - 615, 522, 623, 648, 226, 260, 420, 506, 607, 494, - 397, 581, 582, 329, 493, 295, 201, 369, 636, 224, - 479, 371, 242, 231, 587, 612, 299, 289, 456, 643, - 213, 517, 598, 239, 483, 0, 0, 651, 247, 504, - 610, 599, 215, 594, 503, 393, 326, 327, 214, 0, - 457, 268, 293, 0, 0, 258, 415, 589, 590, 256, - 652, 228, 622, 220, 0, 621, 408, 584, 595, 394, - 383, 219, 593, 392, 382, 334, 355, 356, 280, 307, - 447, 375, 448, 306, 308, 404, 403, 405, 207, 608, - 626, 0, 208, 0, 499, 611, 653, 452, 212, 234, - 235, 237, 0, 279, 283, 291, 294, 303, 304, 313, - 367, 419, 446, 442, 451, 0, 579, 602, 616, 628, - 634, 635, 637, 638, 639, 640, 641, 644, 642, 407, - 311, 495, 333, 373, 0, 0, 425, 472, 240, 606, - 496, 199, 0, 0, 0, 0, 254, 255, 0, 575, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, - 665, 666, 667, 668, 669, 670, 671, 649, 508, 514, - 509, 510, 511, 512, 513, 0, 515, 0, 0, 0, - 0, 0, 398, 0, 591, 592, 672, 384, 486, 603, - 335, 349, 352, 341, 361, 0, 362, 337, 338, 343, - 346, 347, 348, 353, 354, 358, 364, 249, 210, 390, - 399, 578, 312, 216, 217, 218, 524, 525, 526, 527, - 619, 620, 624, 205, 462, 463, 464, 465, 292, 614, - 309, 468, 467, 331, 332, 379, 449, 540, 542, 553, - 557, 559, 561, 567, 570, 541, 543, 554, 558, 560, - 562, 568, 571, 530, 532, 534, 536, 549, 548, 545, - 573, 574, 551, 556, 535, 547, 552, 565, 572, 569, - 529, 533, 537, 546, 564, 563, 544, 555, 566, 550, - 538, 531, 539, 0, 196, 221, 368, 0, 454, 288, - 650, 618, 484, 613, 206, 223, 0, 262, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1049, 0, 0, 0, 198, - 200, 209, 222, 232, 236, 243, 261, 276, 278, 285, - 298, 310, 318, 319, 322, 328, 380, 386, 387, 388, - 389, 409, 410, 411, 414, 417, 418, 421, 423, 424, - 427, 431, 435, 436, 437, 439, 441, 443, 455, 460, - 474, 475, 476, 477, 478, 481, 482, 488, 489, 490, - 491, 492, 500, 501, 516, 586, 588, 605, 625, 632, - 480, 301, 302, 444, 445, 314, 315, 646, 647, 300, - 600, 633, 597, 645, 627, 438, 378, 0, 0, 381, - 281, 305, 320, 0, 617, 502, 227, 466, 290, 251, - 0, 0, 211, 246, 230, 259, 274, 277, 324, 391, - 400, 429, 434, 296, 271, 244, 459, 241, 485, 519, - 520, 521, 523, 395, 266, 433, 396, 0, 376, 576, - 577, 316, 0, 0, 0, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 416, 0, 0, - 0, 0, 0, 0, 0, 270, 0, 0, 0, 0, - 366, 267, 0, 0, 204, 505, 0, 430, 0, 203, - 0, 487, 252, 377, 374, 583, 282, 273, 269, 250, - 317, 385, 428, 518, 422, 0, 370, 0, 0, 497, - 401, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, - 248, 325, 202, 413, 498, 286, 0, 0, 0, 0, - 0, 507, 194, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 245, 0, 0, 0, 351, - 360, 359, 339, 340, 342, 344, 350, 357, 363, 336, - 345, 0, 0, 609, 0, 0, 0, 265, 321, 272, - 264, 580, 0, 0, 0, 0, 0, 0, 596, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 297, 0, - 402, 257, 0, 453, 0, 675, 0, 629, 0, 0, - 0, 0, 0, 0, 0, 365, 0, 330, 197, 225, - 0, 0, 412, 461, 473, 0, 0, 0, 253, 0, - 471, 426, 604, 233, 284, 458, 432, 469, 440, 287, - 0, 0, 470, 372, 585, 450, 601, 630, 631, 263, - 406, 615, 522, 623, 648, 226, 260, 420, 506, 607, - 494, 397, 581, 582, 329, 493, 295, 201, 369, 636, - 224, 479, 371, 242, 231, 587, 612, 299, 289, 456, - 643, 213, 517, 598, 239, 483, 0, 0, 651, 247, - 504, 610, 599, 215, 594, 503, 393, 326, 327, 214, - 0, 457, 268, 293, 0, 0, 258, 415, 589, 590, - 256, 652, 228, 622, 220, 0, 621, 408, 584, 595, - 394, 383, 219, 593, 392, 382, 334, 355, 356, 280, - 307, 447, 375, 448, 306, 308, 404, 403, 405, 207, - 608, 626, 0, 208, 0, 499, 611, 653, 452, 212, - 234, 235, 237, 0, 279, 283, 291, 294, 303, 304, - 313, 367, 419, 446, 442, 451, 0, 579, 602, 616, - 628, 634, 635, 637, 638, 639, 640, 641, 644, 642, - 407, 311, 495, 333, 373, 0, 0, 425, 472, 240, - 606, 496, 199, 0, 0, 0, 0, 254, 255, 0, - 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, - 664, 665, 666, 667, 668, 669, 670, 671, 649, 508, - 514, 509, 510, 511, 512, 513, 0, 515, 0, 0, - 0, 0, 0, 398, 0, 591, 592, 672, 384, 486, - 603, 335, 349, 352, 341, 361, 0, 362, 337, 338, - 343, 346, 347, 348, 353, 354, 358, 364, 249, 210, - 390, 399, 578, 312, 216, 217, 218, 524, 525, 526, - 527, 619, 620, 624, 205, 462, 463, 464, 465, 292, - 614, 309, 468, 467, 331, 332, 379, 449, 540, 542, - 553, 557, 559, 561, 567, 570, 541, 543, 554, 558, - 560, 562, 568, 571, 530, 532, 534, 536, 549, 548, - 545, 573, 574, 551, 556, 535, 547, 552, 565, 572, - 569, 529, 533, 537, 546, 564, 563, 544, 555, 566, - 550, 538, 531, 539, 0, 196, 221, 368, 0, 454, - 288, 650, 618, 484, 613, 206, 223, 0, 262, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 200, 209, 222, 232, 236, 243, 261, 276, 278, - 285, 298, 310, 318, 319, 322, 328, 380, 386, 387, - 388, 389, 409, 410, 411, 414, 417, 418, 421, 423, - 424, 427, 431, 435, 436, 437, 439, 441, 443, 455, - 460, 474, 475, 476, 477, 478, 481, 482, 488, 489, - 490, 491, 492, 500, 501, 516, 586, 588, 605, 625, - 632, 480, 301, 302, 444, 445, 314, 315, 646, 647, - 300, 600, 633, 597, 645, 627, 438, 378, 0, 0, - 381, 281, 305, 320, 0, 617, 502, 227, 466, 290, - 251, 0, 0, 211, 246, 230, 259, 274, 277, 324, - 391, 400, 429, 434, 296, 271, 244, 459, 241, 485, - 519, 520, 521, 523, 395, 266, 433, 396, 0, 376, - 576, 577, 316, 0, 0, 0, 528, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, - 0, 0, 0, 0, 0, 0, 270, 0, 0, 0, - 0, 366, 267, 0, 0, 204, 505, 0, 430, 0, - 203, 0, 487, 252, 377, 374, 583, 282, 273, 269, - 250, 317, 385, 428, 518, 422, 0, 370, 0, 0, - 497, 401, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 248, 325, 202, 413, 498, 286, 0, 0, 0, - 0, 0, 507, 724, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 238, 0, 0, 245, 0, 0, 0, - 351, 360, 359, 339, 340, 342, 344, 350, 357, 363, - 336, 345, 0, 0, 609, 0, 0, 0, 265, 321, - 272, 264, 580, 0, 0, 0, 0, 0, 0, 596, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, - 0, 402, 257, 0, 453, 0, 0, 0, 629, 0, - 0, 0, 0, 0, 0, 0, 365, 0, 330, 197, - 225, 0, 0, 412, 461, 473, 0, 0, 0, 253, - 0, 471, 426, 604, 233, 284, 458, 432, 469, 440, - 287, 0, 0, 470, 372, 585, 450, 601, 630, 631, - 263, 406, 615, 522, 623, 648, 226, 260, 420, 506, - 607, 494, 397, 581, 582, 329, 493, 295, 201, 369, - 636, 224, 479, 371, 242, 231, 587, 612, 299, 289, - 456, 643, 213, 517, 598, 239, 483, 0, 0, 651, - 247, 504, 610, 599, 215, 594, 503, 393, 326, 327, - 214, 0, 457, 268, 293, 0, 0, 258, 415, 589, - 590, 256, 652, 228, 622, 220, 0, 621, 408, 584, - 595, 394, 383, 219, 593, 392, 382, 334, 355, 356, - 280, 307, 447, 375, 448, 306, 308, 404, 403, 405, - 207, 608, 626, 0, 208, 0, 499, 611, 653, 452, - 212, 234, 235, 237, 0, 279, 283, 291, 294, 303, - 304, 313, 367, 419, 446, 442, 451, 0, 579, 602, - 616, 628, 634, 635, 637, 638, 639, 640, 641, 644, - 642, 407, 311, 495, 333, 373, 0, 0, 425, 472, - 240, 606, 496, 199, 0, 0, 0, 0, 254, 255, - 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 654, 655, 656, 657, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 671, 649, - 508, 514, 509, 510, 511, 512, 513, 0, 515, 0, - 0, 0, 0, 0, 398, 0, 591, 592, 672, 384, - 486, 603, 335, 349, 352, 341, 361, 0, 362, 337, - 338, 343, 346, 347, 348, 353, 354, 358, 364, 249, - 210, 390, 399, 578, 312, 216, 217, 218, 524, 525, - 526, 527, 619, 620, 624, 205, 462, 463, 464, 465, - 292, 614, 309, 468, 467, 331, 332, 379, 449, 540, - 542, 553, 557, 559, 561, 567, 570, 541, 543, 554, - 558, 560, 562, 568, 571, 530, 532, 534, 536, 549, - 548, 545, 573, 574, 551, 556, 535, 547, 552, 565, - 572, 569, 529, 533, 537, 546, 564, 563, 544, 555, - 566, 550, 538, 531, 539, 0, 196, 221, 368, 0, - 454, 288, 650, 618, 484, 613, 206, 223, 0, 262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 200, 209, 222, 232, 236, 243, 261, 276, - 278, 285, 298, 310, 318, 319, 322, 328, 380, 386, - 387, 388, 389, 4136, 410, 411, 414, 417, 418, 421, - 423, 424, 427, 431, 435, 436, 437, 439, 441, 443, - 455, 460, 474, 475, 476, 477, 478, 481, 482, 488, - 489, 490, 491, 492, 500, 501, 516, 586, 588, 605, - 625, 632, 480, 301, 302, 444, 445, 314, 315, 646, - 647, 300, 600, 633, 597, 645, 627, 438, 378, 0, - 0, 381, 281, 305, 320, 0, 617, 502, 227, 466, - 290, 251, 0, 0, 211, 246, 230, 259, 274, 277, - 324, 391, 400, 429, 434, 296, 271, 244, 459, 241, - 485, 519, 520, 521, 523, 395, 266, 433, 396, 0, - 376, 576, 577, 316, 0, 0, 0, 528, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 416, - 0, 0, 0, 0, 0, 0, 0, 270, 0, 0, - 0, 0, 366, 267, 0, 0, 204, 505, 0, 430, - 0, 203, 0, 487, 252, 377, 374, 583, 282, 273, - 269, 250, 317, 385, 428, 518, 422, 0, 370, 0, - 0, 497, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 323, 248, 325, 202, 413, 498, 286, 0, 0, - 0, 0, 0, 507, 724, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, - 0, 351, 360, 359, 339, 340, 342, 344, 350, 357, - 363, 336, 345, 0, 0, 609, 0, 0, 0, 265, - 321, 272, 264, 580, 0, 0, 0, 0, 0, 0, - 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 1917, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 0, 508, 725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 297, 0, 402, 257, 0, 453, 0, 0, 0, 629, - 0, 0, 0, 0, 0, 0, 0, 365, 0, 330, - 197, 225, 0, 0, 412, 461, 473, 0, 0, 0, - 253, 0, 471, 426, 604, 233, 284, 458, 432, 469, - 440, 287, 0, 0, 470, 372, 585, 450, 601, 630, - 631, 263, 406, 615, 522, 623, 648, 226, 260, 420, - 506, 607, 494, 397, 581, 582, 329, 493, 295, 201, - 369, 636, 224, 479, 371, 242, 231, 587, 612, 299, - 289, 456, 643, 213, 517, 598, 239, 483, 0, 0, - 651, 247, 504, 610, 599, 215, 594, 503, 393, 326, - 327, 214, 0, 457, 268, 293, 0, 0, 258, 415, - 589, 590, 256, 652, 228, 622, 220, 0, 621, 408, - 584, 595, 394, 383, 219, 593, 392, 382, 334, 355, - 356, 280, 307, 447, 375, 448, 306, 308, 404, 403, - 405, 207, 608, 626, 0, 208, 0, 499, 611, 653, - 452, 212, 234, 235, 237, 0, 279, 283, 291, 294, - 303, 304, 313, 367, 419, 446, 442, 451, 0, 579, - 602, 616, 628, 634, 635, 637, 638, 639, 640, 641, - 644, 642, 407, 311, 495, 333, 373, 0, 0, 425, - 472, 240, 606, 496, 199, 0, 0, 0, 0, 254, - 255, 0, 575, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 654, 655, 656, 657, 658, 659, 660, 661, - 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, - 649, 508, 514, 509, 510, 511, 512, 513, 0, 515, - 0, 0, 0, 0, 0, 398, 0, 591, 592, 672, - 384, 486, 603, 335, 349, 352, 341, 361, 0, 362, - 337, 338, 343, 346, 347, 348, 353, 354, 358, 364, - 249, 210, 390, 399, 578, 312, 216, 217, 218, 524, - 525, 526, 527, 619, 620, 624, 205, 462, 463, 464, - 465, 292, 614, 309, 468, 467, 331, 332, 379, 449, - 540, 542, 553, 557, 559, 561, 567, 570, 541, 543, - 554, 558, 560, 562, 568, 571, 530, 532, 534, 536, - 549, 548, 545, 573, 574, 551, 556, 535, 547, 552, - 565, 572, 569, 529, 533, 537, 546, 564, 563, 544, - 555, 566, 550, 538, 531, 539, 0, 196, 221, 368, - 0, 454, 288, 650, 618, 484, 613, 206, 223, 0, - 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 200, 209, 222, 232, 236, 243, 261, - 276, 278, 285, 298, 310, 318, 319, 322, 328, 380, - 386, 387, 388, 389, 409, 410, 411, 414, 417, 418, - 421, 423, 424, 427, 431, 435, 436, 437, 439, 441, - 443, 455, 460, 474, 475, 476, 477, 478, 481, 482, - 488, 489, 490, 491, 492, 500, 501, 516, 586, 588, - 605, 625, 632, 480, 301, 302, 444, 445, 314, 315, - 646, 647, 300, 600, 633, 597, 645, 627, 438, 378, - 0, 0, 381, 281, 305, 320, 0, 617, 502, 227, - 466, 290, 251, 0, 0, 211, 246, 230, 259, 274, - 277, 324, 391, 400, 429, 434, 296, 271, 244, 459, - 241, 485, 519, 520, 521, 523, 395, 266, 433, 396, - 0, 376, 576, 577, 316, 0, 0, 0, 528, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 416, 0, 0, 0, 0, 0, 0, 0, 270, 0, - 0, 0, 0, 366, 267, 0, 0, 204, 505, 0, - 430, 0, 203, 0, 487, 252, 377, 374, 583, 282, - 273, 269, 250, 317, 385, 428, 518, 422, 0, 370, - 0, 0, 497, 401, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 323, 248, 325, 202, 413, 498, 286, 0, - 0, 0, 0, 0, 507, 959, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 238, 0, 0, 245, 0, - 0, 0, 351, 360, 359, 339, 340, 342, 344, 350, - 357, 363, 336, 345, 0, 0, 609, 0, 0, 0, - 265, 321, 272, 264, 580, 0, 0, 0, 0, 0, - 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 0, 402, 257, 0, 453, 0, 0, 0, - 629, 0, 0, 0, 0, 0, 0, 0, 365, 0, - 330, 197, 225, 0, 0, 412, 461, 473, 0, 0, - 0, 253, 0, 471, 426, 604, 233, 284, 458, 432, - 469, 440, 287, 0, 0, 470, 372, 585, 450, 601, - 630, 631, 263, 406, 615, 522, 623, 648, 226, 260, - 420, 506, 607, 494, 397, 581, 582, 329, 493, 295, - 201, 369, 636, 224, 479, 371, 242, 231, 587, 612, - 299, 289, 456, 643, 213, 517, 598, 239, 483, 0, - 0, 651, 247, 504, 610, 599, 215, 594, 503, 393, - 326, 327, 214, 0, 457, 268, 293, 0, 0, 258, - 415, 589, 590, 256, 652, 228, 622, 220, 0, 621, - 408, 584, 595, 394, 383, 219, 593, 392, 382, 334, - 355, 356, 280, 307, 447, 375, 448, 306, 308, 404, - 403, 405, 207, 608, 626, 0, 208, 0, 499, 611, - 653, 452, 212, 234, 235, 237, 0, 279, 283, 291, - 294, 303, 304, 313, 367, 419, 446, 442, 451, 0, - 579, 602, 616, 628, 634, 635, 637, 638, 639, 640, - 641, 644, 642, 407, 311, 495, 333, 373, 0, 0, - 425, 472, 240, 606, 496, 199, 0, 0, 0, 0, - 254, 255, 0, 575, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 649, 508, 514, 509, 510, 511, 512, 513, 0, - 515, 0, 0, 0, 0, 0, 398, 0, 591, 592, - 672, 384, 486, 603, 335, 349, 352, 341, 361, 0, - 362, 337, 338, 343, 346, 347, 348, 353, 354, 358, - 364, 249, 210, 390, 399, 578, 312, 216, 217, 218, - 524, 525, 526, 527, 619, 620, 624, 205, 462, 463, - 464, 465, 292, 614, 309, 468, 467, 331, 332, 379, - 449, 540, 542, 553, 557, 559, 561, 567, 570, 541, - 543, 554, 558, 560, 562, 568, 571, 530, 532, 534, - 536, 549, 548, 545, 573, 574, 551, 556, 535, 547, - 552, 565, 572, 569, 529, 533, 537, 546, 564, 563, - 544, 555, 566, 550, 538, 531, 539, 0, 196, 221, - 368, 0, 454, 288, 650, 618, 484, 613, 206, 223, - 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, - 261, 276, 278, 285, 298, 310, 318, 319, 322, 328, - 380, 386, 387, 388, 389, 409, 410, 411, 414, 417, - 418, 421, 423, 424, 427, 431, 435, 436, 437, 439, - 441, 443, 455, 460, 474, 475, 476, 477, 478, 481, - 482, 488, 489, 490, 491, 492, 500, 501, 516, 586, - 588, 605, 625, 632, 480, 301, 302, 444, 445, 314, - 315, 646, 647, 300, 600, 633, 597, 645, 627, 438, - 378, 0, 0, 381, 281, 305, 320, 0, 617, 502, - 227, 466, 290, 251, 0, 0, 211, 246, 230, 259, - 274, 277, 324, 391, 400, 429, 434, 296, 271, 244, - 459, 241, 485, 519, 520, 521, 523, 395, 266, 433, - 396, 0, 376, 576, 577, 316, 0, 0, 0, 528, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 416, 0, 0, 0, 0, 0, 0, 0, 270, - 0, 0, 0, 0, 366, 267, 0, 0, 204, 505, - 0, 430, 0, 203, 0, 487, 252, 377, 374, 583, - 282, 273, 269, 250, 317, 385, 428, 518, 422, 0, - 370, 0, 0, 497, 401, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 323, 248, 325, 202, 413, 498, 286, - 0, 0, 0, 0, 0, 507, 194, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, - 0, 0, 0, 351, 360, 359, 339, 340, 342, 344, - 350, 357, 363, 336, 345, 0, 0, 609, 0, 0, - 0, 265, 321, 272, 264, 580, 0, 0, 0, 0, - 0, 0, 596, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 275, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 1915, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 725, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 297, 0, 402, 257, 0, 453, 0, 0, - 0, 629, 0, 0, 0, 0, 0, 0, 0, 365, - 0, 330, 197, 225, 0, 0, 412, 461, 473, 0, - 0, 0, 253, 0, 471, 426, 604, 233, 284, 458, - 432, 469, 440, 287, 0, 0, 470, 372, 585, 450, - 601, 630, 631, 263, 406, 615, 522, 623, 648, 226, - 260, 420, 506, 607, 494, 397, 581, 582, 329, 493, - 295, 201, 369, 636, 224, 479, 371, 242, 231, 587, - 612, 299, 289, 456, 643, 213, 517, 598, 239, 483, - 0, 0, 651, 247, 504, 610, 599, 215, 594, 503, - 393, 326, 327, 214, 0, 457, 268, 293, 0, 0, - 258, 415, 589, 590, 256, 652, 228, 622, 220, 0, - 621, 408, 584, 595, 394, 383, 219, 593, 392, 382, - 334, 355, 356, 280, 307, 447, 375, 448, 306, 308, - 404, 403, 405, 207, 608, 626, 0, 208, 0, 499, - 611, 653, 452, 212, 234, 235, 237, 0, 279, 283, - 291, 294, 303, 304, 313, 367, 419, 446, 442, 451, - 0, 579, 602, 616, 628, 634, 635, 637, 638, 639, - 640, 641, 644, 642, 407, 311, 495, 333, 373, 0, - 0, 425, 472, 240, 606, 496, 199, 0, 0, 0, - 0, 254, 255, 0, 575, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 654, 655, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, - 670, 671, 649, 508, 514, 509, 510, 511, 512, 513, - 0, 515, 0, 0, 0, 0, 0, 398, 0, 591, - 592, 672, 384, 486, 603, 335, 349, 352, 341, 361, - 0, 362, 337, 338, 343, 346, 347, 348, 353, 354, - 358, 364, 249, 210, 390, 399, 578, 312, 216, 217, - 218, 524, 525, 526, 527, 619, 620, 624, 205, 462, - 463, 464, 465, 292, 614, 309, 468, 467, 331, 332, - 379, 449, 540, 542, 553, 557, 559, 561, 567, 570, - 541, 543, 554, 558, 560, 562, 568, 571, 530, 532, - 534, 536, 549, 548, 545, 573, 574, 551, 556, 535, - 547, 552, 565, 572, 569, 529, 533, 537, 546, 564, - 563, 544, 555, 566, 550, 538, 531, 539, 0, 196, - 221, 368, 0, 454, 288, 650, 618, 484, 613, 206, - 223, 0, 262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 200, 209, 222, 232, 236, - 243, 261, 276, 278, 285, 298, 310, 318, 319, 322, - 328, 380, 386, 387, 388, 389, 409, 410, 411, 414, - 417, 418, 421, 423, 424, 427, 431, 435, 436, 437, - 439, 441, 443, 455, 460, 474, 475, 476, 477, 478, - 481, 482, 488, 489, 490, 491, 492, 500, 501, 516, - 586, 588, 605, 625, 632, 480, 301, 302, 444, 445, - 314, 315, 646, 647, 300, 600, 633, 597, 645, 627, - 438, 378, 0, 0, 381, 281, 305, 320, 0, 617, - 502, 227, 466, 290, 251, 0, 0, 211, 246, 230, - 259, 274, 277, 324, 391, 400, 429, 434, 296, 271, - 244, 459, 241, 485, 519, 520, 521, 523, 395, 266, - 433, 0, 0, 376, 576, 577, 316, -} - -var yyPact = [...]int{ - -1000, -1000, 1925, -1000, -552, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 1913, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 725, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 1888, 0, 0, + 0, 508, 725, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 0, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 1785, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 194, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 410, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 95, 0, 0, 0, 508, 960, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 194, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1457, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 1456, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1050, 0, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 397, 0, 377, 577, + 578, 317, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 417, 0, 0, + 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, + 367, 268, 0, 0, 204, 506, 0, 431, 0, 203, + 0, 488, 253, 378, 375, 584, 283, 274, 270, 250, + 318, 386, 429, 519, 423, 0, 371, 0, 0, 498, + 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 324, + 248, 326, 202, 414, 499, 287, 0, 0, 0, 0, + 0, 508, 194, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 238, 0, 0, 245, 0, 0, 0, 352, + 361, 360, 340, 341, 343, 345, 351, 358, 364, 337, + 346, 0, 0, 610, 0, 0, 0, 266, 322, 273, + 265, 581, 0, 0, 0, 0, 0, 0, 597, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, + 403, 258, 0, 454, 0, 676, 0, 630, 0, 0, + 0, 0, 0, 0, 0, 366, 0, 331, 197, 225, + 0, 0, 413, 462, 474, 0, 0, 0, 254, 0, + 472, 427, 605, 233, 285, 459, 433, 470, 441, 288, + 0, 0, 471, 373, 586, 451, 602, 631, 632, 264, + 407, 616, 523, 624, 649, 226, 261, 421, 507, 608, + 495, 398, 582, 583, 330, 494, 296, 201, 370, 637, + 224, 480, 372, 242, 231, 588, 613, 300, 252, 290, + 457, 644, 213, 518, 599, 239, 484, 0, 0, 652, + 247, 505, 611, 600, 215, 595, 504, 394, 327, 328, + 214, 0, 458, 269, 294, 0, 0, 259, 416, 590, + 591, 257, 653, 228, 623, 220, 0, 622, 409, 585, + 596, 395, 384, 219, 594, 393, 383, 335, 356, 357, + 281, 308, 448, 376, 449, 307, 309, 405, 404, 406, + 207, 609, 627, 0, 208, 0, 500, 612, 654, 453, + 212, 234, 235, 237, 0, 280, 284, 292, 295, 304, + 305, 314, 368, 420, 447, 443, 452, 0, 580, 603, + 617, 629, 635, 636, 638, 639, 640, 641, 642, 645, + 643, 408, 312, 496, 334, 374, 0, 0, 426, 473, + 240, 607, 497, 199, 0, 0, 0, 0, 255, 256, + 0, 576, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 655, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 666, 667, 668, 669, 670, 671, 672, 650, + 509, 515, 510, 511, 512, 513, 514, 0, 516, 0, + 0, 0, 0, 0, 399, 0, 592, 593, 673, 385, + 487, 604, 336, 350, 353, 342, 362, 0, 363, 338, + 339, 344, 347, 348, 349, 354, 355, 359, 365, 249, + 210, 391, 400, 579, 313, 216, 217, 218, 525, 526, + 527, 528, 620, 621, 625, 205, 463, 464, 465, 466, + 293, 615, 310, 469, 468, 332, 333, 380, 450, 541, + 543, 554, 558, 560, 562, 568, 571, 542, 544, 555, + 559, 561, 563, 569, 572, 531, 533, 535, 537, 550, + 549, 546, 574, 575, 552, 557, 536, 548, 553, 566, + 573, 570, 530, 534, 538, 547, 565, 564, 545, 556, + 567, 551, 539, 532, 540, 0, 196, 221, 369, 0, + 455, 289, 651, 619, 485, 614, 206, 223, 0, 263, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 200, 209, 222, 232, 236, 243, 262, 277, + 279, 286, 299, 311, 319, 320, 323, 329, 381, 387, + 388, 389, 390, 410, 411, 412, 415, 418, 419, 422, + 424, 425, 428, 432, 436, 437, 438, 440, 442, 444, + 456, 461, 475, 476, 477, 478, 479, 482, 483, 489, + 490, 491, 492, 493, 501, 502, 517, 587, 589, 606, + 626, 633, 481, 302, 303, 445, 446, 315, 316, 647, + 648, 301, 601, 634, 598, 646, 628, 439, 379, 0, + 0, 382, 282, 306, 321, 0, 618, 503, 227, 467, + 291, 251, 0, 0, 211, 246, 230, 260, 275, 278, + 325, 392, 401, 430, 435, 297, 272, 244, 460, 241, + 486, 520, 521, 522, 524, 396, 267, 434, 397, 0, + 377, 577, 578, 317, 0, 0, 0, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 417, + 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, + 0, 0, 367, 268, 0, 0, 204, 506, 0, 431, + 0, 203, 0, 488, 253, 378, 375, 584, 283, 274, + 270, 250, 318, 386, 429, 519, 423, 0, 371, 0, + 0, 498, 402, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 324, 248, 326, 202, 414, 499, 287, 0, 0, + 0, 0, 0, 508, 725, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 238, 0, 0, 245, 0, 0, + 0, 352, 361, 360, 340, 341, 343, 345, 351, 358, + 364, 337, 346, 0, 0, 610, 0, 0, 0, 266, + 322, 273, 265, 581, 0, 0, 0, 0, 0, 0, + 597, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 276, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 298, 0, 403, 258, 0, 454, 0, 0, 0, 630, + 0, 0, 0, 0, 0, 0, 0, 366, 0, 331, + 197, 225, 0, 0, 413, 462, 474, 0, 0, 0, + 254, 0, 472, 427, 605, 233, 285, 459, 433, 470, + 441, 288, 0, 0, 471, 373, 586, 451, 602, 631, + 632, 264, 407, 616, 523, 624, 649, 226, 261, 421, + 507, 608, 495, 398, 582, 583, 330, 494, 296, 201, + 370, 637, 224, 480, 372, 242, 231, 588, 613, 300, + 252, 290, 457, 644, 213, 518, 599, 239, 484, 0, + 0, 652, 247, 505, 611, 600, 215, 595, 504, 394, + 327, 328, 214, 0, 458, 269, 294, 0, 0, 259, + 416, 590, 591, 257, 653, 228, 623, 220, 0, 622, + 409, 585, 596, 395, 384, 219, 594, 393, 383, 335, + 356, 357, 281, 308, 448, 376, 449, 307, 309, 405, + 404, 406, 207, 609, 627, 0, 208, 0, 500, 612, + 654, 453, 212, 234, 235, 237, 0, 280, 284, 292, + 295, 304, 305, 314, 368, 420, 447, 443, 452, 0, + 580, 603, 617, 629, 635, 636, 638, 639, 640, 641, + 642, 645, 643, 408, 312, 496, 334, 374, 0, 0, + 426, 473, 240, 607, 497, 199, 0, 0, 0, 0, + 255, 256, 0, 576, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 655, 656, 657, 658, 659, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 650, 509, 515, 510, 511, 512, 513, 514, 0, + 516, 0, 0, 0, 0, 0, 399, 0, 592, 593, + 673, 385, 487, 604, 336, 350, 353, 342, 362, 0, + 363, 338, 339, 344, 347, 348, 349, 354, 355, 359, + 365, 249, 210, 391, 400, 579, 313, 216, 217, 218, + 525, 526, 527, 528, 620, 621, 625, 205, 463, 464, + 465, 466, 293, 615, 310, 469, 468, 332, 333, 380, + 450, 541, 543, 554, 558, 560, 562, 568, 571, 542, + 544, 555, 559, 561, 563, 569, 572, 531, 533, 535, + 537, 550, 549, 546, 574, 575, 552, 557, 536, 548, + 553, 566, 573, 570, 530, 534, 538, 547, 565, 564, + 545, 556, 567, 551, 539, 532, 540, 0, 196, 221, + 369, 0, 455, 289, 651, 619, 485, 614, 206, 223, + 0, 263, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 200, 209, 222, 232, 236, 243, + 262, 277, 279, 286, 299, 311, 319, 320, 323, 329, + 381, 387, 388, 389, 390, 4139, 411, 412, 415, 418, + 419, 422, 424, 425, 428, 432, 436, 437, 438, 440, + 442, 444, 456, 461, 475, 476, 477, 478, 479, 482, + 483, 489, 490, 491, 492, 493, 501, 502, 517, 587, + 589, 606, 626, 633, 481, 302, 303, 445, 446, 315, + 316, 647, 648, 301, 601, 634, 598, 646, 628, 439, + 379, 0, 0, 382, 282, 306, 321, 0, 618, 503, + 227, 467, 291, 251, 0, 0, 211, 246, 230, 260, + 275, 278, 325, 392, 401, 430, 435, 297, 272, 244, + 460, 241, 486, 520, 521, 522, 524, 396, 267, 434, + 397, 0, 377, 577, 578, 317, 0, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 417, 0, 0, 0, 0, 0, 0, 0, 271, + 0, 0, 0, 0, 367, 268, 0, 0, 204, 506, + 0, 431, 0, 203, 0, 488, 253, 378, 375, 584, + 283, 274, 270, 250, 318, 386, 429, 519, 423, 0, + 371, 0, 0, 498, 402, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 324, 248, 326, 202, 414, 499, 287, + 0, 0, 0, 0, 0, 508, 725, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 238, 0, 0, 245, + 0, 0, 0, 352, 361, 360, 340, 341, 343, 345, + 351, 358, 364, 337, 346, 0, 0, 610, 0, 0, + 0, 266, 322, 273, 265, 581, 0, 0, 0, 0, + 0, 0, 597, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 298, 0, 403, 258, 0, 454, 0, 0, + 0, 630, 0, 0, 0, 0, 0, 0, 0, 366, + 0, 331, 197, 225, 0, 0, 413, 462, 474, 0, + 0, 0, 254, 0, 472, 427, 605, 233, 285, 459, + 433, 470, 441, 288, 0, 0, 471, 373, 586, 451, + 602, 631, 632, 264, 407, 616, 523, 624, 649, 226, + 261, 421, 507, 608, 495, 398, 582, 583, 330, 494, + 296, 201, 370, 637, 224, 480, 372, 242, 231, 588, + 613, 300, 252, 290, 457, 644, 213, 518, 599, 239, + 484, 0, 0, 652, 247, 505, 611, 600, 215, 595, + 504, 394, 327, 328, 214, 0, 458, 269, 294, 0, + 0, 259, 416, 590, 591, 257, 653, 228, 623, 220, + 0, 622, 409, 585, 596, 395, 384, 219, 594, 393, + 383, 335, 356, 357, 281, 308, 448, 376, 449, 307, + 309, 405, 404, 406, 207, 609, 627, 0, 208, 0, + 500, 612, 654, 453, 212, 234, 235, 237, 0, 280, + 284, 292, 295, 304, 305, 314, 368, 420, 447, 443, + 452, 0, 580, 603, 617, 629, 635, 636, 638, 639, + 640, 641, 642, 645, 643, 408, 312, 496, 334, 374, + 0, 0, 426, 473, 240, 607, 497, 199, 0, 0, + 0, 0, 255, 256, 0, 576, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 655, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 670, 671, 672, 650, 509, 515, 510, 511, 512, 513, + 514, 0, 516, 0, 0, 0, 0, 0, 399, 0, + 592, 593, 673, 385, 487, 604, 336, 350, 353, 342, + 362, 0, 363, 338, 339, 344, 347, 348, 349, 354, + 355, 359, 365, 249, 210, 391, 400, 579, 313, 216, + 217, 218, 525, 526, 527, 528, 620, 621, 625, 205, + 463, 464, 465, 466, 293, 615, 310, 469, 468, 332, + 333, 380, 450, 541, 543, 554, 558, 560, 562, 568, + 571, 542, 544, 555, 559, 561, 563, 569, 572, 531, + 533, 535, 537, 550, 549, 546, 574, 575, 552, 557, + 536, 548, 553, 566, 573, 570, 530, 534, 538, 547, + 565, 564, 545, 556, 567, 551, 539, 532, 540, 0, + 196, 221, 369, 0, 455, 289, 651, 619, 485, 614, + 206, 223, 0, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 200, 209, 222, 232, + 236, 243, 262, 277, 279, 286, 299, 311, 319, 320, + 323, 329, 381, 387, 388, 389, 390, 410, 411, 412, + 415, 418, 419, 422, 424, 425, 428, 432, 436, 437, + 438, 440, 442, 444, 456, 461, 475, 476, 477, 478, + 479, 482, 483, 489, 490, 491, 492, 493, 501, 502, + 517, 587, 589, 606, 626, 633, 481, 302, 303, 445, + 446, 315, 316, 647, 648, 301, 601, 634, 598, 646, + 628, 439, 379, 0, 0, 382, 282, 306, 321, 0, + 618, 503, 227, 467, 291, 251, 0, 0, 211, 246, + 230, 260, 275, 278, 325, 392, 401, 430, 435, 297, + 272, 244, 460, 241, 486, 520, 521, 522, 524, 396, + 267, 434, 397, 0, 377, 577, 578, 317, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 417, 0, 0, 0, 0, 0, 0, + 0, 271, 0, 0, 0, 0, 367, 268, 0, 0, + 204, 506, 0, 431, 0, 203, 0, 488, 253, 378, + 375, 584, 283, 274, 270, 250, 318, 386, 429, 519, + 423, 0, 371, 0, 0, 498, 402, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 324, 248, 326, 202, 414, + 499, 287, 0, 0, 0, 0, 0, 508, 960, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, + 0, 245, 0, 0, 0, 352, 361, 360, 340, 341, + 343, 345, 351, 358, 364, 337, 346, 0, 0, 610, + 0, 0, 0, 266, 322, 273, 265, 581, 0, 0, + 0, 0, 0, 0, 597, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 298, 0, 403, 258, 0, 454, + 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 331, 197, 225, 0, 0, 413, 462, + 474, 0, 0, 0, 254, 0, 472, 427, 605, 233, + 285, 459, 433, 470, 441, 288, 0, 0, 471, 373, + 586, 451, 602, 631, 632, 264, 407, 616, 523, 624, + 649, 226, 261, 421, 507, 608, 495, 398, 582, 583, + 330, 494, 296, 201, 370, 637, 224, 480, 372, 242, + 231, 588, 613, 300, 252, 290, 457, 644, 213, 518, + 599, 239, 484, 0, 0, 652, 247, 505, 611, 600, + 215, 595, 504, 394, 327, 328, 214, 0, 458, 269, + 294, 0, 0, 259, 416, 590, 591, 257, 653, 228, + 623, 220, 0, 622, 409, 585, 596, 395, 384, 219, + 594, 393, 383, 335, 356, 357, 281, 308, 448, 376, + 449, 307, 309, 405, 404, 406, 207, 609, 627, 0, + 208, 0, 500, 612, 654, 453, 212, 234, 235, 237, + 0, 280, 284, 292, 295, 304, 305, 314, 368, 420, + 447, 443, 452, 0, 580, 603, 617, 629, 635, 636, + 638, 639, 640, 641, 642, 645, 643, 408, 312, 496, + 334, 374, 0, 0, 426, 473, 240, 607, 497, 199, + 0, 0, 0, 0, 255, 256, 0, 576, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 655, 656, 657, + 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, + 668, 669, 670, 671, 672, 650, 509, 515, 510, 511, + 512, 513, 514, 0, 516, 0, 0, 0, 0, 0, + 399, 0, 592, 593, 673, 385, 487, 604, 336, 350, + 353, 342, 362, 0, 363, 338, 339, 344, 347, 348, + 349, 354, 355, 359, 365, 249, 210, 391, 400, 579, + 313, 216, 217, 218, 525, 526, 527, 528, 620, 621, + 625, 205, 463, 464, 465, 466, 293, 615, 310, 469, + 468, 332, 333, 380, 450, 541, 543, 554, 558, 560, + 562, 568, 571, 542, 544, 555, 559, 561, 563, 569, + 572, 531, 533, 535, 537, 550, 549, 546, 574, 575, + 552, 557, 536, 548, 553, 566, 573, 570, 530, 534, + 538, 547, 565, 564, 545, 556, 567, 551, 539, 532, + 540, 0, 196, 221, 369, 0, 455, 289, 651, 619, + 485, 614, 206, 223, 0, 263, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 200, 209, + 222, 232, 236, 243, 262, 277, 279, 286, 299, 311, + 319, 320, 323, 329, 381, 387, 388, 389, 390, 410, + 411, 412, 415, 418, 419, 422, 424, 425, 428, 432, + 436, 437, 438, 440, 442, 444, 456, 461, 475, 476, + 477, 478, 479, 482, 483, 489, 490, 491, 492, 493, + 501, 502, 517, 587, 589, 606, 626, 633, 481, 302, + 303, 445, 446, 315, 316, 647, 648, 301, 601, 634, + 598, 646, 628, 439, 379, 0, 0, 382, 282, 306, + 321, 0, 618, 503, 227, 467, 291, 251, 0, 0, + 211, 246, 230, 260, 275, 278, 325, 392, 401, 430, + 435, 297, 272, 244, 460, 241, 486, 520, 521, 522, + 524, 396, 267, 434, 397, 0, 377, 577, 578, 317, + 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 417, 0, 0, 0, 0, + 0, 0, 0, 271, 0, 0, 0, 0, 367, 268, + 0, 0, 204, 506, 0, 431, 0, 203, 0, 488, + 253, 378, 375, 584, 283, 274, 270, 250, 318, 386, + 429, 519, 423, 0, 371, 0, 0, 498, 402, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 324, 248, 326, + 202, 414, 499, 287, 0, 0, 0, 0, 0, 508, + 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 238, 0, 0, 245, 0, 0, 0, 352, 361, 360, + 340, 341, 343, 345, 351, 358, 364, 337, 346, 0, + 0, 610, 0, 0, 0, 266, 322, 273, 265, 581, + 0, 0, 0, 0, 0, 0, 597, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 403, 258, + 0, 454, 0, 0, 0, 630, 0, 0, 0, 0, + 0, 0, 0, 366, 0, 331, 197, 225, 0, 0, + 413, 462, 474, 0, 0, 0, 254, 0, 472, 427, + 605, 233, 285, 459, 433, 470, 441, 288, 0, 0, + 471, 373, 586, 451, 602, 631, 632, 264, 407, 616, + 523, 624, 649, 226, 261, 421, 507, 608, 495, 398, + 582, 583, 330, 494, 296, 201, 370, 637, 224, 480, + 372, 242, 231, 588, 613, 300, 252, 290, 457, 644, + 213, 518, 599, 239, 484, 0, 0, 652, 247, 505, + 611, 600, 215, 595, 504, 394, 327, 328, 214, 0, + 458, 269, 294, 0, 0, 259, 416, 590, 591, 257, + 653, 228, 623, 220, 0, 622, 409, 585, 596, 395, + 384, 219, 594, 393, 383, 335, 356, 357, 281, 308, + 448, 376, 449, 307, 309, 405, 404, 406, 207, 609, + 627, 0, 208, 0, 500, 612, 654, 453, 212, 234, + 235, 237, 0, 280, 284, 292, 295, 304, 305, 314, + 368, 420, 447, 443, 452, 0, 580, 603, 617, 629, + 635, 636, 638, 639, 640, 641, 642, 645, 643, 408, + 312, 496, 334, 374, 0, 0, 426, 473, 240, 607, + 497, 199, 0, 0, 0, 0, 255, 256, 0, 576, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 655, + 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 650, 509, 515, + 510, 511, 512, 513, 514, 0, 516, 0, 0, 0, + 0, 0, 399, 0, 592, 593, 673, 385, 487, 604, + 336, 350, 353, 342, 362, 0, 363, 338, 339, 344, + 347, 348, 349, 354, 355, 359, 365, 249, 210, 391, + 400, 579, 313, 216, 217, 218, 525, 526, 527, 528, + 620, 621, 625, 205, 463, 464, 465, 466, 293, 615, + 310, 469, 468, 332, 333, 380, 450, 541, 543, 554, + 558, 560, 562, 568, 571, 542, 544, 555, 559, 561, + 563, 569, 572, 531, 533, 535, 537, 550, 549, 546, + 574, 575, 552, 557, 536, 548, 553, 566, 573, 570, + 530, 534, 538, 547, 565, 564, 545, 556, 567, 551, + 539, 532, 540, 0, 196, 221, 369, 0, 455, 289, + 651, 619, 485, 614, 206, 223, 0, 263, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 200, 209, 222, 232, 236, 243, 262, 277, 279, 286, + 299, 311, 319, 320, 323, 329, 381, 387, 388, 389, + 390, 410, 411, 412, 415, 418, 419, 422, 424, 425, + 428, 432, 436, 437, 438, 440, 442, 444, 456, 461, + 475, 476, 477, 478, 479, 482, 483, 489, 490, 491, + 492, 493, 501, 502, 517, 587, 589, 606, 626, 633, + 481, 302, 303, 445, 446, 315, 316, 647, 648, 301, + 601, 634, 598, 646, 628, 439, 379, 0, 0, 382, + 282, 306, 321, 0, 618, 503, 227, 467, 291, 251, + 0, 0, 211, 246, 230, 260, 275, 278, 325, 392, + 401, 430, 435, 297, 272, 244, 460, 241, 486, 520, + 521, 522, 524, 396, 267, 434, 0, 0, 377, 577, + 578, 317, +} + +var yyPact = [...]int{ + -1000, -1000, 4350, -1000, -549, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2520, 2555, -1000, -1000, -1000, -1000, 2696, -1000, 1031, + 2117, -1000, 2474, 4989, -1000, 56250, 778, -1000, 53282, -420, + 897, 238, 36958, -1000, 193, -1000, 186, 54766, 189, -1000, + -1000, -1000, -1000, -420, 22860, 2334, 57, 55, 56250, -1000, + -1000, -1000, -1000, -373, 2641, 2087, -1000, 392, -1000, -1000, + -1000, -1000, -1000, -1000, 52540, -1000, 1119, -1000, -1000, 2482, + 2485, 2309, 941, 2399, -1000, 2569, 2087, -1000, 22860, 2632, + 2475, 22118, 22118, 456, -1000, -1000, 269, -1000, -1000, 31764, + 56250, 39926, 322, -1000, 2474, -1000, -1000, -1000, 211, -1000, + 342, 1987, -1000, 1971, -1000, 937, 914, 389, 473, 471, + 386, 385, 384, 368, 367, 363, 358, 355, 399, -1000, + 958, 958, -218, -220, 371, 769, 460, 460, 1035, 490, + 2427, 2379, -1000, -1000, 958, 958, 958, 339, 958, 958, + 958, 958, 311, 310, 958, 958, 958, 958, 958, 958, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 958, 917, 2474, 270, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 2636, 2900, -1000, -1000, -1000, -1000, 2720, -1000, 1025, - 2152, -1000, 2517, 5041, -1000, 55856, 753, -1000, 52892, -454, - 877, 238, 36590, -1000, 177, -1000, 165, 54374, 169, -1000, - -1000, -1000, -1000, -454, 22511, 2360, 38, 37, 55856, -1000, - -1000, -1000, -1000, -373, 2674, 2129, -1000, 380, -1000, -1000, - -1000, -1000, -1000, -1000, 52151, -1000, 1229, -1000, -1000, 2522, - 2491, 2370, 943, 2372, -1000, 2590, 2129, -1000, 22511, 2666, - 2439, 21770, 21770, 467, -1000, -1000, 273, -1000, -1000, 31403, - 55856, 39554, 897, -1000, 2517, -1000, -1000, -1000, 212, -1000, - 349, 2043, -1000, 2039, -1000, 942, 1017, 408, 473, 466, - 405, 404, 394, 391, 389, 388, 386, 381, 385, -1000, - 974, 974, -236, -241, 1021, 454, 461, 461, 1048, 496, - 2473, 2463, -1000, -1000, 974, 974, 974, 360, 974, 974, - 974, 974, 303, 302, 974, 974, 974, 974, 974, 974, - 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, - 974, 902, 2517, 266, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7425,70 +7470,70 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 56250, 194, 56250, -1000, 828, 775, + -1000, -1000, -459, 1114, 1114, 101, 1114, 1114, 1114, 1114, + 183, 1043, 54, -1000, 182, 261, 168, 271, 1096, 304, + -1000, -1000, 257, 1096, 1834, -1000, 946, 266, 169, -1000, + 1114, 1114, -1000, 15416, 203, 15416, 15416, 265, 172, -1000, + 2464, -1000, -1000, -1000, -1000, -1000, 1344, -1000, -1000, -1000, + -1000, -37, 489, -1000, -1000, -1000, -1000, 54766, 51798, 283, + -1000, -1000, 780, 1851, 1393, 22860, 1315, 938, -1000, -1000, + 1434, 900, -1000, -1000, -1000, -1000, -1000, 809, -1000, 25086, + 25086, 25086, 25086, -1000, -1000, 1830, 51056, 1830, 1830, 25086, + 1830, 25086, 1830, 1830, 1830, 1830, 22860, 1830, 1830, 1830, + 1830, -1000, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, -1000, -1000, -1000, -1000, 1830, 826, 1830, 1830, 1830, + 1830, 1830, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1830, + 1830, 1830, 1830, 1830, 1830, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, -1000, -1000, + -1000, 1692, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1693, + 1513, 1500, 1498, -1000, 19892, 1830, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 55856, 234, 55856, -1000, 821, 730, -1000, - -1000, -458, 1154, 1154, 80, 1154, 1154, 1154, 1154, 164, - 1008, 33, -1000, 160, 271, 149, 261, 1096, 798, -1000, - -1000, 252, 1096, 1852, -1000, 949, 259, 155, -1000, 1154, - 1154, -1000, 15077, 220, 15077, 15077, 256, 154, -1000, 2494, - -1000, -1000, -1000, -1000, -1000, 1381, -1000, -1000, -1000, -1000, - -36, 489, -1000, -1000, -1000, -1000, 54374, 51410, 290, -1000, - -1000, 30, 1958, 1395, 22511, 1420, 940, -1000, -1000, 1248, - 904, -1000, -1000, -1000, -1000, -1000, 783, -1000, 24734, 24734, - 24734, 24734, -1000, -1000, 2048, 50669, 2048, 2048, 24734, 2048, - 24734, 2048, 2048, 2048, 2048, 22511, 2048, 2048, 2048, 2048, - -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - -1000, -1000, -1000, -1000, 2048, 820, 2048, 2048, 2048, 2048, - 2048, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2048, 2048, - 2048, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, -1000, - 1591, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1583, 1540, - 1534, 1525, -1000, 19547, 2048, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 56250, -1000, 1830, + 216, 54766, 54766, 340, 1333, -1000, -1000, 2569, 2087, -1000, + 2641, 2620, 392, -1000, 3919, 2111, 1683, 1406, 2087, 1954, + 56250, -1000, 2005, -1000, -1000, -1000, -357, -364, 2232, 1455, + 1829, -1000, -1000, -1000, -1000, 1798, 22860, -1000, -1000, 2693, + -1000, 28796, 823, 2687, 50314, -1000, 456, 456, 1969, 421, + 13, -1000, -1000, -1000, -1000, 979, 36216, -1000, -1000, -1000, + -1000, -1000, 1884, 56250, -1000, -1000, 5043, 54766, -1000, 2107, + -1000, 1875, -1000, 2041, 22860, 2126, 768, 54766, 523, 516, + 510, 475, -62, -1000, -1000, -1000, -1000, -1000, -1000, 958, + 958, 958, -1000, 395, 2623, 4989, 5064, -1000, -1000, -1000, + 49572, 2102, 54766, -1000, 2088, -1000, 1039, 861, 864, 864, + 54766, -1000, -1000, 55508, 54766, 1037, 1033, 54766, 54766, 54766, + 54766, -1000, 48830, -1000, 48088, 47346, 1331, 54766, 46604, 45862, + 45120, 44378, 43636, -1000, 2609, -1000, 2204, -1000, -1000, -1000, + 55508, 54766, 54766, 55508, 54766, 55508, 56250, 54766, -1000, -1000, + 357, -1000, -1000, 1329, 1327, 1319, 958, 958, 1317, 1828, + 1823, 1816, 958, 958, 1305, 1800, 38442, 1780, 276, 1299, + 1296, 1294, 1293, 1775, 259, 1757, 1237, 1220, 1272, 54766, + 2083, 56250, -1000, 250, 1070, 434, 978, 2474, 2331, 1964, + 488, 767, 54766, 474, 474, 54766, -1000, 16164, 56250, 230, + -1000, 1744, 22860, -1000, 1117, 1096, 1096, -1000, -1000, -1000, + -1000, -1000, -1000, 1114, 56250, 1117, -1000, -1000, -1000, 1096, + 1114, 56250, 1114, 1114, 1114, 1114, 1096, 1096, 1096, 1114, + 56250, 56250, 56250, 56250, 56250, 56250, 56250, 56250, 56250, 15416, + 946, 1114, -460, -1000, 1742, -1000, -1000, -1000, 2230, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 55856, -1000, 2048, 196, - 54374, 54374, 317, 1361, -1000, -1000, 2590, 2129, -1000, 2674, - 2662, 380, -1000, 3907, 2056, 1627, 1538, 2129, 2019, 55856, - -1000, 2052, -1000, -1000, -1000, -343, -355, 2294, 1519, 1848, - -1000, -1000, -1000, -1000, 2065, 22511, -1000, -1000, 2717, -1000, - 28439, 816, 2706, 49928, -1000, 467, 467, 2036, 427, -4, - -1000, -1000, -1000, -1000, 1006, 35849, -1000, -1000, -1000, -1000, - -1000, 1946, 55856, -1000, -1000, 4251, 54374, -1000, 2150, -1000, - 1934, -1000, 2102, 22511, 2174, 724, 54374, 515, 510, 506, - 468, -71, -1000, -1000, -1000, -1000, -1000, -1000, 974, 974, - 974, -1000, 372, 2658, 5041, 5724, -1000, -1000, -1000, 49187, - 2148, 54374, -1000, 2147, -1000, 1136, 835, 847, 847, 54374, - -1000, -1000, 55115, 54374, 1113, 1093, 54374, 54374, 54374, 54374, - -1000, 48446, -1000, 47705, 46964, 1359, 54374, 46223, 45482, 44741, - 44000, 43259, -1000, 2471, -1000, 2096, -1000, -1000, -1000, 55115, - 54374, 54374, 55115, 54374, 55115, 55856, 54374, -1000, -1000, 321, - -1000, -1000, 1354, 1344, 1338, 974, 974, 1337, 1825, 1823, - 1807, 974, 974, 1336, 1799, 38072, 1791, 260, 1332, 1314, - 1312, 1340, 1772, 282, 1761, 1333, 1309, 1310, 54374, 2144, - 55856, -1000, 243, 1023, 407, 1005, 2517, 2353, 2033, 481, - 528, 54374, 464, 464, 54374, -1000, 15824, 55856, 217, -1000, - 1736, 22511, -1000, 1103, 1096, 1096, -1000, -1000, -1000, -1000, - -1000, -1000, 1154, 55856, 1103, -1000, -1000, -1000, 1096, 1154, - 55856, 1154, 1154, 1154, 1154, 1096, 1096, 1096, 1154, 55856, - 55856, 55856, 55856, 55856, 55856, 55856, 55856, 55856, 15077, 949, - 1154, -459, -1000, 1721, -1000, -1000, -1000, 2256, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -7501,340 +7546,337 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15416, + 15416, -1000, -1000, 2565, 2559, -1000, -1000, -1000, 1960, -1000, + 184, 17, 185, -1000, 42894, 535, 974, -1000, 535, -1000, + -1000, -1000, -1000, -1000, 1959, 42152, -1000, -461, -464, -467, + -469, -1000, -1000, -1000, -471, -473, -1000, -1000, -1000, 22860, + 22860, 22860, 22860, -257, -1000, 1217, 25086, 2491, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 22860, 247, 1131, 25086, 25086, + 25086, 25086, 25086, 25086, 25086, 26570, 25828, 25086, 25086, 25086, + 25086, 25086, 25086, -1000, -1000, 33990, 6271, 6271, 900, 900, + 900, 900, -1000, -174, 1958, 55508, -1000, -1000, -1000, 822, + 22860, 22860, 900, -1000, 1238, 2007, 19892, 22860, 22860, 22860, + 22860, 960, 1393, 55508, 22860, -1000, 1406, -1000, -1000, -1000, + -1000, 1234, -1000, -1000, 1081, 2376, 2376, 2376, 2376, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 2376, + 22860, 208, 208, 919, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 18408, 22860, 22860, 25086, 22860, 22860, 22860, 1406, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 1406, + 22860, 1221, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 17660, + 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000, -1000, + -1000, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 22860, 1406, + 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1686, 1493, 1478, 22860, -1000, + 1957, -1000, -202, 31022, 22860, 1739, 2683, 2157, 54766, -1000, + -1000, -1000, -1000, 2569, -1000, 2569, 1686, 3881, 2277, 22118, + -1000, -1000, 3881, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1737, -1000, 56250, 1954, + 2545, 54766, -1000, -294, -1000, -295, 2272, 1730, 351, -1000, + 22860, 22860, 1953, -1000, 1399, 56250, -1000, -257, -1000, 41410, + -1000, -1000, 14668, 56250, 350, 56250, -1000, 30280, 40668, 306, + -1000, 13, 1933, -1000, 29, 1, 19150, 899, -1000, -1000, + -1000, 371, 27312, 1822, 899, 100, -1000, -1000, -1000, 2041, + -1000, 2041, 2041, 2041, 2041, 351, 351, 351, 351, -1000, + -1000, -1000, -1000, -1000, 2079, 2041, 2075, -1000, 2041, 2041, + 2041, 2041, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2073, + 2073, 2073, 2061, 2061, 2042, 2042, 447, -1000, 22860, 486, + 39926, 2537, 1270, 1538, 250, 475, 2144, 54766, 54766, 54766, + 56250, 989, -1000, 1445, 1412, 1398, -1000, -532, 1952, -1000, + -1000, 2617, -1000, -1000, 956, 1088, 1084, 1064, 54766, 214, + 335, -1000, 433, -1000, 39926, 54766, 1029, 864, 54766, -1000, + 54766, -1000, -1000, -1000, -1000, -1000, 54766, -1000, -1000, 1950, + -1000, 1927, 1106, 1083, 1098, 1080, 1950, -1000, -1000, -183, + 1950, -1000, 1950, -1000, 1950, -1000, 1950, -1000, 1950, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1001, 278, + -350, 54766, 214, 487, -1000, 485, 33990, -1000, -1000, -1000, + 33990, 33990, -1000, -1000, -1000, -1000, 1726, 1723, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -520, 56250, -1000, + 236, 971, 268, 376, 291, 56250, 405, 2423, 2413, 2403, + 2396, 2391, 2373, 2366, 242, 298, 56250, 56250, 474, 2206, + 56250, 2522, 56250, -1000, -1000, -1000, -1000, -1000, 1716, 1708, + -1000, 1393, 56250, -1000, -1000, 1114, 1114, -1000, -1000, 56250, + 1114, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1114, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15077, 15077, - -1000, -1000, 2584, 2575, -1000, -1000, -1000, 2032, -1000, 163, - 5, 168, -1000, 42518, 513, 1004, -1000, 513, -1000, -1000, - -1000, -1000, -1000, 2027, 41777, -1000, -460, -461, -462, -463, - -1000, -1000, -1000, -464, -473, -1000, -1000, -1000, 22511, 22511, - 22511, 22511, -276, -1000, 1199, 24734, 2504, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 22511, 247, 991, 24734, 24734, 24734, - 24734, 24734, 24734, 24734, 26216, 25475, 24734, 24734, 24734, 24734, - 24734, 24734, -1000, -1000, 33626, 6276, 6276, 904, 904, 904, - 904, -1000, -186, 2022, 55115, -1000, -1000, -1000, 813, 22511, - 22511, 904, -1000, 1253, 1138, 19547, 22511, 22511, 22511, 22511, - 1011, 1395, 55115, 22511, -1000, 1538, -1000, -1000, -1000, -1000, - 1245, -1000, -1000, 1091, 2415, 2415, 2415, 2415, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 2415, 22511, - 148, 148, 719, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 18065, 22511, 22511, 24734, 22511, 22511, 22511, 1538, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511, - 1351, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 17318, 22511, - 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000, - 22511, 22511, 22511, 22511, 22511, 22511, 22511, 22511, 1538, 22511, - 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1638, 1518, 1544, 22511, -1000, 2020, - -1000, -200, 30662, 22511, 1691, 2695, 2185, 54374, -1000, -1000, - -1000, -1000, 2590, -1000, 2590, 1638, 3897, 2266, 21770, -1000, - -1000, 3897, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1820, -1000, 55856, 2019, 2566, - 54374, -1000, -316, -1000, -321, 2296, 1687, 318, -1000, 22511, - 22511, 2016, -1000, 1698, 55856, -1000, -276, -1000, 41036, -1000, - -1000, 14330, 55856, 354, 55856, -1000, 29921, 40295, 319, -1000, - -4, 1996, -1000, 12, -2, 18806, 882, -1000, -1000, -1000, - 1021, 26957, 1950, 882, 83, -1000, -1000, -1000, 2102, -1000, - 2102, 2102, 2102, 2102, 318, 318, 318, 318, -1000, -1000, - -1000, -1000, -1000, 2142, 2102, 2137, -1000, 2102, 2102, 2102, - 2102, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2136, 2136, - 2136, 2134, 2134, 2106, 2106, 453, -1000, 22511, 435, 39554, - 2546, 1308, 1193, 243, 468, 2183, 54374, 54374, 54374, 55856, - 1052, -1000, 1408, 1404, 1380, -1000, -532, 2015, -1000, -1000, - 2656, -1000, -1000, 964, 1175, 1172, 893, 54374, 205, 328, - -1000, 440, -1000, 39554, 54374, 1087, 847, 54374, -1000, 54374, - -1000, -1000, -1000, -1000, -1000, 54374, -1000, -1000, 2014, -1000, - 2005, 1201, 1166, 1195, 1161, 2014, -1000, -1000, -194, 2014, - -1000, 2014, -1000, 2014, -1000, 2014, -1000, 2014, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 993, 286, -385, - 54374, 205, 480, -1000, 479, 33626, -1000, -1000, -1000, 33626, - 33626, -1000, -1000, -1000, -1000, 1656, 1643, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 56250, -1000, -1000, -1000, -1000, + 1702, -1000, 56250, -37, 177, -1000, -1000, 54766, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -114, -1000, 854, + 26, 393, -1000, -1000, -1000, -1000, -1000, 2550, -1000, 1393, + 1021, 1010, -1000, 1830, -1000, -1000, 1233, -1000, -1000, -1000, + -1000, -1000, 1830, 1830, 1830, -1000, -1000, -1000, -1000, -1000, + 247, 25086, 25086, 25086, 1782, 777, 1891, 1812, 1474, 1231, + 1231, 976, 25086, 976, 25086, 918, 918, 918, 918, 918, + -1000, -1000, -1000, -1000, -1000, -1000, 1692, -1000, 1667, -1000, + 1830, 55508, 1827, 17660, 1747, 1599, 1406, 932, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3935, 1406, + 1851, 1406, 1674, 3902, 1026, -1000, 22860, 1406, 3610, -1000, + -1000, 1406, 1406, 22860, -1000, -1000, 22860, 22860, 22860, 22860, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + 22860, 1538, 1947, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -522, 55856, -1000, 228, - 998, 288, 315, 265, 55856, 367, 2469, 2438, 2433, 2432, - 2429, 2420, 2397, 241, 301, 55856, 55856, 464, 2240, 55856, - 2549, 55856, -1000, -1000, -1000, -1000, -1000, 1632, 1619, -1000, - 1395, 55856, -1000, -1000, 1154, 1154, -1000, -1000, 55856, 1154, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1154, -1000, + -1000, 1938, 2669, 1558, 1538, 1538, 1538, 1538, 3587, 1538, + 1538, 22860, 1358, -1000, -1000, -1000, 1419, 3583, 1684, 3572, + 1538, 1538, -1000, 1538, 3541, 3536, 1406, 2928, 2820, 1538, + 1538, 1538, 1538, 1538, 2792, 2778, 1538, 1538, 2705, 1538, + 3522, 1538, 2698, 2681, 2677, 2633, 2611, 2603, 2594, 2570, + 2561, 2539, 2533, 2523, 2509, 2492, 2458, 2448, 2444, 2407, + 1538, 1538, 1538, 3508, 1538, 3489, 1538, 3485, 1538, 1538, + 3474, 2394, 2364, 1406, 1934, -1000, 3469, 1538, 3457, 3453, + 3446, 2354, 3427, 3422, 3418, 1538, 1538, 1538, 2339, 3413, + 3407, 3395, 3391, 3374, 3369, 3364, 3355, 3343, 1538, 1478, + 1478, 1478, 1478, 1478, 3253, -259, 1538, 1406, -1000, -1000, + -1000, -1000, -1000, 3092, 2333, 3042, 3030, 3011, 3003, 1406, + 1830, 821, -1000, -1000, 1478, 1406, 1406, 1478, 1478, 2995, + 2963, 2957, 2953, 2933, 2834, 1538, 1538, -1000, 1538, 2810, + 2800, 2303, 2290, 1406, -1000, 1478, 56250, -1000, -451, -1000, + -8, 954, 1830, -1000, 38442, 1406, -1000, 4349, -1000, 1168, + -1000, -1000, -1000, -1000, -1000, 35474, 1879, -1000, -1000, -1000, + -1000, 1830, 1762, -1000, -1000, -1000, -1000, 351, 73, 34732, + 890, 890, 123, 1393, 1393, 22860, -1000, -1000, -1000, -1000, + -1000, -1000, 820, 2642, 404, 1830, -1000, 1948, 3576, -1000, + -1000, -1000, 2544, 28054, -1000, -1000, 1830, 1830, 56250, 1939, + 1745, -1000, 819, -1000, 1320, 1933, 13, 24, -1000, -1000, + -1000, -1000, 1393, -1000, 1378, 353, 346, -1000, 437, -1000, + -1000, -1000, -1000, 2343, 81, -1000, -1000, -1000, 912, 351, + -1000, -1000, -1000, -1000, -1000, -1000, 1664, -1000, 1664, -1000, + -1000, -1000, -1000, -1000, 1268, -1000, -1000, -1000, -1000, 1266, + -1000, -1000, 1256, -1000, -1000, 2877, 2183, 486, -1000, -1000, + 958, 1655, -1000, -1000, 2356, 958, 958, 54766, -1000, -1000, + 1783, 2537, 236, 56250, 2203, -1000, 2144, 2144, 2144, -1000, + 2497, -1000, -1000, -1000, -1000, -1000, -1000, -522, 174, 609, + -1000, -1000, -1000, 1389, 54766, 1721, -1000, 224, -1000, 1779, + -1000, 54766, -1000, 1713, 2053, 54766, 54766, -1000, -1000, -1000, + 54766, 1830, -1000, -1000, -1000, -1000, 760, 2471, 319, -1000, + -1000, -283, -1000, -1000, 214, 224, 55508, 54766, 899, -1000, + -1000, -1000, -1000, -1000, -523, 1690, 506, 228, 328, 56250, + 56250, 56250, 56250, 56250, 56250, 800, -1000, -1000, 39, -1000, + -1000, 202, -1000, -1000, 1623, -1000, -1000, -1000, -1000, 202, + -1000, -1000, -1000, -1000, -1000, 275, 478, -1000, 56250, 56250, + 964, -1000, -1000, -1000, -1000, -1000, 1096, -1000, -1000, 1096, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 55856, -1000, -1000, -1000, -1000, 1616, - -1000, 55856, -36, 161, -1000, -1000, 54374, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -119, -1000, 351, 8, - 378, -1000, -1000, -1000, -1000, -1000, 2570, -1000, 1395, 1127, - 1057, -1000, 2048, -1000, -1000, 1239, -1000, -1000, -1000, -1000, - -1000, 2048, 2048, 2048, -1000, -1000, -1000, -1000, -1000, 247, - 24734, 24734, 24734, 1630, 777, 1347, 1801, 1204, 1334, 1334, - 919, 24734, 919, 24734, 922, 922, 922, 922, 922, -1000, - -1000, -1000, -1000, -1000, -1000, 1591, -1000, 1589, -1000, 2048, - 55115, 1932, 17318, 2072, 1735, 1538, 931, -1000, -1000, -1000, + -1000, -1000, 2457, 56250, 20, -490, -1000, -486, 22860, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1666, 749, 1891, 25086, + 25086, 2007, 2007, 25086, -1000, -1000, -1000, 1076, 1076, 33990, + -1000, 25086, 22860, -1000, -1000, 22860, 22860, 22860, 981, -1000, + 22860, 1181, -1000, 22860, -1000, -259, 1478, 1538, 1538, 1538, + 1538, -259, -259, -259, -259, -259, -259, -259, -259, -259, + -259, 1908, -1000, 22860, 22860, 22860, 1406, 334, -1000, -1000, + -1000, -259, 22860, -1000, -1000, 2666, -1000, 22860, -1000, 33990, + 22860, 22860, 22860, -1000, -1000, -1000, 22860, 22860, -1000, -1000, + 22860, -1000, 22860, -1000, -1000, -1000, -1000, -1000, -1000, 22860, + -1000, 22860, -1000, -1000, -1000, 22860, -1000, 22860, -1000, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, -1000, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, -1000, 22860, -1000, 22860, -1000, 22860, + -1000, 22860, 22860, -1000, 22860, 22860, 22860, -1000, 22860, 22860, + 22860, 22860, -1000, -1000, -1000, -1000, 22860, 22860, 22860, 22860, + 22860, 22860, 22860, 22860, 22860, 22860, -1000, -1000, -1000, -1000, + -1000, -1000, 22860, -1000, 39926, 47, -259, 1221, 47, 1221, + 24344, 832, 507, 23602, -1000, 22860, 16912, -1000, -1000, -1000, + -1000, -1000, 22860, 22860, 22860, 22860, 22860, 22860, -1000, -1000, + -1000, 22860, 22860, -1000, 22860, -1000, 22860, -1000, -1000, -1000, + -1000, -1000, 954, -1000, 455, 453, 864, 54766, -1000, -1000, + -1000, -1000, 1930, -1000, 2564, -1000, 2285, 2284, 2659, 2642, + 22118, -1000, 30280, -1000, -1000, 54766, -419, -1000, 2326, 2476, + 890, 890, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13920, + 2569, 22860, 2201, 55508, 223, -1000, 29538, 54766, 55508, 30280, + 30280, 30280, 30280, 30280, -1000, 2242, 2235, -1000, 2254, 2228, + 2313, 56250, -1000, 1686, 1688, -1000, 22860, 32506, 1935, 30280, + -1000, -1000, 30280, 56250, 13172, -1000, -1000, 6, -7, -1000, + -1000, -1000, -1000, 371, -1000, -1000, 1082, 2543, 2338, -1000, + -1000, -1000, -1000, -1000, 1682, -1000, 1676, 1928, 1671, 1662, + 278, -1000, 2067, 2451, 958, 958, -1000, 1254, -1000, 1238, + 1614, 1586, -1000, -1000, -1000, 496, -1000, 56250, 2200, 2195, + 2194, -1000, -540, 1253, 2052, 2012, 22860, 2051, 2615, 1913, + 54766, -1000, -1000, 55508, -1000, 197, -1000, 486, 54766, -1000, + -1000, -1000, 335, 56250, -1000, 7068, -1000, -1000, -1000, 224, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 56250, 233, -1000, + 2047, 1343, -1000, -1000, 2140, -1000, -1000, -1000, -1000, -1000, + 213, 201, 1583, 199, 1547, -1000, 199, -1000, 56250, 928, + 2183, 56250, -1000, -1000, -1000, 1114, 1114, -1000, -1000, 2449, + -1000, 1238, 1538, 25086, 25086, -1000, 900, -1000, -1000, 435, + -229, 2041, 2041, -1000, 2041, 2042, -1000, 2041, 171, 2041, + 154, 2041, -1000, -1000, 1406, 1406, -1000, 1478, 2286, 1439, + 2796, -1000, 1393, 22860, 2715, -1000, -1000, -259, -259, -259, + -259, -259, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -69, 2689, 2637, 1538, -1000, 2039, 2036, -1000, + 1538, 22860, 1538, 1406, 2278, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 2266, 2257, 2249, + 2196, 2175, 2171, 2167, 2163, 2158, 2149, 2145, 2128, 2084, + 2080, 2076, 2062, 1538, 1538, 2058, 1538, 2054, 2048, -1000, + 1393, 1478, 2628, 1478, 1538, 1538, 2527, 337, 1538, 1651, + 1651, 1651, 1651, 1651, 1478, 1478, 1478, 1478, 1538, 54766, + -1000, -259, -1000, -1000, -307, -309, -1000, 1406, -259, 1926, + 25086, 1538, 25086, 25086, 25086, 1538, 1406, -1000, 2043, 2010, + 2270, 1940, 1538, 1832, 1538, 1538, 1538, 1821, -1000, 2535, + 1830, 2535, 1830, 2535, 1647, 1168, 56250, -1000, -1000, -1000, + -1000, 2642, 2639, -1000, 1914, -1000, 73, 639, -1000, 2311, + 2476, -1000, 2610, 2306, 2598, -1000, -1000, -1000, -1000, -1000, + 1393, -1000, 2479, 1916, -1000, 963, 1907, -1000, -1000, 21376, + 1649, 2281, 817, 1647, 1923, 3576, 2136, 2190, 3359, -1000, + -1000, -1000, -1000, 2231, -1000, 2063, -1000, -1000, 2005, -1000, + 1790, 350, 30280, 1877, 1877, -1000, 816, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1100, 7068, 2704, -1000, 1544, -1000, + 1366, 195, 1240, -1000, -1000, 958, 958, -1000, 1028, 1020, + -1000, 56250, 2031, -1000, 351, 1529, 351, 1225, -1000, -1000, + 1215, -1000, -1000, -1000, -1000, 1994, 2562, -1000, -1000, -1000, + -1000, 56250, -1000, 56250, 56250, 56250, 2029, 2595, -1000, 22860, + 2015, 962, 2253, 54766, 54766, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 427, 958, -503, 297, + 294, 958, 958, 958, -541, -1000, -1000, 1639, 1637, -1000, + -205, -1000, 22860, -1000, -1000, -1000, -1000, -1000, 1249, 1249, + 1513, 1500, 1498, -1000, 2005, -1000, -1000, -1000, 1722, -1000, + -1000, -186, 54766, 54766, 54766, 54766, -1000, -1000, -1000, 1187, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3958, 1538, 1958, - 1538, 2351, 3939, 1053, -1000, 22511, 1538, 3935, -1000, -1000, - 1538, 1538, 22511, -1000, -1000, 22511, 22511, 22511, 22511, 1193, - 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 22511, - 1193, 2009, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 900, 1406, 375, -188, 1406, -1000, -1000, 351, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2001, 2693, 1816, 1193, 1193, 1193, 1193, 3914, 1193, 1193, - 22511, 1839, -1000, -1000, -1000, 1460, 3905, 1586, 3606, 1193, - 1193, -1000, 1193, 3578, 3538, 1538, 2890, 2884, 1193, 1193, - 1193, 1193, 1193, 2869, 2859, 1193, 1193, 2823, 1193, 3523, - 1193, 2734, 2712, 2694, 2690, 2645, 2621, 2595, 2591, 2559, - 2527, 2488, 2483, 2478, 2456, 2452, 2447, 2412, 2343, 1193, - 1193, 1193, 3504, 1193, 3492, 1193, 3488, 1193, 1193, 3484, - 2338, 2333, 1538, 1999, -1000, 3480, 1193, 3476, 3472, 3465, - 2328, 3458, 3453, 3414, 1193, 1193, 1193, 2322, 3410, 3404, - 3395, 3390, 3385, 3378, 3367, 3348, 3281, 1193, 1544, 1544, - 1544, 1544, 1544, 3269, -280, 1193, 1538, -1000, -1000, -1000, - -1000, -1000, 3093, 2316, 3071, 3063, 3059, 3049, 1538, 2048, - 809, -1000, -1000, 1544, 1538, 1538, 1544, 1544, 3043, 3025, - 3009, 2993, 2956, 2948, 1193, 1193, -1000, 1193, 2939, 2927, - 2312, 2297, 1538, -1000, 1544, 55856, -1000, -453, -1000, -16, - 889, 2048, -1000, 38072, 1538, -1000, 5684, -1000, 1371, -1000, - -1000, -1000, -1000, -1000, 35108, 1911, -1000, -1000, -1000, -1000, - 2048, 1930, -1000, -1000, -1000, -1000, 318, 58, 34367, 876, - 876, 109, 1395, 1395, 22511, -1000, -1000, -1000, -1000, -1000, - -1000, 807, 2676, 371, 2048, -1000, 2011, 2757, -1000, -1000, - -1000, 2565, 27698, -1000, -1000, 2048, 2048, 55856, 1972, 1937, - -1000, 803, -1000, 1300, 1996, -4, -8, -1000, -1000, -1000, - -1000, 1395, -1000, 1376, 357, 359, -1000, 443, -1000, -1000, - -1000, -1000, 2387, 70, -1000, -1000, -1000, 332, 318, -1000, - -1000, -1000, -1000, -1000, -1000, 1587, -1000, 1587, -1000, -1000, - -1000, -1000, -1000, 1305, -1000, -1000, -1000, -1000, 1304, -1000, - -1000, 1303, -1000, -1000, 2379, 2227, 435, -1000, -1000, 974, - 1585, -1000, -1000, 2391, 974, 974, 54374, -1000, -1000, 1896, - 2546, 228, 55856, 2239, -1000, 2183, 2183, 2183, -1000, 2537, - -1000, -1000, -1000, -1000, -1000, -1000, -524, 175, 361, -1000, - -1000, -1000, 2041, 54374, 1900, -1000, 214, -1000, 1878, -1000, - 54374, -1000, 1877, 2128, 54374, 54374, -1000, -1000, -1000, 54374, - 2048, -1000, -1000, -1000, -1000, 523, 2516, 314, -1000, -1000, - -300, -1000, -1000, 205, 214, 55115, 54374, 882, -1000, -1000, - -1000, -1000, -1000, -525, 1862, 502, 225, 574, 55856, 55856, - 55856, 55856, 55856, 55856, 778, -1000, -1000, 23, -1000, -1000, - 191, -1000, -1000, -1000, -1000, -1000, -1000, 191, -1000, -1000, - -1000, -1000, -1000, 283, 478, -1000, 55856, 55856, 945, -1000, - -1000, -1000, -1000, -1000, 1096, -1000, -1000, 1096, -1000, -1000, + 22860, -1000, 22860, -1000, 22860, 1393, 22860, -1000, -1000, -1000, + -1000, -1000, 2569, 1489, 22860, 22860, -1000, 1211, 1209, -259, + 1538, -1000, -1000, -1000, 22860, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, 22860, -1000, + -1000, 22860, -1000, -1000, -1000, 22860, -1000, 22860, -1000, 22860, + -1000, -1000, -1000, 22860, 264, 1076, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1406, 347, -1000, + -1000, -1000, 2650, -1000, 1406, 22860, 2007, -1000, 2007, 2007, + 2007, -1000, -1000, -1000, 22860, -1000, 22860, 22860, -1000, 22860, + -1000, 22860, -1000, -1000, -1000, -1000, 22860, 1830, 2374, 39184, + 1830, 39184, 1830, 32506, -1000, -1000, 2639, 2596, 2593, 2300, + 2312, 2312, 2311, -1000, 2589, 2587, -1000, 1472, 2585, 1458, + 1006, -1000, 55508, 22860, -1000, 223, 38442, -1000, 403, 54766, + 223, 54766, -1000, 2634, -1000, -1000, 22860, 2014, -1000, 22860, + -1000, -1000, -1000, -1000, 6271, 2642, 1877, -1000, -1000, 922, + -1000, 22860, -1000, 11485, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1453, 1446, -1000, -1000, 2006, 22860, -1000, -1000, + -1000, 1663, 1652, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2005, -1000, -1000, -1000, -1000, 335, -527, 2224, 54766, + 1206, -1000, 1632, 1913, 288, 223, 1432, 958, 958, 958, + 1161, 1152, 38442, 1605, -1000, 54766, 364, -1000, 335, -1000, + -222, -223, 1538, -1000, -1000, 2530, -1000, -1000, 16912, -1000, + -1000, 2003, 2141, -1000, -1000, -1000, -1000, 2264, -179, -200, + -1000, -1000, 1538, 1538, 1538, 1405, 1406, -1000, 1538, 1538, + 1633, 1543, -1000, -1000, 1538, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, + 1538, 1538, 1538, 1538, 1478, 1778, -1000, 264, 1406, 2184, + -1000, -1000, 6271, -1000, -1000, 2634, 2579, 47, -1000, -1000, + 222, 47, 1393, 1032, 1406, 1406, 1032, 1760, 1538, 1660, + 1642, 1538, 1538, 33248, -1000, 2572, 2571, 1542, -1000, -1000, + 39184, 1542, 39184, 954, 2596, -270, 22860, 22860, 2297, 1164, + -1000, -1000, -1000, -1000, 1402, 1390, -1000, 1377, -1000, 2699, + -1000, 1393, -1000, 1830, 223, -1000, 808, 1907, -1000, 2569, + 1393, 54766, 1393, 75, 2634, -1000, 1538, -1000, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, + 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, 1830, -1000, + -1000, 54766, 2180, -1000, -1000, 2529, 1554, 166, -1000, 1475, + 1913, -1000, -1000, 221, -1000, 22860, -1000, 38442, 1374, 1360, + -1000, -1000, -1000, -1000, -541, -1000, -1000, -1000, -1000, -1000, + -1000, 392, 1888, -1000, 957, 54766, 56250, -1000, 2188, -1000, + -1000, -1000, -1000, 22860, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 2484, 55856, 4, -491, -1000, -488, 22511, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1307, 482, 1347, 24734, 24734, 1138, - 1138, 24734, -1000, -1000, -1000, 1149, 1149, 33626, -1000, 24734, - 22511, -1000, -1000, 22511, 22511, 22511, 1010, -1000, 22511, 1295, - -1000, 22511, -1000, -280, 1544, 1193, 1193, 1193, 1193, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, 1976, - -1000, 22511, 22511, 22511, 1538, 295, -1000, -1000, -1000, -280, - 22511, -1000, -1000, 2692, -1000, 22511, -1000, 33626, 22511, 22511, - 22511, -1000, -1000, -1000, 22511, 22511, -1000, -1000, 22511, -1000, - 22511, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511, - -1000, -1000, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000, - 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, - 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, - 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, - 22511, -1000, 22511, -1000, -1000, -1000, 22511, -1000, 22511, -1000, - 22511, -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, - 22511, -1000, 22511, 22511, 22511, -1000, 22511, 22511, 22511, 22511, - -1000, -1000, -1000, -1000, 22511, 22511, 22511, 22511, 22511, 22511, - 22511, 22511, 22511, 22511, -1000, -1000, -1000, -1000, -1000, -1000, - 22511, -1000, 39554, 0, -280, 1351, 0, 1351, 23993, 823, - 784, 23252, -1000, 22511, 16571, -1000, -1000, -1000, -1000, -1000, - 22511, 22511, 22511, 22511, 22511, 22511, -1000, -1000, -1000, 22511, - 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000, -1000, -1000, - 889, -1000, 458, 456, 847, 54374, -1000, -1000, -1000, -1000, - 1989, -1000, 2609, -1000, 2317, 2313, 2684, 2676, 21770, -1000, - 29921, -1000, -1000, 54374, -442, -1000, 2354, 2401, 876, 876, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 13583, 2590, 22511, - 2221, 55115, 223, -1000, 29180, 54374, 55115, 29921, 29921, 29921, - 29921, 29921, -1000, 2255, 2252, -1000, 2264, 2263, 2582, 55856, - -1000, 1638, 1845, -1000, 22511, 32144, 1936, 29921, -1000, -1000, - 29921, 55856, 12836, -1000, -1000, 2, -21, -1000, -1000, -1000, - -1000, 1021, -1000, -1000, 1225, 2562, 2375, -1000, -1000, -1000, - -1000, -1000, 1813, -1000, 1777, 1986, 1769, 1753, 286, -1000, - 2172, 2479, 974, 974, -1000, 1301, -1000, 1253, 1584, 1567, - -1000, -1000, -1000, 499, -1000, 55856, 2220, 2217, 2213, -1000, - -539, 1299, 2124, 2171, 22511, 2120, 2652, 1968, 54374, -1000, - -1000, 55115, -1000, 272, -1000, 435, 54374, -1000, -1000, -1000, - 328, 55856, -1000, 5160, -1000, -1000, -1000, 214, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 55856, 242, -1000, 2115, 1374, - -1000, -1000, 2179, -1000, -1000, -1000, -1000, -1000, 188, 187, - 1563, 184, 1557, 184, -1000, 55856, 873, 2227, 55856, -1000, - -1000, -1000, 1154, 1154, -1000, -1000, 2422, -1000, 1253, 1193, - 24734, 24734, -1000, 904, -1000, -1000, 409, -258, 2102, 2102, - -1000, 2102, 2106, -1000, 2102, 144, 2102, 138, 2102, -1000, - -1000, 1538, 1538, -1000, 1544, 2293, 1555, 2923, -1000, 1395, - 22511, 2819, -1000, -1000, -280, -280, -280, -280, -280, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -82, - 2719, 2699, 1193, -1000, 2101, 2100, -1000, 1193, 22511, 1193, - 1538, 2249, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1193, 1193, 1193, 1193, 2232, 2226, 2222, 2218, 2203, 2180, - 2155, 2138, 2117, 2085, 2053, 2037, 2030, 2017, 2002, 1964, - 1193, 1193, 1953, 1193, 1928, 1918, -1000, 1395, 1544, 2551, - 1544, 1193, 1193, 2521, 306, 1193, 1749, 1749, 1749, 1749, - 1749, 1544, 1544, 1544, 1544, 1193, 54374, -1000, -280, -1000, - -1000, -332, -383, -1000, 1538, -280, 1970, 24734, 1193, 24734, - 24734, 24734, 1193, 1538, -1000, 1796, 1775, 2508, 1771, 1193, - 2460, 1193, 1193, 1193, 1759, -1000, 2561, 2048, 2561, 2048, - 2561, 1741, 1371, 55856, -1000, -1000, -1000, -1000, 2676, 2673, - -1000, 1969, -1000, 58, 622, -1000, 2331, 2401, -1000, 2647, - 2346, 2646, -1000, -1000, -1000, -1000, -1000, 1395, -1000, 2509, - 1915, -1000, 979, 1949, -1000, -1000, 21029, 1745, 2307, 800, - 1741, 1998, 2757, 2181, 2211, 3075, -1000, -1000, -1000, -1000, - 2237, -1000, 2228, -1000, -1000, 2052, -1000, 2417, 354, 29921, - 1944, 1944, -1000, 799, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1207, 5160, 2736, -1000, 1552, -1000, 1373, 194, 1293, - -1000, -1000, 974, 974, -1000, 1085, 1083, -1000, 55856, 2099, - -1000, 318, 1545, 318, 1290, -1000, -1000, 1276, -1000, -1000, - -1000, -1000, 2045, 2451, -1000, -1000, -1000, -1000, 55856, -1000, - 55856, 55856, 55856, 2069, 2644, -1000, 22511, 2068, 976, 2347, - 54374, 54374, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 442, 974, -503, 289, 287, 974, 974, - 974, -543, -1000, -1000, 1728, 1726, -1000, -219, -1000, 22511, - -1000, -1000, -1000, -1000, -1000, 1272, 1272, 1540, 1534, 1525, - -1000, 2052, -1000, -1000, -1000, 1873, -1000, -1000, -198, 54374, - 54374, 54374, 54374, -1000, -1000, -1000, 1252, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 904, - 1538, 344, -203, 1538, -1000, -1000, 318, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511, - -1000, 22511, 1395, 22511, -1000, -1000, -1000, -1000, -1000, 2590, - 1522, 22511, 22511, -1000, 1275, 1268, -280, 1193, -1000, -1000, - -1000, 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 22511, -1000, 22511, -1000, 22511, - -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, - -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 22511, - -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, 22511, -1000, - -1000, -1000, 22511, -1000, 22511, -1000, 22511, -1000, -1000, -1000, - 22511, 203, 1149, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1538, 346, -1000, -1000, -1000, 2679, - -1000, 1538, 22511, 1138, -1000, 1138, 1138, 1138, -1000, -1000, - -1000, 22511, -1000, 22511, 22511, -1000, 22511, -1000, 22511, -1000, - -1000, -1000, -1000, 22511, 2048, 2332, 38813, 2048, 38813, 2048, - 32144, -1000, -1000, 2673, 2669, 2643, 2337, 2340, 2340, 2331, - -1000, 2635, 2627, -1000, 1520, 2623, 1497, 1076, -1000, 55115, - 22511, -1000, 223, 38072, -1000, 384, 54374, 223, 54374, -1000, - 2610, -1000, -1000, 22511, 2061, -1000, 22511, -1000, -1000, -1000, - -1000, 6276, 2676, 1944, -1000, -1000, 928, -1000, 22511, -1000, - 10932, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1495, - 1485, -1000, -1000, 2057, 22511, -1000, -1000, -1000, 1742, 1729, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2052, -1000, - -1000, -1000, -1000, 328, -535, 2212, 54374, 1260, -1000, 1706, - 1968, 310, 223, 1467, 974, 974, 974, 1257, 1255, 38072, - 1699, -1000, 54374, 425, -1000, 328, -1000, -242, -244, 1193, - -1000, -1000, 2560, -1000, -1000, 16571, -1000, -1000, 2051, 2182, - -1000, -1000, -1000, -1000, 2292, -190, -227, -1000, -1000, 1193, - 1193, 1193, 1751, 1538, -1000, 1193, 1193, 1681, 1610, -1000, - -1000, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1193, 1544, 1708, -1000, 203, 1538, 2202, -1000, -1000, 6276, - -1000, -1000, 2610, 2622, 0, -1000, -1000, 221, 0, 1395, - 1019, 1538, 1538, 1019, 1680, 1193, 1635, 1560, 1193, 1193, - 32885, -1000, 2619, 2603, 1686, -1000, -1000, 38813, 1686, 38813, - 889, 2669, -290, 22511, 22511, 2335, 1269, -1000, -1000, -1000, - -1000, 1455, 1451, -1000, 1447, -1000, 2727, -1000, 1395, -1000, - 2048, 223, -1000, 794, 1949, -1000, 2590, 1395, 54374, 1395, - 54, 2610, -1000, 1193, -1000, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, 2048, - 2048, 2048, 2048, 2048, 2048, 2048, -1000, -1000, 54374, 1570, - -1000, -1000, 2554, 1696, 166, -1000, 1549, 1968, -1000, -1000, - 216, -1000, 22511, -1000, 38072, 1426, 1385, -1000, -1000, -1000, - -1000, -543, -1000, -1000, -1000, -1000, -1000, -1000, 380, 1966, - -1000, 959, 54374, 55856, -1000, 2282, -1000, -1000, -1000, -1000, - 22511, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 22511, -1000, - 1538, 2200, -1000, -377, -1000, -504, 22511, -280, -1000, -1000, - -280, -1000, -1000, -1000, -1000, -1000, 22511, -1000, -1000, 22511, - -1000, 22511, -1000, -1000, 1686, -1000, -1000, -1000, 37331, -1000, - 1686, -1000, 1686, -1000, -290, -1000, 1963, -1000, 54374, 1395, - 375, -1000, 1267, -1000, -1000, -1000, -1000, -1000, 55115, 54374, - 1949, 54374, -1000, -1000, 1684, 1538, 2048, 2590, -1000, 1660, - -1000, 380, -1000, 2050, 2171, -1000, -1000, -1000, 20288, -1000, - -1000, -1000, -1000, -1000, 262, -197, 16571, 12089, 1609, -1000, - -196, 1193, 1544, -1000, -477, -1000, -1000, -1000, -1000, 279, - -1000, -1000, 1958, -1000, -1000, 1548, 1537, 1475, -1000, -1000, - -1000, -1000, -1000, -1000, -290, -1000, -1000, 2553, -1000, -254, - -1000, -1000, 1952, 1529, -1000, -1000, -1000, 32144, 53633, -1000, - -184, 382, -197, 22511, 2049, 1538, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -39, -1000, -1000, 772, -1000, -1000, - -1000, 2179, -216, -1000, -1000, -1000, 307, -494, -288, -296, - 24734, -1000, 22511, -1000, 22511, -1000, 22511, -1000, 54374, 2048, - -1000, -1000, -1000, 1483, -1000, 4202, -401, 2195, -1000, -145, - -1000, -1000, -1000, 1203, 1364, -1000, -1000, -1000, -1000, -1000, - -1000, 1414, 54374, -1000, 436, -1000, -1000, 15824, -198, -233, - 1020, -1000, -1000, -1000, -1000, -1000, 1138, 1466, 1357, 1193, - -1000, 54374, -1000, 53633, -395, 882, 6276, -1000, 2193, 2190, - 2704, -1000, -1000, -1000, -1000, -1000, -1000, -549, 1464, 244, - -1000, -1000, -1000, 307, -314, -1000, 22511, -1000, 22511, -1000, - 1538, -1000, -1000, 2535, 54, -1000, 2724, -1000, 2691, 1031, - 1031, -1000, 1242, -549, -1000, -1000, -1000, -1000, 1193, 1193, - -1000, -403, -1000, -1000, -1000, -1000, -1000, 433, 1281, -1000, - -1000, -1000, -1000, -1000, 6276, -1000, -1000, -1000, 204, 204, - -1000, -1000, + -1000, 22860, -1000, 1406, 2181, -1000, -375, -1000, -504, 22860, + -259, -1000, -1000, -259, -1000, -1000, -1000, -1000, -1000, 22860, + -1000, -1000, 22860, -1000, 22860, -1000, -1000, 1542, -1000, -1000, + -1000, 37700, -1000, 1542, -1000, 1542, -1000, -270, -1000, 1882, + -1000, 54766, 1393, 345, -1000, 1162, -1000, -1000, -1000, -1000, + -1000, 55508, 54766, 1907, 54766, -1000, -1000, 1508, 1406, 1830, + 2569, -1000, 1482, -1000, 392, -1000, 2002, 2012, -1000, -1000, + -1000, 20634, -1000, -1000, -1000, -1000, -1000, 249, -185, 16912, + 12424, 1480, -1000, -184, 1538, 1478, -1000, -479, -1000, -1000, + -1000, -1000, 279, -1000, -1000, 1851, -1000, -1000, 1621, 1527, + 1444, -1000, -1000, -1000, -1000, -1000, -1000, -270, -1000, -1000, + 2525, -1000, -226, -1000, -1000, 1367, 1442, -1000, -1000, -1000, + 32506, 54024, -1000, -171, 293, -185, 22860, 1995, 1406, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -52, -1000, -1000, + 799, -1000, -1000, -1000, 2140, -189, -1000, -1000, -1000, 284, + -494, -291, -292, 25086, -1000, 22860, -1000, 22860, -1000, 22860, + -1000, 54766, 1830, -1000, -1000, -1000, 1426, -1000, 4978, -334, + 2177, -1000, -126, -1000, -1000, -1000, 1042, 1359, -1000, -1000, + -1000, -1000, -1000, -1000, 1936, 54766, -1000, 446, -1000, -1000, + 16164, -186, -201, 1000, -1000, -1000, -1000, -1000, -1000, 2007, + 1365, 1353, 1538, -1000, 54766, -1000, 54024, -314, 899, 6271, + -1000, 2164, 2159, 2656, -1000, -1000, -1000, -1000, -1000, -1000, + -544, 1356, 243, -1000, -1000, -1000, 284, -338, -1000, 22860, + -1000, 22860, -1000, 1406, -1000, -1000, 2494, 75, -1000, 2658, + -1000, 2643, 1016, 1016, -1000, 1136, -544, -1000, -1000, -1000, + -1000, 1538, 1538, -1000, -354, -1000, -1000, -1000, -1000, -1000, + 440, 1275, -1000, -1000, -1000, -1000, -1000, 6271, -1000, -1000, + -1000, 263, 263, -1000, -1000, } var yyPgo = [...]int{ - 0, 3435, 3430, 31, 7, 40, 39, 3428, 3426, 3423, - 171, 3421, 3420, 3419, 3411, 3410, 3407, 2789, 2782, 2755, - 3406, 3404, 3400, 3393, 3392, 3391, 3390, 3383, 3381, 27, - 114, 100, 101, 212, 192, 3380, 169, 161, 198, 3378, - 3373, 3372, 125, 182, 82, 81, 187, 3370, 3369, 68, - 3368, 3353, 3284, 180, 179, 177, 1100, 3282, 176, 111, - 47, 3279, 3277, 3275, 3274, 3268, 3261, 3260, 3258, 3257, - 3256, 3254, 3252, 3251, 3247, 3244, 3242, 3240, 3229, 308, - 3228, 3225, 16, 3223, 73, 3220, 3213, 3210, 3208, 3206, - 9, 3203, 3201, 32, 41, 55, 3197, 3195, 44, 3194, - 3193, 3192, 3191, 3187, 79, 3185, 14, 3184, 35, 3183, - 3179, 124, 3177, 3176, 3174, 42, 3173, 3171, 3170, 11, - 162, 3169, 3166, 138, 3163, 3158, 3147, 164, 221, 3144, - 2357, 3143, 93, 3142, 3141, 3140, 160, 191, 3138, 120, - 3137, 3136, 3135, 148, 3128, 3300, 3126, 3124, 67, 62, - 168, 3123, 3117, 201, 80, 8, 3116, 22, 23, 3115, - 3114, 72, 61, 3113, 98, 3110, 3108, 94, 99, 3107, - 109, 90, 3106, 3099, 10, 5, 3098, 1, 4, 2, - 115, 3091, 3088, 108, 3087, 3086, 3084, 97, 3081, 3077, - 4382, 3071, 83, 129, 96, 64, 3070, 170, 165, 3069, - 3068, 3065, 3064, 3059, 3058, 49, 3054, 3051, 3050, 136, - 1270, 116, 3049, 145, 352, 51, 146, 3048, 193, 75, - 3042, 163, 3041, 3038, 133, 132, 3031, 3030, 53, 166, - 197, 3028, 92, 128, 117, 183, 91, 130, 3027, 3026, - 59, 58, 3011, 3008, 2993, 2985, 167, 2983, 2982, 63, - 2977, 56, 2973, 195, 2967, 340, 77, 2964, 185, 158, - 2963, 66, 2949, 2948, 85, 95, 57, 29, 2946, 153, - 159, 126, 178, 2945, 2944, 52, 2941, 2939, 2938, 190, - 319, 2930, 2928, 323, 174, 140, 144, 87, 2925, 266, - 2923, 2917, 2913, 19, 5078, 7104, 181, 17, 155, 2912, - 2904, 8002, 48, 43, 13, 2897, 211, 2896, 194, 2892, - 2891, 2881, 203, 208, 105, 156, 54, 2880, 2879, 2878, - 2876, 71, 2870, 2869, 2866, 2862, 2860, 2859, 38, 37, - 36, 70, 196, 60, 25, 89, 154, 149, 65, 2858, - 2857, 2851, 121, 78, 2848, 152, 151, 123, 104, 2844, - 175, 141, 118, 2841, 102, 34, 2837, 2829, 2828, 2826, - 84, 2825, 2824, 2822, 2821, 150, 142, 119, 74, 2820, - 76, 113, 147, 143, 50, 2817, 45, 2814, 2812, 33, - 184, 28, 2811, 21, 106, 110, 2807, 6623, 2805, 12, - 265, 157, 2804, 2802, 15, 18, 6, 2799, 2797, 2794, - 2793, 131, 2788, 2784, 2783, 2775, 26, 46, 24, 20, - 112, 137, 69, 2773, 2761, 139, 2760, 2759, 2754, 0, - 1040, 127, 2722, 204, + 0, 3243, 3242, 31, 6, 37, 36, 3240, 3239, 3238, + 174, 3237, 3235, 3224, 3223, 3222, 3221, 2754, 2745, 2728, + 3220, 3219, 3218, 3215, 3213, 3211, 3210, 3209, 3208, 38, + 116, 91, 104, 201, 213, 3205, 170, 161, 197, 3203, + 3202, 3201, 115, 187, 84, 92, 195, 3200, 3199, 71, + 3196, 3194, 3192, 190, 189, 188, 1092, 3190, 184, 114, + 48, 3189, 3187, 3184, 3182, 3179, 3178, 3176, 3174, 3173, + 3172, 3170, 3169, 3168, 3165, 3163, 3162, 3161, 3160, 285, + 3157, 3155, 12, 3154, 73, 3153, 3152, 3149, 3147, 3146, + 8, 3140, 3139, 26, 45, 63, 3136, 3134, 44, 3132, + 3131, 3129, 3125, 3124, 72, 3123, 27, 3121, 40, 3120, + 3117, 124, 3115, 3111, 3105, 42, 3104, 3100, 3098, 28, + 169, 3097, 3094, 140, 3093, 3092, 3087, 167, 205, 3085, + 2265, 3082, 99, 3080, 3079, 3077, 166, 193, 3076, 125, + 3074, 3073, 3072, 152, 3068, 3263, 3066, 3065, 59, 80, + 164, 3064, 3062, 199, 79, 54, 3061, 17, 19, 3060, + 3058, 67, 70, 3057, 108, 3056, 3054, 103, 77, 3052, + 105, 102, 3051, 3050, 5, 7, 3048, 1, 4, 2, + 83, 3047, 3044, 119, 3041, 3040, 3039, 101, 3037, 3035, + 4407, 3031, 93, 130, 106, 76, 3028, 171, 132, 3027, + 3026, 3022, 3021, 3016, 2985, 49, 2984, 2983, 2982, 136, + 22, 110, 2981, 146, 346, 51, 147, 2978, 196, 78, + 2977, 172, 2971, 2969, 134, 133, 2968, 2962, 58, 168, + 194, 2960, 96, 129, 120, 176, 95, 135, 2954, 2946, + 56, 62, 2944, 2943, 2940, 2939, 181, 2935, 2929, 61, + 2927, 53, 2925, 182, 2924, 306, 69, 2922, 180, 162, + 2921, 60, 2919, 2918, 68, 100, 55, 39, 2914, 157, + 160, 127, 165, 2913, 2912, 52, 2905, 2899, 2894, 200, + 301, 2891, 2890, 329, 183, 143, 149, 85, 2887, 323, + 2886, 2885, 2884, 16, 5094, 7550, 186, 25, 159, 2883, + 2882, 8334, 20, 43, 24, 2872, 210, 2869, 185, 2867, + 2866, 2865, 211, 207, 112, 158, 57, 2864, 2859, 2857, + 2856, 64, 2855, 2850, 2849, 2848, 2847, 2846, 35, 34, + 33, 75, 218, 65, 21, 98, 156, 151, 66, 2843, + 2841, 2839, 123, 90, 2835, 155, 153, 126, 163, 2829, + 175, 142, 117, 2823, 87, 32, 2822, 2821, 2819, 2818, + 89, 2813, 2810, 2806, 2805, 150, 144, 121, 81, 2803, + 82, 118, 148, 145, 50, 2799, 46, 2798, 2797, 30, + 191, 29, 2787, 13, 111, 109, 2780, 6691, 2779, 9, + 305, 154, 2776, 2775, 10, 11, 14, 2772, 2771, 2770, + 2769, 131, 2768, 2765, 2763, 2761, 23, 47, 18, 15, + 113, 137, 74, 2760, 2746, 141, 2732, 2727, 2722, 0, + 1034, 128, 2721, 202, } -//line sql.y:8755 +//line sql.y:8764 type yySymType struct { union any empty struct{} @@ -8594,63 +8636,63 @@ var yyR1 = [...]int{ 43, 43, 43, 43, 43, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 111, 111, - 112, 112, 112, 112, 114, 114, 114, 375, 375, 60, - 60, 3, 3, 173, 175, 176, 176, 174, 174, 174, - 174, 174, 174, 62, 62, 61, 61, 178, 177, 179, - 179, 179, 1, 1, 2, 2, 4, 4, 380, 380, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 111, + 111, 112, 112, 112, 112, 114, 114, 114, 375, 375, + 60, 60, 3, 3, 173, 175, 176, 176, 174, 174, + 174, 174, 174, 174, 62, 62, 61, 61, 178, 177, + 179, 179, 179, 1, 1, 2, 2, 4, 4, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, - 341, 341, 341, 374, 374, 376, 113, 113, 113, 113, - 113, 113, 113, 113, 113, 113, 117, 116, 116, 115, - 118, 118, 118, 118, 118, 118, 118, 118, 378, 378, - 378, 63, 63, 379, 328, 329, 330, 5, 6, 355, - 377, 125, 125, 24, 39, 39, 25, 25, 25, 25, - 26, 26, 64, 67, 67, 65, 65, 65, 65, 65, + 380, 341, 341, 341, 374, 374, 376, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 117, 116, 116, + 115, 118, 118, 118, 118, 118, 118, 118, 118, 378, + 378, 378, 63, 63, 379, 328, 329, 330, 5, 6, + 355, 377, 125, 125, 24, 39, 39, 25, 25, 25, + 25, 26, 26, 64, 67, 67, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 292, 292, 281, 281, 290, 290, 280, 280, 306, - 306, 306, 283, 283, 283, 284, 284, 403, 403, 403, - 277, 277, 66, 66, 66, 307, 307, 307, 307, 69, - 69, 413, 413, 414, 414, 415, 415, 415, 70, 71, - 71, 310, 310, 311, 311, 72, 73, 85, 85, 85, - 85, 85, 86, 86, 86, 86, 86, 86, 110, 110, - 110, 10, 10, 10, 10, 81, 81, 81, 9, 9, - 11, 68, 68, 75, 400, 400, 401, 402, 402, 402, - 402, 76, 78, 27, 27, 27, 27, 27, 27, 135, - 135, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 130, 130, 130, 124, 124, 422, 79, - 80, 80, 128, 128, 128, 121, 121, 121, 127, 127, - 127, 12, 12, 13, 263, 263, 14, 14, 134, 134, - 133, 133, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 131, 131, 132, 132, 132, 132, 299, - 299, 299, 298, 298, 167, 167, 169, 168, 168, 170, - 170, 171, 171, 171, 171, 217, 217, 193, 193, 256, - 256, 257, 257, 255, 255, 262, 262, 258, 258, 258, - 258, 265, 265, 172, 172, 172, 172, 180, 180, 181, - 181, 182, 182, 309, 309, 304, 304, 304, 303, 303, - 186, 186, 186, 188, 187, 187, 187, 187, 189, 189, - 191, 191, 190, 190, 192, 197, 197, 196, 196, 194, - 194, 194, 194, 194, 194, 195, 195, 195, 195, 198, - 198, 145, 145, 145, 145, 145, 145, 145, 145, 411, - 411, 159, 159, 159, 159, 159, 159, 159, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 246, - 246, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 153, 153, 153, 153, + 65, 65, 292, 292, 281, 281, 290, 290, 280, 280, + 306, 306, 306, 283, 283, 283, 284, 284, 403, 403, + 403, 277, 277, 66, 66, 66, 307, 307, 307, 307, + 69, 69, 413, 413, 414, 414, 415, 415, 415, 70, + 71, 71, 310, 310, 311, 311, 72, 73, 85, 85, + 85, 85, 85, 86, 86, 86, 86, 86, 86, 110, + 110, 110, 10, 10, 10, 10, 81, 81, 81, 9, + 9, 11, 68, 68, 75, 400, 400, 401, 402, 402, + 402, 402, 76, 78, 27, 27, 27, 27, 27, 27, + 135, 135, 123, 123, 123, 123, 123, 123, 123, 123, + 123, 123, 123, 123, 130, 130, 130, 124, 124, 422, + 79, 80, 80, 128, 128, 128, 121, 121, 121, 127, + 127, 127, 12, 12, 13, 263, 263, 14, 14, 134, + 134, 133, 133, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 131, 131, 132, 132, 132, 132, + 299, 299, 299, 298, 298, 167, 167, 169, 168, 168, + 170, 170, 171, 171, 171, 171, 217, 217, 193, 193, + 256, 256, 257, 257, 255, 255, 262, 262, 258, 258, + 258, 258, 265, 265, 172, 172, 172, 172, 180, 180, + 181, 181, 182, 182, 309, 309, 304, 304, 304, 303, + 303, 186, 186, 186, 188, 187, 187, 187, 187, 189, + 189, 191, 191, 190, 190, 192, 197, 197, 196, 196, + 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, + 198, 198, 145, 145, 145, 145, 145, 145, 145, 145, + 411, 411, 159, 159, 159, 159, 159, 159, 159, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 246, 246, 150, 150, 150, 150, 150, 150, 150, 150, + 150, 150, 150, 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 222, 222, 221, 221, 87, 87, 87, 88, 88, - 89, 89, 89, 89, 89, 90, 90, 90, 90, 90, - 90, 90, 92, 92, 91, 91, 212, 212, 296, 296, - 93, 94, 94, 95, 95, 98, 98, 97, 96, 96, - 102, 102, 99, 99, 101, 101, 100, 103, 103, 104, - 105, 105, 278, 278, 199, 199, 208, 208, 208, 208, - 200, 200, 201, 201, 201, 201, 201, 201, 209, 209, - 209, 216, 210, 210, 206, 206, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, + 153, 153, 222, 222, 221, 221, 87, 87, 87, 88, + 88, 89, 89, 89, 89, 89, 90, 90, 90, 90, + 90, 90, 90, 92, 92, 91, 91, 212, 212, 296, + 296, 93, 94, 94, 95, 95, 98, 98, 97, 96, + 96, 102, 102, 99, 99, 101, 101, 100, 103, 103, + 104, 105, 105, 278, 278, 199, 199, 208, 208, 208, + 208, 200, 200, 201, 201, 201, 201, 201, 201, 209, + 209, 209, 216, 210, 210, 206, 206, 204, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, @@ -8670,36 +8712,36 @@ var yyR1 = [...]int{ 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, - 164, 164, 164, 164, 227, 227, 151, 151, 151, 151, + 205, 164, 164, 164, 164, 227, 227, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, - 151, 152, 152, 165, 165, 165, 165, 166, 166, 166, - 166, 166, 166, 166, 317, 317, 119, 119, 119, 119, + 151, 151, 152, 152, 165, 165, 165, 165, 166, 166, + 166, 166, 166, 166, 166, 317, 317, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, - 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, + 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 423, 423, 332, 332, 332, 207, - 207, 207, 207, 207, 126, 126, 126, 126, 126, 314, - 314, 314, 318, 318, 318, 316, 316, 316, 316, 316, + 120, 120, 120, 120, 120, 423, 423, 332, 332, 332, + 207, 207, 207, 207, 207, 126, 126, 126, 126, 126, + 314, 314, 314, 318, 318, 318, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 319, 319, 225, 225, 122, 122, 223, 223, 224, 226, - 226, 218, 218, 218, 218, 220, 220, 203, 203, 203, - 228, 228, 320, 320, 229, 229, 106, 107, 107, 108, - 108, 230, 230, 232, 231, 231, 233, 234, 234, 234, - 235, 235, 236, 236, 236, 49, 49, 49, 49, 49, - 44, 44, 44, 44, 45, 45, 45, 45, 137, 137, - 137, 137, 139, 139, 138, 138, 82, 82, 83, 83, - 83, 143, 143, 144, 144, 144, 141, 141, 142, 142, - 253, 253, 253, 253, 253, 253, 253, 237, 237, 237, - 244, 244, 244, 240, 240, 242, 242, 242, 243, 243, - 243, 241, 250, 250, 252, 252, 251, 251, 247, 247, - 248, 248, 249, 249, 249, 245, 245, 202, 202, 202, - 202, 202, 254, 254, 254, 254, 308, 308, 308, 266, - 266, 213, 213, 215, 215, 214, 214, 163, 267, 267, - 275, 272, 272, 273, 273, 300, 300, 300, 276, 276, - 289, 289, 285, 285, 286, 286, 279, 279, 291, 291, - 291, 77, 211, 211, 371, 371, 368, 295, 295, 297, - 297, 301, 301, 305, 305, 302, 302, 8, 416, 416, - 416, 293, 293, 293, 293, 293, 293, 293, 293, 293, + 316, 319, 319, 225, 225, 122, 122, 223, 223, 224, + 226, 226, 218, 218, 218, 218, 220, 220, 203, 203, + 203, 228, 228, 320, 320, 229, 229, 106, 107, 107, + 108, 108, 230, 230, 232, 231, 231, 233, 234, 234, + 234, 235, 235, 236, 236, 236, 49, 49, 49, 49, + 49, 44, 44, 44, 44, 45, 45, 45, 45, 137, + 137, 137, 137, 139, 139, 138, 138, 82, 82, 83, + 83, 83, 143, 143, 144, 144, 144, 141, 141, 142, + 142, 253, 253, 253, 253, 253, 253, 253, 237, 237, + 237, 244, 244, 244, 240, 240, 242, 242, 242, 243, + 243, 243, 241, 250, 250, 252, 252, 251, 251, 247, + 247, 248, 248, 249, 249, 249, 245, 245, 202, 202, + 202, 202, 202, 254, 254, 254, 254, 308, 308, 308, + 266, 266, 213, 213, 215, 215, 214, 214, 163, 267, + 267, 275, 272, 272, 273, 273, 300, 300, 300, 276, + 276, 289, 289, 285, 285, 286, 286, 279, 279, 291, + 291, 291, 77, 211, 211, 371, 371, 368, 295, 295, + 297, 297, 301, 301, 305, 305, 302, 302, 8, 416, + 416, 416, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, @@ -8714,7 +8756,7 @@ var yyR1 = [...]int{ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, - 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, + 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, @@ -8762,7 +8804,7 @@ var yyR1 = [...]int{ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, - 294, 419, 420, 312, 313, 313, 313, + 294, 294, 294, 419, 420, 312, 313, 313, 313, } var yyR2 = [...]int{ @@ -8826,111 +8868,111 @@ var yyR2 = [...]int{ 3, 3, 3, 2, 2, 3, 4, 4, 2, 11, 3, 6, 8, 6, 6, 6, 13, 8, 6, 6, 10, 7, 5, 5, 5, 5, 7, 5, 5, 5, - 5, 5, 7, 7, 5, 5, 5, 5, 0, 6, - 5, 6, 4, 5, 0, 8, 9, 0, 3, 0, - 1, 0, 3, 8, 4, 1, 3, 3, 6, 7, - 7, 8, 4, 0, 1, 0, 1, 3, 3, 1, - 1, 2, 1, 1, 0, 2, 0, 2, 5, 3, - 7, 4, 4, 4, 4, 3, 3, 3, 7, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, - 0, 2, 2, 1, 3, 2, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 1, 3, 3, - 0, 2, 2, 2, 2, 2, 2, 2, 4, 4, - 3, 0, 1, 4, 3, 4, 4, 3, 3, 3, - 2, 1, 3, 3, 3, 5, 7, 7, 6, 5, - 3, 2, 4, 5, 5, 3, 3, 7, 3, 3, - 3, 3, 4, 7, 5, 2, 4, 4, 4, 4, - 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, - 4, 2, 2, 4, 4, 4, 4, 4, 2, 3, - 3, 3, 3, 3, 5, 2, 3, 3, 2, 3, - 4, 4, 4, 3, 4, 4, 5, 3, 5, 3, - 5, 0, 1, 0, 1, 0, 1, 1, 1, 0, - 2, 2, 0, 2, 2, 0, 2, 0, 1, 1, - 1, 1, 2, 1, 3, 1, 1, 1, 1, 1, - 3, 0, 1, 1, 3, 3, 2, 2, 1, 1, - 5, 0, 1, 0, 1, 2, 3, 0, 3, 3, - 3, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 4, 4, - 4, 2, 2, 3, 1, 3, 2, 1, 2, 1, - 2, 2, 4, 3, 3, 6, 4, 7, 6, 1, - 3, 2, 2, 2, 2, 1, 1, 1, 3, 2, - 1, 1, 1, 0, 1, 1, 0, 3, 0, 2, - 0, 2, 1, 2, 2, 0, 1, 1, 0, 1, - 1, 5, 5, 4, 0, 2, 4, 4, 0, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 2, 3, 5, 0, - 1, 2, 1, 1, 0, 1, 2, 1, 3, 1, - 1, 1, 4, 3, 1, 1, 2, 3, 7, 0, - 3, 0, 1, 1, 3, 1, 3, 1, 1, 3, - 3, 1, 3, 4, 4, 4, 3, 2, 4, 0, - 1, 0, 2, 0, 1, 0, 1, 2, 1, 1, - 1, 2, 2, 1, 2, 3, 2, 3, 2, 2, - 2, 1, 1, 3, 3, 0, 1, 1, 2, 6, - 5, 6, 6, 5, 5, 0, 2, 3, 3, 0, - 2, 3, 3, 3, 2, 3, 1, 3, 6, 1, - 1, 3, 4, 3, 4, 4, 4, 1, 3, 4, - 5, 6, 3, 4, 5, 6, 3, 4, 1, 1, - 1, 3, 3, 3, 3, 3, 3, 5, 5, 3, - 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, - 3, 1, 1, 1, 2, 2, 2, 2, 1, 1, - 2, 7, 7, 6, 6, 2, 2, 5, 6, 3, - 3, 1, 3, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, - 2, 4, 0, 1, 2, 5, 0, 3, 0, 1, - 4, 4, 2, 1, 0, 0, 1, 1, 2, 2, - 1, 1, 2, 2, 0, 1, 1, 1, 1, 5, - 1, 3, 0, 3, 1, 1, 1, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 4, 6, 4, 4, 8, 8, - 6, 8, 6, 5, 4, 10, 2, 2, 1, 2, - 2, 2, 2, 2, 5, 6, 6, 6, 6, 6, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 8, 4, 8, 8, 6, 5, 4, 4, 4, 5, - 7, 4, 4, 7, 4, 4, 6, 6, 6, 8, - 6, 6, 4, 4, 3, 4, 6, 6, 4, 4, - 6, 4, 6, 4, 4, 4, 4, 4, 4, 6, - 4, 6, 4, 4, 4, 6, 4, 6, 4, 4, - 6, 4, 6, 4, 6, 8, 4, 6, 8, 4, + 5, 5, 7, 7, 5, 5, 5, 5, 6, 0, + 6, 5, 6, 4, 5, 0, 8, 9, 0, 3, + 0, 1, 0, 3, 8, 4, 1, 3, 3, 6, + 7, 7, 8, 4, 0, 1, 0, 1, 3, 3, + 1, 1, 2, 1, 1, 0, 2, 0, 2, 5, + 3, 7, 4, 4, 4, 4, 3, 3, 3, 7, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 2, 0, 2, 2, 1, 3, 2, 0, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 1, 3, + 3, 0, 2, 2, 2, 2, 2, 2, 2, 4, + 4, 3, 0, 1, 4, 3, 4, 4, 3, 3, + 3, 2, 1, 3, 3, 3, 5, 7, 7, 6, + 5, 3, 2, 4, 5, 5, 3, 3, 7, 3, + 3, 3, 3, 4, 7, 5, 2, 4, 4, 4, + 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, + 4, 4, 2, 2, 4, 4, 4, 4, 4, 2, + 3, 3, 3, 3, 3, 5, 2, 3, 3, 2, + 3, 4, 4, 4, 3, 4, 4, 5, 3, 5, + 3, 5, 0, 1, 0, 1, 0, 1, 1, 1, + 0, 2, 2, 0, 2, 2, 0, 2, 0, 1, + 1, 1, 1, 2, 1, 3, 1, 1, 1, 1, + 1, 3, 0, 1, 1, 3, 3, 2, 2, 1, + 1, 5, 0, 1, 0, 1, 2, 3, 0, 3, + 3, 3, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 1, 1, 4, + 4, 4, 2, 2, 3, 1, 3, 2, 1, 2, + 1, 2, 2, 4, 3, 3, 6, 4, 7, 6, + 1, 3, 2, 2, 2, 2, 1, 1, 1, 3, + 2, 1, 1, 1, 0, 1, 1, 0, 3, 0, + 2, 0, 2, 1, 2, 2, 0, 1, 1, 0, + 1, 1, 5, 5, 4, 0, 2, 4, 4, 0, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 2, 3, 5, + 0, 1, 2, 1, 1, 0, 1, 2, 1, 3, + 1, 1, 1, 4, 3, 1, 1, 2, 3, 7, + 0, 3, 0, 1, 1, 3, 1, 3, 1, 1, + 3, 3, 1, 3, 4, 4, 4, 3, 2, 4, + 0, 1, 0, 2, 0, 1, 0, 1, 2, 1, + 1, 1, 2, 2, 1, 2, 3, 2, 3, 2, + 2, 2, 1, 1, 3, 3, 0, 1, 1, 2, + 6, 5, 6, 6, 5, 5, 0, 2, 3, 3, + 0, 2, 3, 3, 3, 2, 3, 1, 3, 6, + 1, 1, 3, 4, 3, 4, 4, 4, 1, 3, + 4, 5, 6, 3, 4, 5, 6, 3, 4, 1, + 1, 1, 3, 3, 3, 3, 3, 3, 5, 5, + 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 3, 1, 1, 1, 2, 2, 2, 2, 1, + 1, 2, 7, 7, 6, 6, 2, 2, 5, 6, + 3, 3, 1, 3, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 4, 2, 4, 0, 1, 2, 5, 0, 3, 0, + 1, 4, 4, 2, 1, 0, 0, 1, 1, 2, + 2, 1, 1, 2, 2, 0, 1, 1, 1, 1, + 5, 1, 3, 0, 3, 1, 1, 1, 2, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 4, 6, 4, 4, 8, + 8, 6, 8, 6, 5, 4, 10, 2, 2, 1, + 2, 2, 2, 2, 2, 5, 6, 6, 6, 6, + 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 8, 4, 8, 8, 6, 5, 4, 4, 4, + 5, 7, 4, 4, 7, 4, 4, 6, 6, 6, + 8, 6, 6, 4, 4, 3, 4, 6, 6, 4, + 4, 6, 4, 6, 4, 4, 4, 4, 4, 4, + 6, 4, 6, 4, 4, 4, 6, 4, 6, 4, + 4, 6, 4, 6, 4, 6, 8, 4, 6, 8, + 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, 8, 4, - 6, 8, 4, 6, 8, 4, 6, 8, 4, 6, - 8, 4, 4, 4, 6, 4, 6, 4, 8, 6, - 4, 4, 6, 4, 6, 8, 4, 6, 8, 4, - 4, 6, 8, 6, 4, 6, 6, 8, 10, 7, - 8, 8, 9, 4, 4, 4, 4, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 4, 4, 4, - 4, 4, 4, 6, 4, 6, 5, 9, 6, 9, - 8, 6, 8, 8, 8, 6, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 6, 8, 10, 12, - 14, 6, 8, 8, 10, 12, 14, 6, 8, 10, - 12, 6, 8, 4, 4, 3, 4, 6, 6, 4, - 6, 4, 6, 8, 0, 2, 1, 1, 1, 1, + 6, 8, 4, 4, 4, 6, 4, 6, 4, 8, + 6, 4, 4, 6, 4, 6, 8, 4, 6, 8, + 4, 4, 6, 8, 6, 4, 6, 6, 8, 10, + 7, 8, 8, 9, 4, 4, 4, 4, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 4, 4, + 4, 4, 4, 4, 6, 4, 6, 5, 9, 6, + 9, 8, 6, 8, 8, 8, 6, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 2, 6, 8, 10, + 12, 14, 6, 8, 8, 10, 12, 14, 6, 8, + 10, 12, 6, 8, 4, 4, 3, 4, 6, 6, + 4, 6, 4, 6, 8, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 0, 2, 3, 4, - 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, - 1, 1, 0, 5, 5, 2, 3, 1, 2, 2, - 1, 2, 1, 2, 2, 1, 2, 2, 1, 1, - 0, 1, 0, 1, 0, 2, 1, 2, 4, 0, - 2, 1, 1, 3, 5, 1, 1, 1, 2, 2, - 0, 4, 0, 2, 0, 2, 2, 1, 3, 0, - 1, 0, 1, 3, 1, 3, 2, 0, 1, 1, - 0, 1, 2, 4, 4, 0, 2, 2, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 0, 3, - 3, 3, 0, 3, 1, 1, 0, 4, 0, 1, - 1, 0, 3, 1, 3, 2, 1, 1, 0, 1, - 2, 3, 4, 2, 3, 4, 4, 9, 3, 5, - 0, 3, 3, 0, 1, 0, 2, 2, 0, 2, - 2, 2, 0, 2, 1, 2, 3, 3, 0, 2, - 1, 2, 3, 4, 3, 0, 1, 3, 1, 6, - 5, 4, 1, 3, 3, 5, 0, 2, 5, 0, - 5, 1, 3, 1, 2, 3, 4, 1, 1, 3, - 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 0, 1, 0, 2, 0, 3, 0, 1, 0, 1, - 1, 5, 0, 1, 0, 1, 2, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 1, 3, 0, 1, + 1, 1, 1, 1, 1, 0, 2, 0, 2, 3, + 4, 4, 4, 4, 4, 0, 3, 4, 7, 3, + 1, 1, 1, 0, 5, 5, 2, 3, 1, 2, + 2, 1, 2, 1, 2, 2, 1, 2, 2, 1, + 1, 0, 1, 0, 1, 0, 2, 1, 2, 4, + 0, 2, 1, 1, 3, 5, 1, 1, 1, 2, + 2, 0, 4, 0, 2, 0, 2, 2, 1, 3, + 0, 1, 0, 1, 3, 1, 3, 2, 0, 1, + 1, 0, 1, 2, 4, 4, 0, 2, 2, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 3, 0, + 3, 3, 3, 0, 3, 1, 1, 0, 4, 0, + 1, 1, 0, 3, 1, 3, 2, 1, 1, 0, + 1, 2, 3, 4, 2, 3, 4, 4, 9, 3, + 5, 0, 3, 3, 0, 1, 0, 2, 2, 0, + 2, 2, 2, 0, 2, 1, 2, 3, 3, 0, + 2, 1, 2, 3, 4, 3, 0, 1, 3, 1, + 6, 5, 4, 1, 3, 3, 5, 0, 2, 5, + 0, 5, 1, 3, 1, 2, 3, 4, 1, 1, + 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 0, 1, 0, 2, 0, 3, 0, 1, 0, + 1, 1, 5, 0, 1, 0, 1, 2, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -8994,7 +9036,7 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -9004,157 +9046,156 @@ var yyChk = [...]int{ -27, -28, -74, -75, -76, -77, -78, -12, -13, -14, -8, -32, -31, -30, 13, 14, -109, -35, 35, -40, -50, 240, -51, -41, 241, -52, 243, 242, 280, 244, - 396, 273, 83, 329, 330, 332, 333, 334, 335, -110, - 703, 278, 279, 246, 39, 51, 36, 37, 40, 250, - 286, 287, 249, 145, -33, -36, 12, -419, 15, 486, - 275, 274, 31, -34, 596, 95, -80, -418, 751, -253, + 397, 273, 83, 330, 331, 333, 334, 335, 336, -110, + 704, 278, 279, 246, 39, 51, 36, 37, 40, 250, + 286, 287, 249, 145, -33, -36, 12, -419, 15, 487, + 275, 274, 31, -34, 597, 95, -80, -418, 752, -253, -237, 26, 36, 32, -236, -232, -128, -237, 24, 22, 11, -79, -79, -79, 16, 17, -79, -356, -358, 95, 173, 95, -79, -57, -56, -54, -53, -55, -58, 34, -47, -48, -380, -46, -43, 245, 242, 290, 135, 136, 280, 281, 282, 244, 264, 279, 283, 278, 299, -42, - 90, 36, 596, 599, -363, 241, 247, 248, 243, 487, - 138, 137, 84, -360, 391, 630, 721, -58, 723, 110, - 113, 722, 50, 254, 724, 725, 726, 637, 727, 263, - 728, 729, 730, 731, 737, 678, 738, 739, 740, 139, - 11, -79, -305, -301, 100, -294, 593, 266, 628, 440, - 629, 315, 90, 47, 42, 532, 603, 387, 391, 630, - 517, 721, 397, 329, 347, 341, 522, 523, 524, 370, - 362, 594, 631, 604, 318, 267, 303, 715, 360, 149, - 723, 322, 632, 281, 398, 399, 633, 400, 110, 332, - 437, 736, 321, 634, 734, 113, 722, 337, 88, 516, - 57, 718, 50, 276, 445, 446, 358, 249, 354, 724, - 304, 635, 606, 297, 138, 135, 743, 39, 350, 56, - 33, 733, 137, 55, 725, 164, 636, 726, 637, 402, - 377, 709, 54, 403, 282, 638, 93, 287, 598, 326, - 717, 404, 537, 351, 405, 314, 732, 246, 639, 325, - 698, 690, 691, 406, 407, 710, 382, 378, 383, 539, - 640, 429, 521, 408, 694, 695, 750, 58, 641, 642, - 711, 136, 643, 87, 727, 89, 345, 346, 644, 312, - 265, 542, 543, 431, 374, 499, 127, 506, 507, 120, - 121, 502, 122, 508, 123, 128, 509, 510, 511, 500, - 124, 117, 501, 512, 513, 375, 376, 125, 514, 119, - 118, 503, 505, 126, 515, 263, 38, 409, 595, 316, - 64, 320, 291, 432, 52, 380, 747, 51, 705, 544, - 645, 708, 373, 369, 496, 59, 646, 647, 648, 649, - 518, 728, 372, 344, 368, 742, 4, 309, 491, 519, - 729, 68, 248, 385, 384, 386, 298, 428, 365, 650, - 651, 652, 270, 91, 653, 355, 25, 654, 655, 410, - 305, 656, 62, 657, 658, 435, 279, 659, 60, 730, - 45, 660, 284, 744, 731, 661, 662, 663, 704, 664, - 286, 665, 412, 666, 692, 693, 411, 379, 381, 545, - 293, 413, 396, 251, 597, 667, 327, 349, 283, 735, - 668, 271, 533, 534, 535, 536, 716, 541, 540, 285, - 290, 278, 436, 272, 669, 670, 671, 672, 673, 319, - 689, 674, 675, 333, 601, 737, 497, 49, 676, 677, - 678, 679, 680, 313, 308, 430, 439, 67, 92, 393, - 681, 682, 714, 343, 338, 43, 306, 99, 477, 479, - 480, 481, 482, 483, 478, 485, 683, 330, 61, 738, - 739, 740, 300, 741, 525, 526, 527, 528, 13, 579, - 562, 590, 563, 580, 564, 573, 565, 581, 589, 591, - 546, 554, 547, 555, 585, 568, 582, 574, 567, 566, - 588, 571, 575, 548, 556, 586, 572, 549, 557, 550, - 558, 551, 559, 584, 583, 576, 587, 552, 560, 578, - 553, 561, 577, 569, 570, 448, 748, 749, 520, 415, - 139, 310, 311, 53, 366, 292, 684, 323, 685, 356, - 357, 493, 494, 371, 342, 367, 146, 701, 331, 340, - 699, 294, 416, 498, 280, 686, 438, 307, 388, 131, - 339, 394, 324, 602, 538, 299, 417, 713, 600, 529, - 530, 364, 361, 301, 531, 687, 389, 703, 418, 255, - 295, 296, 688, 700, 419, 420, 317, 421, 422, 423, - 424, 425, 427, 328, 426, 702, 696, 697, 302, 476, - 599, 336, 359, 395, 458, 459, 460, 461, 462, 463, + 90, 36, 597, 600, -363, 241, 247, 248, 243, 488, + 138, 137, 84, -360, 392, 631, 722, -58, 724, 110, + 113, 723, 50, 254, 725, 726, 727, 638, 728, 263, + 729, 730, 731, 732, 738, 679, 739, 740, 741, 139, + 11, -79, -305, -301, 100, -294, 594, 266, 629, 441, + 630, 315, 90, 47, 42, 533, 604, 388, 392, 631, + 518, 722, 398, 330, 348, 342, 523, 524, 525, 371, + 363, 595, 632, 605, 318, 267, 303, 716, 361, 149, + 724, 322, 633, 281, 399, 400, 634, 401, 110, 333, + 438, 737, 321, 635, 735, 113, 723, 338, 88, 517, + 57, 719, 326, 50, 276, 446, 447, 359, 249, 355, + 725, 304, 636, 607, 297, 138, 135, 744, 39, 351, + 56, 33, 734, 137, 55, 726, 164, 637, 727, 638, + 403, 378, 710, 54, 404, 282, 639, 93, 287, 599, + 327, 718, 405, 538, 352, 406, 314, 733, 246, 640, + 325, 699, 691, 692, 407, 408, 711, 383, 379, 384, + 540, 641, 430, 522, 409, 695, 696, 751, 58, 642, + 643, 712, 136, 644, 87, 728, 89, 346, 347, 645, + 312, 265, 543, 544, 432, 375, 500, 127, 507, 508, + 120, 121, 503, 122, 509, 123, 128, 510, 511, 512, + 501, 124, 117, 502, 513, 514, 376, 377, 125, 515, + 119, 118, 504, 506, 126, 516, 263, 38, 410, 596, + 316, 64, 320, 291, 433, 52, 381, 748, 51, 706, + 545, 646, 709, 374, 370, 497, 59, 647, 648, 649, + 650, 519, 729, 373, 345, 369, 743, 4, 309, 492, + 520, 730, 68, 248, 386, 385, 387, 298, 429, 366, + 651, 652, 653, 270, 91, 654, 356, 25, 655, 656, + 411, 305, 657, 62, 658, 659, 436, 279, 660, 60, + 731, 45, 661, 284, 745, 732, 662, 663, 664, 705, + 665, 286, 666, 413, 667, 693, 694, 412, 380, 382, + 546, 293, 414, 397, 251, 598, 668, 328, 350, 283, + 736, 669, 271, 534, 535, 536, 537, 717, 542, 541, + 285, 290, 278, 437, 272, 670, 671, 672, 673, 674, + 319, 690, 675, 676, 334, 602, 738, 498, 49, 677, + 678, 679, 680, 681, 313, 308, 431, 440, 67, 92, + 394, 682, 683, 715, 344, 339, 43, 306, 99, 478, + 480, 481, 482, 483, 484, 479, 486, 684, 331, 61, + 739, 740, 741, 300, 742, 526, 527, 528, 529, 13, + 580, 563, 591, 564, 581, 565, 574, 566, 582, 590, + 592, 547, 555, 548, 556, 586, 569, 583, 575, 568, + 567, 589, 572, 576, 549, 557, 587, 573, 550, 558, + 551, 559, 552, 560, 585, 584, 577, 588, 553, 561, + 579, 554, 562, 578, 570, 571, 449, 749, 750, 521, + 416, 139, 310, 311, 53, 367, 292, 685, 323, 686, + 357, 358, 494, 495, 372, 343, 368, 146, 702, 332, + 341, 700, 294, 417, 499, 280, 687, 439, 307, 389, + 131, 340, 395, 324, 603, 539, 299, 418, 714, 601, + 530, 531, 365, 362, 301, 532, 688, 390, 704, 419, + 255, 295, 296, 689, 701, 420, 421, 317, 422, 423, + 424, 425, 426, 428, 329, 427, 703, 697, 698, 302, + 477, 600, 337, 360, 396, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 495, 253, -79, 253, -190, -301, -130, 705, - 707, 192, -272, 399, -290, 401, 414, 409, 419, 407, - -281, 410, 412, 293, -403, 429, 253, 416, 240, 402, - 411, 420, 421, 317, 427, 422, 328, 426, 302, 423, - 424, 425, -387, 192, 726, 741, 331, 339, 149, 363, - 406, 404, 430, 705, 100, -307, 100, 101, 102, -294, - 331, -310, 336, -295, -387, -294, 334, -79, -79, -312, - -312, -130, -210, -145, 157, -159, -261, -162, 101, -150, - -153, -204, -205, -206, -207, -160, -220, -259, 181, 182, - 189, 158, -216, -163, 29, 592, 488, 487, 192, 34, - 235, 77, 78, 490, 491, 160, 63, 15, 453, 454, - -161, 443, 444, 455, 449, 450, 516, 518, 519, 520, - 517, 522, 523, 524, 525, 526, 527, 528, 529, 530, - 531, 521, 532, 493, 494, 129, 495, 117, 119, 118, - 127, 128, 496, 497, 498, 360, 544, 545, 539, 542, - 543, 541, 540, 375, 376, 499, 562, 563, 567, 566, - 564, 565, 568, 571, 572, 573, 574, 575, 576, 578, - 577, 569, 570, 547, 546, 548, 549, 550, 551, 552, - 553, 555, 554, 556, 557, 558, 559, 560, 561, 579, - 580, 581, 582, 583, 585, 584, 589, 588, 586, 587, - 591, 590, 500, 501, 120, 121, 122, 123, 124, 125, - 126, 502, 505, 503, 504, 506, 507, 508, 513, 514, - 509, 510, 511, 512, 515, 386, 384, 385, 381, 380, - 379, -89, -102, 619, 618, -103, 440, 445, 446, 448, - -151, -152, -165, -166, -295, -301, 258, 442, 252, 187, - 486, -154, -148, -218, 116, 102, -31, -214, 441, 451, - 452, 456, 447, 457, 605, 607, 622, 623, 625, 610, - 615, 614, 617, 533, 534, 535, 536, 537, 538, 690, - 691, 692, 693, 694, 695, 696, 697, -387, -294, 100, - -157, -155, -199, 103, 108, 111, 112, 114, -409, 276, - 356, 357, 130, -419, 719, -156, 105, 106, 107, 132, - 133, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - 232, 233, 234, 98, 104, 50, 415, 415, -190, -79, - -79, -79, -79, -416, 722, 597, -230, -128, -232, -33, - -31, -419, 12, -79, -31, -32, -30, -36, -38, 624, - -37, -301, 109, -237, -253, 16, 67, 176, 48, 56, - -235, -236, -34, -31, -145, 23, 41, 27, -132, 183, - -145, -301, -132, -279, 257, -79, -79, -268, -315, 331, - -270, 430, 705, 429, -260, -273, 100, -259, -272, 428, - 101, -357, 173, -343, -347, -295, 268, -373, 264, -190, - -366, -365, -295, -419, -129, -289, 254, 262, 261, 150, - -390, 153, 310, 442, 252, -53, -54, -55, -272, 191, - 725, -111, 285, 289, 96, 96, -347, -346, -345, -391, - 289, 268, -372, -364, 260, 269, -353, 261, 262, -348, - 254, 151, -391, -348, 259, 269, 264, 268, 289, 289, - 139, 289, 139, 289, 289, 289, 289, 289, 289, 289, - 289, 289, 284, -354, 165, -354, 600, 600, -360, -391, - 264, 254, -391, -391, 260, -291, -348, 256, 28, 256, - 38, 38, -354, -354, -354, -272, 191, -354, -354, -354, - -354, 297, 297, -354, -354, -354, -354, -354, -354, -354, + 474, 475, 476, 496, 253, -79, 253, -190, -301, -130, + 706, 708, 192, -272, 400, -290, 402, 415, 410, 420, + 408, -281, 411, 413, 293, -403, 430, 253, 417, 240, + 403, 412, 421, 422, 317, 428, 423, 329, 427, 302, + 424, 425, 426, -387, 192, 727, 742, 332, 340, 149, + 364, 407, 405, 431, 706, 100, -307, 100, 101, 102, + -294, 332, -310, 337, -295, -387, -294, 335, -79, -79, + -312, -312, -130, -210, -145, 157, -159, -261, -162, 101, + -150, -153, -204, -205, -206, -207, -160, -220, -259, 181, + 182, 189, 158, -216, -163, 29, 593, 489, 488, 192, + 34, 235, 77, 78, 491, 492, 160, 63, 15, 454, + 455, -161, 444, 445, 456, 450, 451, 517, 519, 520, + 521, 518, 523, 524, 525, 526, 527, 528, 529, 530, + 531, 532, 522, 533, 494, 495, 129, 496, 117, 119, + 118, 127, 128, 497, 498, 499, 361, 545, 546, 540, + 543, 544, 542, 541, 376, 377, 500, 563, 564, 568, + 567, 565, 566, 569, 572, 573, 574, 575, 576, 577, + 579, 578, 570, 571, 548, 547, 549, 550, 551, 552, + 553, 554, 556, 555, 557, 558, 559, 560, 561, 562, + 580, 581, 582, 583, 584, 586, 585, 590, 589, 587, + 588, 592, 591, 501, 502, 120, 121, 122, 123, 124, + 125, 126, 503, 506, 504, 505, 507, 508, 509, 514, + 515, 510, 511, 512, 513, 516, 387, 385, 386, 382, + 381, 380, -89, -102, 620, 619, -103, 441, 446, 447, + 449, -151, -152, -165, -166, -295, -301, 258, 443, 252, + 187, 487, -154, -148, -218, 116, 102, -31, -214, 442, + 452, 453, 457, 448, 458, 606, 608, 623, 624, 626, + 611, 616, 615, 618, 534, 535, 536, 537, 538, 539, + 691, 692, 693, 694, 695, 696, 697, 698, -387, -294, + 100, -157, -155, -199, 103, 108, 111, 112, 114, -409, + 276, 357, 358, 130, -419, 720, -156, 105, 106, 107, + 132, 133, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 98, 104, 50, 416, 416, -190, + -79, -79, -79, -79, -416, 723, 598, -230, -128, -232, + -33, -31, -419, 12, -79, -31, -32, -30, -36, -38, + 625, -37, -301, 109, -237, -253, 16, 67, 176, 48, + 56, -235, -236, -34, -31, -145, 23, 41, 27, -132, + 183, -145, -301, -132, -279, 257, -79, -79, -268, -315, + 332, -270, 431, 706, 430, -260, -273, 100, -259, -272, + 429, 101, -357, 173, -343, -347, -295, 268, -373, 264, + -190, -366, -365, -295, -419, -129, -289, 254, 262, 261, + 150, -390, 153, 310, 443, 252, -53, -54, -55, -272, + 191, 726, -111, 285, 289, 96, 96, -347, -346, -345, + -391, 289, 268, -372, -364, 260, 269, -353, 261, 262, + -348, 254, 151, -391, -348, 259, 269, 264, 268, 289, + 289, 139, 289, 139, 289, 289, 289, 289, 289, 289, + 289, 289, 289, 284, -354, 165, -354, 601, 601, -360, + -391, 264, 254, -391, -391, 260, -291, -348, 256, 28, + 256, 38, 38, -354, -354, -354, -272, 191, -354, -354, + -354, -354, 297, 297, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, - 253, -390, -137, 426, 317, 90, -56, 299, -39, -190, - -289, 254, 255, -390, 286, -190, 236, 253, 708, -283, - 173, 19, -283, -280, 415, 413, 400, 405, -283, -283, - -283, -283, 300, 398, -349, 254, 38, 265, 415, 300, - 398, 300, 301, 300, 301, 408, 418, 300, -306, 18, - 176, 442, 403, 407, 293, 253, 294, 255, 417, 301, - -306, 98, -284, 173, 300, 415, 409, 296, -283, -283, - -313, -419, -297, -295, -293, 245, 41, 156, 28, 30, - 159, 192, 142, 23, 160, 40, 247, 363, 264, 191, - 260, 487, 240, 81, 605, 443, 450, 441, 449, 453, - 489, 490, 442, 401, 34, 17, 607, 31, 274, 27, - 44, 185, 242, 163, 608, 277, 29, 275, 129, 133, - 610, 26, 84, 269, 18, 262, 46, 20, 611, 612, - 21, 74, 258, 257, 176, 254, 79, 15, 235, 32, - 172, 75, 613, 151, 145, 614, 615, 616, 617, 143, - 77, 173, 24, 745, 451, 452, 36, 706, 592, 288, - 187, 82, 65, 707, 157, 447, 618, 619, 130, 620, - 134, 85, 712, 153, 22, 80, 48, 621, 289, 622, - 259, 746, 623, 433, 624, 174, 243, 486, 78, 175, - 719, 625, 720, 252, 414, 12, 492, 35, 273, 261, - 73, 72, 141, 76, 457, 626, 253, 162, 256, 144, - 132, 11, 150, 37, 16, 83, 86, 454, 455, 456, - 63, 140, 596, 161, 19, 627, 434, 155, -387, 708, - -313, -313, 300, 340, 35, 101, -413, -414, -415, 596, - 433, 256, -295, -190, -85, 698, 244, -86, 704, 41, - 251, 146, 38, -135, 415, -123, 192, 726, 709, 710, - 711, 708, 412, 716, 714, 712, 300, 713, 96, 153, - 155, 156, 4, -145, 172, -200, -201, 171, 165, 166, - 167, 168, 169, 170, 177, 176, 157, 159, 173, -246, - 154, 178, 179, 180, 181, 182, 183, 184, 186, 185, - 187, 188, 174, 175, 191, 238, 239, -153, -153, -153, - -153, -216, -222, -221, -419, -218, -387, -294, -301, -419, - -419, -153, -278, -419, -150, -419, -419, -419, -419, -419, - -225, -145, -419, -419, -423, -419, -423, -423, -423, -332, - -419, -332, -332, -419, -419, -419, -419, -419, -419, -419, - -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, + -354, 253, -390, -137, 427, 317, 90, -56, 299, -39, + -190, -289, 254, 255, -390, 286, -190, 236, 253, 709, + -283, 173, 19, -283, -280, 416, 414, 401, 406, -283, + -283, -283, -283, 300, 399, -349, 254, 38, 265, 416, + 300, 399, 300, 301, 300, 301, 409, 419, 300, -306, + 18, 176, 443, 404, 408, 293, 253, 294, 255, 418, + 301, -306, 98, -284, 173, 300, 416, 410, 296, -283, + -283, -313, -419, -297, -295, -293, 245, 41, 156, 28, + 30, 159, 192, 142, 23, 160, 40, 247, 364, 264, + 191, 260, 488, 240, 81, 606, 444, 451, 442, 450, + 454, 490, 491, 443, 402, 34, 17, 608, 31, 274, + 27, 44, 185, 242, 163, 609, 277, 29, 275, 129, + 133, 611, 26, 84, 269, 18, 262, 46, 20, 612, + 613, 21, 74, 258, 257, 176, 254, 79, 15, 235, + 32, 172, 75, 614, 151, 145, 615, 616, 617, 618, + 143, 77, 173, 24, 746, 452, 453, 36, 707, 593, + 288, 187, 82, 65, 708, 157, 448, 619, 620, 130, + 621, 134, 85, 713, 153, 22, 80, 48, 622, 289, + 623, 259, 747, 624, 434, 625, 174, 243, 487, 78, + 175, 720, 626, 721, 252, 415, 12, 493, 35, 273, + 261, 73, 72, 141, 76, 458, 627, 253, 162, 256, + 144, 132, 11, 150, 37, 16, 83, 86, 455, 456, + 457, 63, 140, 597, 161, 19, 628, 435, 155, -387, + 709, -313, -313, 300, 341, 35, 101, -413, -414, -415, + 597, 434, 256, -295, -190, -85, 699, 244, -86, 705, + 41, 251, 146, 38, -135, 416, -123, 192, 727, 710, + 711, 712, 709, 413, 717, 715, 713, 300, 714, 96, + 153, 155, 156, 4, -145, 172, -200, -201, 171, 165, + 166, 167, 168, 169, 170, 177, 176, 157, 159, 173, + -246, 154, 178, 179, 180, 181, 182, 183, 184, 186, + 185, 187, 188, 174, 175, 191, 238, 239, -153, -153, + -153, -153, -216, -222, -221, -419, -218, -387, -294, -301, + -419, -419, -153, -278, -419, -150, -419, -419, -419, -419, + -419, -225, -145, -419, -419, -423, -419, -423, -423, -423, + -332, -419, -332, -332, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, @@ -9165,396 +9206,397 @@ var yyChk = [...]int{ -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, - -419, -419, -419, -419, -419, -419, -419, -419, 236, -419, - -419, -419, -419, -419, -332, -332, -332, -332, -332, -332, -419, -419, -419, -419, -419, -419, -419, -419, -419, -419, - -419, -419, -419, -419, 98, 112, 108, 111, 103, 114, - 98, 98, 98, 98, -31, -32, -210, -419, -312, -400, - -401, -193, -190, -419, 317, -295, -295, 286, 105, -235, - -34, -31, -230, -236, -232, -31, -79, -121, -134, 69, - 70, -133, -136, 27, 44, 74, 76, 99, 72, 73, - 71, 41, -420, 97, -420, -253, -420, 96, -38, -256, - 95, 652, 682, 652, 682, 67, 49, 98, 98, 96, - 25, -231, -233, -145, 18, -299, 4, -298, 28, -295, - 98, 236, 18, -191, 32, -190, -279, -279, 96, 100, - 331, -269, -271, 431, 433, 165, -300, -295, 98, 34, - 97, 96, -190, -321, -324, -326, -325, -327, -322, -323, - 360, 361, 192, 364, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 377, 389, 35, 276, 356, 357, 358, - 359, 378, 379, 380, 381, 383, 384, 385, 386, 341, - 362, 594, 342, 343, 344, 345, 346, 347, 349, 350, - 353, 351, 352, 354, 355, -296, -295, 95, 97, 96, - -331, 95, -145, -137, 253, -295, 254, 254, 254, -286, - 258, 486, -354, -354, -354, 284, 23, -46, -43, -380, - 22, -42, -43, 245, 135, 136, 242, 95, -343, 95, - -352, -296, -295, 95, 151, 259, 150, -351, -348, -351, - -352, -295, -218, -295, 151, 151, -295, -295, -265, -295, - -265, -265, 41, -265, 41, -265, 41, 105, -295, -265, - 41, -265, 41, -265, 41, -265, 41, -265, 41, 34, - 87, 88, 89, 34, 91, 92, 93, -218, -295, -295, - -218, -343, -218, -190, -295, -272, 105, 105, 105, -354, - -354, 105, 98, 98, 98, -354, -354, 105, 98, -303, - -301, 98, 98, -392, 270, 314, 316, 105, 105, 105, - 105, 34, 98, -393, 34, 733, 732, 734, 735, 736, - 98, 105, 34, 105, 34, 105, -295, 95, -190, -143, - 304, 240, 242, 245, 85, 98, 322, 320, 321, 318, - 323, 324, 325, 165, 50, 96, 256, 253, -295, -285, - 258, -285, -295, -302, -301, -293, -190, 256, 397, 98, - -145, -350, 18, 176, -306, -306, -283, -190, -350, -306, - -283, -190, -283, -283, -283, -283, -306, -306, -306, -283, - -301, -301, -190, -190, -190, -190, -190, -190, -190, -313, - -284, -283, 708, 98, -277, 18, 85, -313, -313, -292, - 26, 26, 96, 337, 434, 435, -311, 334, -81, -295, - 98, -10, -29, -18, -17, -19, 165, -10, 96, 596, - -183, -190, 708, 708, 708, 708, 708, 708, -145, -145, - -145, -145, 620, -208, -411, 157, 132, 133, 130, 131, - -162, 42, 43, 41, -145, -209, -214, -216, 115, 176, - 159, 173, -246, -150, -153, -150, -150, -150, -150, -150, - -150, 235, -150, 235, -150, -150, -150, -150, -150, -150, - -314, -295, 98, 192, -158, -157, 114, -409, -158, 593, - 96, -221, 236, -145, -145, -387, -119, 459, 460, 461, - 462, 464, 465, 466, 469, 470, 474, 475, 458, 476, - 463, 468, 471, 472, 473, 467, 359, -145, -211, -210, - -211, -145, -145, -223, -224, 161, -218, -145, -420, -420, - 105, 183, -127, 27, 44, -127, -127, -127, -127, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -145, -127, - -145, -120, 458, 476, 463, 468, 471, 472, 473, 467, - 359, 477, 478, 479, 480, 481, 482, 483, 484, 485, - -120, -119, -145, -145, -145, -145, -145, -145, -145, -145, - -87, -145, 142, 143, 144, -210, -145, -150, -145, -145, - -145, -420, -145, -145, -145, -211, -145, -145, -145, -145, + -419, -419, -419, -419, -419, -419, -419, -419, -419, 236, + -419, -419, -419, -419, -419, -332, -332, -332, -332, -332, + -332, -419, -419, -419, -419, -419, -419, -419, -419, -419, + -419, -419, -419, -419, -419, 98, 112, 108, 111, 103, + 114, 98, 98, 98, 98, -31, -32, -210, -419, -312, + -400, -401, -193, -190, -419, 317, -295, -295, 286, 105, + -235, -34, -31, -230, -236, -232, -31, -79, -121, -134, + 69, 70, -133, -136, 27, 44, 74, 76, 99, 72, + 73, 71, 41, -420, 97, -420, -253, -420, 96, -38, + -256, 95, 653, 683, 653, 683, 67, 49, 98, 98, + 96, 25, -231, -233, -145, 18, -299, 4, -298, 28, + -295, 98, 236, 18, -191, 32, -190, -279, -279, 96, + 100, 332, -269, -271, 432, 434, 165, -300, -295, 98, + 34, 97, 96, -190, -321, -324, -326, -325, -327, -322, + -323, 361, 362, 192, 365, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 378, 390, 35, 276, 357, 358, + 359, 360, 379, 380, 381, 382, 384, 385, 386, 387, + 342, 363, 595, 343, 344, 345, 346, 347, 348, 350, + 351, 354, 352, 353, 355, 356, -296, -295, 95, 97, + 96, -331, 95, -145, -137, 253, -295, 254, 254, 254, + -286, 258, 487, -354, -354, -354, 284, 23, -46, -43, + -380, 22, -42, -43, 245, 135, 136, 242, 95, -343, + 95, -352, -296, -295, 95, 151, 259, 150, -351, -348, + -351, -352, -295, -218, -295, 151, 151, -295, -295, -265, + -295, -265, -265, 41, -265, 41, -265, 41, 105, -295, + -265, 41, -265, 41, -265, 41, -265, 41, -265, 41, + 34, 87, 88, 89, 34, 91, 92, 93, -218, -295, + -295, -218, -343, -218, -190, -295, -272, 105, 105, 105, + -354, -354, 105, 98, 98, 98, -354, -354, 105, 98, + -303, -301, 98, 98, -392, 270, 314, 316, 105, 105, + 105, 105, 34, 98, -393, 34, 734, 733, 735, 736, + 737, 98, 105, 34, 105, 34, 105, -295, 95, -190, + -143, 304, 240, 242, 245, 85, 98, 322, 320, 321, + 318, 323, 324, 325, 165, 50, 96, 256, 253, -295, + -285, 258, -285, -295, -302, -301, -293, -190, 256, 398, + 98, -145, -350, 18, 176, -306, -306, -283, -190, -350, + -306, -283, -190, -283, -283, -283, -283, -306, -306, -306, + -283, -301, -301, -190, -190, -190, -190, -190, -190, -190, + -313, -284, -283, 709, 98, -277, 18, 85, -313, -313, + -292, 26, 26, 96, 338, 435, 436, -311, 335, -81, + -295, 98, -10, -29, -18, -17, -19, 165, -10, 96, + 597, -183, -190, 709, 709, 709, 709, 709, 709, -145, + -145, -145, -145, 621, -208, -411, 157, 132, 133, 130, + 131, -162, 42, 43, 41, -145, -209, -214, -216, 115, + 176, 159, 173, -246, -150, -153, -150, -150, -150, -150, + -150, -150, 235, -150, 235, -150, -150, -150, -150, -150, + -150, -314, -295, 98, 192, -158, -157, 114, -409, -158, + 594, 96, -221, 236, -145, -145, -387, -119, 460, 461, + 462, 463, 465, 466, 467, 470, 471, 475, 476, 459, + 477, 464, 469, 472, 473, 474, 468, 360, -145, -211, + -210, -211, -145, -145, -223, -224, 161, -218, -145, -420, + -420, 105, 183, -127, 27, 44, -127, -127, -127, -127, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -127, -145, -120, 459, 477, 464, 469, 472, 473, 474, + 468, 360, 478, 479, 480, 481, 482, 483, 484, 485, + 486, -120, -119, -145, -145, -145, -145, -145, -145, -145, + -145, -87, -145, 142, 143, 144, -210, -145, -150, -145, + -145, -145, -420, -145, -145, -145, -211, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -386, -385, -384, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -145, -145, -210, -210, - -210, -210, -210, -145, -420, -145, -164, -148, 105, -261, - 114, 101, -145, -145, -145, -145, -145, -145, -211, -297, - -302, -293, -294, -210, -211, -211, -210, -210, -145, -145, - -145, -145, -145, -145, -145, -145, -420, -145, -145, -145, - -145, -145, -253, -420, -210, 96, -402, 433, 434, 706, - -304, 289, -303, 28, -211, 98, 18, -263, 86, -295, - -235, -235, 69, 70, 65, -131, -132, -136, -420, -37, - 28, -255, -295, 645, 645, 68, 98, -333, -272, 387, - 388, 192, -145, -145, 96, -234, 30, 31, -190, -298, - 183, -302, -190, -264, 289, -190, -168, -170, -171, -172, - -193, -217, -419, -173, -31, 616, 613, 18, -183, -184, - -192, -301, -270, -315, -269, 96, 432, 434, 435, 85, - 134, -145, -334, 191, -362, -361, -360, -343, -345, -346, - -347, 97, -334, -339, 394, 393, -331, -331, -331, -331, - -331, -333, -333, -333, -333, 95, -331, 95, -331, -331, - -331, -331, -336, 95, -336, -336, -337, -336, 95, -337, - -338, 95, -338, -373, -145, -370, -369, -367, -368, 263, - 110, 688, 644, 596, 637, 678, 86, -365, -234, 105, - -420, -143, -286, -371, -368, -295, -295, -295, -301, 157, - 100, 98, 100, 98, 100, 98, -112, -60, -1, 745, - 746, 747, 96, 23, -344, -343, -59, 314, -376, -377, - 289, -372, -366, -352, 151, -351, -352, -352, -295, 96, - 32, 139, 139, 139, 139, 596, 242, 35, -287, 636, - 157, 688, 644, -343, -59, 256, 256, -314, -314, -314, - 98, 98, -282, 741, -183, -139, 306, 165, 295, 295, - 253, 308, 253, 308, -190, 319, 322, 320, 321, 318, - 323, 324, 325, 41, 41, 41, 41, 41, 41, 41, - 307, 309, 311, 297, -190, -190, -285, 85, -185, -190, - 29, -301, 98, 98, -190, -283, -283, -190, -283, -283, - -190, 98, -301, -415, 338, -295, 374, 699, 701, -123, - 433, 96, 596, 26, -124, 26, -419, -411, 132, 133, - -216, -216, -216, -209, -150, -153, -150, 156, 277, -150, - -150, -419, -218, -420, -297, 28, 96, 86, -420, 181, - 96, -420, -420, 96, 18, 96, -226, -224, 163, -145, - -420, 96, -420, -420, -210, -145, -145, -145, -145, -420, - -420, -420, -420, -420, -420, -420, -420, -420, -420, -210, - -420, 96, 96, 18, -318, 28, -420, -420, -420, -420, - 96, -420, -420, -225, -420, 18, -420, 86, 96, 176, - 96, -420, -420, -420, 96, 96, -420, -420, 96, -420, - 96, -420, -420, -420, -420, -420, -420, 96, -420, 96, - -420, -420, -420, 96, -420, 96, -420, -420, 96, -420, + -145, -145, -145, -386, -385, -384, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -210, + -210, -210, -210, -210, -145, -420, -145, -164, -148, 105, + -261, 114, 101, -145, -145, -145, -145, -145, -145, -211, + -297, -302, -293, -294, -210, -211, -211, -210, -210, -145, + -145, -145, -145, -145, -145, -145, -145, -420, -145, -145, + -145, -145, -145, -253, -420, -210, 96, -402, 434, 435, + 707, -304, 289, -303, 28, -211, 98, 18, -263, 86, + -295, -235, -235, 69, 70, 65, -131, -132, -136, -420, + -37, 28, -255, -295, 646, 646, 68, 98, -333, -272, + 388, 389, 192, -145, -145, 96, -234, 30, 31, -190, + -298, 183, -302, -190, -264, 289, -190, -168, -170, -171, + -172, -193, -217, -419, -173, -31, 617, 614, 18, -183, + -184, -192, -301, -270, -315, -269, 96, 433, 435, 436, + 85, 134, -145, -334, 191, -362, -361, -360, -343, -345, + -346, -347, 97, -334, -339, 395, 394, -331, -331, -331, + -331, -331, -333, -333, -333, -333, 95, -331, 95, -331, + -331, -331, -331, -336, 95, -336, -336, -337, -336, 95, + -337, -338, 95, -338, -373, -145, -370, -369, -367, -368, + 263, 110, 689, 645, 597, 638, 679, 86, -365, -234, + 105, -420, -143, -286, -371, -368, -295, -295, -295, -301, + 157, 100, 98, 100, 98, 100, 98, -112, -60, -1, + 746, 747, 748, 96, 23, -344, -343, -59, 314, -376, + -377, 289, -372, -366, -352, 151, -351, -352, -352, -295, + 96, 32, 139, 139, 139, 139, 597, 242, 35, -287, + 637, 157, 689, 645, -343, -59, 256, 256, -314, -314, + -314, 98, 98, -282, 742, -183, -139, 306, 165, 295, + 295, 253, 308, 253, 308, -190, 319, 322, 320, 321, + 318, 323, 324, 325, 326, 41, 41, 41, 41, 41, + 41, 41, 307, 309, 311, 297, -190, -190, -285, 85, + -185, -190, 29, -301, 98, 98, -190, -283, -283, -190, + -283, -283, -190, 98, -301, -415, 339, -295, 375, 700, + 702, -123, 434, 96, 597, 26, -124, 26, -419, -411, + 132, 133, -216, -216, -216, -209, -150, -153, -150, 156, + 277, -150, -150, -419, -218, -420, -297, 28, 96, 86, + -420, 181, 96, -420, -420, 96, 18, 96, -226, -224, + 163, -145, -420, 96, -420, -420, -210, -145, -145, -145, + -145, -420, -420, -420, -420, -420, -420, -420, -420, -420, + -420, -210, -420, 96, 96, 18, -318, 28, -420, -420, + -420, -420, 96, -420, -420, -225, -420, 18, -420, 86, + 96, 176, 96, -420, -420, -420, 96, 96, -420, -420, + 96, -420, 96, -420, -420, -420, -420, -420, -420, 96, + -420, 96, -420, -420, -420, 96, -420, 96, -420, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, - 96, -420, 96, -420, -420, -420, 96, -420, 96, -420, - 96, -420, -420, 96, -420, 96, -420, 96, -420, 96, - 96, -420, 96, 96, 96, -420, 96, 96, 96, 96, - -420, -420, -420, -420, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, -420, -420, -420, -420, -420, -420, - 96, -94, 621, -420, -420, 96, -420, 96, 96, 96, - 96, 96, -420, -419, 236, -420, -420, -420, -420, -420, - 96, 96, 96, 96, 96, 96, -420, -420, -420, 96, - 96, -420, 96, -420, 96, -420, -401, 705, 434, -197, - -196, -194, 83, 257, 84, -419, -303, -420, -158, -261, - -262, -261, -203, -295, 105, 114, -237, -167, 96, -169, - 18, -216, 97, 96, -333, -241, -247, -280, -295, 98, - 192, -335, 192, -335, 387, 388, -233, 236, -198, 19, - -202, 35, 63, -29, -419, -419, 35, 96, -186, -188, - -187, -189, 75, 79, 81, 76, 77, 78, 82, -309, - 28, -31, -168, -31, -419, -190, -183, -421, 18, 86, - -421, 96, 236, -271, -274, 436, 433, 439, -387, 98, - -111, 96, -360, -347, -238, -140, 46, -340, 395, -333, - 604, -333, -342, 98, -342, 105, 105, 105, 97, -49, - -44, -45, 36, 90, -367, -354, 98, 45, -354, -354, - -295, 97, -234, -139, -190, 85, -371, -371, -371, 29, - -2, 744, 750, 151, 95, 400, 22, -255, 96, 97, - -219, 315, 97, -113, -295, 97, 95, -352, -352, -295, - -419, 253, 34, 34, 688, 644, 636, -59, -219, -218, - -295, -334, 743, 742, 97, 255, 313, -144, 453, -141, - 98, 100, -190, -190, -190, -190, -190, -190, 245, 242, - 423, -410, 326, -410, 298, 256, -183, -190, 96, -84, - 272, 267, -306, -306, 36, -190, 433, 717, 715, -145, - 156, 277, -162, -153, -119, -119, -150, -316, 192, 360, - 276, 358, 354, 374, 365, 393, 356, 394, 351, 350, - 349, -316, -314, -150, -210, -145, -145, -145, 164, -145, - 162, -145, -95, -94, -420, -420, -420, -420, -420, -95, - -95, -95, -95, -95, -95, -95, -95, -95, -95, -230, - -145, -145, -145, -420, 192, 360, -95, -145, 18, -145, - -314, -145, -145, -145, -145, -145, -145, -145, -145, -145, + 96, -420, 96, -420, 96, -420, -420, -420, 96, -420, + 96, -420, 96, -420, -420, 96, -420, 96, -420, 96, + -420, 96, 96, -420, 96, 96, 96, -420, 96, 96, + 96, 96, -420, -420, -420, -420, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, -420, -420, -420, -420, + -420, -420, 96, -94, 622, -420, -420, 96, -420, 96, + 96, 96, 96, 96, -420, -419, 236, -420, -420, -420, + -420, -420, 96, 96, 96, 96, 96, 96, -420, -420, + -420, 96, 96, -420, 96, -420, 96, -420, -401, 706, + 435, -197, -196, -194, 83, 257, 84, -419, -303, -420, + -158, -261, -262, -261, -203, -295, 105, 114, -237, -167, + 96, -169, 18, -216, 97, 96, -333, -241, -247, -280, + -295, 98, 192, -335, 192, -335, 388, 389, -233, 236, + -198, 19, -202, 35, 63, -29, -419, -419, 35, 96, + -186, -188, -187, -189, 75, 79, 81, 76, 77, 78, + 82, -309, 28, -31, -168, -31, -419, -190, -183, -421, + 18, 86, -421, 96, 236, -271, -274, 437, 434, 440, + -387, 98, -111, 96, -360, -347, -238, -140, 46, -340, + 396, -333, 605, -333, -342, 98, -342, 105, 105, 105, + 97, -49, -44, -45, 36, 90, -367, -354, 98, 45, + -354, -354, -295, 97, -234, -139, -190, 85, -371, -371, + -371, 29, -2, 745, 751, 151, 95, 401, 22, -255, + 96, 97, -219, 315, 97, -113, -295, 97, 95, -352, + -352, -295, -419, 253, 34, 34, 689, 645, 637, -59, + -219, -218, -295, -334, 744, 743, 97, 255, 313, -144, + 454, -141, 98, 100, -190, -190, -190, -190, -190, -190, + 245, 242, 424, -410, 327, 98, -410, 298, 256, -183, + -190, 96, -84, 272, 267, -306, -306, 36, -190, 434, + 718, 716, -145, 156, 277, -162, -153, -119, -119, -150, + -316, 192, 361, 276, 359, 355, 375, 366, 394, 357, + 395, 352, 351, 350, -316, -314, -150, -210, -145, -145, + -145, 164, -145, 162, -145, -95, -94, -420, -420, -420, + -420, -420, -95, -95, -95, -95, -95, -95, -95, -95, + -95, -95, -230, -145, -145, -145, -420, 192, 361, -95, + -145, 18, -145, -314, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -145, -384, -145, -210, -145, - -210, -145, -145, -145, -145, -145, -385, -385, -385, -385, - -385, -210, -210, -210, -210, -145, -419, -295, -98, -97, - -96, 671, 257, -94, -164, -98, -164, 235, -145, 235, - 235, 235, -145, -211, -297, -145, -145, -145, -145, -145, - -145, -145, -145, -145, -145, -194, -348, 295, -348, 295, - -348, -265, 96, -276, 26, 18, 63, 63, -167, -198, - -132, -168, -295, -244, 698, -250, 52, -248, -249, 53, - -245, 54, 62, -335, -335, 183, -235, -145, -266, 85, - -267, -275, -218, -213, -215, -214, -419, -254, -420, -295, - -265, -267, -170, -171, -171, -170, -171, 75, 75, 75, - 80, 75, 80, 75, -187, -301, -420, -145, -304, 86, - -168, -168, -192, -301, 183, 433, 437, 438, -360, -408, - 130, 157, 34, 85, 391, 110, -406, 191, 633, 683, - 688, 644, 637, 678, -407, 259, 150, 151, 271, 28, - 47, 97, 96, 97, 96, 97, 97, 96, -288, -287, - -45, -44, -354, -354, 105, -387, 98, 98, 255, -190, - 85, 85, 85, -114, 748, 105, 95, -3, 90, -145, - 95, 23, -343, -218, -378, -328, -379, -329, -330, -5, - -6, -355, -117, 63, 110, -63, 50, 254, 728, 729, - 139, -419, 741, -370, -255, -374, -376, -190, -149, -419, - -161, -147, -146, -148, -154, 181, 182, 276, 356, 357, - -219, -190, -138, 304, 312, 95, -142, 101, -389, 86, - 295, 391, 295, 391, 98, -412, 327, 98, -412, -190, - -84, -49, -190, -283, -283, 36, -387, -420, -162, -153, - -126, 176, 596, -319, 603, -331, -331, -331, -338, -331, - 346, -331, 346, -331, -420, -420, -420, 96, -420, 26, - -420, 96, -145, 96, -95, -95, -95, -95, -95, -122, - 492, 96, 96, -420, 95, 95, -420, -145, -420, -420, - -420, 96, -420, -420, -420, -420, -420, -420, -420, -420, - -420, -420, -420, -420, -420, 96, -420, 96, -420, 96, - -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, - -420, 96, -420, 96, -420, 96, -420, 96, -420, 96, - -420, 96, -420, 96, -420, 96, -420, -420, 96, -420, - -420, -420, 96, -420, 96, -420, 96, -420, -420, -420, - 96, -317, 689, -420, -420, -420, -420, -420, -420, -420, - -420, -420, -420, -420, -93, -296, -94, 653, 653, -420, - -94, -227, 96, -150, -420, -150, -150, -150, -420, -420, - -420, 96, -420, 96, 96, -420, 96, -420, 96, -420, - -420, -420, -420, 96, -195, 26, -419, -195, -419, -195, - -420, -261, -190, -198, -228, 20, -241, 57, 366, -252, - -251, 61, 53, -249, 23, 55, 23, 33, -266, 96, - 165, -308, 96, 28, -420, -420, 96, 63, 236, -420, - -198, -181, -180, 85, 86, -182, 85, -180, 75, 75, - -256, 96, -264, -168, -198, -198, 236, 130, -419, -149, - 16, 98, 98, -387, -405, 732, 733, 34, 105, -354, - -354, 151, 151, -190, 95, -333, 98, -333, 105, 105, - 34, 91, 92, 93, 34, 87, 88, 89, -190, -190, - -190, -190, -375, 95, 23, -145, 95, 165, 97, -255, - -255, 291, 176, -354, 726, 297, 297, -354, -354, -354, - -116, -115, 748, 97, -420, 96, -341, 596, 599, -145, - -155, -155, -256, 97, -383, 596, -388, -295, -295, -295, - -295, 105, 107, -420, 594, 82, 597, -420, -333, -145, - -145, -145, -145, -235, 98, -145, -145, 105, 105, -95, - -420, -145, -145, -145, -145, -145, -145, -145, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -145, -384, + -145, -210, -145, -210, -145, -145, -145, -145, -145, -385, + -385, -385, -385, -385, -210, -210, -210, -210, -145, -419, + -295, -98, -97, -96, 672, 257, -94, -164, -98, -164, + 235, -145, 235, 235, 235, -145, -211, -297, -145, -145, + -145, -145, -145, -145, -145, -145, -145, -145, -194, -348, + 295, -348, 295, -348, -265, 96, -276, 26, 18, 63, + 63, -167, -198, -132, -168, -295, -244, 699, -250, 52, + -248, -249, 53, -245, 54, 62, -335, -335, 183, -235, + -145, -266, 85, -267, -275, -218, -213, -215, -214, -419, + -254, -420, -295, -265, -267, -170, -171, -171, -170, -171, + 75, 75, 75, 80, 75, 80, 75, -187, -301, -420, + -145, -304, 86, -168, -168, -192, -301, 183, 434, 438, + 439, -360, -408, 130, 157, 34, 85, 392, 110, -406, + 191, 634, 684, 689, 645, 638, 679, -407, 259, 150, + 151, 271, 28, 47, 97, 96, 97, 96, 97, 97, + 96, -288, -287, -45, -44, -354, -354, 105, -387, 98, + 98, 255, -190, 85, 85, 85, -114, 749, 105, 95, + -3, 90, -145, 95, 23, -343, -218, -378, -328, -379, + -329, -330, -5, -6, -355, -117, 63, 110, -63, 50, + 254, 729, 730, 139, -419, 742, -370, -255, -374, -376, + -190, -149, -419, -161, -147, -146, -148, -154, 181, 182, + 276, 357, 358, -219, -190, -138, 304, 312, 95, -142, + 101, -389, 86, 295, 392, 295, 392, 98, -412, 328, + 98, -412, -190, -84, -49, -190, -283, -283, 36, -387, + -420, -162, -153, -126, 176, 597, -319, 604, -331, -331, + -331, -338, -331, 347, -331, 347, -331, -420, -420, -420, + 96, -420, 26, -420, 96, -145, 96, -95, -95, -95, + -95, -95, -122, 493, 96, 96, -420, 95, 95, -420, + -145, -420, -420, -420, 96, -420, -420, -420, -420, -420, + -420, -420, -420, -420, -420, -420, -420, -420, 96, -420, + 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, + 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, + 96, -420, 96, -420, 96, -420, 96, -420, 96, -420, + -420, 96, -420, -420, -420, 96, -420, 96, -420, 96, + -420, -420, -420, 96, -317, 690, -420, -420, -420, -420, + -420, -420, -420, -420, -420, -420, -420, -93, -296, -94, + 654, 654, -420, -94, -227, 96, -150, -420, -150, -150, + -150, -420, -420, -420, 96, -420, 96, 96, -420, 96, + -420, 96, -420, -420, -420, -420, 96, -195, 26, -419, + -195, -419, -195, -420, -261, -190, -198, -228, 20, -241, + 57, 367, -252, -251, 61, 53, -249, 23, 55, 23, + 33, -266, 96, 165, -308, 96, 28, -420, -420, 96, + 63, 236, -420, -198, -181, -180, 85, 86, -182, 85, + -180, 75, 75, -256, 96, -264, -168, -198, -198, 236, + 130, -419, -149, 16, 98, 98, -387, -405, 733, 734, + 34, 105, -354, -354, 151, 151, -190, 95, -333, 98, + -333, 105, 105, 34, 91, 92, 93, 34, 87, 88, + 89, -190, -190, -190, -190, -375, 95, 23, -145, 95, + 165, 97, -255, -255, 291, 176, -354, 727, 297, 297, + -354, -354, -354, -116, -115, 749, 97, -420, 96, -341, + 597, 600, -145, -155, -155, -256, 97, -383, 597, -388, + -295, -295, -295, -295, 105, 107, -420, 595, 82, 598, + -420, -333, -145, -145, -145, -145, -235, 98, -145, -145, + 105, 105, -95, -420, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, - -145, -210, -145, -420, -178, -177, -179, 709, 130, 34, - -316, -420, -212, 289, -101, -100, -99, 18, -420, -145, - -119, -119, -119, -119, -145, -145, -145, -145, -145, -145, - -419, 75, 22, 20, -258, -295, 259, -419, -258, -419, - -304, -228, -229, 21, 23, -242, 59, -240, 58, -240, - -251, 23, 23, 98, 23, 98, 151, -275, -145, -215, - -303, 63, -29, -295, -213, -295, -230, -145, 95, -145, - -158, -198, -198, -145, -205, 516, 518, 519, 520, 517, - 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, - 521, 532, 493, 494, 495, 117, 119, 118, 127, 128, - 496, 497, 498, 360, 544, 545, 539, 542, 543, 541, - 540, 375, 376, 499, 562, 563, 567, 566, 564, 565, - 568, 571, 572, 573, 574, 575, 576, 578, 577, 569, - 570, 547, 546, 548, 549, 550, 551, 552, 553, 555, - 554, 556, 557, 558, 559, 560, 561, 579, 580, 581, - 582, 583, 585, 584, 589, 588, 586, 587, 591, 590, - 500, 501, 120, 121, 122, 123, 124, 125, 126, 502, - 505, 503, 506, 507, 508, 513, 514, 509, 510, 511, - 512, 515, 386, 384, 385, 381, 380, 379, 440, 445, - 446, 448, 533, 534, 535, 536, 537, 538, 690, 691, - 692, 693, 694, 695, 696, 697, 98, 98, 95, -145, - 97, 97, -256, -374, -60, 97, -257, -255, 105, 97, - 292, -214, -419, 98, -354, -354, -354, 105, 105, -303, - -420, 96, -295, -407, -376, 600, 600, -420, 28, -382, - -381, -297, 95, 86, 68, 595, 598, -420, -420, -420, - 96, -420, -420, -420, 97, 97, -420, -420, -420, -420, + -145, -145, -145, -145, -210, -145, -420, -178, -177, -179, + 710, 130, 34, -316, -420, -212, 289, -101, -100, -99, + 18, -420, -145, -119, -119, -119, -119, -145, -145, -145, + -145, -145, -145, -419, 75, 22, 20, -258, -295, 259, + -419, -258, -419, -304, -228, -229, 21, 23, -242, 59, + -240, 58, -240, -251, 23, 23, 98, 23, 98, 151, + -275, -145, -215, -303, 63, -29, -295, -213, -295, -230, + -145, 95, -145, -158, -198, -198, -145, -205, 517, 519, + 520, 521, 518, 523, 524, 525, 526, 527, 528, 529, + 530, 531, 532, 522, 533, 494, 495, 496, 117, 119, + 118, 127, 128, 497, 498, 499, 361, 545, 546, 540, + 543, 544, 542, 541, 376, 377, 500, 563, 564, 568, + 567, 565, 566, 569, 572, 573, 574, 575, 576, 577, + 579, 578, 570, 571, 548, 547, 549, 550, 551, 552, + 553, 554, 556, 555, 557, 558, 559, 560, 561, 562, + 580, 581, 582, 583, 584, 586, 585, 590, 589, 587, + 588, 592, 591, 501, 502, 120, 121, 122, 123, 124, + 125, 126, 503, 506, 504, 507, 508, 509, 514, 515, + 510, 511, 512, 513, 516, 387, 385, 386, 382, 381, + 380, 441, 446, 447, 449, 534, 535, 536, 537, 538, + 539, 691, 692, 693, 694, 695, 696, 697, 698, 98, + 98, 95, -145, 97, 97, -256, -374, -60, 97, -257, + -255, 105, 97, 292, -214, -419, 98, -354, -354, -354, + 105, 105, -303, -420, 96, -295, -407, -376, 601, 601, + -420, 28, -382, -381, -297, 95, 86, 68, 596, 599, + -420, -420, -420, 96, -420, -420, -420, 97, 97, -420, -420, -420, -420, -420, -420, -420, -420, -420, -420, -420, - -420, -420, -420, -420, -420, -420, -420, -420, 96, -420, - -177, -179, -420, 85, -158, -230, 23, -98, 314, 316, - -98, -420, -420, -420, -420, -420, 96, -420, -420, 96, - -420, 96, -420, -420, -258, -420, 23, 23, 96, -420, - -258, -420, -258, -197, -229, -108, -107, -106, 627, -145, - -210, -243, 60, 85, 134, 98, 98, 98, 16, -419, - -213, 236, -308, -235, -255, -175, 400, -230, -420, -255, - 97, 28, 97, 750, 151, 97, -214, -125, -419, 288, - -303, 98, 98, -115, -118, -29, 96, 165, -255, -190, - 68, -145, -210, -420, 85, 608, 709, -92, -91, -88, - 720, 746, -210, -94, -94, -145, -145, -145, -420, -295, - 259, -420, -420, -108, 96, -105, -104, -295, -320, 596, - 85, 134, -267, -255, -308, -295, 97, -420, -419, -235, - 97, -239, -29, 95, -3, 288, -328, -379, -329, -330, - -5, -6, -355, -82, 596, -381, -359, -301, -297, 98, - 105, 97, 596, -420, -420, -90, 159, 718, 686, -155, - 235, -420, 96, -420, 96, -420, 96, -106, 96, 28, - 601, -420, -304, -176, -174, -295, 650, -398, -397, 592, - -408, -404, 130, 157, 110, -406, 688, 644, 140, 141, - -82, -145, 95, -420, -83, 303, 705, 236, -389, 597, - -90, 719, 664, 639, 664, 639, -150, -145, -145, -145, - -104, -419, -420, 96, 26, -321, -62, 661, -395, -396, - 85, -399, 406, 660, 681, 130, 98, 97, -255, 264, - -302, -383, 598, 156, -119, -420, 96, -420, 96, -420, - -93, -174, 657, -334, -158, -396, 85, -395, 85, 17, - 16, -4, 749, 97, 305, -90, 664, 639, -145, -145, - -420, -61, 29, -175, -394, 272, 267, 270, 35, -394, - 105, -4, -420, -420, 661, 266, 34, 130, -158, -178, - -177, -177, + -420, -420, -420, -420, -420, -420, -420, -420, -420, -420, + -420, 96, -420, -177, -179, -420, 85, -158, -230, 23, + -98, 314, 316, -98, -420, -420, -420, -420, -420, 96, + -420, -420, 96, -420, 96, -420, -420, -258, -420, 23, + 23, 96, -420, -258, -420, -258, -197, -229, -108, -107, + -106, 628, -145, -210, -243, 60, 85, 134, 98, 98, + 98, 16, -419, -213, 236, -308, -235, -255, -175, 401, + -230, -420, -255, 97, 28, 97, 751, 151, 97, -214, + -125, -419, 288, -303, 98, 98, -115, -118, -29, 96, + 165, -255, -190, 68, -145, -210, -420, 85, 609, 710, + -92, -91, -88, 721, 747, -210, -94, -94, -145, -145, + -145, -420, -295, 259, -420, -420, -108, 96, -105, -104, + -295, -320, 597, 85, 134, -267, -255, -308, -295, 97, + -420, -419, -235, 97, -239, -29, 95, -3, 288, -328, + -379, -329, -330, -5, -6, -355, -82, 597, -381, -359, + -301, -297, 98, 105, 97, 597, -420, -420, -90, 159, + 719, 687, -155, 235, -420, 96, -420, 96, -420, 96, + -106, 96, 28, 602, -420, -304, -176, -174, -295, 651, + -398, -397, 593, -408, -404, 130, 157, 110, -406, 689, + 645, 140, 141, -82, -145, 95, -420, -83, 303, 706, + 236, -389, 598, -90, 720, 665, 640, 665, 640, -150, + -145, -145, -145, -104, -419, -420, 96, 26, -321, -62, + 662, -395, -396, 85, -399, 407, 661, 682, 130, 98, + 97, -255, 264, -302, -383, 599, 156, -119, -420, 96, + -420, 96, -420, -93, -174, 658, -334, -158, -396, 85, + -395, 85, 17, 16, -4, 750, 97, 305, -90, 665, + 640, -145, -145, -420, -61, 29, -175, -394, 272, 267, + 270, 35, -394, 105, -4, -420, -420, 662, 266, 34, + 130, -158, -178, -177, -177, } var yyDef = [...]int{ - 888, -2, -2, 890, 2, 4, 5, 6, 7, 8, + 889, -2, -2, 891, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 70, 72, 73, 888, 888, 888, 0, 888, 0, - 0, 888, -2, -2, 888, 1643, 0, 888, 0, 883, - 0, -2, 803, 809, 0, 818, -2, 0, 0, 888, - 888, 2283, 2283, 883, 0, 0, 0, 0, 0, 888, - 888, 888, 888, 1648, 1501, 50, 888, 0, 85, 86, - 838, 839, 840, 65, 0, 2281, 889, 1, 3, 71, - 75, 0, 0, 0, 58, 1510, 0, 78, 0, 0, - 892, 0, 0, 1626, 888, 888, 0, 126, 127, 0, + 39, 70, 72, 73, 889, 889, 889, 0, 889, 0, + 0, 889, -2, -2, 889, 1644, 0, 889, 0, 884, + 0, -2, 804, 810, 0, 819, -2, 0, 0, 889, + 889, 2285, 2285, 884, 0, 0, 0, 0, 0, 889, + 889, 889, 889, 1649, 1502, 50, 889, 0, 85, 86, + 839, 840, 841, 65, 0, 2283, 890, 1, 3, 71, + 75, 0, 0, 0, 58, 1511, 0, 78, 0, 0, + 893, 0, 0, 1627, 889, 889, 0, 126, 127, 0, 0, 0, -2, 130, -2, 159, 160, 161, 0, 166, - 608, 526, 578, 524, 563, -2, 512, 0, 0, 0, + 609, 526, 578, 524, 563, -2, 512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, - 401, 401, 0, 0, -2, 512, 512, 512, 1628, 0, + 401, 401, 0, 0, -2, 512, 512, 512, 1629, 0, 0, 0, 560, 463, 401, 401, 401, 0, 401, 401, 401, 401, 0, 0, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, - 401, 1528, 165, 1644, 1641, 1642, 1804, 1805, 1806, 1807, - 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, - 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, - 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, - 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, - 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, - 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, - 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, - 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, - 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, - 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, - 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, - 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, - 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, - 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, - 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, - 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, - 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, - 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, - 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, - 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, - 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, - 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, - 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, - 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, - 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, - 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, - 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, - 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, - 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, - 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, - 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, - 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, - 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, - 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, - 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, - 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, - 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, - 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, - 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, - 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, - 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, - 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, - 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, - 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, - 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, - 2278, 2279, 2280, 0, 1620, 0, 721, 992, 0, 884, - 885, 0, 792, 792, 0, 792, 792, 792, 792, 0, - 0, 0, 735, 0, 0, 0, 0, 789, 0, 751, - 752, 0, 789, 0, 758, 795, 0, 0, 765, 792, - 792, 768, 2284, 0, 2284, 2284, 0, 0, 1611, 0, - 786, 784, 798, 799, 42, 802, 805, 806, 807, 808, - 811, 0, 822, 825, 1637, 1638, 0, 827, 832, 851, - 852, 0, 45, 1152, 0, 1016, 0, 1027, -2, 1038, - 1055, 1056, 1057, 1058, 1059, 1061, 1062, 1063, 0, 0, - 0, 0, 1068, 1069, 0, 0, 0, 0, 0, 1132, - 0, 0, 0, 0, 2006, 1472, 0, 0, 1434, 1434, - 1168, 1434, 1434, 1436, 1436, 1436, 1857, 1998, 2007, 2186, - 1818, 1824, 1825, 1826, 2132, 2133, 2134, 2135, 2227, 2228, - 2232, 1920, 1813, 2199, 2200, 0, 2280, 1959, 1967, 1968, - 1944, 1953, 1992, 2094, 2211, 1836, 1987, 2057, 1917, 1939, - 1940, 2075, 2076, 1963, 1964, 1943, 2138, 2140, 2156, 2157, - 2142, 2144, 2153, 2159, 2164, 2143, 2155, 2160, 2173, 2177, - 2180, 2181, 2182, 2150, 2148, 2161, 2165, 2167, 2169, 2175, - 2178, 2151, 2149, 2162, 2166, 2168, 2170, 2176, 2179, 2137, - 2141, 2145, 2154, 2172, 2152, 2171, 2146, 2158, 2163, 2174, - 2147, 2139, 1957, 1960, 1947, 1948, 1950, 1952, 1958, 1965, - 1971, 1949, 1970, 1969, 0, 1945, 1946, 1951, 1962, 1966, - 1954, 1955, 1956, 1961, 1972, 2013, 2012, 2011, 2056, 1983, - 2055, 0, 0, 0, 0, 0, 1807, 1862, 1863, 2183, - 1356, 1357, 1358, 1359, 0, 0, 0, 0, 0, 0, - 0, 290, 291, 1485, 1486, 44, 1151, 1607, 1436, 1436, - 1436, 1436, 1436, 1436, 1090, 1091, 1092, 1093, 1094, 1120, - 1121, 1127, 1128, 2070, 2071, 2072, 2073, 1900, 2222, 1909, - 1910, 2052, 2053, 1922, 1923, 2254, 2255, -2, -2, -2, - 232, 233, 234, 235, 236, 237, 238, 239, 0, 1861, - 2197, 2198, 228, 0, 0, 295, 292, 293, 294, 1134, - 1135, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 289, 297, 298, 2283, 0, 861, 0, 0, - 0, 0, 0, 0, 1649, 1650, 1510, 0, 1502, 1501, - 63, 0, 888, -2, 0, 0, 0, 0, 47, 0, - 52, 949, 891, 77, 76, 1550, 1553, 0, 0, 0, - 59, 1511, 67, 69, 1512, 0, 893, 894, 0, 925, - 929, 0, 0, 0, 1627, 1626, 1626, 102, 0, 0, - 103, 123, 124, 125, 0, 0, 109, 110, 1613, 1614, - 43, 0, 0, 177, 178, 0, 1108, 428, 0, 173, - 0, 421, 360, 0, 1528, 0, 0, 0, 0, 0, - 1624, 0, 1621, 154, 155, 162, 163, 164, 401, 401, - 401, 575, 0, 0, 165, 165, 533, 534, 535, 0, - 0, -2, 426, 0, 513, 0, 0, 415, 415, 419, - 417, 418, 0, 0, 0, 0, 0, 0, 0, 0, - 552, 0, 553, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 669, 0, 402, 0, 573, 574, 464, 0, - 0, 0, 0, 0, 0, 0, 0, 1629, 1630, 0, - 550, 551, 0, 0, 0, 401, 401, 0, 0, 0, - 0, 401, 401, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 153, 1541, 0, 0, 0, -2, 0, 713, 0, - 0, 0, 1622, 1622, 0, 720, 0, 0, 0, 725, - 0, 0, 726, 0, 789, 789, 787, 788, 728, 729, - 730, 731, 792, 0, 0, 410, 411, 412, 789, 792, - 0, 792, 792, 792, 792, 789, 789, 789, 792, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2284, 795, - 792, 0, 759, 0, 760, 761, 762, 763, 766, 767, - 769, 2285, 2286, 1639, 1640, 1651, 1652, 1653, 1654, 1655, + 401, 1529, 165, 1645, 1642, 1643, 1805, 1806, 1807, 1808, + 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, + 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, + 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, + 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, + 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, + 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, + 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, + 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, + 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, + 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, + 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, + 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, + 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, + 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, + 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, + 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, + 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, + 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, + 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, + 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, + 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, + 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, + 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, + 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, + 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, + 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, + 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, + 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, + 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, + 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, + 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, + 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, + 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, + 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, + 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, + 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, + 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, + 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, + 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, + 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, + 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, + 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, + 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, + 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, + 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, + 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 0, 1621, 0, 722, 993, 0, + 885, 886, 0, 793, 793, 0, 793, 793, 793, 793, + 0, 0, 0, 736, 0, 0, 0, 0, 790, 0, + 752, 753, 0, 790, 0, 759, 796, 0, 0, 766, + 793, 793, 769, 2286, 0, 2286, 2286, 0, 0, 1612, + 0, 787, 785, 799, 800, 42, 803, 806, 807, 808, + 809, 812, 0, 823, 826, 1638, 1639, 0, 828, 833, + 852, 853, 0, 45, 1153, 0, 1017, 0, 1028, -2, + 1039, 1056, 1057, 1058, 1059, 1060, 1062, 1063, 1064, 0, + 0, 0, 0, 1069, 1070, 0, 0, 0, 0, 0, + 1133, 0, 0, 0, 0, 2008, 1473, 0, 0, 1435, + 1435, 1169, 1435, 1435, 1437, 1437, 1437, 1858, 2000, 2009, + 2188, 1819, 1825, 1826, 1827, 2134, 2135, 2136, 2137, 2229, + 2230, 2234, 1922, 1814, 2201, 2202, 0, 2282, 1961, 1969, + 1970, 1946, 1955, 1994, 2096, 2213, 1837, 1989, 2059, 1919, + 1941, 1942, 2077, 2078, 1965, 1966, 1945, 2140, 2142, 2158, + 2159, 2144, 2146, 2155, 2161, 2166, 2145, 2157, 2162, 2175, + 2179, 2182, 2183, 2184, 2152, 2150, 2163, 2167, 2169, 2171, + 2177, 2180, 2153, 2151, 2164, 2168, 2170, 2172, 2178, 2181, + 2139, 2143, 2147, 2156, 2174, 2154, 2173, 2148, 2160, 2165, + 2176, 2149, 2141, 1959, 1962, 1949, 1950, 1952, 1954, 1960, + 1967, 1973, 1951, 1972, 1971, 0, 1947, 1948, 1953, 1964, + 1968, 1956, 1957, 1958, 1963, 1974, 2015, 2014, 2013, 2058, + 1985, 2057, 0, 0, 0, 0, 0, 1808, 1864, 1865, + 2185, 1357, 1358, 1359, 1360, 0, 0, 0, 0, 0, + 0, 0, 290, 291, 1486, 1487, 44, 1152, 1608, 1437, + 1437, 1437, 1437, 1437, 1437, 1091, 1092, 1093, 1094, 1095, + 1121, 1122, 1128, 1129, 2072, 2073, 2074, 2075, 1902, 2224, + 1911, 1912, 2054, 2055, 1924, 1925, 2256, 2257, -2, -2, + -2, 232, 233, 234, 235, 236, 237, 238, 239, 0, + 1863, 2199, 2200, 228, 0, 0, 295, 292, 293, 294, + 1135, 1136, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 297, 298, 2285, 0, 862, 0, + 0, 0, 0, 0, 0, 1650, 1651, 1511, 0, 1503, + 1502, 63, 0, 889, -2, 0, 0, 0, 0, 47, + 0, 52, 950, 892, 77, 76, 1551, 1554, 0, 0, + 0, 59, 1512, 67, 69, 1513, 0, 894, 895, 0, + 926, 930, 0, 0, 0, 1628, 1627, 1627, 102, 0, + 0, 103, 123, 124, 125, 0, 0, 109, 110, 1614, + 1615, 43, 0, 0, 177, 178, 0, 1109, 428, 0, + 173, 0, 421, 360, 0, 1529, 0, 0, 0, 0, + 0, 1625, 0, 1622, 154, 155, 162, 163, 164, 401, + 401, 401, 575, 0, 0, 165, 165, 533, 534, 535, + 0, 0, -2, 426, 0, 513, 0, 0, 415, 415, + 419, 417, 418, 0, 0, 0, 0, 0, 0, 0, + 0, 552, 0, 553, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 670, 0, 402, 0, 573, 574, 464, + 0, 0, 0, 0, 0, 0, 0, 0, 1630, 1631, + 0, 550, 551, 0, 0, 0, 401, 401, 0, 0, + 0, 0, 401, 401, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 153, 1542, 0, 0, 0, -2, 0, 714, + 0, 0, 0, 1623, 1623, 0, 721, 0, 0, 0, + 726, 0, 0, 727, 0, 790, 790, 788, 789, 729, + 730, 731, 732, 793, 0, 0, 410, 411, 412, 790, + 793, 0, 793, 793, 793, 793, 790, 790, 790, 793, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, + 796, 793, 0, 760, 0, 761, 762, 763, 764, 767, + 768, 770, 2287, 2288, 1640, 1641, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, @@ -9569,288 +9611,288 @@ var yyDef = [...]int{ 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, - 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 2284, 2284, - 773, 777, 781, 779, 1612, 804, 810, 812, 813, 0, - 0, 823, 826, 845, 49, 1908, 831, 49, 833, 834, - 835, 836, 837, 863, 864, 869, 0, 0, 0, 0, - 875, 876, 877, 0, 0, 880, 881, 882, 0, 0, - 0, 0, 0, 1014, 0, 0, 1140, 1141, 1142, 1143, - 1144, 1145, 1146, 1147, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1039, 1040, 0, 0, 0, 1064, 1065, 1066, - 1067, 1070, 0, 1081, 0, 1083, 1481, -2, 0, 0, - 0, 1075, 1076, 0, 0, 0, 1632, 1632, 0, 0, - 0, 1473, 0, 0, 1166, 0, 1167, 1169, 1170, 1171, - 0, 1172, 1173, 898, 898, 898, 898, 898, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 898, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1632, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1632, 0, 0, - 1632, 1632, 0, 0, 220, 221, 222, 223, 224, 225, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 296, 240, 241, 242, 243, 244, - 299, 245, 246, 247, 1151, 0, 0, 0, 46, 853, - 854, 0, 975, 1632, 0, 0, 904, 0, 1647, 57, - 66, 68, 1510, 61, 1510, 0, 908, 0, 0, -2, - -2, 909, 910, 914, 915, 916, 917, 918, 919, 920, - 921, 922, 54, 2282, 55, 0, 74, 0, 48, 0, - 0, 1551, 0, 1554, 0, 0, 0, 374, 1558, 0, - 0, 1503, 1504, 1507, 0, 926, 2004, 930, 0, 932, - 933, 0, 0, 100, 0, 991, 0, 0, 0, 111, - 0, 113, 114, 0, 0, 0, 385, 1615, 1616, 1617, - -2, 408, 0, 385, 369, 307, 308, 309, 360, 311, - 360, 360, 360, 360, 374, 374, 374, 374, 342, 343, - 344, 345, 346, 0, 360, 0, 328, 360, 360, 360, - 360, 350, 351, 352, 353, 354, 355, 356, 357, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 362, 362, - 362, 362, 362, 366, 366, 0, 1109, 0, 389, 0, - 1507, 0, 0, 1541, 1624, 1634, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 576, 619, 527, 564, 577, - 0, 530, 531, -2, 0, 0, 512, 0, 514, 0, - 409, 0, -2, 0, 419, 0, 415, 419, 416, 419, - 407, 420, 554, 555, 556, 0, 558, 559, 649, 961, - 0, 0, 0, 0, 0, 655, 656, 657, 0, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 565, - 566, 567, 568, 569, 570, 571, 572, 0, 0, 0, - 0, 514, 0, 561, 0, 0, 465, 466, 467, 0, - 0, 470, 471, 472, 473, 0, 0, 476, 477, 478, - 978, 979, 479, 480, 505, 506, 507, 481, 482, 483, - 484, 485, 486, 487, 499, 500, 501, 502, 503, 504, - 488, 489, 490, 491, 492, 493, 496, 0, 147, 1532, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1622, 0, 0, - 0, 0, 907, 993, 1645, 1646, 722, 0, 0, 793, - 794, 0, 413, 414, 792, 792, 732, 774, 0, 792, - 736, 775, 737, 739, 738, 740, 753, 754, 792, 743, - 790, 791, 744, 745, 746, 747, 748, 749, 750, 770, - 755, 756, 757, 796, 0, 800, 801, 771, 772, 0, - 782, 0, 0, 0, 816, 817, 0, 824, 848, 846, - 847, 849, 841, 842, 843, 844, 0, 850, 0, 0, - 866, 96, 871, 872, 873, 874, 886, 879, 1153, 1011, - 1012, 1013, 0, 1015, 1021, 0, 1136, 1138, 1019, 1020, - 1023, 0, 0, 0, 1017, 1028, 1148, 1149, 1150, 0, - 0, 0, 0, 0, 1032, 1036, 1041, 1042, 1043, 1044, - 1045, 0, 1046, 0, 1049, 1050, 1051, 1052, 1053, 1054, - 1060, 1449, 1450, 1451, 1079, 300, 301, 0, 1080, 0, - 0, 0, 0, 0, 0, 0, 0, 1396, 1397, 1398, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 2286, + 2286, 774, 778, 782, 780, 1613, 805, 811, 813, 814, + 0, 0, 824, 827, 846, 49, 1910, 832, 49, 834, + 835, 836, 837, 838, 864, 865, 870, 0, 0, 0, + 0, 876, 877, 878, 0, 0, 881, 882, 883, 0, + 0, 0, 0, 0, 1015, 0, 0, 1141, 1142, 1143, + 1144, 1145, 1146, 1147, 1148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1040, 1041, 0, 0, 0, 1065, 1066, + 1067, 1068, 1071, 0, 1082, 0, 1084, 1482, -2, 0, + 0, 0, 1076, 1077, 0, 0, 0, 1633, 1633, 0, + 0, 0, 1474, 0, 0, 1167, 0, 1168, 1170, 1171, + 1172, 0, 1173, 1174, 899, 899, 899, 899, 899, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 899, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1633, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1633, 0, + 0, 1633, 1633, 0, 0, 220, 221, 222, 223, 224, + 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 296, 240, 241, 242, 243, + 244, 299, 245, 246, 247, 1152, 0, 0, 0, 46, + 854, 855, 0, 976, 1633, 0, 0, 905, 0, 1648, + 57, 66, 68, 1511, 61, 1511, 0, 909, 0, 0, + -2, -2, 910, 911, 915, 916, 917, 918, 919, 920, + 921, 922, 923, 54, 2284, 55, 0, 74, 0, 48, + 0, 0, 1552, 0, 1555, 0, 0, 0, 374, 1559, + 0, 0, 1504, 1505, 1508, 0, 927, 2006, 931, 0, + 933, 934, 0, 0, 100, 0, 992, 0, 0, 0, + 111, 0, 113, 114, 0, 0, 0, 385, 1616, 1617, + 1618, -2, 408, 0, 385, 369, 307, 308, 309, 360, + 311, 360, 360, 360, 360, 374, 374, 374, 374, 342, + 343, 344, 345, 346, 0, 360, 0, 328, 360, 360, + 360, 360, 350, 351, 352, 353, 354, 355, 356, 357, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 362, + 362, 362, 362, 362, 366, 366, 0, 1110, 0, 389, + 0, 1508, 0, 0, 1542, 1625, 1635, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 576, 620, 527, 564, + 577, 0, 530, 531, -2, 0, 0, 512, 0, 514, + 0, 409, 0, -2, 0, 419, 0, 415, 419, 416, + 419, 407, 420, 554, 555, 556, 0, 558, 559, 650, + 962, 0, 0, 0, 0, 0, 656, 657, 658, 0, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, + 565, 566, 567, 568, 569, 570, 571, 572, 0, 0, + 0, 0, 514, 0, 561, 0, 0, 465, 466, 467, + 0, 0, 470, 471, 472, 473, 0, 0, 476, 477, + 478, 979, 980, 479, 480, 505, 506, 507, 481, 482, + 483, 484, 485, 486, 487, 499, 500, 501, 502, 503, + 504, 488, 489, 490, 491, 492, 493, 496, 0, 147, + 1533, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1623, 0, + 0, 0, 0, 908, 994, 1646, 1647, 723, 0, 0, + 794, 795, 0, 413, 414, 793, 793, 733, 775, 0, + 793, 737, 776, 738, 740, 739, 741, 754, 755, 793, + 744, 791, 792, 745, 746, 747, 748, 749, 750, 751, + 771, 756, 757, 758, 797, 0, 801, 802, 772, 773, + 0, 783, 0, 0, 0, 817, 818, 0, 825, 849, + 847, 848, 850, 842, 843, 844, 845, 0, 851, 0, + 0, 867, 96, 872, 873, 874, 875, 887, 880, 1154, + 1012, 1013, 1014, 0, 1016, 1022, 0, 1137, 1139, 1020, + 1021, 1024, 0, 0, 0, 1018, 1029, 1149, 1150, 1151, + 0, 0, 0, 0, 0, 1033, 1037, 1042, 1043, 1044, + 1045, 1046, 0, 1047, 0, 1050, 1051, 1052, 1053, 1054, + 1055, 1061, 1450, 1451, 1452, 1080, 300, 301, 0, 1081, + 0, 0, 0, 0, 0, 0, 0, 0, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, - 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1152, 0, 1633, - 0, 0, 0, 1479, 1476, 0, 0, 0, 1435, 1437, - 0, 0, 0, 899, 900, 0, 0, 0, 0, 0, + 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1153, 0, + 1634, 0, 0, 0, 1480, 1477, 0, 0, 0, 1436, + 1438, 0, 0, 0, 900, 901, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, + 0, 0, 0, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, - 0, 0, 1452, 0, 0, 0, 0, 0, 0, 0, - 1472, 0, 1085, 1086, 1087, 0, 0, 0, 0, 0, - 0, 1214, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 143, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1360, 1361, 1362, - 1363, 41, 0, 0, 0, 0, 0, 0, 0, 1483, - 0, -2, -2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1385, 0, 0, 0, - 0, 0, 0, 1605, 0, 0, 856, 857, 859, 0, - 995, 0, 976, 0, 0, 862, 0, 903, 0, 906, - 60, 62, 912, 913, 0, 934, 923, 911, 56, 51, - 0, 0, 953, 1552, 1555, 1556, 374, 1578, 0, 383, - 383, 380, 1513, 1514, 0, 1506, 1508, 1509, 79, 931, - 927, 0, 1009, 0, 0, 990, 0, 937, 939, 940, - 941, 973, 0, 944, 945, 0, 0, 0, 0, 0, - 98, 992, 104, 0, 112, 0, 0, 117, 118, 105, - 106, 107, 108, 0, 608, -2, 460, 179, 181, 182, - 183, 174, -2, 372, 370, 371, 310, 374, 374, 336, - 337, 338, 339, 340, 341, 0, 348, 0, 329, 330, - 331, 332, 321, 0, 322, 323, 324, 364, 0, 325, - 326, 0, 327, 427, 0, 1515, 390, 391, 393, 401, - 0, 396, 397, 0, 401, 401, 0, 422, 423, 0, - 1507, 1532, 0, 0, 1635, 1634, 1634, 1634, 152, 0, - 167, 168, 169, 170, 171, 172, 644, 0, 0, 620, - 642, 643, 165, 0, 0, 175, 516, 515, 0, 676, - 0, 425, 0, 0, 419, 419, 404, 405, 557, 0, - 0, 651, 652, 653, 654, 0, 0, 0, 543, 454, - 0, 544, 545, 514, 516, 0, 0, 385, 468, 469, - 474, 475, 494, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 592, 593, 595, 598, 600, - 518, 604, 606, 594, 597, 599, 601, 518, 605, 607, - 1529, 1530, 1531, 0, 0, 714, 0, 0, 451, 94, - 1623, 719, 723, 724, 789, 742, 776, 789, 734, 741, - 764, 778, 780, 814, 815, 820, 828, 829, 830, 870, - 0, 0, 0, 0, 878, 0, 0, 1022, 1137, 1139, - 1024, 1025, 1026, 1029, 0, 1033, 1037, 0, 0, 0, - 0, 0, 1084, 1082, 1483, 0, 0, 0, 1133, 0, - 0, 1156, 1157, 0, 0, 0, 0, 1477, 0, 0, - 1164, 0, 1438, 1114, 0, 0, 0, 0, 0, 1114, - 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1501, - 1191, 0, 0, 0, 0, 0, 1196, 1197, 1198, 1114, - 0, 1201, 1202, 0, 1204, 0, 1205, 0, 0, 0, - 0, 1212, 1213, 1215, 0, 0, 1218, 1219, 0, 1221, - 0, 1223, 1224, 1225, 1226, 1227, 1228, 0, 1230, 0, - 1232, 1233, 1234, 0, 1236, 0, 1238, 1239, 0, 1241, - 0, 1243, 0, 1246, 0, 1249, 0, 1252, 0, 1255, - 0, 1258, 0, 1261, 0, 1264, 0, 1267, 0, 1270, - 0, 1273, 0, 1276, 0, 1279, 0, 1282, 0, 1285, - 0, 1288, 0, 1291, 1292, 1293, 0, 1295, 0, 1297, - 0, 1300, 1301, 0, 1303, 0, 1306, 0, 1309, 0, - 0, 1310, 0, 0, 0, 1314, 0, 0, 0, 0, - 1323, 1324, 1325, 1326, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1337, 1338, 1339, 1340, 1341, 1342, - 0, 1344, 0, 1115, 0, 0, 1115, 0, 0, 0, - 0, 0, 1154, 1632, 0, 1439, 1440, 1441, 1442, 1443, - 0, 0, 0, 0, 0, 0, 1383, 1384, 1386, 0, - 0, 1389, 0, 1391, 0, 1606, 855, 858, 860, 947, - 996, 997, 0, 0, 0, 0, 977, 1631, 901, 902, - 905, 955, 0, 1487, 0, 0, 934, 1009, 0, 935, - 0, 53, 950, 0, 1560, 1559, 1572, 1585, 383, 383, - 377, 378, 384, 379, 381, 382, 1505, 0, 1510, 0, - 1599, 0, 0, 1588, 0, 0, 0, 0, 0, 0, - 0, 0, 980, 0, 0, 983, 0, 0, 0, 0, - 974, 945, 0, 946, 0, -2, 0, 0, 92, 93, - 0, 0, 0, 115, 116, 0, 0, 122, 386, 387, - 156, 165, 462, 180, 435, 0, 0, 306, 373, 333, - 334, 335, 0, 358, 0, 0, 0, 0, 456, 128, - 1519, 1518, 401, 401, 392, 0, 395, 0, 0, 0, - 1636, 361, 424, 0, 146, 0, 0, 0, 0, 1625, - 614, 0, 0, 621, 0, 0, 0, 525, 0, 536, - 537, 0, 648, -2, 710, 389, 0, 403, 406, 962, - 0, 0, 538, 0, 541, 542, 455, 516, 547, 548, - 562, 549, 497, 498, 495, 0, 0, 1542, 1543, 1548, - 1546, 1547, 133, 583, 585, 589, 584, 588, 0, 0, - 0, 520, 0, 520, 581, 0, 451, 1515, 0, 718, - 452, 453, 792, 792, 865, 97, 0, 868, 0, 0, - 0, 0, 1030, 1034, 1047, 1048, 1444, 1470, 360, 360, - 1457, 360, 366, 1460, 360, 1462, 360, 1465, 360, 1468, - 1469, 0, 0, 1077, 0, 0, 0, 0, 1163, 1480, - 0, 0, 1174, 1113, 1114, 1114, 1114, 1114, 1114, 1180, - 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1474, - 0, 0, 0, 1195, 0, 0, 1199, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 144, 145, 0, 0, - 0, 0, 0, 0, 1394, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1108, 1112, 0, 1116, - 1117, 0, 0, 1346, 0, 0, 1364, 0, 0, 0, - 0, 0, 0, 0, 1484, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 998, 1005, 0, 1005, 0, - 1005, 0, 0, 0, 1618, 1619, 1488, 1489, 1009, 1490, - 924, 936, 954, 1578, 0, 1571, 0, -2, 1580, 0, - 0, 0, 1586, 375, 376, 928, 80, 1010, 83, 0, - 1599, 1608, 0, 1596, 1601, 1603, 0, 0, 0, 1592, - 0, 1009, 938, 969, 971, 0, 966, 981, 982, 984, - 0, 986, 0, 988, 989, 949, 943, 0, 100, 0, - 1009, 1009, 99, 0, 994, 119, 120, 121, 461, 184, - 189, 0, 0, 0, 194, 0, 196, 0, 0, 0, - 201, 202, 401, 401, 436, 0, 303, 305, 0, 0, - 187, 374, 0, 374, 0, 365, 367, 0, 437, 457, - 1516, 1517, 0, 0, 394, 398, 399, 400, 0, 148, - 0, 0, 0, 617, 0, 645, 0, 0, 0, 0, - 0, 0, 176, 517, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 0, 401, 0, 0, 0, 401, 401, - 401, 0, 702, 388, 0, 0, 673, 670, 539, 0, - 218, 219, 226, 227, 229, 0, 0, 0, 0, 0, - 546, 949, 1533, 1534, 1535, 0, 1545, 1549, 136, 0, - 0, 0, 0, 591, 596, 602, 0, 519, 603, 715, - 716, 717, 95, 727, 733, 867, 887, 1018, 1031, 1035, - 0, 0, 0, 0, 1471, 1455, 374, 1458, 1459, 1461, - 1463, 1464, 1466, 1467, 1073, 1074, 1078, 0, 1160, 0, - 1162, 0, 1478, 0, 1175, 1176, 1177, 1178, 1179, 1510, - 0, 0, 0, 1194, 0, 0, 1114, 0, 1207, 1206, - 1208, 0, 1210, 1211, 1216, 1217, 1220, 1222, 1229, 1231, - 1235, 1237, 1240, 1242, 1244, 0, 1247, 0, 1250, 0, - 1253, 0, 1256, 0, 1259, 0, 1262, 0, 1265, 0, - 1268, 0, 1271, 0, 1274, 0, 1277, 0, 1280, 0, - 1283, 0, 1286, 0, 1289, 0, 1294, 1296, 0, 1299, - 1302, 1304, 0, 1307, 0, 1311, 0, 1313, 1315, 1316, - 0, 0, 0, 1327, 1328, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1343, 0, 1106, 1345, 1118, 1119, 1124, - 1348, 0, 0, 0, 1351, 0, 0, 0, 1355, 1155, - 1366, 0, 1371, 0, 0, 1377, 0, 1381, 0, 1387, - 1388, 1390, 1392, 0, 0, 0, 0, 0, 0, 0, - 975, 956, 64, 1490, 1494, 0, 1565, 1563, 1563, 1573, - 1574, 0, 0, 1581, 0, 0, 0, 0, 84, 0, - 0, 1587, 0, 0, 1604, 0, 0, 0, 0, 101, - 1501, 963, 970, 0, 0, 964, 0, 965, 985, 987, - 942, 0, 1009, 1009, 90, 91, 0, 190, 0, 192, - 0, 195, 197, 198, 199, 205, 206, 207, 200, 0, - 0, 302, 304, 0, 0, 347, 359, 349, 0, 0, - 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 949, 149, - 150, 151, 609, 0, 619, 0, 951, 0, 612, 0, - 528, 0, 0, 0, 401, 401, 401, 0, 0, 0, - 0, 687, 0, 0, 650, 0, 658, 0, 0, 0, - 230, 231, 0, 1544, 582, 0, 134, 135, 0, 0, - 587, 521, 522, 1071, 0, 0, 0, 1072, 1456, 0, - 0, 0, 0, 0, 1475, 0, 0, 0, 0, 1200, - 1203, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1319, 0, 0, 0, 639, 640, 0, - 1395, 1111, 1501, 0, 1115, 1125, 1126, 0, 1115, 1365, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1006, 0, 0, 0, 957, 958, 0, 0, 0, - 995, 1494, 1499, 0, 0, 1568, 0, 1561, 1564, 1562, - 1575, 0, 0, 1582, 0, 1584, 0, 1609, 1610, 1602, - 1597, 0, 1591, 1594, 1596, 1593, 1510, 967, 0, 972, - 0, 1501, 89, 0, 193, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 203, 204, 0, 0, - 363, 368, 0, 0, 0, 610, 0, 952, 622, 613, - 0, 700, 0, 704, 0, 0, 0, 707, 708, 709, - 686, 0, 690, 429, 674, 671, 672, 540, 0, 137, - 138, 0, 0, 0, 1445, 0, 1448, 1158, 1161, 1159, - 0, 1190, 1192, 1193, 1453, 1454, 1209, 1245, 1248, 1251, - 1254, 1257, 1260, 1263, 1266, 1269, 1272, 1275, 1278, 1281, - 1284, 1287, 1290, 1298, 1305, 1308, 1312, 1317, 0, 1320, - 0, 0, 1321, 0, 641, 1102, 0, 0, 1122, 1123, - 0, 1350, 1352, 1353, 1354, 1367, 0, 1372, 1373, 0, - 1378, 0, 1382, 1393, 0, 1000, 1007, 1008, 0, 1003, - 0, 1004, 0, 948, 1499, 82, 1500, 1497, 0, 1495, - 1492, 1557, 0, 1566, 1567, 1576, 1577, 1583, 0, 0, - 1596, 0, 1590, 87, 0, 0, 0, 1510, 191, 0, - 210, 0, 618, 0, 621, 611, 698, 699, 0, 711, - 703, 705, 706, 688, -2, 1536, 0, 0, 0, 590, - 1446, 0, 0, 1322, 0, 637, 638, 1110, 1103, 0, - 1088, 1089, 1107, 1347, 1349, 0, 0, 0, 999, 959, - 960, 1001, 1002, 81, 0, 1496, 1130, 0, 1491, 0, - 1569, 1570, 1600, 0, 1589, 1595, 968, 975, 0, 88, - 442, 435, 1536, 0, 0, 0, 691, 692, 693, 694, - 695, 696, 697, 579, 1538, 139, 140, 0, 509, 510, - 511, 133, 0, 1165, 1318, 1104, 0, 0, 0, 0, - 0, 1368, 0, 1374, 0, 1379, 0, 1498, 0, 0, - 1493, 1598, 623, 0, 625, 0, -2, 430, 443, 0, - 185, 211, 212, 0, 0, 215, 216, 217, 208, 209, - 129, 0, 0, 712, 0, 1539, 1540, 0, 136, 0, - 0, 1095, 1096, 1097, 1098, 1100, 0, 0, 0, 0, - 1131, 1108, 624, 0, 0, 385, 0, 634, 431, 432, - 0, 438, 439, 440, 441, 213, 214, 646, 0, 0, - 508, 586, 1447, 0, 0, 1369, 0, 1375, 0, 1380, - 0, 626, 627, 635, 0, 433, 0, 434, 0, 0, - 0, 615, 0, 646, 1537, 1105, 1099, 1101, 0, 0, - 1129, 0, 636, 632, 444, 446, 447, 0, 0, 445, - 647, 616, 1370, 1376, 0, 448, 449, 450, 628, 629, - 630, 631, + 1434, 0, 0, 1453, 0, 0, 0, 0, 0, 0, + 0, 1473, 0, 1086, 1087, 1088, 0, 0, 0, 0, + 0, 0, 1215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 142, 143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1361, 1362, + 1363, 1364, 41, 0, 0, 0, 0, 0, 0, 0, + 1484, 0, -2, -2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1386, 0, 0, + 0, 0, 0, 0, 1606, 0, 0, 857, 858, 860, + 0, 996, 0, 977, 0, 0, 863, 0, 904, 0, + 907, 60, 62, 913, 914, 0, 935, 924, 912, 56, + 51, 0, 0, 954, 1553, 1556, 1557, 374, 1579, 0, + 383, 383, 380, 1514, 1515, 0, 1507, 1509, 1510, 79, + 932, 928, 0, 1010, 0, 0, 991, 0, 938, 940, + 941, 942, 974, 0, 945, 946, 0, 0, 0, 0, + 0, 98, 993, 104, 0, 112, 0, 0, 117, 118, + 105, 106, 107, 108, 0, 609, -2, 460, 179, 181, + 182, 183, 174, -2, 372, 370, 371, 310, 374, 374, + 336, 337, 338, 339, 340, 341, 0, 348, 0, 329, + 330, 331, 332, 321, 0, 322, 323, 324, 364, 0, + 325, 326, 0, 327, 427, 0, 1516, 390, 391, 393, + 401, 0, 396, 397, 0, 401, 401, 0, 422, 423, + 0, 1508, 1533, 0, 0, 1636, 1635, 1635, 1635, 152, + 0, 167, 168, 169, 170, 171, 172, 645, 0, 0, + 621, 643, 644, 165, 0, 0, 175, 516, 515, 0, + 677, 0, 425, 0, 0, 419, 419, 404, 405, 557, + 0, 0, 652, 653, 654, 655, 0, 0, 0, 543, + 454, 0, 544, 545, 514, 516, 0, 0, 385, 468, + 469, 474, 475, 494, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 592, 593, 595, 598, + 600, 518, 604, 606, 0, 594, 597, 599, 601, 518, + 605, 607, 1530, 1531, 1532, 0, 0, 715, 0, 0, + 451, 94, 1624, 720, 724, 725, 790, 743, 777, 790, + 735, 742, 765, 779, 781, 815, 816, 821, 829, 830, + 831, 871, 0, 0, 0, 0, 879, 0, 0, 1023, + 1138, 1140, 1025, 1026, 1027, 1030, 0, 1034, 1038, 0, + 0, 0, 0, 0, 1085, 1083, 1484, 0, 0, 0, + 1134, 0, 0, 1157, 1158, 0, 0, 0, 0, 1478, + 0, 0, 1165, 0, 1439, 1115, 0, 0, 0, 0, + 0, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1502, 1192, 0, 0, 0, 0, 0, 1197, 1198, + 1199, 1115, 0, 1202, 1203, 0, 1205, 0, 1206, 0, + 0, 0, 0, 1213, 1214, 1216, 0, 0, 1219, 1220, + 0, 1222, 0, 1224, 1225, 1226, 1227, 1228, 1229, 0, + 1231, 0, 1233, 1234, 1235, 0, 1237, 0, 1239, 1240, + 0, 1242, 0, 1244, 0, 1247, 0, 1250, 0, 1253, + 0, 1256, 0, 1259, 0, 1262, 0, 1265, 0, 1268, + 0, 1271, 0, 1274, 0, 1277, 0, 1280, 0, 1283, + 0, 1286, 0, 1289, 0, 1292, 1293, 1294, 0, 1296, + 0, 1298, 0, 1301, 1302, 0, 1304, 0, 1307, 0, + 1310, 0, 0, 1311, 0, 0, 0, 1315, 0, 0, + 0, 0, 1324, 1325, 1326, 1327, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1338, 1339, 1340, 1341, + 1342, 1343, 0, 1345, 0, 1116, 0, 0, 1116, 0, + 0, 0, 0, 0, 1155, 1633, 0, 1440, 1441, 1442, + 1443, 1444, 0, 0, 0, 0, 0, 0, 1384, 1385, + 1387, 0, 0, 1390, 0, 1392, 0, 1607, 856, 859, + 861, 948, 997, 998, 0, 0, 0, 0, 978, 1632, + 902, 903, 906, 956, 0, 1488, 0, 0, 935, 1010, + 0, 936, 0, 53, 951, 0, 1561, 1560, 1573, 1586, + 383, 383, 377, 378, 384, 379, 381, 382, 1506, 0, + 1511, 0, 1600, 0, 0, 1589, 0, 0, 0, 0, + 0, 0, 0, 0, 981, 0, 0, 984, 0, 0, + 0, 0, 975, 946, 0, 947, 0, -2, 0, 0, + 92, 93, 0, 0, 0, 115, 116, 0, 0, 122, + 386, 387, 156, 165, 462, 180, 435, 0, 0, 306, + 373, 333, 334, 335, 0, 358, 0, 0, 0, 0, + 456, 128, 1520, 1519, 401, 401, 392, 0, 395, 0, + 0, 0, 1637, 361, 424, 0, 146, 0, 0, 0, + 0, 1626, 615, 0, 0, 622, 0, 0, 0, 525, + 0, 536, 537, 0, 649, -2, 711, 389, 0, 403, + 406, 963, 0, 0, 538, 0, 541, 542, 455, 516, + 547, 548, 562, 549, 497, 498, 495, 0, 0, 1543, + 1544, 1549, 1547, 1548, 133, 583, 585, 589, 584, 588, + 0, 0, 0, 520, 0, 608, 520, 581, 0, 451, + 1516, 0, 719, 452, 453, 793, 793, 866, 97, 0, + 869, 0, 0, 0, 0, 1031, 1035, 1048, 1049, 1445, + 1471, 360, 360, 1458, 360, 366, 1461, 360, 1463, 360, + 1466, 360, 1469, 1470, 0, 0, 1078, 0, 0, 0, + 0, 1164, 1481, 0, 0, 1175, 1114, 1115, 1115, 1115, + 1115, 1115, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, + 1189, 1190, 1475, 0, 0, 0, 1196, 0, 0, 1200, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, + 145, 0, 0, 0, 0, 0, 0, 1395, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1109, + 1113, 0, 1117, 1118, 0, 0, 1347, 0, 0, 1365, + 0, 0, 0, 0, 0, 0, 0, 1485, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 999, 1006, + 0, 1006, 0, 1006, 0, 0, 0, 1619, 1620, 1489, + 1490, 1010, 1491, 925, 937, 955, 1579, 0, 1572, 0, + -2, 1581, 0, 0, 0, 1587, 375, 376, 929, 80, + 1011, 83, 0, 1600, 1609, 0, 1597, 1602, 1604, 0, + 0, 0, 1593, 0, 1010, 939, 970, 972, 0, 967, + 982, 983, 985, 0, 987, 0, 989, 990, 950, 944, + 0, 100, 0, 1010, 1010, 99, 0, 995, 119, 120, + 121, 461, 184, 189, 0, 0, 0, 194, 0, 196, + 0, 0, 0, 201, 202, 401, 401, 436, 0, 303, + 305, 0, 0, 187, 374, 0, 374, 0, 365, 367, + 0, 437, 457, 1517, 1518, 0, 0, 394, 398, 399, + 400, 0, 148, 0, 0, 0, 618, 0, 646, 0, + 0, 0, 0, 0, 0, 176, 517, 678, 679, 680, + 681, 682, 683, 684, 685, 686, 0, 401, 0, 0, + 0, 401, 401, 401, 0, 703, 388, 0, 0, 674, + 671, 539, 0, 218, 219, 226, 227, 229, 0, 0, + 0, 0, 0, 546, 950, 1534, 1535, 1536, 0, 1546, + 1550, 136, 0, 0, 0, 0, 591, 596, 602, 0, + 519, 603, 716, 717, 718, 95, 728, 734, 868, 888, + 1019, 1032, 1036, 0, 0, 0, 0, 1472, 1456, 374, + 1459, 1460, 1462, 1464, 1465, 1467, 1468, 1074, 1075, 1079, + 0, 1161, 0, 1163, 0, 1479, 0, 1176, 1177, 1178, + 1179, 1180, 1511, 0, 0, 0, 1195, 0, 0, 1115, + 0, 1208, 1207, 1209, 0, 1211, 1212, 1217, 1218, 1221, + 1223, 1230, 1232, 1236, 1238, 1241, 1243, 1245, 0, 1248, + 0, 1251, 0, 1254, 0, 1257, 0, 1260, 0, 1263, + 0, 1266, 0, 1269, 0, 1272, 0, 1275, 0, 1278, + 0, 1281, 0, 1284, 0, 1287, 0, 1290, 0, 1295, + 1297, 0, 1300, 1303, 1305, 0, 1308, 0, 1312, 0, + 1314, 1316, 1317, 0, 0, 0, 1328, 1329, 1330, 1331, + 1332, 1333, 1334, 1335, 1336, 1337, 1344, 0, 1107, 1346, + 1119, 1120, 1125, 1349, 0, 0, 0, 1352, 0, 0, + 0, 1356, 1156, 1367, 0, 1372, 0, 0, 1378, 0, + 1382, 0, 1388, 1389, 1391, 1393, 0, 0, 0, 0, + 0, 0, 0, 976, 957, 64, 1491, 1495, 0, 1566, + 1564, 1564, 1574, 1575, 0, 0, 1582, 0, 0, 0, + 0, 84, 0, 0, 1588, 0, 0, 1605, 0, 0, + 0, 0, 101, 1502, 964, 971, 0, 0, 965, 0, + 966, 986, 988, 943, 0, 1010, 1010, 90, 91, 0, + 190, 0, 192, 0, 195, 197, 198, 199, 205, 206, + 207, 200, 0, 0, 302, 304, 0, 0, 347, 359, + 349, 0, 0, 1521, 1522, 1523, 1524, 1525, 1526, 1527, + 1528, 950, 149, 150, 151, 610, 0, 620, 0, 952, + 0, 613, 0, 528, 0, 0, 0, 401, 401, 401, + 0, 0, 0, 0, 688, 0, 0, 651, 0, 659, + 0, 0, 0, 230, 231, 0, 1545, 582, 0, 134, + 135, 0, 0, 587, 521, 522, 1072, 0, 0, 0, + 1073, 1457, 0, 0, 0, 0, 0, 1476, 0, 0, + 0, 0, 1201, 1204, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1320, 0, 0, 0, + 640, 641, 0, 1396, 1112, 1502, 0, 1116, 1126, 1127, + 0, 1116, 1366, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1007, 0, 0, 0, 958, 959, + 0, 0, 0, 996, 1495, 1500, 0, 0, 1569, 0, + 1562, 1565, 1563, 1576, 0, 0, 1583, 0, 1585, 0, + 1610, 1611, 1603, 1598, 0, 1592, 1595, 1597, 1594, 1511, + 968, 0, 973, 0, 1502, 89, 0, 193, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 203, + 204, 0, 0, 363, 368, 0, 0, 0, 611, 0, + 953, 623, 614, 0, 701, 0, 705, 0, 0, 0, + 708, 709, 710, 687, 0, 691, 429, 675, 672, 673, + 540, 0, 137, 138, 0, 0, 0, 1446, 0, 1449, + 1159, 1162, 1160, 0, 1191, 1193, 1194, 1454, 1455, 1210, + 1246, 1249, 1252, 1255, 1258, 1261, 1264, 1267, 1270, 1273, + 1276, 1279, 1282, 1285, 1288, 1291, 1299, 1306, 1309, 1313, + 1318, 0, 1321, 0, 0, 1322, 0, 642, 1103, 0, + 0, 1123, 1124, 0, 1351, 1353, 1354, 1355, 1368, 0, + 1373, 1374, 0, 1379, 0, 1383, 1394, 0, 1001, 1008, + 1009, 0, 1004, 0, 1005, 0, 949, 1500, 82, 1501, + 1498, 0, 1496, 1493, 1558, 0, 1567, 1568, 1577, 1578, + 1584, 0, 0, 1597, 0, 1591, 87, 0, 0, 0, + 1511, 191, 0, 210, 0, 619, 0, 622, 612, 699, + 700, 0, 712, 704, 706, 707, 689, -2, 1537, 0, + 0, 0, 590, 1447, 0, 0, 1323, 0, 638, 639, + 1111, 1104, 0, 1089, 1090, 1108, 1348, 1350, 0, 0, + 0, 1000, 960, 961, 1002, 1003, 81, 0, 1497, 1131, + 0, 1492, 0, 1570, 1571, 1601, 0, 1590, 1596, 969, + 976, 0, 88, 442, 435, 1537, 0, 0, 0, 692, + 693, 694, 695, 696, 697, 698, 579, 1539, 139, 140, + 0, 509, 510, 511, 133, 0, 1166, 1319, 1105, 0, + 0, 0, 0, 0, 1369, 0, 1375, 0, 1380, 0, + 1499, 0, 0, 1494, 1599, 624, 0, 626, 0, -2, + 430, 443, 0, 185, 211, 212, 0, 0, 215, 216, + 217, 208, 209, 129, 0, 0, 713, 0, 1540, 1541, + 0, 136, 0, 0, 1096, 1097, 1098, 1099, 1101, 0, + 0, 0, 0, 1132, 1109, 625, 0, 0, 385, 0, + 635, 431, 432, 0, 438, 439, 440, 441, 213, 214, + 647, 0, 0, 508, 586, 1448, 0, 0, 1370, 0, + 1376, 0, 1381, 0, 627, 628, 636, 0, 433, 0, + 434, 0, 0, 0, 616, 0, 647, 1538, 1106, 1100, + 1102, 0, 0, 1130, 0, 637, 633, 444, 446, 447, + 0, 0, 445, 648, 617, 1371, 1377, 0, 448, 449, + 450, 629, 630, 631, 632, } var yyTok1 = [...]int{ @@ -9859,7 +9901,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 158, 3, 3, 3, 186, 178, 3, 95, 97, 183, 181, 96, 182, 236, 184, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 751, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 752, 166, 165, 167, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -9994,7 +10036,7 @@ var yyTok3 = [...]int{ 58060, 735, 58061, 736, 58062, 737, 58063, 738, 58064, 739, 58065, 740, 58066, 741, 58067, 742, 58068, 743, 58069, 744, 58070, 745, 58071, 746, 58072, 747, 58073, 748, 58074, 749, - 58075, 750, 0, + 58075, 750, 58076, 751, 0, } var yyErrorMessages = [...]struct { @@ -14615,17 +14657,29 @@ yydefault: } yyVAL.union = yyLOCAL case 608: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3411 + { + yyLOCAL = &AlterMigration{ + Type: SetCutOverThresholdMigrationType, + UUID: string(yyDollar[4].str), + Threshold: yyDollar[6].str, + } + } + yyVAL.union = yyLOCAL + case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3412 +//line sql.y:3420 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 609: + case 610: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3416 +//line sql.y:3424 { yyDollar[3].partitionOptionUnion().Partitions = yyDollar[4].integerUnion() yyDollar[3].partitionOptionUnion().SubPartition = yyDollar[5].subPartitionUnion() @@ -14633,10 +14687,10 @@ yydefault: yyLOCAL = yyDollar[3].partitionOptionUnion() } yyVAL.union = yyLOCAL - case 610: + case 611: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3425 +//line sql.y:3433 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -14645,10 +14699,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 611: + case 612: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3433 +//line sql.y:3441 { yyLOCAL = &PartitionOption{ IsLinear: yyDollar[1].booleanUnion(), @@ -14658,10 +14712,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 612: + case 613: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3442 +//line sql.y:3450 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -14669,10 +14723,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 613: + case 614: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:3449 +//line sql.y:3457 { yyLOCAL = &PartitionOption{ Type: yyDollar[1].partitionByTypeUnion(), @@ -14680,18 +14734,18 @@ yydefault: } } yyVAL.union = yyLOCAL - case 614: + case 615: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3457 +//line sql.y:3465 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 615: + case 616: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3461 +//line sql.y:3469 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -14701,10 +14755,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 616: + case 617: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:3470 +//line sql.y:3478 { yyLOCAL = &SubPartition{ IsLinear: yyDollar[3].booleanUnion(), @@ -14715,678 +14769,678 @@ yydefault: } } yyVAL.union = yyLOCAL - case 617: + case 618: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3481 +//line sql.y:3489 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 618: + case 619: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3485 +//line sql.y:3493 { yyLOCAL = yyDollar[2].partDefsUnion() } yyVAL.union = yyLOCAL - case 619: + case 620: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3490 +//line sql.y:3498 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 620: + case 621: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3494 +//line sql.y:3502 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 621: + case 622: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3499 +//line sql.y:3507 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 622: + case 623: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3503 +//line sql.y:3511 { yyLOCAL = convertStringToInt(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 623: + case 624: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3509 +//line sql.y:3517 { yyLOCAL = &JSONTableExpr{Expr: yyDollar[3].exprUnion(), Filter: yyDollar[5].exprUnion(), Columns: yyDollar[6].jtColumnListUnion(), Alias: yyDollar[8].identifierCS} } yyVAL.union = yyLOCAL - case 624: + case 625: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3515 +//line sql.y:3523 { yyLOCAL = yyDollar[3].jtColumnListUnion() } yyVAL.union = yyLOCAL - case 625: + case 626: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*JtColumnDefinition -//line sql.y:3521 +//line sql.y:3529 { yyLOCAL = []*JtColumnDefinition{yyDollar[1].jtColumnDefinitionUnion()} } yyVAL.union = yyLOCAL - case 626: + case 627: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3525 +//line sql.y:3533 { yySLICE := (*[]*JtColumnDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].jtColumnDefinitionUnion()) } - case 627: + case 628: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3531 +//line sql.y:3539 { yyLOCAL = &JtColumnDefinition{JtOrdinal: &JtOrdinalColDef{Name: yyDollar[1].identifierCI}} } yyVAL.union = yyLOCAL - case 628: + case 629: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3535 +//line sql.y:3543 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.union = yyLOCAL - case 629: + case 630: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3541 +//line sql.y:3549 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.union = yyLOCAL - case 630: + case 631: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3547 +//line sql.y:3555 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.union = yyLOCAL - case 631: + case 632: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3553 +//line sql.y:3561 { yyDollar[2].columnType.Options = &ColumnTypeOptions{Collate: yyDollar[3].str} jtPath := &JtPathColDef{Name: yyDollar[1].identifierCI, Type: yyDollar[2].columnType, JtColExists: yyDollar[4].booleanUnion(), Path: yyDollar[6].exprUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} yyLOCAL = &JtColumnDefinition{JtPath: jtPath} } yyVAL.union = yyLOCAL - case 632: + case 633: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *JtColumnDefinition -//line sql.y:3559 +//line sql.y:3567 { jtNestedPath := &JtNestedPathColDef{Path: yyDollar[3].exprUnion(), Columns: yyDollar[4].jtColumnListUnion()} yyLOCAL = &JtColumnDefinition{JtNestedPath: jtNestedPath} } yyVAL.union = yyLOCAL - case 633: + case 634: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3565 +//line sql.y:3573 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 634: + case 635: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3569 +//line sql.y:3577 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 635: + case 636: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3573 +//line sql.y:3581 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 636: + case 637: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3577 +//line sql.y:3585 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 637: + case 638: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3583 +//line sql.y:3591 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } yyVAL.union = yyLOCAL - case 638: + case 639: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3589 +//line sql.y:3597 { yyLOCAL = yyDollar[1].jtOnResponseUnion() } yyVAL.union = yyLOCAL - case 639: + case 640: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3595 +//line sql.y:3603 { yyLOCAL = &JtOnResponse{ResponseType: ErrorJSONType} } yyVAL.union = yyLOCAL - case 640: + case 641: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3599 +//line sql.y:3607 { yyLOCAL = &JtOnResponse{ResponseType: NullJSONType} } yyVAL.union = yyLOCAL - case 641: + case 642: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *JtOnResponse -//line sql.y:3603 +//line sql.y:3611 { yyLOCAL = &JtOnResponse{ResponseType: DefaultJSONType, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 642: + case 643: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3609 +//line sql.y:3617 { yyLOCAL = RangeType } yyVAL.union = yyLOCAL - case 643: + case 644: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL PartitionByType -//line sql.y:3613 +//line sql.y:3621 { yyLOCAL = ListType } yyVAL.union = yyLOCAL - case 644: + case 645: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3618 +//line sql.y:3626 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 645: + case 646: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3622 +//line sql.y:3630 { yyLOCAL = convertStringToInt(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 646: + case 647: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:3627 +//line sql.y:3635 { yyLOCAL = -1 } yyVAL.union = yyLOCAL - case 647: + case 648: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:3631 +//line sql.y:3639 { yyLOCAL = convertStringToInt(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 648: + case 649: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3637 +//line sql.y:3645 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } yyVAL.union = yyLOCAL - case 649: + case 650: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3641 +//line sql.y:3649 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 650: + case 651: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3645 +//line sql.y:3653 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } yyVAL.union = yyLOCAL - case 651: + case 652: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3649 +//line sql.y:3657 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 652: + case 653: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3653 +//line sql.y:3661 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } yyVAL.union = yyLOCAL - case 653: + case 654: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3657 +//line sql.y:3665 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 654: + case 655: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3661 +//line sql.y:3669 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } yyVAL.union = yyLOCAL - case 655: + case 656: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3665 +//line sql.y:3673 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 656: + case 657: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3669 +//line sql.y:3677 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } yyVAL.union = yyLOCAL - case 657: + case 658: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3673 +//line sql.y:3681 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 658: + case 659: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3677 +//line sql.y:3685 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].identifierCI}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } yyVAL.union = yyLOCAL - case 659: + case 660: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3681 +//line sql.y:3689 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 660: + case 661: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3685 +//line sql.y:3693 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 661: + case 662: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3689 +//line sql.y:3697 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 662: + case 663: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3693 +//line sql.y:3701 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } yyVAL.union = yyLOCAL - case 663: + case 664: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3697 +//line sql.y:3705 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 664: + case 665: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3701 +//line sql.y:3709 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } yyVAL.union = yyLOCAL - case 665: + case 666: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3705 +//line sql.y:3713 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 666: + case 667: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3709 +//line sql.y:3717 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } yyVAL.union = yyLOCAL - case 667: + case 668: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3713 +//line sql.y:3721 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } yyVAL.union = yyLOCAL - case 668: + case 669: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3717 +//line sql.y:3725 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } yyVAL.union = yyLOCAL - case 669: + case 670: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:3721 +//line sql.y:3729 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } yyVAL.union = yyLOCAL - case 670: + case 671: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3726 +//line sql.y:3734 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 671: + case 672: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3730 +//line sql.y:3738 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 672: + case 673: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3734 +//line sql.y:3742 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 673: + case 674: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:3740 +//line sql.y:3748 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL - case 674: + case 675: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3744 +//line sql.y:3752 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) } - case 675: + case 676: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3750 +//line sql.y:3758 { yyVAL.partDefUnion().Options = yyDollar[2].partitionDefinitionOptionsUnion() } - case 676: + case 677: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3755 +//line sql.y:3763 { yyLOCAL = &PartitionDefinitionOptions{} } yyVAL.union = yyLOCAL - case 677: + case 678: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3759 +//line sql.y:3767 { yyDollar[1].partitionDefinitionOptionsUnion().ValueRange = yyDollar[2].partitionValueRangeUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 678: + case 679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3764 +//line sql.y:3772 { yyDollar[1].partitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 679: + case 680: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3769 +//line sql.y:3777 { yyDollar[1].partitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 680: + case 681: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3774 +//line sql.y:3782 { yyDollar[1].partitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 681: + case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3779 +//line sql.y:3787 { yyDollar[1].partitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 682: + case 683: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3784 +//line sql.y:3792 { yyDollar[1].partitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 683: + case 684: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3789 +//line sql.y:3797 { yyDollar[1].partitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 684: + case 685: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3794 +//line sql.y:3802 { yyDollar[1].partitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 685: + case 686: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinitionOptions -//line sql.y:3799 +//line sql.y:3807 { yyDollar[1].partitionDefinitionOptionsUnion().SubPartitionDefinitions = yyDollar[2].subPartitionDefinitionsUnion() yyLOCAL = yyDollar[1].partitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 686: + case 687: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3805 +//line sql.y:3813 { yyLOCAL = yyDollar[2].subPartitionDefinitionsUnion() } yyVAL.union = yyLOCAL - case 687: + case 688: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SubPartitionDefinitions -//line sql.y:3811 +//line sql.y:3819 { yyLOCAL = SubPartitionDefinitions{yyDollar[1].subPartitionDefinitionUnion()} } yyVAL.union = yyLOCAL - case 688: + case 689: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3815 +//line sql.y:3823 { yySLICE := (*SubPartitionDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].subPartitionDefinitionUnion()) } - case 689: + case 690: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SubPartitionDefinition -//line sql.y:3821 +//line sql.y:3829 { yyLOCAL = &SubPartitionDefinition{Name: yyDollar[2].identifierCI, Options: yyDollar[3].subPartitionDefinitionOptionsUnion()} } yyVAL.union = yyLOCAL - case 690: + case 691: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3826 +//line sql.y:3834 { yyLOCAL = &SubPartitionDefinitionOptions{} } yyVAL.union = yyLOCAL - case 691: + case 692: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3830 +//line sql.y:3838 { yyDollar[1].subPartitionDefinitionOptionsUnion().Comment = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 692: + case 693: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3835 +//line sql.y:3843 { yyDollar[1].subPartitionDefinitionOptionsUnion().Engine = yyDollar[2].partitionEngineUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 693: + case 694: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3840 +//line sql.y:3848 { yyDollar[1].subPartitionDefinitionOptionsUnion().DataDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 694: + case 695: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3845 +//line sql.y:3853 { yyDollar[1].subPartitionDefinitionOptionsUnion().IndexDirectory = yyDollar[2].literalUnion() yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 695: + case 696: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3850 +//line sql.y:3858 { yyDollar[1].subPartitionDefinitionOptionsUnion().MaxRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 696: + case 697: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3855 +//line sql.y:3863 { yyDollar[1].subPartitionDefinitionOptionsUnion().MinRows = ptr.Of(yyDollar[2].integerUnion()) yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 697: + case 698: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SubPartitionDefinitionOptions -//line sql.y:3860 +//line sql.y:3868 { yyDollar[1].subPartitionDefinitionOptionsUnion().TableSpace = yyDollar[2].str yyLOCAL = yyDollar[1].subPartitionDefinitionOptionsUnion() } yyVAL.union = yyLOCAL - case 698: + case 699: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3867 +//line sql.y:3875 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -15394,10 +15448,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 699: + case 700: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3874 +//line sql.y:3882 { yyLOCAL = &PartitionValueRange{ Type: LessThanType, @@ -15405,10 +15459,10 @@ yydefault: } } yyVAL.union = yyLOCAL - case 700: + case 701: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionValueRange -//line sql.y:3881 +//line sql.y:3889 { yyLOCAL = &PartitionValueRange{ Type: InType, @@ -15416,131 +15470,131 @@ yydefault: } } yyVAL.union = yyLOCAL - case 701: + case 702: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3889 +//line sql.y:3897 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 702: + case 703: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3893 +//line sql.y:3901 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 703: + case 704: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionEngine -//line sql.y:3899 +//line sql.y:3907 { yyLOCAL = &PartitionEngine{Storage: yyDollar[1].booleanUnion(), Name: yyDollar[4].identifierCS.String()} } yyVAL.union = yyLOCAL - case 704: + case 705: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Literal -//line sql.y:3905 +//line sql.y:3913 { yyLOCAL = NewStrLiteral(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 705: + case 706: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3911 +//line sql.y:3919 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 706: + case 707: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Literal -//line sql.y:3917 +//line sql.y:3925 { yyLOCAL = NewStrLiteral(yyDollar[4].str) } yyVAL.union = yyLOCAL - case 707: + case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3923 +//line sql.y:3931 { yyLOCAL = convertStringToInt(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 708: + case 709: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:3929 +//line sql.y:3937 { yyLOCAL = convertStringToInt(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 709: + case 710: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3935 +//line sql.y:3943 { yyVAL.str = yyDollar[3].identifierCS.String() } - case 710: + case 711: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:3941 +//line sql.y:3949 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL - case 711: + case 712: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3947 +//line sql.y:3955 { yyVAL.str = "" } - case 712: + case 713: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3951 +//line sql.y:3959 { yyVAL.str = "" } - case 713: + case 714: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3957 +//line sql.y:3965 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } yyVAL.union = yyLOCAL - case 714: + case 715: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:3963 +//line sql.y:3971 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL - case 715: + case 716: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3967 +//line sql.y:3975 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) } - case 716: + case 717: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3973 +//line sql.y:3981 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), Temp: yyDollar[3].booleanUnion()} } yyVAL.union = yyLOCAL - case 717: + case 718: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3977 +//line sql.y:3985 { // Change this to an alter statement if yyDollar[4].identifierCI.Lowered() == "primary" { @@ -15550,1377 +15604,1377 @@ yydefault: } } yyVAL.union = yyLOCAL - case 718: + case 719: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3986 +//line sql.y:3994 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), Comments: Comments(yyDollar[2].strs).Parsed(), IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 719: + case 720: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:3990 +//line sql.y:3998 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs).Parsed(), DBName: yyDollar[5].identifierCS, IfExists: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 720: + case 721: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3996 +//line sql.y:4004 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } yyVAL.union = yyLOCAL - case 721: + case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4000 +//line sql.y:4008 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } yyVAL.union = yyLOCAL - case 722: + case 723: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4006 +//line sql.y:4014 { yyLOCAL = &Analyze{IsLocal: yyDollar[2].booleanUnion(), Table: yyDollar[4].tableName} } yyVAL.union = yyLOCAL - case 723: + case 724: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4012 +//line sql.y:4020 { yyLOCAL = &PurgeBinaryLogs{To: string(yyDollar[5].str)} } yyVAL.union = yyLOCAL - case 724: + case 725: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4016 +//line sql.y:4024 { yyLOCAL = &PurgeBinaryLogs{Before: string(yyDollar[5].str)} } yyVAL.union = yyLOCAL - case 725: + case 726: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4022 +//line sql.y:4030 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 726: + case 727: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4026 +//line sql.y:4034 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 727: + case 728: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4030 +//line sql.y:4038 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 728: + case 729: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4034 +//line sql.y:4042 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 729: + case 730: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4038 +//line sql.y:4046 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 730: + case 731: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4042 +//line sql.y:4050 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 731: + case 732: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4046 +//line sql.y:4054 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 732: + case 733: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4050 +//line sql.y:4058 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 733: + case 734: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4054 +//line sql.y:4062 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].identifierCS, Filter: yyDollar[7].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 734: + case 735: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4058 +//line sql.y:4066 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 735: + case 736: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4062 +//line sql.y:4070 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } yyVAL.union = yyLOCAL - case 736: + case 737: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4066 +//line sql.y:4074 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 737: + case 738: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4070 +//line sql.y:4078 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 738: + case 739: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4074 +//line sql.y:4082 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 739: + case 740: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4078 +//line sql.y:4086 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 740: + case 741: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4082 +//line sql.y:4090 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 741: + case 742: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4086 +//line sql.y:4094 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 742: + case 743: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4090 +//line sql.y:4098 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].identifierCS, Filter: yyDollar[5].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 743: + case 744: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4094 +//line sql.y:4102 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].identifierCS, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 744: + case 745: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4098 +//line sql.y:4106 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 745: + case 746: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4102 +//line sql.y:4110 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 746: + case 747: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4106 +//line sql.y:4114 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 747: + case 748: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4110 +//line sql.y:4118 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 748: + case 749: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4114 +//line sql.y:4122 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 749: + case 750: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4118 +//line sql.y:4126 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 750: + case 751: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4122 +//line sql.y:4130 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } yyVAL.union = yyLOCAL - case 751: + case 752: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4126 +//line sql.y:4134 { yyLOCAL = &Show{&ShowBasic{Command: Engines}} } yyVAL.union = yyLOCAL - case 752: + case 753: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4130 +//line sql.y:4138 { yyLOCAL = &Show{&ShowBasic{Command: Plugins}} } yyVAL.union = yyLOCAL - case 753: + case 754: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4134 +//line sql.y:4142 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].identifierCS}} } yyVAL.union = yyLOCAL - case 754: + case 755: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4138 +//line sql.y:4146 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].identifierCS}} } yyVAL.union = yyLOCAL - case 755: + case 756: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4142 +//line sql.y:4150 { yyLOCAL = &Show{&ShowBasic{Command: VitessVariables, Filter: yyDollar[4].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 756: + case 757: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4146 +//line sql.y:4154 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].identifierCS}} } yyVAL.union = yyLOCAL - case 757: + case 758: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4150 +//line sql.y:4158 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 758: + case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4154 +//line sql.y:4162 { yyLOCAL = &ShowThrottledApps{} } yyVAL.union = yyLOCAL - case 759: + case 760: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4158 +//line sql.y:4166 { yyLOCAL = &Show{&ShowBasic{Command: VitessReplicationStatus, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 760: + case 761: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4162 +//line sql.y:4170 { yyLOCAL = &ShowThrottlerStatus{} } yyVAL.union = yyLOCAL - case 761: + case 762: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4166 +//line sql.y:4174 { yyLOCAL = &Show{&ShowBasic{Command: VschemaTables}} } yyVAL.union = yyLOCAL - case 762: + case 763: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4170 +//line sql.y:4178 { yyLOCAL = &Show{&ShowBasic{Command: VschemaKeyspaces}} } yyVAL.union = yyLOCAL - case 763: + case 764: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4174 +//line sql.y:4182 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes}} } yyVAL.union = yyLOCAL - case 764: + case 765: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4178 +//line sql.y:4186 { yyLOCAL = &Show{&ShowBasic{Command: VschemaVindexes, Tbl: yyDollar[5].tableName}} } yyVAL.union = yyLOCAL - case 765: + case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4182 +//line sql.y:4190 { yyLOCAL = &Show{&ShowBasic{Command: Warnings}} } yyVAL.union = yyLOCAL - case 766: + case 767: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4186 +//line sql.y:4194 { yyLOCAL = &Show{&ShowBasic{Command: VitessShards, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 767: + case 768: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4190 +//line sql.y:4198 { yyLOCAL = &Show{&ShowBasic{Command: VitessTablets, Filter: yyDollar[3].showFilterUnion()}} } yyVAL.union = yyLOCAL - case 768: + case 769: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4194 +//line sql.y:4202 { yyLOCAL = &Show{&ShowBasic{Command: VitessTarget}} } yyVAL.union = yyLOCAL - case 769: + case 770: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4201 +//line sql.y:4209 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].identifierCI.String())}} } yyVAL.union = yyLOCAL - case 770: + case 771: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4205 +//line sql.y:4213 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } yyVAL.union = yyLOCAL - case 771: + case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4209 +//line sql.y:4217 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String()}} } yyVAL.union = yyLOCAL - case 772: + case 773: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4213 +//line sql.y:4221 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str)}} } yyVAL.union = yyLOCAL - case 773: + case 774: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4217 +//line sql.y:4225 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } yyVAL.union = yyLOCAL - case 774: + case 775: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4221 +//line sql.y:4229 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } yyVAL.union = yyLOCAL - case 775: + case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4225 +//line sql.y:4233 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str) + " " + string(yyDollar[3].str) + " " + String(yyDollar[4].tableName)}} } yyVAL.union = yyLOCAL - case 776: + case 777: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4229 +//line sql.y:4237 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[3].str)}} } yyVAL.union = yyLOCAL - case 777: + case 778: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4233 +//line sql.y:4241 { yyLOCAL = &Show{&ShowOther{Command: string(yyDollar[2].str)}} } yyVAL.union = yyLOCAL - case 778: + case 779: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4237 +//line sql.y:4245 { yyLOCAL = &Show{&ShowTransactionStatus{TransactionID: string(yyDollar[5].str)}} } yyVAL.union = yyLOCAL - case 779: + case 780: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4241 +//line sql.y:4249 { yyLOCAL = &Show{&ShowTransactionStatus{}} } yyVAL.union = yyLOCAL - case 780: + case 781: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4245 +//line sql.y:4253 { yyLOCAL = &Show{&ShowTransactionStatus{Keyspace: yyDollar[5].identifierCS.String()}} } yyVAL.union = yyLOCAL - case 781: + case 782: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4250 +//line sql.y:4258 { } - case 782: + case 783: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4252 +//line sql.y:4260 { } - case 783: + case 784: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4256 +//line sql.y:4264 { yyVAL.str = "" } - case 784: + case 785: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4260 +//line sql.y:4268 { yyVAL.str = "extended " } - case 785: + case 786: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4266 +//line sql.y:4274 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 786: + case 787: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4270 +//line sql.y:4278 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 787: + case 788: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4276 +//line sql.y:4284 { yyVAL.str = string(yyDollar[1].str) } - case 788: + case 789: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4280 +//line sql.y:4288 { yyVAL.str = string(yyDollar[1].str) } - case 789: + case 790: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4286 +//line sql.y:4294 { yyVAL.identifierCS = NewIdentifierCS("") } - case 790: + case 791: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4290 +//line sql.y:4298 { yyVAL.identifierCS = yyDollar[2].identifierCS } - case 791: + case 792: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4294 +//line sql.y:4302 { yyVAL.identifierCS = yyDollar[2].identifierCS } - case 792: + case 793: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4300 +//line sql.y:4308 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 793: + case 794: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4304 +//line sql.y:4312 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 794: + case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4308 +//line sql.y:4316 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 795: + case 796: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4314 +//line sql.y:4322 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 796: + case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:4318 +//line sql.y:4326 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL - case 797: + case 798: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4324 +//line sql.y:4332 { yyVAL.empty = struct{}{} } - case 798: + case 799: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4328 +//line sql.y:4336 { yyVAL.empty = struct{}{} } - case 799: + case 800: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4332 +//line sql.y:4340 { yyVAL.empty = struct{}{} } - case 800: + case 801: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4338 +//line sql.y:4346 { yyVAL.str = string(yyDollar[1].str) } - case 801: + case 802: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4342 +//line sql.y:4350 { yyVAL.str = string(yyDollar[1].str) } - case 802: + case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4348 +//line sql.y:4356 { yyLOCAL = &Use{DBName: yyDollar[2].identifierCS} } yyVAL.union = yyLOCAL - case 803: + case 804: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4352 +//line sql.y:4360 { yyLOCAL = &Use{DBName: IdentifierCS{v: ""}} } yyVAL.union = yyLOCAL - case 804: + case 805: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4356 +//line sql.y:4364 { yyLOCAL = &Use{DBName: NewIdentifierCS(yyDollar[2].identifierCS.String() + "@" + string(yyDollar[3].str))} } yyVAL.union = yyLOCAL - case 805: + case 806: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4363 +//line sql.y:4371 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 806: + case 807: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4367 +//line sql.y:4375 { yyVAL.identifierCS = NewIdentifierCS("@" + string(yyDollar[1].str)) } - case 807: + case 808: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4371 +//line sql.y:4379 { yyVAL.identifierCS = NewIdentifierCS("@@" + string(yyDollar[1].str)) } - case 808: + case 809: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4375 +//line sql.y:4383 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 809: + case 810: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4382 +//line sql.y:4390 { yyLOCAL = &Begin{} } yyVAL.union = yyLOCAL - case 810: + case 811: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4386 +//line sql.y:4394 { yyLOCAL = &Begin{TxAccessModes: yyDollar[3].txAccessModesUnion()} } yyVAL.union = yyLOCAL - case 811: + case 812: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4391 +//line sql.y:4399 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 812: + case 813: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4395 +//line sql.y:4403 { yyLOCAL = yyDollar[1].txAccessModesUnion() } yyVAL.union = yyLOCAL - case 813: + case 814: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []TxAccessMode -//line sql.y:4401 +//line sql.y:4409 { yyLOCAL = []TxAccessMode{yyDollar[1].txAccessModeUnion()} } yyVAL.union = yyLOCAL - case 814: + case 815: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4405 +//line sql.y:4413 { yySLICE := (*[]TxAccessMode)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].txAccessModeUnion()) } - case 815: + case 816: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4411 +//line sql.y:4419 { yyLOCAL = WithConsistentSnapshot } yyVAL.union = yyLOCAL - case 816: + case 817: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4415 +//line sql.y:4423 { yyLOCAL = ReadWrite } yyVAL.union = yyLOCAL - case 817: + case 818: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TxAccessMode -//line sql.y:4419 +//line sql.y:4427 { yyLOCAL = ReadOnly } yyVAL.union = yyLOCAL - case 818: + case 819: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4426 +//line sql.y:4434 { yyLOCAL = &Commit{} } yyVAL.union = yyLOCAL - case 819: + case 820: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4432 +//line sql.y:4440 { yyLOCAL = &Rollback{} } yyVAL.union = yyLOCAL - case 820: + case 821: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4436 +//line sql.y:4444 { yyLOCAL = &SRollback{Name: yyDollar[5].identifierCI} } yyVAL.union = yyLOCAL - case 821: + case 822: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4441 +//line sql.y:4449 { yyVAL.empty = struct{}{} } - case 822: + case 823: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4443 +//line sql.y:4451 { yyVAL.empty = struct{}{} } - case 823: + case 824: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4446 +//line sql.y:4454 { yyVAL.empty = struct{}{} } - case 824: + case 825: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4448 +//line sql.y:4456 { yyVAL.empty = struct{}{} } - case 825: + case 826: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4452 +//line sql.y:4460 { yyLOCAL = &Savepoint{Name: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL - case 826: + case 827: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4458 +//line sql.y:4466 { yyLOCAL = &Release{Name: yyDollar[3].identifierCI} } yyVAL.union = yyLOCAL - case 827: + case 828: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4463 +//line sql.y:4471 { yyLOCAL = EmptyType } yyVAL.union = yyLOCAL - case 828: + case 829: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4467 +//line sql.y:4475 { yyLOCAL = JSONType } yyVAL.union = yyLOCAL - case 829: + case 830: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4471 +//line sql.y:4479 { yyLOCAL = TreeType } yyVAL.union = yyLOCAL - case 830: + case 831: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4475 +//line sql.y:4483 { yyLOCAL = TraditionalType } yyVAL.union = yyLOCAL - case 831: + case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:4479 +//line sql.y:4487 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL - case 832: + case 833: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4484 +//line sql.y:4492 { yyLOCAL = PlanVExplainType } yyVAL.union = yyLOCAL - case 833: + case 834: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4488 +//line sql.y:4496 { yyLOCAL = PlanVExplainType } yyVAL.union = yyLOCAL - case 834: + case 835: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4492 +//line sql.y:4500 { yyLOCAL = AllVExplainType } yyVAL.union = yyLOCAL - case 835: + case 836: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4496 +//line sql.y:4504 { yyLOCAL = QueriesVExplainType } yyVAL.union = yyLOCAL - case 836: + case 837: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4500 +//line sql.y:4508 { yyLOCAL = TraceVExplainType } yyVAL.union = yyLOCAL - case 837: + case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL VExplainType -//line sql.y:4504 +//line sql.y:4512 { yyLOCAL = KeysVExplainType } yyVAL.union = yyLOCAL - case 838: + case 839: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4510 +//line sql.y:4518 { yyVAL.str = yyDollar[1].str } - case 839: + case 840: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4514 +//line sql.y:4522 { yyVAL.str = yyDollar[1].str } - case 840: + case 841: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4518 +//line sql.y:4526 { yyVAL.str = yyDollar[1].str } - case 841: + case 842: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4524 +//line sql.y:4532 { yyLOCAL = yyDollar[1].selStmtUnion() } yyVAL.union = yyLOCAL - case 842: + case 843: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4528 +//line sql.y:4536 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 843: + case 844: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4532 +//line sql.y:4540 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 844: + case 845: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:4536 +//line sql.y:4544 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL - case 845: + case 846: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4541 +//line sql.y:4549 { yyVAL.str = "" } - case 846: + case 847: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4545 +//line sql.y:4553 { yyVAL.str = yyDollar[1].identifierCI.val } - case 847: + case 848: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4549 +//line sql.y:4557 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 848: + case 849: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4555 +//line sql.y:4563 { yyLOCAL = &ExplainTab{Table: yyDollar[3].tableName, Wild: yyDollar[4].str} } yyVAL.union = yyLOCAL - case 849: + case 850: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4559 +//line sql.y:4567 { yyLOCAL = &ExplainStmt{Type: yyDollar[3].explainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()} } yyVAL.union = yyLOCAL - case 850: + case 851: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4565 +//line sql.y:4573 { yyLOCAL = &VExplainStmt{Type: yyDollar[3].vexplainTypeUnion(), Statement: yyDollar[4].statementUnion(), Comments: Comments(yyDollar[2].strs).Parsed()} } yyVAL.union = yyLOCAL - case 851: + case 852: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4571 +//line sql.y:4579 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 852: + case 853: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4575 +//line sql.y:4583 { yyLOCAL = &OtherAdmin{} } yyVAL.union = yyLOCAL - case 853: + case 854: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4581 +//line sql.y:4589 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } yyVAL.union = yyLOCAL - case 854: + case 855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:4587 +//line sql.y:4595 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL - case 855: + case 856: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4591 +//line sql.y:4599 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) } - case 856: + case 857: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:4597 +//line sql.y:4605 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } yyVAL.union = yyLOCAL - case 857: + case 858: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4603 +//line sql.y:4611 { yyLOCAL = Read } yyVAL.union = yyLOCAL - case 858: + case 859: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4607 +//line sql.y:4615 { yyLOCAL = ReadLocal } yyVAL.union = yyLOCAL - case 859: + case 860: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:4611 +//line sql.y:4619 { yyLOCAL = Write } yyVAL.union = yyLOCAL - case 860: + case 861: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:4615 +//line sql.y:4623 { yyLOCAL = LowPriorityWrite } yyVAL.union = yyLOCAL - case 861: + case 862: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:4621 +//line sql.y:4629 { yyLOCAL = &UnlockTables{} } yyVAL.union = yyLOCAL - case 862: + case 863: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4627 +//line sql.y:4635 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs).Parsed(), UUID: string(yyDollar[4].str)} } yyVAL.union = yyLOCAL - case 863: + case 864: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4633 +//line sql.y:4641 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } yyVAL.union = yyLOCAL - case 864: + case 865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:4637 +//line sql.y:4645 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } yyVAL.union = yyLOCAL - case 865: + case 866: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4641 +//line sql.y:4649 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 866: + case 867: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4645 +//line sql.y:4653 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } yyVAL.union = yyLOCAL - case 867: + case 868: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:4649 +//line sql.y:4657 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } yyVAL.union = yyLOCAL - case 868: + case 869: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:4653 +//line sql.y:4661 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL - case 869: + case 870: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4659 +//line sql.y:4667 { yyVAL.strs = []string{yyDollar[1].str} } - case 870: + case 871: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4663 +//line sql.y:4671 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } - case 871: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4669 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } case 872: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4673 +//line sql.y:4677 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 873: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4677 +//line sql.y:4681 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 874: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4681 +//line sql.y:4685 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 875: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4685 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4689 { - yyVAL.str = string(yyDollar[1].str) + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 876: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4689 +//line sql.y:4693 { yyVAL.str = string(yyDollar[1].str) } case 877: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4693 +//line sql.y:4697 { yyVAL.str = string(yyDollar[1].str) } case 878: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4701 + { + yyVAL.str = string(yyDollar[1].str) + } + case 879: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4697 +//line sql.y:4705 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } - case 879: + case 880: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4701 +//line sql.y:4709 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } - case 880: + case 881: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4705 +//line sql.y:4713 { yyVAL.str = string(yyDollar[1].str) } - case 881: + case 882: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4709 +//line sql.y:4717 { yyVAL.str = string(yyDollar[1].str) } - case 882: + case 883: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4713 +//line sql.y:4721 { yyVAL.str = string(yyDollar[1].str) } - case 883: + case 884: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4718 +//line sql.y:4726 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 884: + case 885: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4722 +//line sql.y:4730 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 885: + case 886: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4726 +//line sql.y:4734 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 886: + case 887: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4731 +//line sql.y:4739 { yyVAL.str = "" } - case 887: + case 888: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4735 +//line sql.y:4743 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].identifierCI.String() } - case 888: + case 889: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4740 +//line sql.y:4748 { setAllowComments(yylex, true) } - case 889: + case 890: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4744 +//line sql.y:4752 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } - case 890: + case 891: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4750 +//line sql.y:4758 { yyVAL.strs = nil } - case 891: + case 892: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4754 +//line sql.y:4762 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 892: + case 893: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4760 +//line sql.y:4768 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 893: + case 894: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4764 +//line sql.y:4772 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 894: + case 895: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4768 +//line sql.y:4776 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 895: + case 896: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4773 +//line sql.y:4781 { yyVAL.str = "" } - case 896: + case 897: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4777 +//line sql.y:4785 { yyVAL.str = SQLNoCacheStr } - case 897: + case 898: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4781 +//line sql.y:4789 { yyVAL.str = SQLCacheStr } - case 898: + case 899: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4786 +//line sql.y:4794 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 899: + case 900: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4790 +//line sql.y:4798 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 900: + case 901: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4794 +//line sql.y:4802 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 901: + case 902: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4800 +//line sql.y:4808 { yyLOCAL = &PrepareStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Statement: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 902: + case 903: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4804 +//line sql.y:4812 { yyLOCAL = &PrepareStmt{ Name: yyDollar[3].identifierCI, @@ -16929,597 +16983,597 @@ yydefault: } } yyVAL.union = yyLOCAL - case 903: + case 904: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4814 +//line sql.y:4822 { yyLOCAL = &ExecuteStmt{Name: yyDollar[3].identifierCI, Comments: Comments(yyDollar[2].strs).Parsed(), Arguments: yyDollar[4].variablesUnion()} } yyVAL.union = yyLOCAL - case 904: + case 905: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*Variable -//line sql.y:4819 +//line sql.y:4827 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 905: + case 906: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []*Variable -//line sql.y:4823 +//line sql.y:4831 { yyLOCAL = yyDollar[2].variablesUnion() } yyVAL.union = yyLOCAL - case 906: + case 907: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4829 +//line sql.y:4837 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI} } yyVAL.union = yyLOCAL - case 907: + case 908: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:4833 +//line sql.y:4841 { yyLOCAL = &DeallocateStmt{Comments: Comments(yyDollar[2].strs).Parsed(), Name: yyDollar[4].identifierCI} } yyVAL.union = yyLOCAL - case 908: + case 909: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4838 +//line sql.y:4846 { yyVAL.strs = nil } - case 909: + case 910: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4842 +//line sql.y:4850 { yyVAL.strs = yyDollar[1].strs } - case 910: + case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4848 +//line sql.y:4856 { yyVAL.strs = []string{yyDollar[1].str} } - case 911: + case 912: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4852 +//line sql.y:4860 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } - case 912: + case 913: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4858 +//line sql.y:4866 { yyVAL.str = SQLNoCacheStr } - case 913: + case 914: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4862 +//line sql.y:4870 { yyVAL.str = SQLCacheStr } - case 914: + case 915: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4866 +//line sql.y:4874 { yyVAL.str = DistinctStr } - case 915: + case 916: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4870 +//line sql.y:4878 { yyVAL.str = DistinctStr } - case 916: + case 917: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4874 +//line sql.y:4882 { yyVAL.str = HighPriorityStr } - case 917: + case 918: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4878 +//line sql.y:4886 { yyVAL.str = StraightJoinHint } - case 918: + case 919: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4882 +//line sql.y:4890 { yyVAL.str = SQLBufferResultStr } - case 919: + case 920: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4886 +//line sql.y:4894 { yyVAL.str = SQLSmallResultStr } - case 920: + case 921: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4890 +//line sql.y:4898 { yyVAL.str = SQLBigResultStr } - case 921: + case 922: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4894 +//line sql.y:4902 { yyVAL.str = SQLCalcFoundRowsStr } - case 922: + case 923: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4898 +//line sql.y:4906 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } - case 923: + case 924: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:4904 +//line sql.y:4912 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL - case 924: + case 925: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4908 +//line sql.y:4916 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) } - case 925: + case 926: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4914 +//line sql.y:4922 { yyLOCAL = &StarExpr{} } yyVAL.union = yyLOCAL - case 926: + case 927: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4918 +//line sql.y:4926 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL - case 927: + case 928: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4922 +//line sql.y:4930 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].identifierCS}} } yyVAL.union = yyLOCAL - case 928: + case 929: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:4926 +//line sql.y:4934 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}} } yyVAL.union = yyLOCAL - case 929: + case 930: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4931 +//line sql.y:4939 { yyVAL.identifierCI = IdentifierCI{} } - case 930: + case 931: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4935 +//line sql.y:4943 { yyVAL.identifierCI = yyDollar[1].identifierCI } - case 931: + case 932: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4939 +//line sql.y:4947 { yyVAL.identifierCI = yyDollar[2].identifierCI } - case 933: + case 934: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4946 +//line sql.y:4954 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } - case 934: + case 935: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4951 +//line sql.y:4959 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewIdentifierCS("dual")}}} } yyVAL.union = yyLOCAL - case 935: + case 936: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4955 +//line sql.y:4963 { yyLOCAL = yyDollar[1].tableExprsUnion() } yyVAL.union = yyLOCAL - case 936: + case 937: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4961 +//line sql.y:4969 { yyLOCAL = yyDollar[2].tableExprsUnion() } yyVAL.union = yyLOCAL - case 937: + case 938: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:4967 +//line sql.y:4975 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL - case 938: + case 939: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4971 +//line sql.y:4979 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) } - case 941: + case 942: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4981 +//line sql.y:4989 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } yyVAL.union = yyLOCAL - case 942: + case 943: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4985 +//line sql.y:4993 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].identifierCS, Columns: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 943: + case 944: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4989 +//line sql.y:4997 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } yyVAL.union = yyLOCAL - case 944: + case 945: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:4993 +//line sql.y:5001 { yyLOCAL = yyDollar[1].tableExprUnion() } yyVAL.union = yyLOCAL - case 945: + case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:4999 +//line sql.y:5007 { yyLOCAL = &DerivedTable{Lateral: false, Select: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 946: + case 947: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:5003 +//line sql.y:5011 { yyLOCAL = &DerivedTable{Lateral: true, Select: yyDollar[2].selStmtUnion()} } yyVAL.union = yyLOCAL - case 947: + case 948: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:5009 +//line sql.y:5017 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].identifierCS, Hints: yyDollar[3].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 948: + case 949: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:5013 +//line sql.y:5021 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].identifierCS, Hints: yyDollar[7].indexHintsUnion()} } yyVAL.union = yyLOCAL - case 949: + case 950: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:5018 +//line sql.y:5026 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 950: + case 951: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:5022 +//line sql.y:5030 { yyLOCAL = yyDollar[2].columnsUnion() } yyVAL.union = yyLOCAL - case 951: + case 952: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:5027 +//line sql.y:5035 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 952: + case 953: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5031 +//line sql.y:5039 { yyLOCAL = yyDollar[1].columnsUnion() } yyVAL.union = yyLOCAL - case 953: + case 954: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5037 +//line sql.y:5045 { yyLOCAL = Columns{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 954: + case 955: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5041 +//line sql.y:5049 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } - case 955: + case 956: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*Variable -//line sql.y:5047 +//line sql.y:5055 { yyLOCAL = []*Variable{yyDollar[1].variableUnion()} } yyVAL.union = yyLOCAL - case 956: + case 957: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5051 +//line sql.y:5059 { yySLICE := (*[]*Variable)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].variableUnion()) } - case 957: + case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5057 +//line sql.y:5065 { yyLOCAL = Columns{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 958: + case 959: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:5061 +//line sql.y:5069 { yyLOCAL = Columns{NewIdentifierCI(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL - case 959: + case 960: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5065 +//line sql.y:5073 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } - case 960: + case 961: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5069 +//line sql.y:5077 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewIdentifierCI(string(yyDollar[3].str))) } - case 961: + case 962: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:5075 +//line sql.y:5083 { yyLOCAL = Partitions{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 962: + case 963: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5079 +//line sql.y:5087 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } - case 963: + case 964: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5092 +//line sql.y:5100 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 964: + case 965: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5096 +//line sql.y:5104 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 965: + case 966: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5100 +//line sql.y:5108 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } yyVAL.union = yyLOCAL - case 966: + case 967: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:5104 +//line sql.y:5112 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL - case 967: + case 968: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5110 +//line sql.y:5118 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } - case 968: + case 969: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:5112 +//line sql.y:5120 { yyVAL.joinCondition = &JoinCondition{Using: yyDollar[3].columnsUnion()} } - case 969: + case 970: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5116 +//line sql.y:5124 { yyVAL.joinCondition = &JoinCondition{} } - case 970: + case 971: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5118 +//line sql.y:5126 { yyVAL.joinCondition = yyDollar[1].joinCondition } - case 971: + case 972: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5122 +//line sql.y:5130 { yyVAL.joinCondition = &JoinCondition{} } - case 972: + case 973: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5124 +//line sql.y:5132 { yyVAL.joinCondition = &JoinCondition{On: yyDollar[2].exprUnion()} } - case 973: + case 974: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5127 +//line sql.y:5135 { yyVAL.empty = struct{}{} } - case 974: + case 975: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5129 +//line sql.y:5137 { yyVAL.empty = struct{}{} } - case 975: + case 976: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5132 +//line sql.y:5140 { yyVAL.identifierCS = NewIdentifierCS("") } - case 976: + case 977: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5136 +//line sql.y:5144 { yyVAL.identifierCS = yyDollar[1].identifierCS } - case 977: + case 978: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5140 +//line sql.y:5148 { yyVAL.identifierCS = yyDollar[2].identifierCS } - case 979: + case 980: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5147 +//line sql.y:5155 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 980: + case 981: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5153 +//line sql.y:5161 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 981: + case 982: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5157 +//line sql.y:5165 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 982: + case 983: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5161 +//line sql.y:5169 { yyLOCAL = NormalJoinType } yyVAL.union = yyLOCAL - case 983: + case 984: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:5167 +//line sql.y:5175 { yyLOCAL = StraightJoinType } yyVAL.union = yyLOCAL - case 984: + case 985: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5173 +//line sql.y:5181 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 985: + case 986: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5177 +//line sql.y:5185 { yyLOCAL = LeftJoinType } yyVAL.union = yyLOCAL - case 986: + case 987: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5181 +//line sql.y:5189 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 987: + case 988: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:5185 +//line sql.y:5193 { yyLOCAL = RightJoinType } yyVAL.union = yyLOCAL - case 988: + case 989: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5191 +//line sql.y:5199 { yyLOCAL = NaturalJoinType } yyVAL.union = yyLOCAL - case 989: + case 990: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:5195 +//line sql.y:5203 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -17528,667 +17582,667 @@ yydefault: } } yyVAL.union = yyLOCAL - case 990: + case 991: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5205 +//line sql.y:5213 { yyVAL.tableName = yyDollar[2].tableName } - case 991: + case 992: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5209 +//line sql.y:5217 { yyVAL.tableName = yyDollar[1].tableName } - case 992: + case 993: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5215 +//line sql.y:5223 { yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS} } - case 993: + case 994: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5219 +//line sql.y:5227 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS} } - case 994: + case 995: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5225 +//line sql.y:5233 { yyVAL.tableName = TableName{Name: yyDollar[1].identifierCS} } - case 995: + case 996: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5230 +//line sql.y:5238 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 996: + case 997: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5234 +//line sql.y:5242 { yyLOCAL = yyDollar[1].indexHintsUnion() } yyVAL.union = yyLOCAL - case 997: + case 998: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IndexHints -//line sql.y:5240 +//line sql.y:5248 { yyLOCAL = IndexHints{yyDollar[1].indexHintUnion()} } yyVAL.union = yyLOCAL - case 998: + case 999: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:5244 +//line sql.y:5252 { yySLICE := (*IndexHints)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].indexHintUnion()) } - case 999: + case 1000: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5250 +//line sql.y:5258 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } yyVAL.union = yyLOCAL - case 1000: + case 1001: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5254 +//line sql.y:5262 { yyLOCAL = &IndexHint{Type: UseOp, ForType: yyDollar[3].indexHintForTypeUnion()} } yyVAL.union = yyLOCAL - case 1001: + case 1002: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5258 +//line sql.y:5266 { yyLOCAL = &IndexHint{Type: IgnoreOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } yyVAL.union = yyLOCAL - case 1002: + case 1003: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5262 +//line sql.y:5270 { yyLOCAL = &IndexHint{Type: ForceOp, ForType: yyDollar[3].indexHintForTypeUnion(), Indexes: yyDollar[5].columnsUnion()} } yyVAL.union = yyLOCAL - case 1003: + case 1004: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5266 +//line sql.y:5274 { yyLOCAL = &IndexHint{Type: UseVindexOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 1004: + case 1005: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHint -//line sql.y:5270 +//line sql.y:5278 { yyLOCAL = &IndexHint{Type: IgnoreVindexOp, Indexes: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 1005: + case 1006: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5275 +//line sql.y:5283 { yyLOCAL = NoForType } yyVAL.union = yyLOCAL - case 1006: + case 1007: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5279 +//line sql.y:5287 { yyLOCAL = JoinForType } yyVAL.union = yyLOCAL - case 1007: + case 1008: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5283 +//line sql.y:5291 { yyLOCAL = OrderByForType } yyVAL.union = yyLOCAL - case 1008: + case 1009: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL IndexHintForType -//line sql.y:5287 +//line sql.y:5295 { yyLOCAL = GroupByForType } yyVAL.union = yyLOCAL - case 1009: + case 1010: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:5293 +//line sql.y:5301 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1010: + case 1011: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5297 +//line sql.y:5305 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1011: + case 1012: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5304 +//line sql.y:5312 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1012: + case 1013: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5308 +//line sql.y:5316 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1013: + case 1014: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5312 +//line sql.y:5320 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1014: + case 1015: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5316 +//line sql.y:5324 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1015: + case 1016: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5320 +//line sql.y:5328 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} } yyVAL.union = yyLOCAL - case 1016: + case 1017: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5324 +//line sql.y:5332 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1017: + case 1018: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5328 +//line sql.y:5336 { yyLOCAL = &AssignmentExpr{Left: yyDollar[1].variableUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1018: + case 1019: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5332 +//line sql.y:5340 { yyLOCAL = &MemberOfExpr{Value: yyDollar[1].exprUnion(), JSONArr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1019: + case 1020: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5338 +//line sql.y:5346 { } - case 1020: + case 1021: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5341 +//line sql.y:5349 { } - case 1021: + case 1022: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5346 +//line sql.y:5354 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNullOp} } yyVAL.union = yyLOCAL - case 1022: + case 1023: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5350 +//line sql.y:5358 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: IsNotNullOp} } yyVAL.union = yyLOCAL - case 1023: + case 1024: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5354 +//line sql.y:5362 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1024: + case 1025: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5358 +//line sql.y:5366 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()} } yyVAL.union = yyLOCAL - case 1025: + case 1026: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5362 +//line sql.y:5370 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: Any, Right: yyDollar[4].subqueryUnion()} } yyVAL.union = yyLOCAL - case 1026: + case 1027: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5366 +//line sql.y:5374 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Modifier: All, Right: yyDollar[4].subqueryUnion()} } yyVAL.union = yyLOCAL - case 1027: + case 1028: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5370 +//line sql.y:5378 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1028: + case 1029: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5376 +//line sql.y:5384 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } yyVAL.union = yyLOCAL - case 1029: + case 1030: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5380 +//line sql.y:5388 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } yyVAL.union = yyLOCAL - case 1030: + case 1031: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5384 +//line sql.y:5392 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: true, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1031: + case 1032: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5388 +//line sql.y:5396 { yyLOCAL = &BetweenExpr{Left: yyDollar[1].exprUnion(), IsBetween: false, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 1032: + case 1033: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5392 +//line sql.y:5400 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1033: + case 1034: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5396 +//line sql.y:5404 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1034: + case 1035: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5400 +//line sql.y:5408 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1035: + case 1036: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5404 +//line sql.y:5412 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 1036: + case 1037: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5408 +//line sql.y:5416 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1037: + case 1038: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5412 +//line sql.y:5420 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1038: + case 1039: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5416 +//line sql.y:5424 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1039: + case 1040: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5422 +//line sql.y:5430 { } - case 1040: + case 1041: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5425 +//line sql.y:5433 { } - case 1041: + case 1042: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5431 +//line sql.y:5439 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1042: + case 1043: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5435 +//line sql.y:5443 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1043: + case 1044: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5439 +//line sql.y:5447 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1044: + case 1045: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5443 +//line sql.y:5451 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1045: + case 1046: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5447 +//line sql.y:5455 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1046: + case 1047: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5451 +//line sql.y:5459 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1047: + case 1048: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5455 +//line sql.y:5463 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAdd, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1048: + case 1049: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5459 +//line sql.y:5467 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinarySub, Date: yyDollar[1].exprUnion(), Unit: yyDollar[5].intervalTypeUnion(), Interval: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1049: + case 1050: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5463 +//line sql.y:5471 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1050: + case 1051: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5467 +//line sql.y:5475 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1051: + case 1052: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5471 +//line sql.y:5479 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1052: + case 1053: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5475 +//line sql.y:5483 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1053: + case 1054: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5479 +//line sql.y:5487 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1054: + case 1055: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5483 +//line sql.y:5491 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1055: + case 1056: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5487 +//line sql.y:5495 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1056: + case 1057: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5493 +//line sql.y:5501 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1057: + case 1058: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5497 +//line sql.y:5505 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1058: + case 1059: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5501 +//line sql.y:5509 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1059: + case 1060: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5505 +//line sql.y:5513 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1060: + case 1061: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5509 +//line sql.y:5517 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Collation: yyDollar[3].str} } yyVAL.union = yyLOCAL - case 1061: + case 1062: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5513 +//line sql.y:5521 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1062: + case 1063: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5517 +//line sql.y:5525 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1063: + case 1064: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5521 +//line sql.y:5529 { yyLOCAL = yyDollar[1].variableUnion() } yyVAL.union = yyLOCAL - case 1064: + case 1065: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5525 +//line sql.y:5533 { yyLOCAL = yyDollar[2].exprUnion() // TODO: do we really want to ignore unary '+' before any kind of literals? } yyVAL.union = yyLOCAL - case 1065: + case 1066: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5529 +//line sql.y:5537 { yyLOCAL = &UnaryExpr{Operator: UMinusOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1066: + case 1067: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5533 +//line sql.y:5541 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1067: + case 1068: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5537 +//line sql.y:5545 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1068: + case 1069: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5541 +//line sql.y:5549 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1069: + case 1070: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:5545 +//line sql.y:5553 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1070: + case 1071: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5549 +//line sql.y:5557 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } yyVAL.union = yyLOCAL - case 1071: + case 1072: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5553 +//line sql.y:5561 { yyLOCAL = &MatchExpr{Columns: yyDollar[2].colNamesUnion(), Expr: yyDollar[5].exprUnion(), Option: yyDollar[6].matchExprOptionUnion()} } yyVAL.union = yyLOCAL - case 1072: + case 1073: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:5557 +//line sql.y:5565 { yyLOCAL = &CastExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion(), Array: yyDollar[6].booleanUnion()} } yyVAL.union = yyLOCAL - case 1073: + case 1074: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5561 +//line sql.y:5569 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1074: + case 1075: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5565 +//line sql.y:5573 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 1075: + case 1076: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5569 +//line sql.y:5577 { // From: https://dev.mysql.com/doc/refman/8.0/en/cast-functions.html#operator_binary // To convert a string expression to a binary string, these constructs are equivalent: @@ -18197,3218 +18251,3218 @@ yydefault: yyLOCAL = &ConvertExpr{Expr: yyDollar[2].exprUnion(), Type: &ConvertType{Type: yyDollar[1].str}} } yyVAL.union = yyLOCAL - case 1076: + case 1077: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:5577 +//line sql.y:5585 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL - case 1077: + case 1078: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5581 +//line sql.y:5589 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprBinaryAddLeft, Date: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion(), Interval: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1078: + case 1079: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5585 +//line sql.y:5593 { yyLOCAL = &IntervalFuncExpr{Expr: yyDollar[3].exprUnion(), Exprs: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1079: + case 1080: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5589 +//line sql.y:5597 { yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}} } yyVAL.union = yyLOCAL - case 1080: + case 1081: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:5593 +//line sql.y:5601 { yyLOCAL = &JSONUnquoteExpr{JSONValue: &JSONExtractExpr{JSONDoc: yyDollar[1].exprUnion(), PathList: []Expr{yyDollar[3].exprUnion()}}} } yyVAL.union = yyLOCAL - case 1081: + case 1082: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5599 +//line sql.y:5607 { yyLOCAL = yyDollar[1].colNamesUnion() } yyVAL.union = yyLOCAL - case 1082: + case 1083: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5603 +//line sql.y:5611 { yyLOCAL = yyDollar[2].colNamesUnion() } yyVAL.union = yyLOCAL - case 1083: + case 1084: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*ColName -//line sql.y:5609 +//line sql.y:5617 { yyLOCAL = []*ColName{yyDollar[1].colNameUnion()} } yyVAL.union = yyLOCAL - case 1084: + case 1085: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5613 +//line sql.y:5621 { yySLICE := (*[]*ColName)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colNameUnion()) } - case 1085: + case 1086: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5619 +//line sql.y:5627 { yyLOCAL = BothTrimType } yyVAL.union = yyLOCAL - case 1086: + case 1087: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5623 +//line sql.y:5631 { yyLOCAL = LeadingTrimType } yyVAL.union = yyLOCAL - case 1087: + case 1088: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TrimType -//line sql.y:5627 +//line sql.y:5635 { yyLOCAL = TrailingTrimType } yyVAL.union = yyLOCAL - case 1088: + case 1089: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5633 +//line sql.y:5641 { yyLOCAL = FrameRowsType } yyVAL.union = yyLOCAL - case 1089: + case 1090: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FrameUnitType -//line sql.y:5637 +//line sql.y:5645 { yyLOCAL = FrameRangeType } yyVAL.union = yyLOCAL - case 1090: + case 1091: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5644 +//line sql.y:5652 { yyLOCAL = CumeDistExprType } yyVAL.union = yyLOCAL - case 1091: + case 1092: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5648 +//line sql.y:5656 { yyLOCAL = DenseRankExprType } yyVAL.union = yyLOCAL - case 1092: + case 1093: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5652 +//line sql.y:5660 { yyLOCAL = PercentRankExprType } yyVAL.union = yyLOCAL - case 1093: + case 1094: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5656 +//line sql.y:5664 { yyLOCAL = RankExprType } yyVAL.union = yyLOCAL - case 1094: + case 1095: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ArgumentLessWindowExprType -//line sql.y:5660 +//line sql.y:5668 { yyLOCAL = RowNumberExprType } yyVAL.union = yyLOCAL - case 1095: + case 1096: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5666 +//line sql.y:5674 { yyLOCAL = &FramePoint{Type: CurrentRowType} } yyVAL.union = yyLOCAL - case 1096: + case 1097: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5670 +//line sql.y:5678 { yyLOCAL = &FramePoint{Type: UnboundedPrecedingType} } yyVAL.union = yyLOCAL - case 1097: + case 1098: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5674 +//line sql.y:5682 { yyLOCAL = &FramePoint{Type: UnboundedFollowingType} } yyVAL.union = yyLOCAL - case 1098: + case 1099: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5678 +//line sql.y:5686 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1099: + case 1100: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5682 +//line sql.y:5690 { yyLOCAL = &FramePoint{Type: ExprPrecedingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1100: + case 1101: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5686 +//line sql.y:5694 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1101: + case 1102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *FramePoint -//line sql.y:5690 +//line sql.y:5698 { yyLOCAL = &FramePoint{Type: ExprFollowingType, Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1102: + case 1103: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5695 +//line sql.y:5703 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1103: + case 1104: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5699 +//line sql.y:5707 { yyLOCAL = yyDollar[1].frameClauseUnion() } yyVAL.union = yyLOCAL - case 1104: + case 1105: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5705 +//line sql.y:5713 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[2].framePointUnion()} } yyVAL.union = yyLOCAL - case 1105: + case 1106: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *FrameClause -//line sql.y:5709 +//line sql.y:5717 { yyLOCAL = &FrameClause{Unit: yyDollar[1].frameUnitTypeUnion(), Start: yyDollar[3].framePointUnion(), End: yyDollar[5].framePointUnion()} } yyVAL.union = yyLOCAL - case 1106: + case 1107: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:5714 +//line sql.y:5722 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1107: + case 1108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:5718 +//line sql.y:5726 { yyLOCAL = yyDollar[3].exprsUnion() } yyVAL.union = yyLOCAL - case 1108: + case 1109: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5723 +//line sql.y:5731 { yyVAL.identifierCI = IdentifierCI{} } - case 1109: + case 1110: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5727 +//line sql.y:5735 { yyVAL.identifierCI = yyDollar[1].identifierCI } - case 1110: + case 1111: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *WindowSpecification -//line sql.y:5733 +//line sql.y:5741 { yyLOCAL = &WindowSpecification{Name: yyDollar[1].identifierCI, PartitionClause: yyDollar[2].exprsUnion(), OrderClause: yyDollar[3].orderByUnion(), FrameClause: yyDollar[4].frameClauseUnion()} } yyVAL.union = yyLOCAL - case 1111: + case 1112: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5739 +//line sql.y:5747 { yyLOCAL = &OverClause{WindowSpec: yyDollar[3].windowSpecificationUnion()} } yyVAL.union = yyLOCAL - case 1112: + case 1113: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5743 +//line sql.y:5751 { yyLOCAL = &OverClause{WindowName: yyDollar[2].identifierCI} } yyVAL.union = yyLOCAL - case 1113: + case 1114: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5749 +//line sql.y:5757 { yyLOCAL = yyDollar[1].overClauseUnion() } yyVAL.union = yyLOCAL - case 1114: + case 1115: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *OverClause -//line sql.y:5753 +//line sql.y:5761 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1115: + case 1116: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:5758 +//line sql.y:5766 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1117: + case 1118: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *NullTreatmentClause -//line sql.y:5765 +//line sql.y:5773 { yyLOCAL = &NullTreatmentClause{yyDollar[1].nullTreatmentTypeUnion()} } yyVAL.union = yyLOCAL - case 1118: + case 1119: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5771 +//line sql.y:5779 { yyLOCAL = RespectNullsType } yyVAL.union = yyLOCAL - case 1119: + case 1120: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL NullTreatmentType -//line sql.y:5775 +//line sql.y:5783 { yyLOCAL = IgnoreNullsType } yyVAL.union = yyLOCAL - case 1120: + case 1121: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5781 +//line sql.y:5789 { yyLOCAL = FirstValueExprType } yyVAL.union = yyLOCAL - case 1121: + case 1122: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL FirstOrLastValueExprType -//line sql.y:5785 +//line sql.y:5793 { yyLOCAL = LastValueExprType } yyVAL.union = yyLOCAL - case 1122: + case 1123: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5791 +//line sql.y:5799 { yyLOCAL = FromFirstType } yyVAL.union = yyLOCAL - case 1123: + case 1124: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL FromFirstLastType -//line sql.y:5795 +//line sql.y:5803 { yyLOCAL = FromLastType } yyVAL.union = yyLOCAL - case 1124: + case 1125: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5800 +//line sql.y:5808 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1126: + case 1127: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *FromFirstLastClause -//line sql.y:5807 +//line sql.y:5815 { yyLOCAL = &FromFirstLastClause{yyDollar[1].fromFirstLastTypeUnion()} } yyVAL.union = yyLOCAL - case 1127: + case 1128: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5813 +//line sql.y:5821 { yyLOCAL = LagExprType } yyVAL.union = yyLOCAL - case 1128: + case 1129: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LagLeadExprType -//line sql.y:5817 +//line sql.y:5825 { yyLOCAL = LeadExprType } yyVAL.union = yyLOCAL - case 1129: + case 1130: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *WindowDefinition -//line sql.y:5823 +//line sql.y:5831 { yyLOCAL = &WindowDefinition{Name: yyDollar[1].identifierCI, WindowSpec: yyDollar[4].windowSpecificationUnion()} } yyVAL.union = yyLOCAL - case 1130: + case 1131: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL WindowDefinitions -//line sql.y:5829 +//line sql.y:5837 { yyLOCAL = WindowDefinitions{yyDollar[1].windowDefinitionUnion()} } yyVAL.union = yyLOCAL - case 1131: + case 1132: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5833 +//line sql.y:5841 { yySLICE := (*WindowDefinitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].windowDefinitionUnion()) } - case 1132: + case 1133: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5839 +//line sql.y:5847 { yyVAL.str = "" } - case 1133: + case 1134: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5843 +//line sql.y:5851 { yyVAL.str = string(yyDollar[2].identifierCI.String()) } - case 1134: + case 1135: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5849 +//line sql.y:5857 { yyLOCAL = BoolVal(true) } yyVAL.union = yyLOCAL - case 1135: + case 1136: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:5853 +//line sql.y:5861 { yyLOCAL = BoolVal(false) } yyVAL.union = yyLOCAL - case 1136: + case 1137: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5860 +//line sql.y:5868 { yyLOCAL = IsTrueOp } yyVAL.union = yyLOCAL - case 1137: + case 1138: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5864 +//line sql.y:5872 { yyLOCAL = IsNotTrueOp } yyVAL.union = yyLOCAL - case 1138: + case 1139: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5868 +//line sql.y:5876 { yyLOCAL = IsFalseOp } yyVAL.union = yyLOCAL - case 1139: + case 1140: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:5872 +//line sql.y:5880 { yyLOCAL = IsNotFalseOp } yyVAL.union = yyLOCAL - case 1140: + case 1141: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5878 +//line sql.y:5886 { yyLOCAL = yyDollar[1].comparisonExprOperatorUnion() } yyVAL.union = yyLOCAL - case 1141: + case 1142: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5882 +//line sql.y:5890 { yyLOCAL = NullSafeEqualOp } yyVAL.union = yyLOCAL - case 1142: + case 1143: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5888 +//line sql.y:5896 { yyLOCAL = EqualOp } yyVAL.union = yyLOCAL - case 1143: + case 1144: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5892 +//line sql.y:5900 { yyLOCAL = LessThanOp } yyVAL.union = yyLOCAL - case 1144: + case 1145: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5896 +//line sql.y:5904 { yyLOCAL = GreaterThanOp } yyVAL.union = yyLOCAL - case 1145: + case 1146: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5900 +//line sql.y:5908 { yyLOCAL = LessEqualOp } yyVAL.union = yyLOCAL - case 1146: + case 1147: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5904 +//line sql.y:5912 { yyLOCAL = GreaterEqualOp } yyVAL.union = yyLOCAL - case 1147: + case 1148: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:5908 +//line sql.y:5916 { yyLOCAL = NotEqualOp } yyVAL.union = yyLOCAL - case 1148: + case 1149: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5914 +//line sql.y:5922 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 1149: + case 1150: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5918 +//line sql.y:5926 { yyLOCAL = yyDollar[1].subqueryUnion() } yyVAL.union = yyLOCAL - case 1150: + case 1151: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:5922 +//line sql.y:5930 { yyLOCAL = ListArg(yyDollar[1].str[2:]) markBindVariable(yylex, yyDollar[1].str[2:]) } yyVAL.union = yyLOCAL - case 1151: + case 1152: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Subquery -//line sql.y:5929 +//line sql.y:5937 { yyLOCAL = &Subquery{yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1152: + case 1153: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:5935 +//line sql.y:5943 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL - case 1153: + case 1154: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:5939 +//line sql.y:5947 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) } - case 1154: + case 1155: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5949 +//line sql.y:5957 { yyLOCAL = &FuncExpr{Name: yyDollar[1].identifierCI, Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1155: + case 1156: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5953 +//line sql.y:5961 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCI, Exprs: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1156: + case 1157: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5963 +//line sql.y:5971 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("left"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1157: + case 1158: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5967 +//line sql.y:5975 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("right"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1158: + case 1159: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5971 +//line sql.y:5979 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1159: + case 1160: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5975 +//line sql.y:5983 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1160: + case 1161: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5979 +//line sql.y:5987 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1161: + case 1162: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:5983 +//line sql.y:5991 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1162: + case 1163: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:5987 +//line sql.y:5995 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].exprUnion(), From: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1163: + case 1164: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:5991 +//line sql.y:5999 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1164: + case 1165: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:5995 +//line sql.y:6003 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } yyVAL.union = yyLOCAL - case 1165: + case 1166: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:5999 +//line sql.y:6007 { yyLOCAL = &InsertExpr{Str: yyDollar[3].exprUnion(), Pos: yyDollar[5].exprUnion(), Len: yyDollar[7].exprUnion(), NewStr: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1166: + case 1167: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6003 +//line sql.y:6011 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1167: + case 1168: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6014 +//line sql.y:6022 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("utc_date")} } yyVAL.union = yyLOCAL - case 1168: + case 1169: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6018 +//line sql.y:6026 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1169: + case 1170: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6024 +//line sql.y:6032 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("current_date")} } yyVAL.union = yyLOCAL - case 1170: + case 1171: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6028 +//line sql.y:6036 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("curdate")} } yyVAL.union = yyLOCAL - case 1171: + case 1172: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6032 +//line sql.y:6040 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("utc_time"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1172: + case 1173: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6037 +//line sql.y:6045 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("curtime"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1173: + case 1174: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6042 +//line sql.y:6050 { yyLOCAL = &CurTimeFuncExpr{Name: NewIdentifierCI("current_time"), Fsp: yyDollar[2].integerUnion()} } yyVAL.union = yyLOCAL - case 1174: + case 1175: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6046 +//line sql.y:6054 { yyLOCAL = &CountStar{OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1175: + case 1176: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6050 +//line sql.y:6058 { yyLOCAL = &Count{Distinct: yyDollar[3].booleanUnion(), Args: yyDollar[4].exprsUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1176: + case 1177: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6054 +//line sql.y:6062 { yyLOCAL = &Max{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1177: + case 1178: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6058 +//line sql.y:6066 { yyLOCAL = &Min{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1178: + case 1179: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6062 +//line sql.y:6070 { yyLOCAL = &Sum{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1179: + case 1180: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6066 +//line sql.y:6074 { yyLOCAL = &Avg{Distinct: yyDollar[3].booleanUnion(), Arg: yyDollar[4].exprUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1180: + case 1181: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6070 +//line sql.y:6078 { yyLOCAL = &BitAnd{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1181: + case 1182: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6074 +//line sql.y:6082 { yyLOCAL = &BitOr{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1182: + case 1183: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6078 +//line sql.y:6086 { yyLOCAL = &BitXor{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1183: + case 1184: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6082 +//line sql.y:6090 { yyLOCAL = &Std{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1184: + case 1185: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6086 +//line sql.y:6094 { yyLOCAL = &StdDev{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1185: + case 1186: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6090 +//line sql.y:6098 { yyLOCAL = &StdPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1186: + case 1187: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6094 +//line sql.y:6102 { yyLOCAL = &StdSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1187: + case 1188: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6098 +//line sql.y:6106 { yyLOCAL = &VarPop{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1188: + case 1189: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6102 +//line sql.y:6110 { yyLOCAL = &VarSamp{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1189: + case 1190: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6106 +//line sql.y:6114 { yyLOCAL = &Variance{Arg: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1190: + case 1191: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6110 +//line sql.y:6118 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].exprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } yyVAL.union = yyLOCAL - case 1191: + case 1192: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6114 +//line sql.y:6122 { yyLOCAL = &AnyValue{Arg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1192: + case 1193: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6118 +//line sql.y:6126 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprTimestampadd, Date: yyDollar[7].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: yyDollar[3].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1193: + case 1194: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6122 +//line sql.y:6130 { yyLOCAL = &TimestampDiffExpr{Unit: yyDollar[3].intervalTypeUnion(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1194: + case 1195: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6126 +//line sql.y:6134 { yyLOCAL = &ExtractFuncExpr{IntervalType: yyDollar[3].intervalTypeUnion(), Expr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1195: + case 1196: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6130 +//line sql.y:6138 { yyLOCAL = &WeightStringFuncExpr{Expr: yyDollar[3].exprUnion(), As: yyDollar[4].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1196: + case 1197: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6134 +//line sql.y:6142 { yyLOCAL = &JSONPrettyExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1197: + case 1198: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6138 +//line sql.y:6146 { yyLOCAL = &JSONStorageFreeExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1198: + case 1199: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6142 +//line sql.y:6150 { yyLOCAL = &JSONStorageSizeExpr{JSONVal: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1199: + case 1200: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6146 +//line sql.y:6154 { yyLOCAL = &JSONArrayAgg{Expr: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1200: + case 1201: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6150 +//line sql.y:6158 { yyLOCAL = &JSONObjectAgg{Key: yyDollar[3].exprUnion(), Value: yyDollar[5].exprUnion(), OverClause: yyDollar[7].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1201: + case 1202: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6154 +//line sql.y:6162 { yyLOCAL = &TrimFuncExpr{TrimFuncType: LTrimType, Type: LeadingTrimType, StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1202: + case 1203: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6158 +//line sql.y:6166 { yyLOCAL = &TrimFuncExpr{TrimFuncType: RTrimType, Type: TrailingTrimType, StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1203: + case 1204: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6162 +//line sql.y:6170 { yyLOCAL = &TrimFuncExpr{Type: yyDollar[3].trimTypeUnion(), TrimArg: yyDollar[4].exprUnion(), StringArg: yyDollar[6].exprUnion()} } yyVAL.union = yyLOCAL - case 1204: + case 1205: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6166 +//line sql.y:6174 { yyLOCAL = &TrimFuncExpr{StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1205: + case 1206: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6170 +//line sql.y:6178 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1206: + case 1207: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6174 +//line sql.y:6182 { yyLOCAL = &CharExpr{Exprs: yyDollar[3].exprsUnion(), Charset: yyDollar[5].str} } yyVAL.union = yyLOCAL - case 1207: + case 1208: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6178 +//line sql.y:6186 { yyLOCAL = &TrimFuncExpr{TrimArg: yyDollar[3].exprUnion(), StringArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1208: + case 1209: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6182 +//line sql.y:6190 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1209: + case 1210: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6186 +//line sql.y:6194 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion(), Pos: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1210: + case 1211: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6190 +//line sql.y:6198 { yyLOCAL = &LocateExpr{SubStr: yyDollar[3].exprUnion(), Str: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1211: + case 1212: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6194 +//line sql.y:6202 { yyLOCAL = &LockingFunc{Type: GetLock, Name: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1212: + case 1213: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6198 +//line sql.y:6206 { yyLOCAL = &LockingFunc{Type: IsFreeLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1213: + case 1214: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6202 +//line sql.y:6210 { yyLOCAL = &LockingFunc{Type: IsUsedLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1214: + case 1215: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6206 +//line sql.y:6214 { yyLOCAL = &LockingFunc{Type: ReleaseAllLocks} } yyVAL.union = yyLOCAL - case 1215: + case 1216: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6210 +//line sql.y:6218 { yyLOCAL = &LockingFunc{Type: ReleaseLock, Name: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1216: + case 1217: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6214 +//line sql.y:6222 { yyLOCAL = &JSONSchemaValidFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1217: + case 1218: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6218 +//line sql.y:6226 { yyLOCAL = &JSONSchemaValidationReportFuncExpr{Schema: yyDollar[3].exprUnion(), Document: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1218: + case 1219: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6222 +//line sql.y:6230 { yyLOCAL = &JSONArrayExpr{Params: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1219: + case 1220: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6226 +//line sql.y:6234 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1220: + case 1221: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6230 +//line sql.y:6238 { yyLOCAL = &GeomFormatExpr{FormatType: BinaryFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1221: + case 1222: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6234 +//line sql.y:6242 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1222: + case 1223: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6238 +//line sql.y:6246 { yyLOCAL = &GeomFormatExpr{FormatType: TextFormat, Geom: yyDollar[3].exprUnion(), AxisOrderOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1223: + case 1224: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6242 +//line sql.y:6250 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsEmpty, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1224: + case 1225: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6246 +//line sql.y:6254 { yyLOCAL = &GeomPropertyFuncExpr{Property: IsSimple, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1225: + case 1226: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6250 +//line sql.y:6258 { yyLOCAL = &GeomPropertyFuncExpr{Property: Dimension, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1226: + case 1227: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6254 +//line sql.y:6262 { yyLOCAL = &GeomPropertyFuncExpr{Property: Envelope, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1227: + case 1228: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6258 +//line sql.y:6266 { yyLOCAL = &GeomPropertyFuncExpr{Property: GeometryType, Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1228: + case 1229: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6262 +//line sql.y:6270 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1229: + case 1230: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6266 +//line sql.y:6274 { yyLOCAL = &PointPropertyFuncExpr{Property: Latitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1230: + case 1231: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6270 +//line sql.y:6278 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1231: + case 1232: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6274 +//line sql.y:6282 { yyLOCAL = &PointPropertyFuncExpr{Property: Longitude, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1232: + case 1233: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6278 +//line sql.y:6286 { yyLOCAL = &LinestrPropertyFuncExpr{Property: EndPoint, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1233: + case 1234: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6282 +//line sql.y:6290 { yyLOCAL = &LinestrPropertyFuncExpr{Property: IsClosed, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1234: + case 1235: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6286 +//line sql.y:6294 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1235: + case 1236: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6290 +//line sql.y:6298 { yyLOCAL = &LinestrPropertyFuncExpr{Property: Length, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1236: + case 1237: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6294 +//line sql.y:6302 { yyLOCAL = &LinestrPropertyFuncExpr{Property: NumPoints, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1237: + case 1238: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6298 +//line sql.y:6306 { yyLOCAL = &LinestrPropertyFuncExpr{Property: PointN, Linestring: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1238: + case 1239: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6302 +//line sql.y:6310 { yyLOCAL = &LinestrPropertyFuncExpr{Property: StartPoint, Linestring: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1239: + case 1240: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6306 +//line sql.y:6314 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1240: + case 1241: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6310 +//line sql.y:6318 { yyLOCAL = &PointPropertyFuncExpr{Property: XCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1241: + case 1242: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6314 +//line sql.y:6322 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1242: + case 1243: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6318 +//line sql.y:6326 { yyLOCAL = &PointPropertyFuncExpr{Property: YCordinate, Point: yyDollar[3].exprUnion(), ValueToSet: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1243: + case 1244: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6322 +//line sql.y:6330 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1244: + case 1245: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6326 +//line sql.y:6334 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1245: + case 1246: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6330 +//line sql.y:6338 { yyLOCAL = &GeomFromTextExpr{Type: GeometryFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1246: + case 1247: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6334 +//line sql.y:6342 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1247: + case 1248: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6338 +//line sql.y:6346 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1248: + case 1249: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6342 +//line sql.y:6350 { yyLOCAL = &GeomFromTextExpr{Type: GeometryCollectionFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1249: + case 1250: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6346 +//line sql.y:6354 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1250: + case 1251: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6350 +//line sql.y:6358 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1251: + case 1252: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6354 +//line sql.y:6362 { yyLOCAL = &GeomFromTextExpr{Type: LineStringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1252: + case 1253: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6358 +//line sql.y:6366 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1253: + case 1254: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6362 +//line sql.y:6370 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1254: + case 1255: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6366 +//line sql.y:6374 { yyLOCAL = &GeomFromTextExpr{Type: MultiLinestringFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1255: + case 1256: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6370 +//line sql.y:6378 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1256: + case 1257: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6374 +//line sql.y:6382 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1257: + case 1258: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6378 +//line sql.y:6386 { yyLOCAL = &GeomFromTextExpr{Type: MultiPointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1258: + case 1259: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6382 +//line sql.y:6390 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1259: + case 1260: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6386 +//line sql.y:6394 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1260: + case 1261: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6390 +//line sql.y:6398 { yyLOCAL = &GeomFromTextExpr{Type: MultiPolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1261: + case 1262: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6394 +//line sql.y:6402 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1262: + case 1263: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6398 +//line sql.y:6406 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1263: + case 1264: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6402 +//line sql.y:6410 { yyLOCAL = &GeomFromTextExpr{Type: PointFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1264: + case 1265: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6406 +//line sql.y:6414 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1265: + case 1266: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6410 +//line sql.y:6418 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1266: + case 1267: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6414 +//line sql.y:6422 { yyLOCAL = &GeomFromTextExpr{Type: PolygonFromText, WktText: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1267: + case 1268: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6418 +//line sql.y:6426 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1268: + case 1269: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6422 +//line sql.y:6430 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1269: + case 1270: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6426 +//line sql.y:6434 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1270: + case 1271: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6430 +//line sql.y:6438 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1271: + case 1272: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6434 +//line sql.y:6442 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1272: + case 1273: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6438 +//line sql.y:6446 { yyLOCAL = &GeomFromWKBExpr{Type: GeometryCollectionFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1273: + case 1274: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6442 +//line sql.y:6450 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1274: + case 1275: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6446 +//line sql.y:6454 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1275: + case 1276: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6450 +//line sql.y:6458 { yyLOCAL = &GeomFromWKBExpr{Type: LineStringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1276: + case 1277: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6454 +//line sql.y:6462 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1277: + case 1278: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6458 +//line sql.y:6466 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1278: + case 1279: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6462 +//line sql.y:6470 { yyLOCAL = &GeomFromWKBExpr{Type: MultiLinestringFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1279: + case 1280: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6466 +//line sql.y:6474 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1280: + case 1281: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6470 +//line sql.y:6478 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1281: + case 1282: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6474 +//line sql.y:6482 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1282: + case 1283: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6478 +//line sql.y:6486 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1283: + case 1284: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6482 +//line sql.y:6490 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1284: + case 1285: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6486 +//line sql.y:6494 { yyLOCAL = &GeomFromWKBExpr{Type: MultiPolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1285: + case 1286: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6490 +//line sql.y:6498 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1286: + case 1287: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6494 +//line sql.y:6502 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1287: + case 1288: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6498 +//line sql.y:6506 { yyLOCAL = &GeomFromWKBExpr{Type: PointFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1288: + case 1289: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6502 +//line sql.y:6510 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1289: + case 1290: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6506 +//line sql.y:6514 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1290: + case 1291: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6510 +//line sql.y:6518 { yyLOCAL = &GeomFromWKBExpr{Type: PolygonFromWKB, WkbBlob: yyDollar[3].exprUnion(), Srid: yyDollar[5].exprUnion(), AxisOrderOpt: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1291: + case 1292: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6514 +//line sql.y:6522 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Area, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1292: + case 1293: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6518 +//line sql.y:6526 { yyLOCAL = &PolygonPropertyFuncExpr{Property: Centroid, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1293: + case 1294: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6522 +//line sql.y:6530 { yyLOCAL = &PolygonPropertyFuncExpr{Property: ExteriorRing, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1294: + case 1295: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6526 +//line sql.y:6534 { yyLOCAL = &PolygonPropertyFuncExpr{Property: InteriorRingN, Polygon: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1295: + case 1296: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6530 +//line sql.y:6538 { yyLOCAL = &PolygonPropertyFuncExpr{Property: NumInteriorRings, Polygon: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1296: + case 1297: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6534 +//line sql.y:6542 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: GeometryN, GeomColl: yyDollar[3].exprUnion(), PropertyDefArg: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1297: + case 1298: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6538 +//line sql.y:6546 { yyLOCAL = &GeomCollPropertyFuncExpr{Property: NumGeometries, GeomColl: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1298: + case 1299: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6542 +//line sql.y:6550 { yyLOCAL = &GeoHashFromLatLongExpr{Longitude: yyDollar[3].exprUnion(), Latitude: yyDollar[5].exprUnion(), MaxLength: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1299: + case 1300: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6546 +//line sql.y:6554 { yyLOCAL = &GeoHashFromPointExpr{Point: yyDollar[3].exprUnion(), MaxLength: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1300: + case 1301: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6550 +//line sql.y:6558 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LatitudeFromHash, GeoHash: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1301: + case 1302: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6554 +//line sql.y:6562 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: LongitudeFromHash, GeoHash: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1302: + case 1303: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6558 +//line sql.y:6566 { yyLOCAL = &GeomFromGeoHashExpr{GeomType: PointFromHash, GeoHash: yyDollar[3].exprUnion(), SridOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1303: + case 1304: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6562 +//line sql.y:6570 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1304: + case 1305: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6566 +//line sql.y:6574 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1305: + case 1306: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6570 +//line sql.y:6578 { yyLOCAL = &GeomFromGeoJSONExpr{GeoJSON: yyDollar[3].exprUnion(), HigherDimHandlerOpt: yyDollar[5].exprUnion(), Srid: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1306: + case 1307: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6574 +//line sql.y:6582 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1307: + case 1308: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6578 +//line sql.y:6586 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1308: + case 1309: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6582 +//line sql.y:6590 { yyLOCAL = &GeoJSONFromGeomExpr{Geom: yyDollar[3].exprUnion(), MaxDecimalDigits: yyDollar[5].exprUnion(), Bitmask: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1309: + case 1310: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6586 +//line sql.y:6594 { yyLOCAL = &JSONObjectExpr{Params: yyDollar[3].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1310: + case 1311: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6590 +//line sql.y:6598 { yyLOCAL = &JSONQuoteExpr{StringArg: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1311: + case 1312: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6594 +//line sql.y:6602 { yyLOCAL = &JSONContainsExpr{Target: yyDollar[3].exprUnion(), Candidate: yyDollar[5].exprsUnion()[0], PathList: yyDollar[5].exprsUnion()[1:]} } yyVAL.union = yyLOCAL - case 1312: + case 1313: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6598 +//line sql.y:6606 { yyLOCAL = &JSONContainsPathExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), PathList: yyDollar[7].exprsUnion()} } yyVAL.union = yyLOCAL - case 1313: + case 1314: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6602 +//line sql.y:6610 { yyLOCAL = &JSONExtractExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1314: + case 1315: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6606 +//line sql.y:6614 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1315: + case 1316: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6610 +//line sql.y:6618 { yyLOCAL = &JSONKeysExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1316: + case 1317: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6614 +//line sql.y:6622 { yyLOCAL = &JSONOverlapsExpr{JSONDoc1: yyDollar[3].exprUnion(), JSONDoc2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1317: + case 1318: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6618 +//line sql.y:6626 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1318: + case 1319: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6622 +//line sql.y:6630 { yyLOCAL = &JSONSearchExpr{JSONDoc: yyDollar[3].exprUnion(), OneOrAll: yyDollar[5].exprUnion(), SearchStr: yyDollar[7].exprUnion(), EscapeChar: yyDollar[9].exprsUnion()[0], PathList: yyDollar[9].exprsUnion()[1:]} } yyVAL.union = yyLOCAL - case 1319: + case 1320: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Expr -//line sql.y:6626 +//line sql.y:6634 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion()} } yyVAL.union = yyLOCAL - case 1320: + case 1321: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6630 +//line sql.y:6638 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1321: + case 1322: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6634 +//line sql.y:6642 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), ErrorOnResponse: yyDollar[7].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1322: + case 1323: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6638 +//line sql.y:6646 { yyLOCAL = &JSONValueExpr{JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion(), ReturningType: yyDollar[6].convertTypeUnion(), EmptyOnResponse: yyDollar[7].jtOnResponseUnion(), ErrorOnResponse: yyDollar[8].jtOnResponseUnion()} } yyVAL.union = yyLOCAL - case 1323: + case 1324: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6642 +//line sql.y:6650 { yyLOCAL = &JSONAttributesExpr{Type: DepthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1324: + case 1325: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6646 +//line sql.y:6654 { yyLOCAL = &JSONAttributesExpr{Type: ValidAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1325: + case 1326: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6650 +//line sql.y:6658 { yyLOCAL = &JSONAttributesExpr{Type: TypeAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1326: + case 1327: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6654 +//line sql.y:6662 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1327: + case 1328: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6658 +//line sql.y:6666 { yyLOCAL = &JSONAttributesExpr{Type: LengthAttributeType, JSONDoc: yyDollar[3].exprUnion(), Path: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1328: + case 1329: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6662 +//line sql.y:6670 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayAppendType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1329: + case 1330: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6666 +//line sql.y:6674 { yyLOCAL = &JSONValueModifierExpr{Type: JSONArrayInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1330: + case 1331: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6670 +//line sql.y:6678 { yyLOCAL = &JSONValueModifierExpr{Type: JSONInsertType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1331: + case 1332: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6674 +//line sql.y:6682 { yyLOCAL = &JSONValueModifierExpr{Type: JSONReplaceType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1332: + case 1333: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6678 +//line sql.y:6686 { yyLOCAL = &JSONValueModifierExpr{Type: JSONSetType, JSONDoc: yyDollar[3].exprUnion(), Params: yyDollar[5].jsonObjectParamsUnion()} } yyVAL.union = yyLOCAL - case 1333: + case 1334: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6682 +//line sql.y:6690 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergeType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1334: + case 1335: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6686 +//line sql.y:6694 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePatchType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1335: + case 1336: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6690 +//line sql.y:6698 { yyLOCAL = &JSONValueMergeExpr{Type: JSONMergePreserveType, JSONDoc: yyDollar[3].exprUnion(), JSONDocList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1336: + case 1337: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6694 +//line sql.y:6702 { yyLOCAL = &JSONRemoveExpr{JSONDoc: yyDollar[3].exprUnion(), PathList: yyDollar[5].exprsUnion()} } yyVAL.union = yyLOCAL - case 1337: + case 1338: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6698 +//line sql.y:6706 { yyLOCAL = &JSONUnquoteExpr{JSONValue: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1338: + case 1339: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6702 +//line sql.y:6710 { yyLOCAL = &MultiPolygonExpr{PolygonParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1339: + case 1340: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6706 +//line sql.y:6714 { yyLOCAL = &MultiPointExpr{PointParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1340: + case 1341: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6710 +//line sql.y:6718 { yyLOCAL = &MultiLinestringExpr{LinestringParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1341: + case 1342: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6714 +//line sql.y:6722 { yyLOCAL = &PolygonExpr{LinestringParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1342: + case 1343: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6718 +//line sql.y:6726 { yyLOCAL = &LineStringExpr{PointParams: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1343: + case 1344: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6722 +//line sql.y:6730 { yyLOCAL = &PointExpr{XCordinate: yyDollar[3].exprUnion(), YCordinate: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1344: + case 1345: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6726 +//line sql.y:6734 { yyLOCAL = &ArgumentLessWindowExpr{Type: yyDollar[1].argumentLessWindowExprTypeUnion(), OverClause: yyDollar[4].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1345: + case 1346: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6730 +//line sql.y:6738 { yyLOCAL = &FirstOrLastValueExpr{Type: yyDollar[1].firstOrLastValueExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1346: + case 1347: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:6734 +//line sql.y:6742 { yyLOCAL = &NtileExpr{N: yyDollar[3].exprUnion(), OverClause: yyDollar[5].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1347: + case 1348: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6738 +//line sql.y:6746 { yyLOCAL = &NTHValueExpr{Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), FromFirstLastClause: yyDollar[7].fromFirstLastClauseUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1348: + case 1349: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6742 +//line sql.y:6750 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), NullTreatmentClause: yyDollar[5].nullTreatmentClauseUnion(), OverClause: yyDollar[6].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1349: + case 1350: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:6746 +//line sql.y:6754 { yyLOCAL = &LagLeadExpr{Type: yyDollar[1].lagLeadExprTypeUnion(), Expr: yyDollar[3].exprUnion(), N: yyDollar[5].exprUnion(), Default: yyDollar[6].exprUnion(), NullTreatmentClause: yyDollar[8].nullTreatmentClauseUnion(), OverClause: yyDollar[9].overClauseUnion()} } yyVAL.union = yyLOCAL - case 1350: + case 1351: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6750 +//line sql.y:6758 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1351: + case 1352: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6754 +//line sql.y:6762 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprAdddate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone} } yyVAL.union = yyLOCAL - case 1352: + case 1353: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6758 +//line sql.y:6766 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateAdd, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1353: + case 1354: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6762 +//line sql.y:6770 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprDateSub, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1354: + case 1355: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6766 +//line sql.y:6774 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[6].exprUnion(), Unit: yyDollar[7].intervalTypeUnion()} } yyVAL.union = yyLOCAL - case 1355: + case 1356: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6770 +//line sql.y:6778 { yyLOCAL = &IntervalDateExpr{Syntax: IntervalDateExprSubdate, Date: yyDollar[3].exprUnion(), Interval: yyDollar[5].exprUnion(), Unit: IntervalNone} } yyVAL.union = yyLOCAL - case 1360: + case 1361: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6780 +//line sql.y:6788 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1361: + case 1362: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6784 +//line sql.y:6792 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1362: + case 1363: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6788 +//line sql.y:6796 { yyLOCAL = yyDollar[1].variableUnion() } yyVAL.union = yyLOCAL - case 1363: + case 1364: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:6792 +//line sql.y:6800 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1364: + case 1365: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:6797 +//line sql.y:6805 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1365: + case 1366: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:6801 +//line sql.y:6809 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1366: + case 1367: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6807 +//line sql.y:6815 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1367: + case 1368: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6811 +//line sql.y:6819 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1368: + case 1369: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6815 +//line sql.y:6823 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1369: + case 1370: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6819 +//line sql.y:6827 { yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1370: + case 1371: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:6823 +//line sql.y:6831 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpInstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), ReturnOption: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1371: + case 1372: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6828 +//line sql.y:6836 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1372: + case 1373: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6832 +//line sql.y:6840 { yyLOCAL = &RegexpLikeExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), MatchType: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1373: + case 1374: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6836 +//line sql.y:6844 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1374: + case 1375: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6840 +//line sql.y:6848 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1375: + case 1376: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6844 +//line sql.y:6852 { yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1376: + case 1377: yyDollar = yyS[yypt-14 : yypt+1] var yyLOCAL Expr -//line sql.y:6848 +//line sql.y:6856 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpReplaceExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Repl: yyDollar[7].exprUnion(), Position: yyDollar[9].exprUnion(), Occurrence: yyDollar[11].exprUnion(), MatchType: yyDollar[13].exprUnion()} } yyVAL.union = yyLOCAL - case 1377: + case 1378: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6853 +//line sql.y:6861 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1378: + case 1379: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6857 +//line sql.y:6865 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1379: + case 1380: yyDollar = yyS[yypt-10 : yypt+1] var yyLOCAL Expr -//line sql.y:6861 +//line sql.y:6869 { yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion()} } yyVAL.union = yyLOCAL - case 1380: + case 1381: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Expr -//line sql.y:6865 +//line sql.y:6873 { // Match type is kept expression as TRIM( ' m ') is accepted yyLOCAL = &RegexpSubstrExpr{Expr: yyDollar[3].exprUnion(), Pattern: yyDollar[5].exprUnion(), Position: yyDollar[7].exprUnion(), Occurrence: yyDollar[9].exprUnion(), MatchType: yyDollar[11].exprUnion()} } yyVAL.union = yyLOCAL - case 1381: + case 1382: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6872 +//line sql.y:6880 { yyLOCAL = &ExtractValueExpr{Fragment: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1382: + case 1383: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6876 +//line sql.y:6884 { yyLOCAL = &UpdateXMLExpr{Target: yyDollar[3].exprUnion(), XPathExpr: yyDollar[5].exprUnion(), NewXML: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1383: + case 1384: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6882 +//line sql.y:6890 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatBytesType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1384: + case 1385: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6886 +//line sql.y:6894 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: FormatPicoTimeType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1385: + case 1386: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:6890 +//line sql.y:6898 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsCurrentThreadIDType} } yyVAL.union = yyLOCAL - case 1386: + case 1387: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6894 +//line sql.y:6902 { yyLOCAL = &PerformanceSchemaFuncExpr{Type: PsThreadIDType, Argument: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1387: + case 1388: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6900 +//line sql.y:6908 { yyLOCAL = >IDFuncExpr{Type: GTIDSubsetType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1388: + case 1389: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6904 +//line sql.y:6912 { yyLOCAL = >IDFuncExpr{Type: GTIDSubtractType, Set1: yyDollar[3].exprUnion(), Set2: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1389: + case 1390: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6908 +//line sql.y:6916 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1390: + case 1391: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6912 +//line sql.y:6920 { yyLOCAL = >IDFuncExpr{Type: WaitForExecutedGTIDSetType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1391: + case 1392: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:6916 +//line sql.y:6924 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1392: + case 1393: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:6920 +//line sql.y:6928 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion()} } yyVAL.union = yyLOCAL - case 1393: + case 1394: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:6924 +//line sql.y:6932 { yyLOCAL = >IDFuncExpr{Type: WaitUntilSQLThreadAfterGTIDSType, Set1: yyDollar[3].exprUnion(), Timeout: yyDollar[5].exprUnion(), Channel: yyDollar[7].exprUnion()} } yyVAL.union = yyLOCAL - case 1394: + case 1395: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6929 +//line sql.y:6937 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1395: + case 1396: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:6933 +//line sql.y:6941 { yyLOCAL = yyDollar[2].convertTypeUnion() } yyVAL.union = yyLOCAL - case 1396: + case 1397: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6939 +//line sql.y:6947 { yyLOCAL = IntervalDayHour } yyVAL.union = yyLOCAL - case 1397: + case 1398: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6943 +//line sql.y:6951 { yyLOCAL = IntervalDayMicrosecond } yyVAL.union = yyLOCAL - case 1398: + case 1399: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6947 +//line sql.y:6955 { yyLOCAL = IntervalDayMinute } yyVAL.union = yyLOCAL - case 1399: + case 1400: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6951 +//line sql.y:6959 { yyLOCAL = IntervalDaySecond } yyVAL.union = yyLOCAL - case 1400: + case 1401: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6955 +//line sql.y:6963 { yyLOCAL = IntervalHourMicrosecond } yyVAL.union = yyLOCAL - case 1401: + case 1402: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6959 +//line sql.y:6967 { yyLOCAL = IntervalHourMinute } yyVAL.union = yyLOCAL - case 1402: + case 1403: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6963 +//line sql.y:6971 { yyLOCAL = IntervalHourSecond } yyVAL.union = yyLOCAL - case 1403: + case 1404: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6967 +//line sql.y:6975 { yyLOCAL = IntervalMinuteMicrosecond } yyVAL.union = yyLOCAL - case 1404: + case 1405: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6971 +//line sql.y:6979 { yyLOCAL = IntervalMinuteSecond } yyVAL.union = yyLOCAL - case 1405: + case 1406: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6975 +//line sql.y:6983 { yyLOCAL = IntervalSecondMicrosecond } yyVAL.union = yyLOCAL - case 1406: + case 1407: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6979 +//line sql.y:6987 { yyLOCAL = IntervalYearMonth } yyVAL.union = yyLOCAL - case 1407: + case 1408: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6983 +//line sql.y:6991 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1408: + case 1409: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6987 +//line sql.y:6995 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1409: + case 1410: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6991 +//line sql.y:6999 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1410: + case 1411: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6995 +//line sql.y:7003 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1411: + case 1412: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:6999 +//line sql.y:7007 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1412: + case 1413: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7003 +//line sql.y:7011 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1413: + case 1414: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7007 +//line sql.y:7015 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1414: + case 1415: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7011 +//line sql.y:7019 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1415: + case 1416: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7015 +//line sql.y:7023 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1416: + case 1417: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7021 +//line sql.y:7029 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1417: + case 1418: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7025 +//line sql.y:7033 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1418: + case 1419: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7029 +//line sql.y:7037 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1419: + case 1420: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7033 +//line sql.y:7041 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1420: + case 1421: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7037 +//line sql.y:7045 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1421: + case 1422: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7041 +//line sql.y:7049 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1422: + case 1423: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7045 +//line sql.y:7053 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1423: + case 1424: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7049 +//line sql.y:7057 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1424: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7053 +//line sql.y:7061 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1425: + case 1426: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7057 +//line sql.y:7065 { yyLOCAL = IntervalDay } yyVAL.union = yyLOCAL - case 1426: + case 1427: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7061 +//line sql.y:7069 { yyLOCAL = IntervalWeek } yyVAL.union = yyLOCAL - case 1427: + case 1428: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7065 +//line sql.y:7073 { yyLOCAL = IntervalHour } yyVAL.union = yyLOCAL - case 1428: + case 1429: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7069 +//line sql.y:7077 { yyLOCAL = IntervalMinute } yyVAL.union = yyLOCAL - case 1429: + case 1430: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7073 +//line sql.y:7081 { yyLOCAL = IntervalMonth } yyVAL.union = yyLOCAL - case 1430: + case 1431: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7077 +//line sql.y:7085 { yyLOCAL = IntervalQuarter } yyVAL.union = yyLOCAL - case 1431: + case 1432: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7081 +//line sql.y:7089 { yyLOCAL = IntervalSecond } yyVAL.union = yyLOCAL - case 1432: + case 1433: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7085 +//line sql.y:7093 { yyLOCAL = IntervalMicrosecond } yyVAL.union = yyLOCAL - case 1433: + case 1434: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IntervalType -//line sql.y:7089 +//line sql.y:7097 { yyLOCAL = IntervalYear } yyVAL.union = yyLOCAL - case 1436: + case 1437: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL int -//line sql.y:7099 +//line sql.y:7107 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1437: + case 1438: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL int -//line sql.y:7103 +//line sql.y:7111 { yyLOCAL = 0 } yyVAL.union = yyLOCAL - case 1438: + case 1439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL int -//line sql.y:7107 +//line sql.y:7115 { yyLOCAL = convertStringToInt(yyDollar[2].str) } yyVAL.union = yyLOCAL - case 1439: + case 1440: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7117 +//line sql.y:7125 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("if"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1440: + case 1441: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7121 +//line sql.y:7129 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("database"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1441: + case 1442: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7125 +//line sql.y:7133 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("schema"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1442: + case 1443: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7129 +//line sql.y:7137 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("mod"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1443: + case 1444: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:7133 +//line sql.y:7141 { yyLOCAL = &FuncExpr{Name: NewIdentifierCI("replace"), Exprs: yyDollar[3].exprsUnion()} } yyVAL.union = yyLOCAL - case 1444: + case 1445: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7139 +//line sql.y:7147 { yyLOCAL = NoOption } yyVAL.union = yyLOCAL - case 1445: + case 1446: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7143 +//line sql.y:7151 { yyLOCAL = BooleanModeOpt } yyVAL.union = yyLOCAL - case 1446: + case 1447: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7147 +//line sql.y:7155 { yyLOCAL = NaturalLanguageModeOpt } yyVAL.union = yyLOCAL - case 1447: + case 1448: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7151 +//line sql.y:7159 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } yyVAL.union = yyLOCAL - case 1448: + case 1449: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:7155 +//line sql.y:7163 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL - case 1449: + case 1450: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7161 +//line sql.y:7169 { yyVAL.str = string(yyDollar[1].identifierCI.String()) } - case 1450: + case 1451: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7165 +//line sql.y:7173 { yyVAL.str = string(yyDollar[1].str) } - case 1451: + case 1452: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7169 +//line sql.y:7177 { yyVAL.str = string(yyDollar[1].str) } - case 1452: + case 1453: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7175 +//line sql.y:7183 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1453: + case 1454: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7179 +//line sql.y:7187 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))} } yyVAL.union = yyLOCAL - case 1454: + case 1455: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7183 +//line sql.y:7191 { yyLOCAL = &ConvertType{Type: string(yyDollar[2].str), Length: ptr.Of(convertStringToInt(yyDollar[4].str))} } yyVAL.union = yyLOCAL - case 1455: + case 1456: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7189 +//line sql.y:7197 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1456: + case 1457: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7193 +//line sql.y:7201 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion(), Charset: yyDollar[3].columnCharset} } yyVAL.union = yyLOCAL - case 1457: + case 1458: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7197 +//line sql.y:7205 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1458: + case 1459: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7201 +//line sql.y:7209 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1459: + case 1460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7205 +//line sql.y:7213 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale } yyVAL.union = yyLOCAL - case 1460: + case 1461: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7211 +//line sql.y:7219 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1461: + case 1462: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7215 +//line sql.y:7223 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1462: + case 1463: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7219 +//line sql.y:7227 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1463: + case 1464: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7223 +//line sql.y:7231 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1464: + case 1465: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7227 +//line sql.y:7235 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1465: + case 1466: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7231 +//line sql.y:7239 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1466: + case 1467: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7235 +//line sql.y:7243 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1467: + case 1468: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7239 +//line sql.y:7247 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].intPtrUnion()} } yyVAL.union = yyLOCAL - case 1468: + case 1469: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7243 +//line sql.y:7251 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1469: + case 1470: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:7247 +//line sql.y:7255 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1470: + case 1471: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7253 +//line sql.y:7261 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1471: + case 1472: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:7257 +//line sql.y:7265 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1472: + case 1473: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7262 +//line sql.y:7270 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1473: + case 1474: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7266 +//line sql.y:7274 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL - case 1474: + case 1475: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7271 +//line sql.y:7279 { yyVAL.str = string("") } - case 1475: + case 1476: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7275 +//line sql.y:7283 { yyVAL.str = encodeSQLString(yyDollar[2].str) } - case 1476: + case 1477: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:7281 +//line sql.y:7289 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL - case 1477: + case 1478: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7285 +//line sql.y:7293 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) } - case 1478: + case 1479: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:7291 +//line sql.y:7299 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1479: + case 1480: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7296 +//line sql.y:7304 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1480: + case 1481: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7300 +//line sql.y:7308 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1481: + case 1482: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7306 +//line sql.y:7314 { yyLOCAL = &ColName{Name: yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 1482: + case 1483: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:7310 +//line sql.y:7318 { yyLOCAL = &ColName{Name: NewIdentifierCI(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL - case 1483: + case 1484: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:7314 +//line sql.y:7322 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].identifierCS}, Name: yyDollar[3].identifierCI} } yyVAL.union = yyLOCAL - case 1484: + case 1485: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:7318 +//line sql.y:7326 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].identifierCS, Name: yyDollar[3].identifierCS}, Name: yyDollar[5].identifierCI} } yyVAL.union = yyLOCAL - case 1485: + case 1486: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7324 +//line sql.y:7332 { yyLOCAL = yyDollar[1].colNameUnion() } yyVAL.union = yyLOCAL - case 1486: + case 1487: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7328 +//line sql.y:7336 { yyLOCAL = &Offset{V: convertStringToInt(yyDollar[1].str)} } yyVAL.union = yyLOCAL - case 1487: + case 1488: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7334 +//line sql.y:7342 { // TODO(sougou): Deprecate this construct. if yyDollar[1].identifierCI.Lowered() != "value" { @@ -21418,442 +21472,442 @@ yydefault: yyLOCAL = NewIntLiteral("1") } yyVAL.union = yyLOCAL - case 1488: + case 1489: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7343 +//line sql.y:7351 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1489: + case 1490: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7347 +//line sql.y:7355 { yyLOCAL = parseBindVariable(yylex, yyDollar[1].str[1:]) } yyVAL.union = yyLOCAL - case 1490: + case 1491: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *GroupBy -//line sql.y:7352 +//line sql.y:7360 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1491: + case 1492: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *GroupBy -//line sql.y:7356 +//line sql.y:7364 { yyLOCAL = &GroupBy{Exprs: yyDollar[3].exprsUnion(), WithRollup: yyDollar[4].booleanUnion()} } yyVAL.union = yyLOCAL - case 1492: + case 1493: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7361 +//line sql.y:7369 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1493: + case 1494: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:7365 +//line sql.y:7373 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1494: + case 1495: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:7371 +//line sql.y:7379 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1495: + case 1496: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:7375 +//line sql.y:7383 { yyLOCAL = yyDollar[2].exprUnion() } yyVAL.union = yyLOCAL - case 1496: + case 1497: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *NamedWindow -//line sql.y:7381 +//line sql.y:7389 { yyLOCAL = &NamedWindow{yyDollar[2].windowDefinitionsUnion()} } yyVAL.union = yyLOCAL - case 1497: + case 1498: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7387 +//line sql.y:7395 { yyLOCAL = NamedWindows{yyDollar[1].namedWindowUnion()} } yyVAL.union = yyLOCAL - case 1498: + case 1499: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7391 +//line sql.y:7399 { yySLICE := (*NamedWindows)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].namedWindowUnion()) } - case 1499: + case 1500: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7396 +//line sql.y:7404 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1500: + case 1501: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL NamedWindows -//line sql.y:7400 +//line sql.y:7408 { yyLOCAL = yyDollar[1].namedWindowsUnion() } yyVAL.union = yyLOCAL - case 1501: + case 1502: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7405 +//line sql.y:7413 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1502: + case 1503: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7409 +//line sql.y:7417 { yyLOCAL = yyDollar[1].orderByUnion() } yyVAL.union = yyLOCAL - case 1503: + case 1504: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7415 +//line sql.y:7423 { yyLOCAL = yyDollar[3].orderByUnion() } yyVAL.union = yyLOCAL - case 1504: + case 1505: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:7421 +//line sql.y:7429 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL - case 1505: + case 1506: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7425 +//line sql.y:7433 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) } - case 1506: + case 1507: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:7431 +//line sql.y:7439 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } yyVAL.union = yyLOCAL - case 1507: + case 1508: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7436 +//line sql.y:7444 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1508: + case 1509: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7440 +//line sql.y:7448 { yyLOCAL = AscOrder } yyVAL.union = yyLOCAL - case 1509: + case 1510: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:7444 +//line sql.y:7452 { yyLOCAL = DescOrder } yyVAL.union = yyLOCAL - case 1510: + case 1511: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:7449 +//line sql.y:7457 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1511: + case 1512: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Limit -//line sql.y:7453 +//line sql.y:7461 { yyLOCAL = yyDollar[1].limitUnion() } yyVAL.union = yyLOCAL - case 1512: + case 1513: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:7459 +//line sql.y:7467 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1513: + case 1514: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:7463 +//line sql.y:7471 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } yyVAL.union = yyLOCAL - case 1514: + case 1515: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:7467 +//line sql.y:7475 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } yyVAL.union = yyLOCAL - case 1515: + case 1516: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7472 +//line sql.y:7480 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1516: + case 1517: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7476 +//line sql.y:7484 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1517: + case 1518: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7480 +//line sql.y:7488 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1518: + case 1519: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7484 +//line sql.y:7492 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1519: + case 1520: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:7488 +//line sql.y:7496 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } yyVAL.union = yyLOCAL - case 1520: + case 1521: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7495 +//line sql.y:7503 { yyLOCAL = &LockOption{Type: DefaultType} } yyVAL.union = yyLOCAL - case 1521: + case 1522: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7499 +//line sql.y:7507 { yyLOCAL = &LockOption{Type: NoneType} } yyVAL.union = yyLOCAL - case 1522: + case 1523: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7503 +//line sql.y:7511 { yyLOCAL = &LockOption{Type: SharedType} } yyVAL.union = yyLOCAL - case 1523: + case 1524: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7507 +//line sql.y:7515 { yyLOCAL = &LockOption{Type: ExclusiveType} } yyVAL.union = yyLOCAL - case 1524: + case 1525: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7513 +//line sql.y:7521 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1525: + case 1526: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7517 +//line sql.y:7525 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1526: + case 1527: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7521 +//line sql.y:7529 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1527: + case 1528: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:7525 +//line sql.y:7533 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL - case 1528: + case 1529: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7530 +//line sql.y:7538 { yyVAL.str = "" } - case 1529: + case 1530: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7534 +//line sql.y:7542 { yyVAL.str = string(yyDollar[3].str) } - case 1530: + case 1531: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7538 +//line sql.y:7546 { yyVAL.str = string(yyDollar[3].str) } - case 1531: + case 1532: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7542 +//line sql.y:7550 { yyVAL.str = string(yyDollar[3].str) } - case 1532: + case 1533: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7547 +//line sql.y:7555 { yyVAL.str = "" } - case 1533: + case 1534: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7551 +//line sql.y:7559 { yyVAL.str = yyDollar[3].str } - case 1534: + case 1535: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7557 +//line sql.y:7565 { yyVAL.str = string(yyDollar[1].str) } - case 1535: + case 1536: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7561 +//line sql.y:7569 { yyVAL.str = string(yyDollar[1].str) } - case 1536: + case 1537: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7566 +//line sql.y:7574 { yyVAL.str = "" } - case 1537: + case 1538: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:7570 +//line sql.y:7578 { yyVAL.str = yyDollar[2].str } - case 1538: + case 1539: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7575 +//line sql.y:7583 { yyVAL.str = "cascaded" } - case 1539: + case 1540: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7579 +//line sql.y:7587 { yyVAL.str = string(yyDollar[1].str) } - case 1540: + case 1541: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7583 +//line sql.y:7591 { yyVAL.str = string(yyDollar[1].str) } - case 1541: + case 1542: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Definer -//line sql.y:7588 +//line sql.y:7596 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1542: + case 1543: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:7592 +//line sql.y:7600 { yyLOCAL = yyDollar[3].definerUnion() } yyVAL.union = yyLOCAL - case 1543: + case 1544: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Definer -//line sql.y:7598 +//line sql.y:7606 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1544: + case 1545: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Definer -//line sql.y:7604 +//line sql.y:7612 { yyLOCAL = &Definer{ Name: string(yyDollar[1].str), } } yyVAL.union = yyLOCAL - case 1545: + case 1546: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Definer -//line sql.y:7610 +//line sql.y:7618 { yyLOCAL = &Definer{ Name: yyDollar[1].str, @@ -21861,433 +21915,433 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1546: + case 1547: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7619 +//line sql.y:7627 { yyVAL.str = encodeSQLString(yyDollar[1].str) } - case 1547: + case 1548: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7623 +//line sql.y:7631 { yyVAL.str = formatIdentifier(yyDollar[1].str) } - case 1548: + case 1549: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7628 +//line sql.y:7636 { yyVAL.str = "" } - case 1549: + case 1550: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7632 +//line sql.y:7640 { yyVAL.str = formatAddress(yyDollar[1].str) } - case 1550: + case 1551: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:7638 +//line sql.y:7646 { yyLOCAL = ForUpdateLock } yyVAL.union = yyLOCAL - case 1551: + case 1552: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:7642 +//line sql.y:7650 { yyLOCAL = ForUpdateLockNoWait } yyVAL.union = yyLOCAL - case 1552: + case 1553: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7646 +//line sql.y:7654 { yyLOCAL = ForUpdateLockSkipLocked } yyVAL.union = yyLOCAL - case 1553: + case 1554: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:7650 +//line sql.y:7658 { yyLOCAL = ForShareLock } yyVAL.union = yyLOCAL - case 1554: + case 1555: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Lock -//line sql.y:7654 +//line sql.y:7662 { yyLOCAL = ForShareLockNoWait } yyVAL.union = yyLOCAL - case 1555: + case 1556: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7658 +//line sql.y:7666 { yyLOCAL = ForShareLockSkipLocked } yyVAL.union = yyLOCAL - case 1556: + case 1557: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:7662 +//line sql.y:7670 { yyLOCAL = ShareModeLock } yyVAL.union = yyLOCAL - case 1557: + case 1558: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7668 +//line sql.y:7676 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].columnCharset, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } yyVAL.union = yyLOCAL - case 1558: + case 1559: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7672 +//line sql.y:7680 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: ColumnCharset{}, FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1559: + case 1560: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:7676 +//line sql.y:7684 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].columnCharset, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL - case 1560: + case 1561: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7681 +//line sql.y:7689 { yyVAL.str = "" } - case 1561: + case 1562: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7685 +//line sql.y:7693 { yyVAL.str = " format csv" + yyDollar[3].str } - case 1562: + case 1563: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7689 +//line sql.y:7697 { yyVAL.str = " format text" + yyDollar[3].str } - case 1563: + case 1564: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7694 +//line sql.y:7702 { yyVAL.str = "" } - case 1564: + case 1565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7698 +//line sql.y:7706 { yyVAL.str = " header" } - case 1565: + case 1566: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7703 +//line sql.y:7711 { yyVAL.str = "" } - case 1566: + case 1567: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7707 +//line sql.y:7715 { yyVAL.str = " manifest on" } - case 1567: + case 1568: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7711 +//line sql.y:7719 { yyVAL.str = " manifest off" } - case 1568: + case 1569: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7716 +//line sql.y:7724 { yyVAL.str = "" } - case 1569: + case 1570: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7720 +//line sql.y:7728 { yyVAL.str = " overwrite on" } - case 1570: + case 1571: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7724 +//line sql.y:7732 { yyVAL.str = " overwrite off" } - case 1571: + case 1572: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7730 +//line sql.y:7738 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1572: + case 1573: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7735 +//line sql.y:7743 { yyVAL.str = "" } - case 1573: + case 1574: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7739 +//line sql.y:7747 { yyVAL.str = " lines" + yyDollar[2].str } - case 1574: + case 1575: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7745 +//line sql.y:7753 { yyVAL.str = yyDollar[1].str } - case 1575: + case 1576: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7749 +//line sql.y:7757 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1576: + case 1577: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7755 +//line sql.y:7763 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } - case 1577: + case 1578: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7759 +//line sql.y:7767 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1578: + case 1579: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7764 +//line sql.y:7772 { yyVAL.str = "" } - case 1579: + case 1580: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7768 +//line sql.y:7776 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } - case 1580: + case 1581: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7774 +//line sql.y:7782 { yyVAL.str = yyDollar[1].str } - case 1581: + case 1582: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7778 +//line sql.y:7786 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } - case 1582: + case 1583: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7784 +//line sql.y:7792 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } - case 1583: + case 1584: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:7788 +//line sql.y:7796 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } - case 1584: + case 1585: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7792 +//line sql.y:7800 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } - case 1585: + case 1586: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7797 +//line sql.y:7805 { yyVAL.str = "" } - case 1586: + case 1587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7801 +//line sql.y:7809 { yyVAL.str = " optionally" } - case 1587: + case 1588: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Insert -//line sql.y:7814 +//line sql.y:7822 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion(), RowAlias: yyDollar[3].rowAliasUnion()} } yyVAL.union = yyLOCAL - case 1588: + case 1589: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:7818 +//line sql.y:7826 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1589: + case 1590: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *Insert -//line sql.y:7822 +//line sql.y:7830 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion(), RowAlias: yyDollar[6].rowAliasUnion()} } yyVAL.union = yyLOCAL - case 1590: + case 1591: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:7826 +//line sql.y:7834 { yyLOCAL = &Insert{Columns: []IdentifierCI{}, Rows: yyDollar[4].valuesUnion(), RowAlias: yyDollar[5].rowAliasUnion()} } yyVAL.union = yyLOCAL - case 1591: + case 1592: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:7830 +//line sql.y:7838 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } yyVAL.union = yyLOCAL - case 1592: + case 1593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:7836 +//line sql.y:7844 { yyLOCAL = Columns{yyDollar[1].identifierCI} } yyVAL.union = yyLOCAL - case 1593: + case 1594: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:7840 +//line sql.y:7848 { yyLOCAL = Columns{yyDollar[3].identifierCI} } yyVAL.union = yyLOCAL - case 1594: + case 1595: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7844 +//line sql.y:7852 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].identifierCI) } - case 1595: + case 1596: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:7848 +//line sql.y:7856 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].identifierCI) } - case 1596: + case 1597: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:7853 +//line sql.y:7861 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1597: + case 1598: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:7857 +//line sql.y:7865 { yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS} } yyVAL.union = yyLOCAL - case 1598: + case 1599: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *RowAlias -//line sql.y:7861 +//line sql.y:7869 { yyLOCAL = &RowAlias{TableName: yyDollar[2].identifierCS, Columns: yyDollar[4].columnsUnion()} } yyVAL.union = yyLOCAL - case 1599: + case 1600: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7866 +//line sql.y:7874 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1600: + case 1601: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7870 +//line sql.y:7878 { yyLOCAL = yyDollar[5].updateExprsUnion() } yyVAL.union = yyLOCAL - case 1601: + case 1602: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:7876 +//line sql.y:7884 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL - case 1602: + case 1603: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7880 +//line sql.y:7888 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) } - case 1603: + case 1604: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7886 +//line sql.y:7894 { yyLOCAL = yyDollar[1].valTupleUnion() } yyVAL.union = yyLOCAL - case 1604: + case 1605: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7890 +//line sql.y:7898 { yyLOCAL = ValTuple{} } yyVAL.union = yyLOCAL - case 1605: + case 1606: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7896 +//line sql.y:7904 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } yyVAL.union = yyLOCAL - case 1606: + case 1607: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL ValTuple -//line sql.y:7900 +//line sql.y:7908 { yyLOCAL = ValTuple(yyDollar[3].exprsUnion()) } yyVAL.union = yyLOCAL - case 1607: + case 1608: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7905 +//line sql.y:7913 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -22296,300 +22350,300 @@ yydefault: } } yyVAL.union = yyLOCAL - case 1608: + case 1609: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:7915 +//line sql.y:7923 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL - case 1609: + case 1610: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:7919 +//line sql.y:7927 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) } - case 1610: + case 1611: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:7925 +//line sql.y:7933 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } yyVAL.union = yyLOCAL - case 1612: + case 1613: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:7932 +//line sql.y:7940 { yyVAL.str = "charset" } - case 1615: + case 1616: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7942 +//line sql.y:7950 { yyLOCAL = NewStrLiteral(yyDollar[1].identifierCI.String()) } yyVAL.union = yyLOCAL - case 1616: + case 1617: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7946 +//line sql.y:7954 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } yyVAL.union = yyLOCAL - case 1617: + case 1618: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:7950 +//line sql.y:7958 { yyLOCAL = &Default{} } yyVAL.union = yyLOCAL - case 1620: + case 1621: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7959 +//line sql.y:7967 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1621: + case 1622: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:7961 +//line sql.y:7969 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1622: + case 1623: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7964 +//line sql.y:7972 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1623: + case 1624: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:7966 +//line sql.y:7974 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1624: + case 1625: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:7969 +//line sql.y:7977 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1625: + case 1626: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:7971 +//line sql.y:7979 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1626: + case 1627: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:7974 +//line sql.y:7982 { yyLOCAL = false } yyVAL.union = yyLOCAL - case 1627: + case 1628: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:7976 +//line sql.y:7984 { yyLOCAL = true } yyVAL.union = yyLOCAL - case 1628: + case 1629: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:7979 +//line sql.y:7987 { yyVAL.empty = struct{}{} } - case 1629: + case 1630: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7981 +//line sql.y:7989 { yyVAL.empty = struct{}{} } - case 1630: + case 1631: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:7983 +//line sql.y:7991 { yyVAL.empty = struct{}{} } - case 1631: + case 1632: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:7987 +//line sql.y:7995 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } yyVAL.union = yyLOCAL - case 1632: + case 1633: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:7992 +//line sql.y:8000 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1633: + case 1634: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:7996 +//line sql.y:8004 { yyLOCAL = yyDollar[1].exprsUnion() } yyVAL.union = yyLOCAL - case 1634: + case 1635: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:8001 +//line sql.y:8009 { yyLOCAL = nil } yyVAL.union = yyLOCAL - case 1635: + case 1636: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:8003 +//line sql.y:8011 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } yyVAL.union = yyLOCAL - case 1636: + case 1637: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:8007 +//line sql.y:8015 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].identifierCI.String())} } yyVAL.union = yyLOCAL - case 1637: + case 1638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8013 +//line sql.y:8021 { yyVAL.identifierCI = yyDollar[1].identifierCI } - case 1638: + case 1639: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8017 +//line sql.y:8025 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } - case 1640: + case 1641: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8024 +//line sql.y:8032 { yyVAL.identifierCI = NewIdentifierCI(string(yyDollar[1].str)) } - case 1641: + case 1642: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8030 +//line sql.y:8038 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1642: + case 1643: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8034 +//line sql.y:8042 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1643: + case 1644: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:8040 +//line sql.y:8048 { yyVAL.identifierCS = NewIdentifierCS("") } - case 1644: + case 1645: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8044 +//line sql.y:8052 { yyVAL.identifierCS = yyDollar[1].identifierCS } - case 1646: + case 1647: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8051 +//line sql.y:8059 { yyVAL.identifierCS = NewIdentifierCS(string(yyDollar[1].str)) } - case 1647: + case 1648: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:8057 +//line sql.y:8065 { yyLOCAL = &Kill{Type: yyDollar[2].killTypeUnion(), ProcesslistID: convertStringToUInt64(yyDollar[3].str)} } yyVAL.union = yyLOCAL - case 1648: + case 1649: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL KillType -//line sql.y:8063 +//line sql.y:8071 { yyLOCAL = ConnectionType } yyVAL.union = yyLOCAL - case 1649: + case 1650: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:8067 +//line sql.y:8075 { yyLOCAL = ConnectionType } yyVAL.union = yyLOCAL - case 1650: + case 1651: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL KillType -//line sql.y:8071 +//line sql.y:8079 { yyLOCAL = QueryType } yyVAL.union = yyLOCAL - case 2281: + case 2283: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8730 +//line sql.y:8739 { } - case 2282: + case 2284: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8735 +//line sql.y:8744 { } - case 2283: + case 2285: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:8739 +//line sql.y:8748 { skipToEnd(yylex) } - case 2284: + case 2286: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:8744 +//line sql.y:8753 { skipToEnd(yylex) } - case 2285: + case 2287: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8748 +//line sql.y:8757 { skipToEnd(yylex) } - case 2286: + case 2288: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:8752 +//line sql.y:8761 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 18db4d2eb08..bf1a793e7e8 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -329,7 +329,7 @@ func markBindVariable(yylex yyLexer, bvar string) { %token SEQUENCE MERGE TEMPORARY TEMPTABLE INVOKER SECURITY FIRST AFTER LAST // Migration tokens -%token VITESS_MIGRATION CANCEL RETRY LAUNCH COMPLETE CLEANUP THROTTLE UNTHROTTLE FORCE_CUTOVER EXPIRE RATIO +%token VITESS_MIGRATION CANCEL RETRY LAUNCH COMPLETE CLEANUP THROTTLE UNTHROTTLE FORCE_CUTOVER CUTOVER_THRESHOLD EXPIRE RATIO // Throttler tokens %token VITESS_THROTTLER @@ -3407,6 +3407,14 @@ alter_statement: Type: ForceCutOverAllMigrationType, } } +| ALTER comment_opt VITESS_MIGRATION STRING CUTOVER_THRESHOLD STRING + { + $$ = &AlterMigration{ + Type: SetCutOverThresholdMigrationType, + UUID: string($4), + Threshold: $6, + } + } partitions_options_opt: { @@ -8301,6 +8309,7 @@ non_reserved_keyword: | COUNT %prec FUNCTION_CALL_NON_KEYWORD | CSV | CURRENT +| CUTOVER_THRESHOLD | DATA | DATE %prec STRING_TYPE_PREFIX_NON_KEYWORD | DATE_ADD %prec FUNCTION_CALL_NON_KEYWORD diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go index 555cadd53ea..002cd1fb6d0 100644 --- a/go/vt/vttablet/onlineddl/executor.go +++ b/go/vt/vttablet/onlineddl/executor.go @@ -94,13 +94,18 @@ var ( ptOSCBinaryPath = "/usr/bin/pt-online-schema-change" migrationCheckInterval = 1 * time.Minute retainOnlineDDLTables = 24 * time.Hour - defaultCutOverThreshold = 10 * time.Second maxConcurrentOnlineDDLs = 256 migrationNextCheckIntervals = []time.Duration{1 * time.Second, 5 * time.Second, 10 * time.Second, 20 * time.Second} cutoverIntervals = []time.Duration{0, 1 * time.Minute, 5 * time.Minute, 10 * time.Minute, 30 * time.Minute} ) +const ( + defaultCutOverThreshold = 10 * time.Second + minCutOverThreshold = 5 * time.Second + maxCutOverThreshold = 30 * time.Second +) + func init() { servenv.OnParseFor("vtcombo", registerOnlineDDLFlags) servenv.OnParseFor("vttablet", registerOnlineDDLFlags) @@ -199,13 +204,19 @@ func newGCTableRetainTime() time.Time { return time.Now().UTC().Add(retainOnlineDDLTables) } -// getMigrationCutOverThreshold returns the cut-over threshold for the given migration. The migration's -// DDL Strategy may explicitly set the threshold; otherwise, we return the default cut-over threshold. -func getMigrationCutOverThreshold(onlineDDL *schema.OnlineDDL) time.Duration { - if threshold, _ := onlineDDL.StrategySetting().CutOverThreshold(); threshold != 0 { - return threshold +// safeMigrationCutOverThreshold receives a desired threshold, and returns a cut-over threshold that +// is reasonable to use +func safeMigrationCutOverThreshold(threshold time.Duration) (time.Duration, error) { + switch { + case threshold == 0: + return defaultCutOverThreshold, nil + case threshold < minCutOverThreshold: + return defaultCutOverThreshold, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cut-over min value is %v", minCutOverThreshold) + case threshold > maxCutOverThreshold: + return defaultCutOverThreshold, vterrors.Errorf(vtrpcpb.Code_FAILED_PRECONDITION, "cut-over max value is %v", maxCutOverThreshold) + default: + return threshold, nil } - return defaultCutOverThreshold } // NewExecutor creates a new gh-ost executor. @@ -890,8 +901,6 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh var sentryTableName string - migrationCutOverThreshold := getMigrationCutOverThreshold(onlineDDL) - waitForPos := func(s *VReplStream, pos replication.Position, timeout time.Duration) error { ctx, cancel := context.WithTimeout(ctx, timeout) defer cancel() @@ -951,8 +960,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh } defer preparationsConn.Recycle() // Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation. - // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated. - preparationConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, preparationsConn.Conn, 3*migrationCutOverThreshold) + // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated. + preparationConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, preparationsConn.Conn, 3*onlineDDL.CutOverThreshold) if err != nil { return vterrors.Wrap(err, "failed setting lock_wait_timeout on locking connection") } @@ -989,7 +998,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh // impacts query serving so we wait for a multiple of the cutover threshold here, with // that variable primarily serving to limit the max time we later spend waiting for // a position again AFTER we've taken the locks and table access is blocked. - if err := waitForPos(s, postSentryPos, migrationCutOverThreshold*3); err != nil { + if err := waitForPos(s, postSentryPos, onlineDDL.CutOverThreshold*3); err != nil { return vterrors.Wrapf(err, "failed waiting for pos after sentry creation") } e.updateMigrationStage(ctx, onlineDDL.UUID, "post-sentry pos reached") @@ -1001,8 +1010,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh } defer lockConn.Recycle() // Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation. - // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated. - lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*migrationCutOverThreshold) + // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated. + lockConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, lockConn.Conn, 5*onlineDDL.CutOverThreshold) if err != nil { return vterrors.Wrapf(err, "failed setting lock_wait_timeout on locking connection") } @@ -1016,8 +1025,8 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh return vterrors.Wrapf(err, "failed getting rename connection") } // Set large enough `@@lock_wait_timeout` so that it does not interfere with the cut-over operation. - // The code will ensure everything that needs to be terminated by `migrationCutOverThreshold` will be terminated. - renameConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, renameConn.Conn, 5*migrationCutOverThreshold*4) + // The code will ensure everything that needs to be terminated by `onlineDDL.CutOverThreshold` will be terminated. + renameConnRestoreLockWaitTimeout, err := e.initConnectionLockWaitTimeout(ctx, renameConn.Conn, 5*onlineDDL.CutOverThreshold*4) if err != nil { return vterrors.Wrapf(err, "failed setting lock_wait_timeout on rename connection") } @@ -1052,7 +1061,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh // This function waits until it finds the RENAME TABLE... query running in MySQL's PROCESSLIST, or until timeout // The function assumes that one of the renamed tables is locked, thus causing the RENAME to block. If nothing // is locked, then the RENAME will be near-instantaneous and it's unlikely that the function will find it. - renameWaitCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold) + renameWaitCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold) defer cancel() for { @@ -1081,7 +1090,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh // Preparation is complete. We proceed to cut-over. toggleBuffering := func(bufferQueries bool) error { log.Infof("toggling buffering: %t in migration %v", bufferQueries, onlineDDL.UUID) - timeout := migrationCutOverThreshold + qrBufferExtraTimeout + timeout := onlineDDL.CutOverThreshold + qrBufferExtraTimeout e.toggleBufferTableFunc(bufferingCtx, onlineDDL.Table, timeout, bufferQueries) if !bufferQueries { @@ -1147,7 +1156,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh // real production e.updateMigrationStage(ctx, onlineDDL.UUID, "locking tables") - lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold) + lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold) defer cancel() lockTableQuery := sqlparser.BuildParsedQuery(sqlLockTwoTablesWrite, sentryTableName, onlineDDL.Table) if _, err := lockConn.Conn.Exec(lockCtx, lockTableQuery.Query, 1, false); err != nil { @@ -1187,7 +1196,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh } e.updateMigrationStage(ctx, onlineDDL.UUID, "waiting for post-lock pos: %v", replication.EncodePosition(postWritesPos)) - if err := waitForPos(s, postWritesPos, migrationCutOverThreshold); err != nil { + if err := waitForPos(s, postWritesPos, onlineDDL.CutOverThreshold); err != nil { e.updateMigrationStage(ctx, onlineDDL.UUID, "timeout while waiting for post-lock pos: %v", err) return vterrors.Wrapf(err, "failed waiting for pos after locking") } @@ -1220,14 +1229,14 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh { dropTableQuery := sqlparser.BuildParsedQuery(sqlDropTable, sentryTableName) - lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold) + lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold) defer cancel() if _, err := lockConn.Conn.Exec(lockCtx, dropTableQuery.Query, 1, false); err != nil { return vterrors.Wrapf(err, "failed dropping sentry table") } } { - lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold) + lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold) defer cancel() e.updateMigrationStage(ctx, onlineDDL.UUID, "unlocking tables") if _, err := lockConn.Conn.Exec(lockCtx, sqlUnlockTables, 1, false); err != nil { @@ -1235,7 +1244,7 @@ func (e *Executor) cutOverVReplMigration(ctx context.Context, s *VReplStream, sh } } { - lockCtx, cancel := context.WithTimeout(ctx, migrationCutOverThreshold) + lockCtx, cancel := context.WithTimeout(ctx, onlineDDL.CutOverThreshold) defer cancel() e.updateMigrationStage(lockCtx, onlineDDL.UUID, "waiting for RENAME to complete") if err := <-renameCompleteChan; err != nil { @@ -2034,7 +2043,9 @@ func (e *Executor) readMigration(ctx context.Context, uuid string) (onlineDDL *s WasReadyToComplete: row.AsInt64("was_ready_to_complete", 0), TabletAlias: row["tablet"].ToString(), MigrationContext: row["migration_context"].ToString(), + CutOverThreshold: time.Second * time.Duration(row.AsInt64("cutover_threshold_seconds", 0)), } + onlineDDL.CutOverThreshold, _ = safeMigrationCutOverThreshold(onlineDDL.CutOverThreshold) return onlineDDL, row, nil } @@ -3585,17 +3596,15 @@ func (e *Executor) isVReplMigrationReadyToCutOver(ctx context.Context, onlineDDL durationDiff := func(t1, t2 time.Time) time.Duration { return t1.Sub(t2).Abs() } - migrationCutOverThreshold := getMigrationCutOverThreshold(onlineDDL) - timeNow := time.Now() timeUpdated := time.Unix(s.timeUpdated, 0) - if durationDiff(timeNow, timeUpdated) > migrationCutOverThreshold { + if durationDiff(timeNow, timeUpdated) > onlineDDL.CutOverThreshold { return false, nil } // Let's look at transaction timestamp. This gets written by any ongoing // writes on the server (whether on this table or any other table) transactionTimestamp := time.Unix(s.transactionTimestamp, 0) - if durationDiff(timeNow, transactionTimestamp) > migrationCutOverThreshold { + if durationDiff(timeNow, transactionTimestamp) > onlineDDL.CutOverThreshold { return false, nil } } @@ -4747,6 +4756,42 @@ func (e *Executor) ForceCutOverPendingMigrations(ctx context.Context) (result *s return result, nil } +func (e *Executor) SetMigrationCutOverThreshold(ctx context.Context, uuid string, thresholdString string) (result *sqltypes.Result, err error) { + if atomic.LoadInt64(&e.isOpen) == 0 { + return nil, vterrors.New(vtrpcpb.Code_FAILED_PRECONDITION, schema.ErrOnlineDDLDisabled.Error()) + } + if !schema.IsOnlineDDLUUID(uuid) { + return nil, vterrors.Errorf(vtrpcpb.Code_UNKNOWN, "Not a valid migration ID in FORCE_CUTOVER: %s", uuid) + } + threshold, err := time.ParseDuration(thresholdString) + if err != nil { + return nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "invalid cut-over threshold value: %s. Try '5s' to '30s'", thresholdString) + } + + log.Infof("SetMigrationCutOverThreshold: request to set cut-over threshold to %v on migration %s", threshold, uuid) + e.migrationMutex.Lock() + defer e.migrationMutex.Unlock() + + threshold, err = safeMigrationCutOverThreshold(threshold) + if err != nil { + return nil, err + } + query, err := sqlparser.ParseAndBind(sqlUpdateCutOverThresholdSeconds, + sqltypes.Int64BindVariable(int64(threshold.Seconds())), + sqltypes.StringBindVariable(uuid), + ) + if err != nil { + return nil, err + } + rs, err := e.execQuery(ctx, query) + if err != nil { + return nil, err + } + e.triggerNextCheckInterval() + log.Infof("SetMigrationCutOverThreshold: migration %s cut-over threshold was set to", uuid, threshold) + return rs, nil +} + // CompleteMigration clears the postpone_completion flag for a given migration, assuming it was set in the first place func (e *Executor) CompleteMigration(ctx context.Context, uuid string) (result *sqltypes.Result, err error) { if atomic.LoadInt64(&e.isOpen) == 0 { @@ -5032,7 +5077,14 @@ func (e *Executor) SubmitMigration( // Explicit retention indicated by `--retain-artifact` DDL strategy flag for this migration. Override! retainArtifactsSeconds = int64((retainArtifacts).Seconds()) } - + cutoverThreshold, err := onlineDDL.StrategySetting().CutOverThreshold() + if err != nil { + return nil, vterrors.Wrapf(err, "parsing cut-over threshold in migration %v", onlineDDL.UUID) + } + cutoverThreshold, err = safeMigrationCutOverThreshold(cutoverThreshold) + if err != nil { + return nil, vterrors.Wrapf(err, "validating cut-over threshold in migration %v", onlineDDL.UUID) + } _, allowConcurrentMigration := e.allowConcurrentMigration(onlineDDL) submitQuery, err := sqlparser.ParseAndBind(sqlInsertMigration, sqltypes.StringBindVariable(onlineDDL.UUID), @@ -5048,6 +5100,7 @@ func (e *Executor) SubmitMigration( sqltypes.StringBindVariable(string(schema.OnlineDDLStatusQueued)), sqltypes.StringBindVariable(e.TabletAliasString()), sqltypes.Int64BindVariable(retainArtifactsSeconds), + sqltypes.Int64BindVariable(int64(cutoverThreshold.Seconds())), sqltypes.BoolBindVariable(onlineDDL.StrategySetting().IsPostponeLaunch()), sqltypes.BoolBindVariable(onlineDDL.StrategySetting().IsPostponeCompletion()), sqltypes.BoolBindVariable(allowConcurrentMigration), diff --git a/go/vt/vttablet/onlineddl/executor_test.go b/go/vt/vttablet/onlineddl/executor_test.go index 2533f3a4b48..105da7fc1e3 100644 --- a/go/vt/vttablet/onlineddl/executor_test.go +++ b/go/vt/vttablet/onlineddl/executor_test.go @@ -25,6 +25,7 @@ import ( "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestShouldCutOverAccordingToBackoff(t *testing.T) { @@ -164,3 +165,59 @@ func TestShouldCutOverAccordingToBackoff(t *testing.T) { }) } } + +func TestSafeMigrationCutOverThreshold(t *testing.T) { + require.NotZero(t, defaultCutOverThreshold) + require.GreaterOrEqual(t, defaultCutOverThreshold, minCutOverThreshold) + require.LessOrEqual(t, defaultCutOverThreshold, maxCutOverThreshold) + + tcases := []struct { + threshold time.Duration + expect time.Duration + isErr bool + }{ + { + threshold: 0, + expect: defaultCutOverThreshold, + }, + { + threshold: 2 * time.Second, + expect: defaultCutOverThreshold, + isErr: true, + }, + { + threshold: 75 * time.Second, + expect: defaultCutOverThreshold, + isErr: true, + }, + { + threshold: defaultCutOverThreshold, + expect: defaultCutOverThreshold, + }, + { + threshold: 5 * time.Second, + expect: 5 * time.Second, + }, + { + threshold: 15 * time.Second, + expect: 15 * time.Second, + }, + { + threshold: 25 * time.Second, + expect: 25 * time.Second, + }, + } + for _, tcase := range tcases { + t.Run(tcase.threshold.String(), func(t *testing.T) { + threshold, err := safeMigrationCutOverThreshold(tcase.threshold) + if tcase.isErr { + assert.Error(t, err) + require.Equal(t, tcase.expect, defaultCutOverThreshold) + // And keep testing, because we then also expect the threshold to be the default + } else { + assert.NoError(t, err) + } + assert.Equal(t, tcase.expect, threshold) + }) + } +} diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go index 1b120dfa58c..bc3fa4f2bc9 100644 --- a/go/vt/vttablet/onlineddl/schema.go +++ b/go/vt/vttablet/onlineddl/schema.go @@ -32,13 +32,14 @@ const ( migration_status, tablet, retain_artifacts_seconds, + cutover_threshold_seconds, postpone_launch, postpone_completion, allow_concurrent, reverted_uuid, is_view ) VALUES ( - %a, %a, %a, %a, %a, %a, %a, %a, %a, NOW(6), %a, %a, %a, %a, %a, %a, %a, %a, %a + %a, %a, %a, %a, %a, %a, %a, %a, %a, NOW(6), %a, %a, %a, %a, %a, %a, %a, %a, %a, %a )` sqlSelectQueuedMigrations = `SELECT @@ -181,6 +182,11 @@ const ( WHERE migration_uuid=%a ` + sqlUpdateCutOverThresholdSeconds = `UPDATE _vt.schema_migrations + SET cutover_threshold_seconds=%a + WHERE + migration_uuid=%a + ` sqlUpdateLaunchMigration = `UPDATE _vt.schema_migrations SET postpone_launch=0 WHERE @@ -429,6 +435,7 @@ const ( removed_unique_keys, migration_context, retain_artifacts_seconds, + cutover_threshold_seconds, is_view, ready_to_complete, ready_to_complete_timestamp is not null as was_ready_to_complete, diff --git a/go/vt/vttablet/tabletserver/query_executor.go b/go/vt/vttablet/tabletserver/query_executor.go index abf296c0583..519b60b79d6 100644 --- a/go/vt/vttablet/tabletserver/query_executor.go +++ b/go/vt/vttablet/tabletserver/query_executor.go @@ -991,6 +991,8 @@ func (qre *QueryExecutor) execAlterMigration() (*sqltypes.Result, error) { return qre.tsv.onlineDDLExecutor.ForceCutOverMigration(qre.ctx, alterMigration.UUID) case sqlparser.ForceCutOverAllMigrationType: return qre.tsv.onlineDDLExecutor.ForceCutOverPendingMigrations(qre.ctx) + case sqlparser.SetCutOverThresholdMigrationType: + return qre.tsv.onlineDDLExecutor.SetMigrationCutOverThreshold(qre.ctx, alterMigration.UUID, alterMigration.Threshold) } return nil, vterrors.New(vtrpcpb.Code_UNIMPLEMENTED, "ALTER VITESS_MIGRATION not implemented") } From 9094b55b2a5889271f86b5a4bf51340092b171c6 Mon Sep 17 00:00:00 2001 From: Dirkjan Bussink Date: Wed, 20 Nov 2024 16:42:02 +0100 Subject: [PATCH 12/22] Remove unused code for old START_GTID logic (#17265) Signed-off-by: Dirkjan Bussink --- go/vt/vttablet/tabletserver/tx_pool.go | 15 ++---------- go/vt/vttablet/tabletserver/tx_pool_test.go | 4 ++-- .../tabletserver/vstreamer/snapshot_conn.go | 23 ------------------- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/go/vt/vttablet/tabletserver/tx_pool.go b/go/vt/vttablet/tabletserver/tx_pool.go index ca8a0ea34b2..302a3d41050 100644 --- a/go/vt/vttablet/tabletserver/tx_pool.go +++ b/go/vt/vttablet/tabletserver/tx_pool.go @@ -40,9 +40,8 @@ import ( ) const ( - txLogInterval = 1 * time.Minute - beginWithCSRO = "start transaction with consistent snapshot, read only" - trackGtidQuery = "set session session_track_gtids = START_GTID" + txLogInterval = 1 * time.Minute + beginWithCSRO = "start transaction with consistent snapshot, read only" ) var txIsolations = map[querypb.ExecuteOptions_TransactionIsolation]string{ @@ -394,16 +393,6 @@ func createStartTxStmt(options *querypb.ExecuteOptions, readOnly bool) (string, } func handleConsistentSnapshotCase(ctx context.Context, conn *StatefulConnection) (beginSQL string, sessionStateChanges string, err error) { - _, err = conn.execWithRetry(ctx, trackGtidQuery, 1, false) - // We allow this to fail since this is a custom MySQL extension, but we return - // then if this query was executed or not. - // - // Callers also can know because the sessionStateChanges will be empty for a snapshot - // transaction and get GTID information in another (less efficient) way. - if err == nil { - beginSQL = trackGtidQuery + "; " - } - isolationLevel := txIsolations[querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY] execSQL, err := setIsolationLevel(ctx, conn, isolationLevel) diff --git a/go/vt/vttablet/tabletserver/tx_pool_test.go b/go/vt/vttablet/tabletserver/tx_pool_test.go index c03cac92878..22810d4c422 100644 --- a/go/vt/vttablet/tabletserver/tx_pool_test.go +++ b/go/vt/vttablet/tabletserver/tx_pool_test.go @@ -701,11 +701,11 @@ func TestTxPoolBeginStatements(t *testing.T) { expBeginSQL: "set transaction isolation level serializable; start transaction read only", }, { txIsolationLevel: querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY, - expBeginSQL: "set session session_track_gtids = START_GTID; set transaction isolation level repeatable read; start transaction with consistent snapshot, read only", + expBeginSQL: "set transaction isolation level repeatable read; start transaction with consistent snapshot, read only", }, { txIsolationLevel: querypb.ExecuteOptions_CONSISTENT_SNAPSHOT_READ_ONLY, readOnly: true, - expBeginSQL: "set session session_track_gtids = START_GTID; set transaction isolation level repeatable read; start transaction with consistent snapshot, read only", + expBeginSQL: "set transaction isolation level repeatable read; start transaction with consistent snapshot, read only", }, { txIsolationLevel: querypb.ExecuteOptions_AUTOCOMMIT, expBeginSQL: "", diff --git a/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go b/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go index ec326cc4159..ee141ce9859 100644 --- a/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go +++ b/go/vt/vttablet/tabletserver/vstreamer/snapshot_conn.go @@ -132,29 +132,6 @@ func (conn *snapshotConn) startSnapshot(ctx context.Context, table string) (gtid return replication.EncodePosition(mpos), nil } -// startSnapshotWithConsistentGTID performs the snapshotting without locking tables. This assumes -// session_track_gtids = START_GTID, which is a contribution to MySQL and is not in vanilla MySQL at the -// time of this writing. -func (conn *snapshotConn) startSnapshotWithConsistentGTID(ctx context.Context) (gtid string, err error) { - if _, err := conn.ExecuteFetch("set transaction isolation level repeatable read", 1, false); err != nil { - return "", err - } - result, err := conn.ExecuteFetch("start transaction with consistent snapshot, read only", 1, false) - if err != nil { - return "", err - } - // The "session_track_gtids = START_GTID" patch is only applicable to MySQL56 GTID, which is - // why we hardcode the position as mysql.Mysql56FlavorID - mpos, err := replication.ParsePosition(replication.Mysql56FlavorID, result.SessionStateChanges) - if err != nil { - return "", err - } - if _, err := conn.ExecuteFetch("set @@session.time_zone = '+00:00'", 1, false); err != nil { - return "", err - } - return replication.EncodePosition(mpos), nil -} - // Close rolls back any open transactions and closes the connection. func (conn *snapshotConn) Close() { _, _ = conn.ExecuteFetch("rollback", 1, false) From aa6f2fbd72a36e05a49ec266f06c8751087109a3 Mon Sep 17 00:00:00 2001 From: "Eduardo J. Ortega U." <5791035+ejortegau@users.noreply.github.com> Date: Thu, 21 Nov 2024 05:56:21 +0100 Subject: [PATCH 13/22] PRS and ERS don't promote replicas taking backups (#16997) Signed-off-by: Eduardo J. Ortega U <5791035+ejortegau@users.noreply.github.com> --- changelog/22.0/22.0.0/changelog.md | 5 + changelog/22.0/22.0.0/summary.md | 13 + changelog/22.0/README.md | 1 + .../replicationdata/replicationdata.pb.go | 225 +-- .../replicationdata_vtproto.pb.go | 70 + .../tabletmanagerdata/tabletmanagerdata.pb.go | 1610 +++++++++-------- .../tabletmanagerdata_vtproto.pb.go | 68 + .../testutil/test_tmclient.go | 5 + .../reparentutil/emergency_reparenter.go | 24 +- .../reparentutil/emergency_reparenter_test.go | 111 +- .../reparentutil/reparent_sorter_test.go | 1 - go/vt/vtctl/reparentutil/replication.go | 17 +- go/vt/vtctl/reparentutil/util.go | 29 +- go/vt/vtctl/reparentutil/util_test.go | 208 ++- go/vt/vttablet/grpctmserver/server.go | 5 +- go/vt/vttablet/tabletmanager/rpc_agent.go | 2 + go/vt/vttablet/tabletmanager/rpc_backup.go | 4 + go/vt/vttablet/tmrpctest/test_tm_rpc.go | 4 + proto/replicationdata.proto | 2 + proto/tabletmanagerdata.proto | 2 + web/vtadmin/src/proto/vtadmin.d.ts | 24 + web/vtadmin/src/proto/vtadmin.js | 98 +- 22 files changed, 1558 insertions(+), 970 deletions(-) create mode 100644 changelog/22.0/22.0.0/changelog.md diff --git a/changelog/22.0/22.0.0/changelog.md b/changelog/22.0/22.0.0/changelog.md new file mode 100644 index 00000000000..03f2f714b7f --- /dev/null +++ b/changelog/22.0/22.0.0/changelog.md @@ -0,0 +1,5 @@ +# Changelog of Vitess v22.0.0 + +### Enhancement +#### Cluster management + * Prefer not promoting replicas that are taking backups [#16997](https://github.com/vitessio/vitess/pull/16997) diff --git a/changelog/22.0/22.0.0/summary.md b/changelog/22.0/22.0.0/summary.md index 6846913bed5..7c7257bfae3 100644 --- a/changelog/22.0/22.0.0/summary.md +++ b/changelog/22.0/22.0.0/summary.md @@ -4,6 +4,7 @@ - **[Major Changes](#major-changes)** - **[RPC Changes](#rpc-changes)** + - **[Prefer not promoting a replica that is currently taking a backup](#reparents-prefer-not-backing-up)** ## Major Changes @@ -13,3 +14,15 @@ These are the RPC changes made in this release - 1. `GetTransactionInfo` RPC has been added to both `VtctldServer`, and `TabletManagerClient` interface. These RPCs are used to fecilitate the users in reading the state of an unresolved distributed transaction. This can be useful in debugging what went wrong and how to fix the problem. + +### Prefer not promoting a replica that is currently taking a backup + +Emergency reparents now prefer not promoting replicas that are currently taking backups with a backup engine other than +`builtin`. Note that if there's only one suitable replica to promote, and it is taking a backup, it will still be +promoted. + +For planned reparents, hosts taking backups with a backup engine other than `builtin` are filtered out of the list of +valid candidates. This means they will never get promoted - not even if there's no other candidates. + +Note that behavior for `builtin` backups remains unchanged: a replica that is currently taking a `builtin` backup will +never be promoted, neither by planned nor by emergency reparents. \ No newline at end of file diff --git a/changelog/22.0/README.md b/changelog/22.0/README.md index 0e790e5dc0b..755f7e29563 100644 --- a/changelog/22.0/README.md +++ b/changelog/22.0/README.md @@ -1,2 +1,3 @@ ## v22.0 * **[22.0.0](22.0.0)** + * [Changelog](22.0.0/changelog.md) diff --git a/go/vt/proto/replicationdata/replicationdata.pb.go b/go/vt/proto/replicationdata/replicationdata.pb.go index 4568ae2d437..ab307dba9fa 100644 --- a/go/vt/proto/replicationdata/replicationdata.pb.go +++ b/go/vt/proto/replicationdata/replicationdata.pb.go @@ -114,6 +114,7 @@ type Status struct { HasReplicationFilters bool `protobuf:"varint,22,opt,name=has_replication_filters,json=hasReplicationFilters,proto3" json:"has_replication_filters,omitempty"` SslAllowed bool `protobuf:"varint,23,opt,name=ssl_allowed,json=sslAllowed,proto3" json:"ssl_allowed,omitempty"` ReplicationLagUnknown bool `protobuf:"varint,24,opt,name=replication_lag_unknown,json=replicationLagUnknown,proto3" json:"replication_lag_unknown,omitempty"` + BackupRunning bool `protobuf:"varint,25,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"` } func (x *Status) Reset() { @@ -300,6 +301,13 @@ func (x *Status) GetReplicationLagUnknown() bool { return false } +func (x *Status) GetBackupRunning() bool { + if x != nil { + return x.BackupRunning + } + return false +} + // Configuration holds replication configuration information gathered from performance_schema and global variables. type Configuration struct { state protoimpl.MessageState @@ -363,8 +371,9 @@ type StopReplicationStatus struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Before *Status `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"` - After *Status `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"` + Before *Status `protobuf:"bytes,1,opt,name=before,proto3" json:"before,omitempty"` + After *Status `protobuf:"bytes,2,opt,name=after,proto3" json:"after,omitempty"` + BackupRunning bool `protobuf:"varint,3,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"` } func (x *StopReplicationStatus) Reset() { @@ -411,6 +420,13 @@ func (x *StopReplicationStatus) GetAfter() *Status { return nil } +func (x *StopReplicationStatus) GetBackupRunning() bool { + if x != nil { + return x.BackupRunning + } + return false +} + // PrimaryStatus is the replication status for a MySQL primary (returned by 'show binary log status'). type PrimaryStatus struct { state protoimpl.MessageState @@ -692,7 +708,7 @@ var File_replicationdata_proto protoreflect.FileDescriptor var file_replicationdata_proto_rawDesc = []byte{ 0x0a, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x22, 0x96, 0x07, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbd, 0x07, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, @@ -749,105 +765,110 @@ var file_replicationdata_proto_rawDesc = []byte{ 0x17, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x67, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, - 0x04, 0x22, 0x6e, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, - 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x65, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x22, 0x77, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, - 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x66, 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0xc8, 0x08, - 0x0a, 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69, - 0x64, 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x67, 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74, - 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, - 0x74, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, - 0x67, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, - 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f, - 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69, - 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, - 0x0a, 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, - 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, - 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, - 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, - 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, - 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20, - 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, - 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, - 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75, - 0x70, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x12, 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41, - 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f, - 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, - 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, + 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x02, + 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x6e, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x4e, 0x65, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f, + 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x62, 0x65, 0x66, + 0x6f, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x61, 0x66, 0x74, + 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x71, 0x0a, 0x0d, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x22, 0xc8, 0x08, 0x0a, + 0x0a, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x12, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x11, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x74, 0x69, 0x64, + 0x5f, 0x70, 0x75, 0x72, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, + 0x74, 0x69, 0x64, 0x50, 0x75, 0x72, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x74, 0x69, + 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x74, + 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, + 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x62, + 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x52, 0x6f, 0x77, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x5f, 0x62, 0x69, 0x6e, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, + 0x6c, 0x6f, 0x67, 0x42, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, + 0x13, 0x6c, 0x6f, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x6f, 0x67, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, + 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, 0x6d, + 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x18, + 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, + 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, + 0x6e, 0x63, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x39, 0x0a, 0x19, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x20, 0x73, + 0x65, 0x6d, 0x69, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, + 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x57, + 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x75, 0x70, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5b, 0x0a, 0x19, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x3b, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x12, + 0x0a, 0x0e, 0x49, 0x4f, 0x41, 0x4e, 0x44, 0x53, 0x51, 0x4c, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, + 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x4f, 0x4e, + 0x4c, 0x59, 0x10, 0x01, 0x42, 0x2e, 0x5a, 0x2c, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2e, 0x69, + 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go index b1b771d1561..2bf3cb7788c 100644 --- a/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go +++ b/go/vt/proto/replicationdata/replicationdata_vtproto.pb.go @@ -48,6 +48,7 @@ func (m *Status) CloneVT() *Status { r.HasReplicationFilters = m.HasReplicationFilters r.SslAllowed = m.SslAllowed r.ReplicationLagUnknown = m.ReplicationLagUnknown + r.BackupRunning = m.BackupRunning if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -84,6 +85,7 @@ func (m *StopReplicationStatus) CloneVT() *StopReplicationStatus { r := new(StopReplicationStatus) r.Before = m.Before.CloneVT() r.After = m.After.CloneVT() + r.BackupRunning = m.BackupRunning if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -182,6 +184,18 @@ func (m *Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.BackupRunning { + i-- + if m.BackupRunning { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc8 + } if m.ReplicationLagUnknown { i-- if m.ReplicationLagUnknown { @@ -432,6 +446,16 @@ func (m *StopReplicationStatus) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.BackupRunning { + i-- + if m.BackupRunning { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } if m.After != nil { size, err := m.After.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -817,6 +841,9 @@ func (m *Status) SizeVT() (n int) { if m.ReplicationLagUnknown { n += 3 } + if m.BackupRunning { + n += 3 + } n += len(m.unknownFields) return n } @@ -851,6 +878,9 @@ func (m *StopReplicationStatus) SizeVT() (n int) { l = m.After.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.BackupRunning { + n += 2 + } n += len(m.unknownFields) return n } @@ -1545,6 +1575,26 @@ func (m *Status) UnmarshalVT(dAtA []byte) error { } } m.ReplicationLagUnknown = bool(v != 0) + case 25: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BackupRunning = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -1749,6 +1799,26 @@ func (m *StopReplicationStatus) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BackupRunning = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go index 67eae2395ad..303a3a3c53b 100644 --- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go +++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata.pb.go @@ -3098,7 +3098,8 @@ type ReplicationStatusResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *replicationdata.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Status *replicationdata.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + BackupRunning bool `protobuf:"varint,2,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"` } func (x *ReplicationStatusResponse) Reset() { @@ -3138,6 +3139,13 @@ func (x *ReplicationStatusResponse) GetStatus() *replicationdata.Status { return nil } +func (x *ReplicationStatusResponse) GetBackupRunning() bool { + if x != nil { + return x.BackupRunning + } + return false +} + type PrimaryStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -5076,7 +5084,8 @@ type StopReplicationAndGetStatusResponse struct { unknownFields protoimpl.UnknownFields // Status represents the replication status call right before, and right after telling the replica to stop. - Status *replicationdata.StopReplicationStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Status *replicationdata.StopReplicationStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + BackupRunning bool `protobuf:"varint,3,opt,name=backup_running,json=backupRunning,proto3" json:"backup_running,omitempty"` } func (x *StopReplicationAndGetStatusResponse) Reset() { @@ -5116,6 +5125,13 @@ func (x *StopReplicationAndGetStatusResponse) GetStatus() *replicationdata.StopR return nil } +func (x *StopReplicationAndGetStatusResponse) GetBackupRunning() bool { + if x != nil { + return x.BackupRunning + } + return false +} + type PromoteReplicaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8452,242 +8468,351 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x4c, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x73, 0x74, 0x22, 0x73, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x50, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x4f, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x46, + 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x3c, 0x0a, 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, + 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17, + 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a, + 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, + 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, 0x0a, 0x1d, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x31, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f, + 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, + 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, + 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, + 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, + 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, + 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, + 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, + 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, + 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, + 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x50, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x17, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x16, 0x57, 0x61, - 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x19, 0x0a, 0x17, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53, - 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, - 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x22, 0x3c, 0x0a, 0x1e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, - 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, - 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x62, 0x0a, 0x21, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x41, 0x66, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x64, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x61, 0x64, 0x64, 0x72, 0x73, 0x22, 0x19, - 0x0a, 0x17, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x0a, 0x17, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0x46, 0x0a, 0x18, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x4b, - 0x0a, 0x1d, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, - 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x56, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x69, 0x74, 0x46, - 0x6f, 0x72, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, - 0x12, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, - 0x31, 0x0a, 0x13, 0x49, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0x0a, 0x1e, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, - 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, - 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x0c, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x21, 0x0a, - 0x1f, 0x50, 0x6f, 0x70, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x39, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4a, 0x6f, 0x75, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xba, 0x01, - 0x0a, 0x12, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x13, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x15, 0x0a, 0x13, 0x49, 0x6e, - 0x69, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x44, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, - 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, - 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, - 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, - 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, - 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, - 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, - 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73, - 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, - 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, - 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x6b, 0x0a, 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, - 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4a, 0x04, 0x08, 0x01, - 0x10, 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, - 0x0a, 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, - 0x61, 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, - 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, - 0xfe, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f, - 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, - 0x6f, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, - 0x22, 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, - 0x6f, 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, - 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, + 0x73, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x36, 0x0a, 0x18, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x1b, + 0x0a, 0x19, 0x55, 0x6e, 0x64, 0x6f, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x24, 0x0a, 0x22, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x12, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, + 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, + 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x69, 0x53, 0x79, 0x6e, + 0x63, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x22, 0x1e, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4b, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, + 0x1b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x57, 0x61, 0x73, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x22, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x58, 0x0a, 0x15, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x24, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x73, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x92, 0x01, 0x0a, + 0x23, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x6e, 0x64, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x01, 0x10, + 0x02, 0x22, 0x33, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x69, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x34, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe7, 0x01, 0x0a, + 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x50, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x70, 0x67, 0x72, 0x61, + 0x64, 0x65, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, + 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x53, 0x61, 0x66, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, + 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x22, 0x36, 0x0a, 0x0e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, 0x67, 0x75, 0x74, 0x69, + 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfe, + 0x01, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0b, 0x62, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0a, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, 0x50, 0x6f, 0x73, + 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x3e, 0x0a, 0x14, 0x72, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x54, 0x6f, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x73, 0x22, + 0x41, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x05, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x6f, + 0x67, 0x75, 0x74, 0x69, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0xee, 0x04, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3d, 0x0a, 0x0d, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x5f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x62, 0x69, + 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x70, + 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, + 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x0a, + 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0x50, + 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, 0x65, + 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x21, + 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, + 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, @@ -8698,580 +8823,475 @@ var file_tabletmanagerdata_proto_rawDesc = []byte{ 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, - 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x0f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x64, 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, - 0x70, 0x41, 0x66, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x50, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x60, 0x0a, 0x0d, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, - 0x7a, 0x65, 0x1a, 0x3f, 0x0a, 0x11, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, - 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x22, - 0x50, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x34, 0x0a, 0x20, 0x48, 0x61, 0x73, 0x56, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x61, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x68, 0x61, 0x73, 0x22, 0xe0, 0x02, 0x0a, 0x20, 0x52, - 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x64, 0x73, - 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, - 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x49, + 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, - 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0x76, 0x0a, - 0x21, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, - 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xe7, 0x0a, 0x0a, 0x20, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, - 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, - 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, - 0x49, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, - 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x6f, 0x72, + 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x62, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x77, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, + 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, 0x73, + 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, + 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, 0x6f, + 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, + 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, + 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, - 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x30, 0x0a, 0x14, 0x64, 0x65, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, - 0x72, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, - 0x65, 0x66, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4b, 0x65, 0x79, - 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x73, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, - 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x52, 0x65, 0x61, 0x64, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0xc1, 0x04, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x2a, 0x0a, 0x03, 0x62, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x69, 0x6e, 0x6c, - 0x6f, 0x67, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x03, 0x62, 0x6c, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x70, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6f, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, - 0x78, 0x5f, 0x74, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, - 0x54, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x11, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, - 0x0a, 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, - 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, - 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, - 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, - 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, - 0x0a, 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, - 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, - 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x77, 0x73, 0x43, 0x6f, 0x70, 0x69, 0x65, 0x64, 0x12, 0x33, + 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x12, 0x33, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, + 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x1a, 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x28, 0x0a, + 0x26, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, 0x22, 0xd7, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, 0x66, 0x66, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x72, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, + 0x66, 0x55, 0x75, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x12, + 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, 0x66, + 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, + 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, + 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, 0x6f, + 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, 0x72, + 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, 0x72, + 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, 0x69, + 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, + 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, + 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, 0x0a, + 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, 0x69, + 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, 0x63, + 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, 0x72, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, - 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x6a, 0x0a, 0x0d, 0x56, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x76, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x76, 0x64, 0x69, 0x66, 0x66, 0x55, 0x75, 0x69, 0x64, 0x22, 0x79, 0x0a, - 0x12, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x56, 0x44, 0x69, - 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x6f, 0x6e, 0x6c, 0x79, 0x50, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, - 0x65, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6d, 0x61, - 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x1b, 0x72, - 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x74, - 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x17, 0x72, 0x6f, 0x77, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x54, - 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x41, 0x74, 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x56, 0x44, - 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, - 0x65, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, - 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x6f, 0x77, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x6f, 0x77, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x70, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x50, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x74, 0x72, - 0x61, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x52, 0x6f, 0x77, 0x73, 0x54, 0x6f, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x65, 0x12, 0x2c, - 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, - 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x61, 0x75, - 0x74, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x56, 0x44, - 0x69, 0x66, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x70, 0x69, - 0x63, 0x6b, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x50, 0x69, 0x63, 0x6b, - 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x6f, 0x72, 0x65, - 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x4c, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x44, 0x69, - 0x66, 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, - 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, - 0x6f, 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, - 0x71, 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x4f, 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, - 0x6e, 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, - 0x42, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, - 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, - 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x61, 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, - 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, - 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, + 0x66, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xed, 0x04, + 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x6f, + 0x70, 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x71, + 0x0a, 0x1b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, + 0x6e, 0x44, 0x44, 0x4c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x05, 0x6f, 0x6e, + 0x44, 0x64, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, - 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, - 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, + 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x1a, 0x42, + 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x6e, 0x5f, 0x64, 0x64, 0x6c, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, 0x50, 0x0a, + 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0xd6, 0x02, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, + 0x6c, 0x6c, 0x57, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x0c, 0x73, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x56, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x6f, + 0x72, 0x6b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x18, 0x0a, - 0x16, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, - 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, - 0x5f, 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, - 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x65, 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, - 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, - 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, - 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, - 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, - 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, - 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, - 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, - 0x5f, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, - 0x73, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, - 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, - 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, - 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, - 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, - 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdd, 0x01, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x15, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x6f, 0x6b, 0x5f, + 0x69, 0x66, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6f, 0x6b, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x9f, 0x06, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, + 0x64, 0x12, 0x50, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, + 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x8b, 0x02, 0x0a, + 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x6c, 0x0a, 0x0c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, - 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, - 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, - 0x61, 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x11, 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, - 0x0b, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb6, 0x10, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, + 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x5f, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4f, 0x70, 0x65, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x3c, 0x0a, 0x1b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x41, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x12, 0x73, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x70, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, - 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, + 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x0e, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x12, 0x67, 0x0a, 0x0e, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, + 0x61, 0x70, 0x70, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, + 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x74, 0x68, + 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, 0x70, 0x73, 0x12, 0x74, 0x0a, 0x13, 0x61, + 0x70, 0x70, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, + 0x61, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x0b, + 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x80, 0x01, 0x0a, 0x16, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, - 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, - 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, - 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, - 0x6f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, - 0x70, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, - 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, - 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, - 0x74, 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x81, 0x01, 0x0a, 0x0c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x12, 0x34, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x79, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, + 0x69, 0x6d, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x79, 0x41, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x79, 0x1a, 0x7c, 0x0a, 0x12, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, - 0x74, 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0xaa, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, - 0x6c, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, - 0x61, 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, - 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, - 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, - 0x45, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x03, 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, - 0x48, 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, - 0x0e, 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, - 0x43, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, - 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, - 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x5c, 0x0a, 0x12, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, + 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x6f, 0x70, 0x6f, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x41, 0x70, + 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x44, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xad, 0x01, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x76, 0x74, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x1a, 0x76, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x41, 0x70, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x41, 0x70, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xaa, + 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x92, 0x01, 0x0a, 0x12, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x61, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x2a, 0x3e, 0x0a, 0x19, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x07, 0x0a, + 0x03, 0x41, 0x4e, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x4f, 0x52, 0x44, 0x45, + 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x03, + 0x2a, 0x83, 0x01, 0x0a, 0x1a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x48, 0x52, 0x45, 0x53, 0x48, + 0x4f, 0x4c, 0x44, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x41, 0x50, 0x50, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, + 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, + 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x42, 0x30, 0x5a, 0x2e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, + 0x2e, 0x69, 0x6f, 0x2f, 0x76, 0x69, 0x74, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x74, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x74, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go index 9f6b0df851b..5e4a664f0f3 100644 --- a/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go +++ b/go/vt/proto/tabletmanagerdata/tabletmanagerdata_vtproto.pb.go @@ -1190,6 +1190,7 @@ func (m *ReplicationStatusResponse) CloneVT() *ReplicationStatusResponse { } r := new(ReplicationStatusResponse) r.Status = m.Status.CloneVT() + r.BackupRunning = m.BackupRunning if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -1967,6 +1968,7 @@ func (m *StopReplicationAndGetStatusResponse) CloneVT() *StopReplicationAndGetSt } r := new(StopReplicationAndGetStatusResponse) r.Status = m.Status.CloneVT() + r.BackupRunning = m.BackupRunning if len(m.unknownFields) > 0 { r.unknownFields = make([]byte, len(m.unknownFields)) copy(r.unknownFields, m.unknownFields) @@ -5786,6 +5788,16 @@ func (m *ReplicationStatusResponse) MarshalToSizedBufferVT(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.BackupRunning { + i-- + if m.BackupRunning { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } if m.Status != nil { size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -7593,6 +7605,16 @@ func (m *StopReplicationAndGetStatusResponse) MarshalToSizedBufferVT(dAtA []byte i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.BackupRunning { + i-- + if m.BackupRunning { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } if m.Status != nil { size, err := m.Status.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -11516,6 +11538,9 @@ func (m *ReplicationStatusResponse) SizeVT() (n int) { l = m.Status.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.BackupRunning { + n += 2 + } n += len(m.unknownFields) return n } @@ -12111,6 +12136,9 @@ func (m *StopReplicationAndGetStatusResponse) SizeVT() (n int) { l = m.Status.SizeVT() n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) } + if m.BackupRunning { + n += 2 + } n += len(m.unknownFields) return n } @@ -19412,6 +19440,26 @@ func (m *ReplicationStatusResponse) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BackupRunning = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) @@ -22781,6 +22829,26 @@ func (m *StopReplicationAndGetStatusResponse) UnmarshalVT(dAtA []byte) error { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BackupRunning", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BackupRunning = bool(v != 0) default: iNdEx = preIndex skippy, err := protohelpers.Skip(dAtA[iNdEx:]) diff --git a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go index b9c83c3658d..768fae5bff4 100644 --- a/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go +++ b/go/vt/vtctl/grpcvtctldserver/testutil/test_tmclient.go @@ -188,6 +188,8 @@ type TabletManagerClient struct { EventJitter time.Duration ErrorAfter time.Duration } + // Backing Up - keyed by tablet alias. + TabletsBackupState map[string]bool // keyed by tablet alias. ChangeTagsResult map[string]struct { Response *tabletmanagerdatapb.ChangeTagsResponse @@ -1080,6 +1082,9 @@ func (fake *TabletManagerClient) ReplicationStatus(ctx context.Context, tablet * } if result, ok := fake.ReplicationStatusResults[key]; ok { + if _, ok = fake.TabletsBackupState[key]; ok { + result.Position.BackupRunning = fake.TabletsBackupState[key] + } return result.Position, result.Error } diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter.go b/go/vt/vtctl/reparentutil/emergency_reparenter.go index ef30f48e8ac..70faf8958c7 100644 --- a/go/vt/vtctl/reparentutil/emergency_reparenter.go +++ b/go/vt/vtctl/reparentutil/emergency_reparenter.go @@ -258,7 +258,7 @@ func (erp *EmergencyReparenter) reparentShardLocked(ctx context.Context, ev *eve // 2. Remove the tablets with the Must_not promote rule // 3. Remove cross-cell tablets if PreventCrossCellPromotion is specified // Our final primary candidate MUST belong to this list of valid candidates - validCandidateTablets, err = erp.filterValidCandidates(validCandidateTablets, stoppedReplicationSnapshot.reachableTablets, prevPrimary, opts) + validCandidateTablets, err = erp.filterValidCandidates(validCandidateTablets, stoppedReplicationSnapshot.reachableTablets, stoppedReplicationSnapshot.tabletsBackupState, prevPrimary, opts) if err != nil { return err } @@ -737,9 +737,12 @@ func (erp *EmergencyReparenter) identifyPrimaryCandidate( return nil, vterrors.Errorf(vtrpc.Code_INTERNAL, "unreachable - did not find a valid primary candidate even though the valid candidate list was non-empty") } -// filterValidCandidates filters valid tablets, keeping only the ones which can successfully be promoted without any constraint failures and can make forward progress on being promoted -func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb.Tablet, tabletsReachable []*topodatapb.Tablet, prevPrimary *topodatapb.Tablet, opts EmergencyReparentOptions) ([]*topodatapb.Tablet, error) { +// filterValidCandidates filters valid tablets, keeping only the ones which can successfully be promoted without any +// constraint failures and can make forward progress on being promoted. It will filter out candidates taking backups +// if possible. +func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb.Tablet, tabletsReachable []*topodatapb.Tablet, tabletsBackupState map[string]bool, prevPrimary *topodatapb.Tablet, opts EmergencyReparentOptions) ([]*topodatapb.Tablet, error) { var restrictedValidTablets []*topodatapb.Tablet + var notPreferredValidTablets []*topodatapb.Tablet for _, tablet := range validTablets { tabletAliasStr := topoproto.TabletAliasString(tablet.Alias) // Remove tablets which have MustNot promote rule since they must never be promoted @@ -766,9 +769,20 @@ func (erp *EmergencyReparenter) filterValidCandidates(validTablets []*topodatapb } continue } - restrictedValidTablets = append(restrictedValidTablets, tablet) + // Put candidates that are running a backup in a separate list + backingUp, ok := tabletsBackupState[tabletAliasStr] + if ok && backingUp { + erp.logger.Infof("Setting %s in list of valid candidates taking a backup", tabletAliasStr) + notPreferredValidTablets = append(notPreferredValidTablets, tablet) + } else { + restrictedValidTablets = append(restrictedValidTablets, tablet) + } + } + if len(restrictedValidTablets) > 0 { + return restrictedValidTablets, nil } - return restrictedValidTablets, nil + + return notPreferredValidTablets, nil } // findErrantGTIDs tries to find errant GTIDs for the valid candidates and returns the updated list of valid candidates. diff --git a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go index ea6e768d036..3669c34dc11 100644 --- a/go/vt/vtctl/reparentutil/emergency_reparenter_test.go +++ b/go/vt/vtctl/reparentutil/emergency_reparenter_test.go @@ -4463,27 +4463,55 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) { } ) allTablets := []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, replicaCrossCellTablet, rdonlyCrossCellTablet} + noTabletsTakingBackup := map[string]bool{ + topoproto.TabletAliasString(primaryTablet.Alias): false, topoproto.TabletAliasString(replicaTablet.Alias): false, + topoproto.TabletAliasString(rdonlyTablet.Alias): false, topoproto.TabletAliasString(replicaCrossCellTablet.Alias): false, + topoproto.TabletAliasString(rdonlyCrossCellTablet.Alias): false, + } + replicaTakingBackup := map[string]bool{ + topoproto.TabletAliasString(primaryTablet.Alias): false, topoproto.TabletAliasString(replicaTablet.Alias): true, + topoproto.TabletAliasString(rdonlyTablet.Alias): false, topoproto.TabletAliasString(replicaCrossCellTablet.Alias): false, + topoproto.TabletAliasString(rdonlyCrossCellTablet.Alias): false, + } tests := []struct { - name string - durability string - validTablets []*topodatapb.Tablet - tabletsReachable []*topodatapb.Tablet - prevPrimary *topodatapb.Tablet - opts EmergencyReparentOptions - filteredTablets []*topodatapb.Tablet - errShouldContain string + name string + durability string + validTablets []*topodatapb.Tablet + tabletsReachable []*topodatapb.Tablet + tabletsTakingBackup map[string]bool + prevPrimary *topodatapb.Tablet + opts EmergencyReparentOptions + filteredTablets []*topodatapb.Tablet + errShouldContain string }{ { - name: "filter must not", - durability: "none", - validTablets: allTablets, - tabletsReachable: allTablets, - filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet, replicaCrossCellTablet}, + name: "filter must not", + durability: "none", + validTablets: allTablets, + tabletsReachable: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, + filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet, replicaCrossCellTablet}, }, { - name: "filter cross cell", - durability: "none", - validTablets: allTablets, - tabletsReachable: allTablets, + name: "host taking backup must not be on the list when there are other candidates", + durability: "none", + validTablets: allTablets, + tabletsReachable: []*topodatapb.Tablet{replicaTablet, replicaCrossCellTablet, rdonlyTablet, rdonlyCrossCellTablet}, + tabletsTakingBackup: replicaTakingBackup, + filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet}, + }, { + name: "host taking backup must be the only one on the list when there are no other candidates", + durability: "none", + validTablets: allTablets, + tabletsReachable: []*topodatapb.Tablet{replicaTablet, rdonlyTablet, rdonlyCrossCellTablet}, + tabletsTakingBackup: replicaTakingBackup, + filteredTablets: []*topodatapb.Tablet{replicaTablet}, + }, { + name: "filter cross cell", + durability: "none", + validTablets: allTablets, + tabletsReachable: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, + prevPrimary: &topodatapb.Tablet{ Alias: &topodatapb.TabletAlias{ Cell: "zone-1", @@ -4494,11 +4522,12 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) { }, filteredTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet}, }, { - name: "filter establish", - durability: "cross_cell", - validTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet}, - tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet}, - filteredTablets: nil, + name: "filter establish", + durability: "cross_cell", + validTablets: []*topodatapb.Tablet{primaryTablet, replicaTablet}, + tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet}, + tabletsTakingBackup: noTabletsTakingBackup, + filteredTablets: nil, }, { name: "filter mixed", durability: "cross_cell", @@ -4510,34 +4539,38 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) { opts: EmergencyReparentOptions{ PreventCrossCellPromotion: true, }, - validTablets: allTablets, - tabletsReachable: allTablets, - filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet}, + validTablets: allTablets, + tabletsReachable: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, + filteredTablets: []*topodatapb.Tablet{replicaCrossCellTablet}, }, { - name: "error - requested primary must not", - durability: "none", - validTablets: allTablets, - tabletsReachable: allTablets, + name: "error - requested primary must not", + durability: "none", + validTablets: allTablets, + tabletsReachable: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, opts: EmergencyReparentOptions{ NewPrimaryAlias: rdonlyTablet.Alias, }, errShouldContain: "proposed primary zone-1-0000000003 has a must not promotion rule", }, { - name: "error - requested primary not in same cell", - durability: "none", - validTablets: allTablets, - tabletsReachable: allTablets, - prevPrimary: primaryTablet, + name: "error - requested primary not in same cell", + durability: "none", + validTablets: allTablets, + tabletsReachable: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, + prevPrimary: primaryTablet, opts: EmergencyReparentOptions{ PreventCrossCellPromotion: true, NewPrimaryAlias: replicaCrossCellTablet.Alias, }, errShouldContain: "proposed primary zone-2-0000000002 is is a different cell as the previous primary", }, { - name: "error - requested primary cannot establish", - durability: "cross_cell", - validTablets: allTablets, - tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet}, + name: "error - requested primary cannot establish", + durability: "cross_cell", + validTablets: allTablets, + tabletsTakingBackup: noTabletsTakingBackup, + tabletsReachable: []*topodatapb.Tablet{primaryTablet, replicaTablet, rdonlyTablet, rdonlyCrossCellTablet}, opts: EmergencyReparentOptions{ NewPrimaryAlias: primaryTablet.Alias, }, @@ -4551,7 +4584,7 @@ func TestEmergencyReparenter_filterValidCandidates(t *testing.T) { tt.opts.durability = durability logger := logutil.NewMemoryLogger() erp := NewEmergencyReparenter(nil, nil, logger) - tabletList, err := erp.filterValidCandidates(tt.validTablets, tt.tabletsReachable, tt.prevPrimary, tt.opts) + tabletList, err := erp.filterValidCandidates(tt.validTablets, tt.tabletsReachable, tt.tabletsTakingBackup, tt.prevPrimary, tt.opts) if tt.errShouldContain != "" { require.Error(t, err) require.Contains(t, err.Error(), tt.errShouldContain) diff --git a/go/vt/vtctl/reparentutil/reparent_sorter_test.go b/go/vt/vtctl/reparentutil/reparent_sorter_test.go index ae5d56e884e..87e7b253d54 100644 --- a/go/vt/vtctl/reparentutil/reparent_sorter_test.go +++ b/go/vt/vtctl/reparentutil/reparent_sorter_test.go @@ -22,7 +22,6 @@ import ( "github.com/stretchr/testify/require" "vitess.io/vitess/go/mysql/replication" - topodatapb "vitess.io/vitess/go/vt/proto/topodata" ) diff --git a/go/vt/vtctl/reparentutil/replication.go b/go/vt/vtctl/reparentutil/replication.go index 8642de84fc7..e7919361a09 100644 --- a/go/vt/vtctl/reparentutil/replication.go +++ b/go/vt/vtctl/reparentutil/replication.go @@ -165,9 +165,10 @@ func SetReplicationSource(ctx context.Context, ts *topo.Server, tmc tmclient.Tab // replicationSnapshot stores the status maps and the tablets that were reachable // when trying to stopReplicationAndBuildStatusMaps. type replicationSnapshot struct { - statusMap map[string]*replicationdatapb.StopReplicationStatus - primaryStatusMap map[string]*replicationdatapb.PrimaryStatus - reachableTablets []*topodatapb.Tablet + statusMap map[string]*replicationdatapb.StopReplicationStatus + primaryStatusMap map[string]*replicationdatapb.PrimaryStatus + reachableTablets []*topodatapb.Tablet + tabletsBackupState map[string]bool } // stopReplicationAndBuildStatusMaps stops replication on all replicas, then @@ -193,9 +194,10 @@ func stopReplicationAndBuildStatusMaps( errChan = make(chan concurrency.Error) allTablets []*topodatapb.Tablet res = &replicationSnapshot{ - statusMap: map[string]*replicationdatapb.StopReplicationStatus{}, - primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{}, - reachableTablets: []*topodatapb.Tablet{}, + statusMap: map[string]*replicationdatapb.StopReplicationStatus{}, + primaryStatusMap: map[string]*replicationdatapb.PrimaryStatus{}, + reachableTablets: []*topodatapb.Tablet{}, + tabletsBackupState: map[string]bool{}, } ) @@ -214,6 +216,9 @@ func stopReplicationAndBuildStatusMaps( logger.Infof("getting replication position from %v", alias) stopReplicationStatus, err := tmc.StopReplicationAndGetStatus(groupCtx, tabletInfo.Tablet, replicationdatapb.StopReplicationMode_IOTHREADONLY) + m.Lock() + res.tabletsBackupState[alias] = stopReplicationStatus.GetBackupRunning() + m.Unlock() if err != nil { sqlErr, isSQLErr := sqlerror.NewSQLErrorFromError(err).(*sqlerror.SQLError) if isSQLErr && sqlErr != nil && sqlErr.Number() == sqlerror.ERNotReplica { diff --git a/go/vt/vtctl/reparentutil/util.go b/go/vt/vtctl/reparentutil/util.go index fd701f8c69b..c4c23e65c7e 100644 --- a/go/vt/vtctl/reparentutil/util.go +++ b/go/vt/vtctl/reparentutil/util.go @@ -58,7 +58,8 @@ const ( // cell as the current primary, and to be different from avoidPrimaryAlias. The // tablet with the most advanced replication position is chosen to minimize the // amount of time spent catching up with the current primary. Further ties are -// broken by the durability rules. +// broken by the durability rules. Tablets taking backups are excluded from +// consideration. // Note that the search for the most advanced replication position will race // with transactions being executed on the current primary, so when all tablets // are at roughly the same position, then the choice of new primary-elect will @@ -126,13 +127,17 @@ func ElectNewPrimary( tb := tablet errorGroup.Go(func() error { // find and store the positions for the tablet - pos, replLag, err := findPositionAndLagForTablet(groupCtx, tb, logger, tmc, opts.WaitReplicasTimeout) + pos, replLag, takingBackup, err := findTabletPositionLagBackupStatus(groupCtx, tb, logger, tmc, opts.WaitReplicasTimeout) mu.Lock() defer mu.Unlock() if err == nil && (opts.TolerableReplLag == 0 || opts.TolerableReplLag >= replLag) { - validTablets = append(validTablets, tb) - tabletPositions = append(tabletPositions, pos) - innodbBufferPool = append(innodbBufferPool, innodbBufferPoolData[topoproto.TabletAliasString(tb.Alias)]) + if takingBackup { + reasonsToInvalidate.WriteString(fmt.Sprintf("\n%v is taking a backup", topoproto.TabletAliasString(tablet.Alias))) + } else { + validTablets = append(validTablets, tb) + tabletPositions = append(tabletPositions, pos) + innodbBufferPool = append(innodbBufferPool, innodbBufferPoolData[topoproto.TabletAliasString(tb.Alias)]) + } } else { reasonsToInvalidate.WriteString(fmt.Sprintf("\n%v has %v replication lag which is more than the tolerable amount", topoproto.TabletAliasString(tablet.Alias), replLag)) } @@ -150,7 +155,7 @@ func ElectNewPrimary( return nil, vterrors.Errorf(vtrpc.Code_INTERNAL, "cannot find a tablet to reparent to%v", reasonsToInvalidate.String()) } - // sort the tablets for finding the best primary + // sort preferred tablets for finding the best primary err = sortTabletsForReparent(validTablets, tabletPositions, innodbBufferPool, opts.durability) if err != nil { return nil, err @@ -159,9 +164,9 @@ func ElectNewPrimary( return validTablets[0].Alias, nil } -// findPositionAndLagForTablet processes the replication position and lag for a single tablet and +// findTabletPositionLagBackupStatus processes the replication position and lag for a single tablet and // returns it. It is safe to call from multiple goroutines. -func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet, logger logutil.Logger, tmc tmclient.TabletManagerClient, waitTimeout time.Duration) (replication.Position, time.Duration, error) { +func findTabletPositionLagBackupStatus(ctx context.Context, tablet *topodatapb.Tablet, logger logutil.Logger, tmc tmclient.TabletManagerClient, waitTimeout time.Duration) (replication.Position, time.Duration, bool, error) { logger.Infof("getting replication position from %v", topoproto.TabletAliasString(tablet.Alias)) ctx, cancel := context.WithTimeout(ctx, waitTimeout) @@ -172,10 +177,10 @@ func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet, sqlErr, isSQLErr := sqlerror.NewSQLErrorFromError(err).(*sqlerror.SQLError) if isSQLErr && sqlErr != nil && sqlErr.Number() == sqlerror.ERNotReplica { logger.Warningf("no replication statue from %v, using empty gtid set", topoproto.TabletAliasString(tablet.Alias)) - return replication.Position{}, 0, nil + return replication.Position{}, 0, false, nil } logger.Warningf("failed to get replication status from %v, ignoring tablet: %v", topoproto.TabletAliasString(tablet.Alias), err) - return replication.Position{}, 0, err + return replication.Position{}, 0, false, err } // Use the relay log position if available, otherwise use the executed GTID set (binary log position). @@ -186,10 +191,10 @@ func findPositionAndLagForTablet(ctx context.Context, tablet *topodatapb.Tablet, pos, err := replication.DecodePosition(positionString) if err != nil { logger.Warningf("cannot decode replica position %v for tablet %v, ignoring tablet: %v", positionString, topoproto.TabletAliasString(tablet.Alias), err) - return replication.Position{}, 0, err + return replication.Position{}, 0, status.BackupRunning, err } - return pos, time.Second * time.Duration(status.ReplicationLagSeconds), nil + return pos, time.Second * time.Duration(status.ReplicationLagSeconds), status.BackupRunning, nil } // FindCurrentPrimary returns the current primary tablet of a shard, if any. The diff --git a/go/vt/vtctl/reparentutil/util_test.go b/go/vt/vtctl/reparentutil/util_test.go index f4e9092fc3f..ac44da8175a 100644 --- a/go/vt/vtctl/reparentutil/util_test.go +++ b/go/vt/vtctl/reparentutil/util_test.go @@ -139,6 +139,112 @@ func TestElectNewPrimary(t *testing.T) { }, errContains: nil, }, + { + name: "Two good replicas, but one of them is taking a backup so we pick the other one", + tmc: &chooseNewPrimaryTestTMClient{ + // both zone1-101 and zone1-102 are equivalent from a replicaiton PoV, but zone1-102 is taking a backup + replicationStatuses: map[string]*replicationdatapb.Status{ + "zone1-0000000101": { + Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5", + BackupRunning: true, + }, + "zone1-0000000102": { + Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5", + BackupRunning: false, + }, + }, + }, + tolerableReplLag: 50 * time.Second, + shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{ + PrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + }, nil), + tabletMap: map[string]*topo.TabletInfo{ + "primary": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + Type: topodatapb.TabletType_PRIMARY, + }, + }, + "replica1": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 101, + }, + Type: topodatapb.TabletType_REPLICA, + }, + }, + "replica2": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 102, + }, + Type: topodatapb.TabletType_REPLICA, + }, + }, + }, + avoidPrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 0, + }, + expected: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 102, + }, + errContains: nil, + }, + { + name: "Only one replica, but it's taking a backup. We don't elect it.", + tmc: &chooseNewPrimaryTestTMClient{ + // both zone1-101 and zone1-102 are equivalent from a replicaiton PoV, but zone1-102 is taking a backup + replicationStatuses: map[string]*replicationdatapb.Status{ + "zone1-0000000101": { + Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5", + BackupRunning: true, + }, + }, + }, + tolerableReplLag: 50 * time.Second, + shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{ + PrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + }, nil), + tabletMap: map[string]*topo.TabletInfo{ + "primary": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + Type: topodatapb.TabletType_PRIMARY, + }, + }, + "replica1": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 101, + }, + Type: topodatapb.TabletType_REPLICA, + }, + }, + }, + avoidPrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 0, + }, + expected: nil, + errContains: []string{"zone1-0000000101 is taking a backup"}, + }, { name: "new primary alias provided - no tolerable replication lag", tolerableReplLag: 0, @@ -414,6 +520,67 @@ func TestElectNewPrimary(t *testing.T) { }, errContains: nil, }, + { + name: "Two replicas, first one with too much lag, another one taking a backup - none is a good candidate", + tmc: &chooseNewPrimaryTestTMClient{ + // zone1-101 is behind zone1-102 + replicationStatuses: map[string]*replicationdatapb.Status{ + "zone1-0000000101": { + Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1", + ReplicationLagSeconds: 55, + }, + "zone1-0000000102": { + Position: "MySQL56/3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5", + BackupRunning: true, + }, + }, + }, + tolerableReplLag: 50 * time.Second, + shardInfo: topo.NewShardInfo("testkeyspace", "-", &topodatapb.Shard{ + PrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + }, nil), + tabletMap: map[string]*topo.TabletInfo{ + "primary": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + Type: topodatapb.TabletType_PRIMARY, + }, + }, + "replica1": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 101, + }, + Type: topodatapb.TabletType_REPLICA, + }, + }, + "replica2": { + Tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 102, + }, + Type: topodatapb.TabletType_REPLICA, + }, + }, + }, + avoidPrimaryAlias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 0, + }, + expected: nil, + errContains: []string{ + "zone1-0000000101 has 55s replication lag which is more than the tolerable amount", + "zone1-0000000102 is taking a backup", + }, + }, { name: "found a replica - more advanced relay log position", tmc: &chooseNewPrimaryTestTMClient{ @@ -881,12 +1048,13 @@ func TestFindPositionForTablet(t *testing.T) { ctx := context.Background() logger := logutil.NewMemoryLogger() tests := []struct { - name string - tmc *testutil.TabletManagerClient - tablet *topodatapb.Tablet - expectedPosition string - expectedLag time.Duration - expectedErr string + name string + tmc *testutil.TabletManagerClient + tablet *topodatapb.Tablet + expectedPosition string + expectedLag time.Duration + expectedErr string + expectedTakingBackup bool }{ { name: "executed gtid set", @@ -911,6 +1079,31 @@ func TestFindPositionForTablet(t *testing.T) { }, expectedLag: 201 * time.Second, expectedPosition: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5", + }, { + name: "Host is taking a backup", + tmc: &testutil.TabletManagerClient{ + ReplicationStatusResults: map[string]struct { + Position *replicationdatapb.Status + Error error + }{ + "zone1-0000000100": { + Position: &replicationdatapb.Status{ + Position: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5", + ReplicationLagSeconds: 201, + }, + }, + }, + TabletsBackupState: map[string]bool{"zone1-0000000100": true}, + }, + tablet: &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone1", + Uid: 100, + }, + }, + expectedLag: 201 * time.Second, + expectedTakingBackup: true, + expectedPosition: "MySQL56/3e11fa47-71ca-11e1-9e33-c80aa9429562:1-5", }, { name: "no replication status", tmc: &testutil.TabletManagerClient{ @@ -981,7 +1174,7 @@ func TestFindPositionForTablet(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - pos, lag, err := findPositionAndLagForTablet(ctx, test.tablet, logger, test.tmc, 10*time.Second) + pos, lag, takingBackup, err := findTabletPositionLagBackupStatus(ctx, test.tablet, logger, test.tmc, 10*time.Second) if test.expectedErr != "" { require.EqualError(t, err, test.expectedErr) return @@ -990,6 +1183,7 @@ func TestFindPositionForTablet(t *testing.T) { posString := replication.EncodePosition(pos) require.Equal(t, test.expectedPosition, posString) require.Equal(t, test.expectedLag, lag) + require.Equal(t, test.expectedTakingBackup, takingBackup) }) } } diff --git a/go/vt/vttablet/grpctmserver/server.go b/go/vt/vttablet/grpctmserver/server.go index 777f641b1fc..889448a7cd3 100644 --- a/go/vt/vttablet/grpctmserver/server.go +++ b/go/vt/vttablet/grpctmserver/server.go @@ -354,7 +354,7 @@ func (s *server) MysqlHostMetrics(ctx context.Context, request *tabletmanagerdat func (s *server) ReplicationStatus(ctx context.Context, request *tabletmanagerdatapb.ReplicationStatusRequest) (response *tabletmanagerdatapb.ReplicationStatusResponse, err error) { defer s.tm.HandleRPCPanic(ctx, "ReplicationStatus", request, response, false /*verbose*/, &err) ctx = callinfo.GRPCCallInfo(ctx) - response = &tabletmanagerdatapb.ReplicationStatusResponse{} + response = &tabletmanagerdatapb.ReplicationStatusResponse{BackupRunning: s.tm.IsBackupRunning()} status, err := s.tm.ReplicationStatus(ctx) if err == nil { response.Status = status @@ -637,6 +637,9 @@ func (s *server) StopReplicationAndGetStatus(ctx context.Context, request *table if err == nil { response.Status = statusResponse.Status } + + response.BackupRunning = s.tm.IsBackupRunning() + return response, err } diff --git a/go/vt/vttablet/tabletmanager/rpc_agent.go b/go/vt/vttablet/tabletmanager/rpc_agent.go index 203e1d006ab..445d74cb930 100644 --- a/go/vt/vttablet/tabletmanager/rpc_agent.go +++ b/go/vt/vttablet/tabletmanager/rpc_agent.go @@ -166,6 +166,8 @@ type RPCTM interface { RestoreFromBackup(ctx context.Context, logger logutil.Logger, request *tabletmanagerdatapb.RestoreFromBackupRequest) error + IsBackupRunning() bool + // HandleRPCPanic is to be called in a defer statement in each // RPC input point. HandleRPCPanic(ctx context.Context, name string, args, reply any, verbose bool, err *error) diff --git a/go/vt/vttablet/tabletmanager/rpc_backup.go b/go/vt/vttablet/tabletmanager/rpc_backup.go index a66264d98af..22fe72716dd 100644 --- a/go/vt/vttablet/tabletmanager/rpc_backup.go +++ b/go/vt/vttablet/tabletmanager/rpc_backup.go @@ -205,6 +205,10 @@ func (tm *TabletManager) RestoreFromBackup(ctx context.Context, logger logutil.L return err } +func (tm *TabletManager) IsBackupRunning() bool { + return tm._isBackupRunning +} + func (tm *TabletManager) beginBackup(backupMode string) error { tm.mutex.Lock() defer tm.mutex.Unlock() diff --git a/go/vt/vttablet/tmrpctest/test_tm_rpc.go b/go/vt/vttablet/tmrpctest/test_tm_rpc.go index 88ba3506ba5..a106b43bf2c 100644 --- a/go/vt/vttablet/tmrpctest/test_tm_rpc.go +++ b/go/vt/vttablet/tmrpctest/test_tm_rpc.go @@ -1428,6 +1428,10 @@ func (fra *fakeRPCTM) Backup(ctx context.Context, logger logutil.Logger, request return nil } +func (fra *fakeRPCTM) IsBackupRunning() bool { + return false +} + func tmRPCTestBackup(ctx context.Context, t *testing.T, client tmclient.TabletManagerClient, tablet *topodatapb.Tablet) { req := &tabletmanagerdatapb.BackupRequest{Concurrency: testBackupConcurrency, AllowPrimary: testBackupAllowPrimary} stream, err := client.Backup(ctx, tablet, req) diff --git a/proto/replicationdata.proto b/proto/replicationdata.proto index 7107332233b..76ca3e02103 100644 --- a/proto/replicationdata.proto +++ b/proto/replicationdata.proto @@ -50,6 +50,7 @@ message Status { bool has_replication_filters = 22; bool ssl_allowed = 23; bool replication_lag_unknown = 24; + bool backup_running = 25; } // Configuration holds replication configuration information gathered from performance_schema and global variables. @@ -65,6 +66,7 @@ message Configuration { message StopReplicationStatus { replicationdata.Status before = 1; replicationdata.Status after = 2; + bool backup_running = 3; } // StopReplicationMode is used to provide controls over how replication is stopped. diff --git a/proto/tabletmanagerdata.proto b/proto/tabletmanagerdata.proto index bb20e712e7f..9bb60184267 100644 --- a/proto/tabletmanagerdata.proto +++ b/proto/tabletmanagerdata.proto @@ -360,6 +360,7 @@ message ReplicationStatusRequest { message ReplicationStatusResponse { replicationdata.Status status = 1; + bool backup_running = 2; } message PrimaryStatusRequest { @@ -548,6 +549,7 @@ message StopReplicationAndGetStatusResponse { // Status represents the replication status call right before, and right after telling the replica to stop. replicationdata.StopReplicationStatus status = 2; + bool backup_running = 3; } message PromoteReplicaRequest { diff --git a/web/vtadmin/src/proto/vtadmin.d.ts b/web/vtadmin/src/proto/vtadmin.d.ts index 9e11f5f37d9..95b1448acef 100644 --- a/web/vtadmin/src/proto/vtadmin.d.ts +++ b/web/vtadmin/src/proto/vtadmin.d.ts @@ -26578,6 +26578,9 @@ export namespace tabletmanagerdata { /** ReplicationStatusResponse status */ status?: (replicationdata.IStatus|null); + + /** ReplicationStatusResponse backup_running */ + backup_running?: (boolean|null); } /** Represents a ReplicationStatusResponse. */ @@ -26592,6 +26595,9 @@ export namespace tabletmanagerdata { /** ReplicationStatusResponse status. */ public status?: (replicationdata.IStatus|null); + /** ReplicationStatusResponse backup_running. */ + public backup_running: boolean; + /** * Creates a new ReplicationStatusResponse instance using the specified properties. * @param [properties] Properties to set @@ -30986,6 +30992,9 @@ export namespace tabletmanagerdata { /** StopReplicationAndGetStatusResponse status */ status?: (replicationdata.IStopReplicationStatus|null); + + /** StopReplicationAndGetStatusResponse backup_running */ + backup_running?: (boolean|null); } /** Represents a StopReplicationAndGetStatusResponse. */ @@ -31000,6 +31009,9 @@ export namespace tabletmanagerdata { /** StopReplicationAndGetStatusResponse status. */ public status?: (replicationdata.IStopReplicationStatus|null); + /** StopReplicationAndGetStatusResponse backup_running. */ + public backup_running: boolean; + /** * Creates a new StopReplicationAndGetStatusResponse instance using the specified properties. * @param [properties] Properties to set @@ -47923,6 +47935,9 @@ export namespace replicationdata { /** Status replication_lag_unknown */ replication_lag_unknown?: (boolean|null); + + /** Status backup_running */ + backup_running?: (boolean|null); } /** Represents a Status. */ @@ -48000,6 +48015,9 @@ export namespace replicationdata { /** Status replication_lag_unknown. */ public replication_lag_unknown: boolean; + /** Status backup_running. */ + public backup_running: boolean; + /** * Creates a new Status instance using the specified properties. * @param [properties] Properties to set @@ -48189,6 +48207,9 @@ export namespace replicationdata { /** StopReplicationStatus after */ after?: (replicationdata.IStatus|null); + + /** StopReplicationStatus backup_running */ + backup_running?: (boolean|null); } /** Represents a StopReplicationStatus. */ @@ -48206,6 +48227,9 @@ export namespace replicationdata { /** StopReplicationStatus after. */ public after?: (replicationdata.IStatus|null); + /** StopReplicationStatus backup_running. */ + public backup_running: boolean; + /** * Creates a new StopReplicationStatus instance using the specified properties. * @param [properties] Properties to set diff --git a/web/vtadmin/src/proto/vtadmin.js b/web/vtadmin/src/proto/vtadmin.js index d0ce20ccfc2..f179934c800 100644 --- a/web/vtadmin/src/proto/vtadmin.js +++ b/web/vtadmin/src/proto/vtadmin.js @@ -61346,6 +61346,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { * @memberof tabletmanagerdata * @interface IReplicationStatusResponse * @property {replicationdata.IStatus|null} [status] ReplicationStatusResponse status + * @property {boolean|null} [backup_running] ReplicationStatusResponse backup_running */ /** @@ -61371,6 +61372,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { */ ReplicationStatusResponse.prototype.status = null; + /** + * ReplicationStatusResponse backup_running. + * @member {boolean} backup_running + * @memberof tabletmanagerdata.ReplicationStatusResponse + * @instance + */ + ReplicationStatusResponse.prototype.backup_running = false; + /** * Creates a new ReplicationStatusResponse instance using the specified properties. * @function create @@ -61397,6 +61406,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { writer = $Writer.create(); if (message.status != null && Object.hasOwnProperty.call(message, "status")) $root.replicationdata.Status.encode(message.status, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running")) + writer.uint32(/* id 2, wireType 0 =*/16).bool(message.backup_running); return writer; }; @@ -61435,6 +61446,10 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { message.status = $root.replicationdata.Status.decode(reader, reader.uint32()); break; } + case 2: { + message.backup_running = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -61475,6 +61490,9 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { if (error) return "status." + error; } + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + if (typeof message.backup_running !== "boolean") + return "backup_running: boolean expected"; return null; }; @@ -61495,6 +61513,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { throw TypeError(".tabletmanagerdata.ReplicationStatusResponse.status: object expected"); message.status = $root.replicationdata.Status.fromObject(object.status); } + if (object.backup_running != null) + message.backup_running = Boolean(object.backup_running); return message; }; @@ -61511,10 +61531,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { if (!options) options = {}; let object = {}; - if (options.defaults) + if (options.defaults) { object.status = null; + object.backup_running = false; + } if (message.status != null && message.hasOwnProperty("status")) object.status = $root.replicationdata.Status.toObject(message.status, options); + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + object.backup_running = message.backup_running; return object; }; @@ -70518,6 +70542,7 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { * @memberof tabletmanagerdata * @interface IStopReplicationAndGetStatusResponse * @property {replicationdata.IStopReplicationStatus|null} [status] StopReplicationAndGetStatusResponse status + * @property {boolean|null} [backup_running] StopReplicationAndGetStatusResponse backup_running */ /** @@ -70543,6 +70568,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { */ StopReplicationAndGetStatusResponse.prototype.status = null; + /** + * StopReplicationAndGetStatusResponse backup_running. + * @member {boolean} backup_running + * @memberof tabletmanagerdata.StopReplicationAndGetStatusResponse + * @instance + */ + StopReplicationAndGetStatusResponse.prototype.backup_running = false; + /** * Creates a new StopReplicationAndGetStatusResponse instance using the specified properties. * @function create @@ -70569,6 +70602,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { writer = $Writer.create(); if (message.status != null && Object.hasOwnProperty.call(message, "status")) $root.replicationdata.StopReplicationStatus.encode(message.status, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.backup_running); return writer; }; @@ -70607,6 +70642,10 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { message.status = $root.replicationdata.StopReplicationStatus.decode(reader, reader.uint32()); break; } + case 3: { + message.backup_running = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -70647,6 +70686,9 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { if (error) return "status." + error; } + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + if (typeof message.backup_running !== "boolean") + return "backup_running: boolean expected"; return null; }; @@ -70667,6 +70709,8 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { throw TypeError(".tabletmanagerdata.StopReplicationAndGetStatusResponse.status: object expected"); message.status = $root.replicationdata.StopReplicationStatus.fromObject(object.status); } + if (object.backup_running != null) + message.backup_running = Boolean(object.backup_running); return message; }; @@ -70683,10 +70727,14 @@ export const tabletmanagerdata = $root.tabletmanagerdata = (() => { if (!options) options = {}; let object = {}; - if (options.defaults) + if (options.defaults) { object.status = null; + object.backup_running = false; + } if (message.status != null && message.hasOwnProperty("status")) object.status = $root.replicationdata.StopReplicationStatus.toObject(message.status, options); + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + object.backup_running = message.backup_running; return object; }; @@ -116245,6 +116293,7 @@ export const replicationdata = $root.replicationdata = (() => { * @property {boolean|null} [has_replication_filters] Status has_replication_filters * @property {boolean|null} [ssl_allowed] Status ssl_allowed * @property {boolean|null} [replication_lag_unknown] Status replication_lag_unknown + * @property {boolean|null} [backup_running] Status backup_running */ /** @@ -116438,6 +116487,14 @@ export const replicationdata = $root.replicationdata = (() => { */ Status.prototype.replication_lag_unknown = false; + /** + * Status backup_running. + * @member {boolean} backup_running + * @memberof replicationdata.Status + * @instance + */ + Status.prototype.backup_running = false; + /** * Creates a new Status instance using the specified properties. * @function create @@ -116506,6 +116563,8 @@ export const replicationdata = $root.replicationdata = (() => { writer.uint32(/* id 23, wireType 0 =*/184).bool(message.ssl_allowed); if (message.replication_lag_unknown != null && Object.hasOwnProperty.call(message, "replication_lag_unknown")) writer.uint32(/* id 24, wireType 0 =*/192).bool(message.replication_lag_unknown); + if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running")) + writer.uint32(/* id 25, wireType 0 =*/200).bool(message.backup_running); return writer; }; @@ -116628,6 +116687,10 @@ export const replicationdata = $root.replicationdata = (() => { message.replication_lag_unknown = reader.bool(); break; } + case 25: { + message.backup_running = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -116729,6 +116792,9 @@ export const replicationdata = $root.replicationdata = (() => { if (message.replication_lag_unknown != null && message.hasOwnProperty("replication_lag_unknown")) if (typeof message.replication_lag_unknown !== "boolean") return "replication_lag_unknown: boolean expected"; + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + if (typeof message.backup_running !== "boolean") + return "backup_running: boolean expected"; return null; }; @@ -116788,6 +116854,8 @@ export const replicationdata = $root.replicationdata = (() => { message.ssl_allowed = Boolean(object.ssl_allowed); if (object.replication_lag_unknown != null) message.replication_lag_unknown = Boolean(object.replication_lag_unknown); + if (object.backup_running != null) + message.backup_running = Boolean(object.backup_running); return message; }; @@ -116827,6 +116895,7 @@ export const replicationdata = $root.replicationdata = (() => { object.has_replication_filters = false; object.ssl_allowed = false; object.replication_lag_unknown = false; + object.backup_running = false; } if (message.position != null && message.hasOwnProperty("position")) object.position = message.position; @@ -116872,6 +116941,8 @@ export const replicationdata = $root.replicationdata = (() => { object.ssl_allowed = message.ssl_allowed; if (message.replication_lag_unknown != null && message.hasOwnProperty("replication_lag_unknown")) object.replication_lag_unknown = message.replication_lag_unknown; + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + object.backup_running = message.backup_running; return object; }; @@ -117139,6 +117210,7 @@ export const replicationdata = $root.replicationdata = (() => { * @interface IStopReplicationStatus * @property {replicationdata.IStatus|null} [before] StopReplicationStatus before * @property {replicationdata.IStatus|null} [after] StopReplicationStatus after + * @property {boolean|null} [backup_running] StopReplicationStatus backup_running */ /** @@ -117172,6 +117244,14 @@ export const replicationdata = $root.replicationdata = (() => { */ StopReplicationStatus.prototype.after = null; + /** + * StopReplicationStatus backup_running. + * @member {boolean} backup_running + * @memberof replicationdata.StopReplicationStatus + * @instance + */ + StopReplicationStatus.prototype.backup_running = false; + /** * Creates a new StopReplicationStatus instance using the specified properties. * @function create @@ -117200,6 +117280,8 @@ export const replicationdata = $root.replicationdata = (() => { $root.replicationdata.Status.encode(message.before, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); if (message.after != null && Object.hasOwnProperty.call(message, "after")) $root.replicationdata.Status.encode(message.after, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.backup_running != null && Object.hasOwnProperty.call(message, "backup_running")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.backup_running); return writer; }; @@ -117242,6 +117324,10 @@ export const replicationdata = $root.replicationdata = (() => { message.after = $root.replicationdata.Status.decode(reader, reader.uint32()); break; } + case 3: { + message.backup_running = reader.bool(); + break; + } default: reader.skipType(tag & 7); break; @@ -117287,6 +117373,9 @@ export const replicationdata = $root.replicationdata = (() => { if (error) return "after." + error; } + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + if (typeof message.backup_running !== "boolean") + return "backup_running: boolean expected"; return null; }; @@ -117312,6 +117401,8 @@ export const replicationdata = $root.replicationdata = (() => { throw TypeError(".replicationdata.StopReplicationStatus.after: object expected"); message.after = $root.replicationdata.Status.fromObject(object.after); } + if (object.backup_running != null) + message.backup_running = Boolean(object.backup_running); return message; }; @@ -117331,11 +117422,14 @@ export const replicationdata = $root.replicationdata = (() => { if (options.defaults) { object.before = null; object.after = null; + object.backup_running = false; } if (message.before != null && message.hasOwnProperty("before")) object.before = $root.replicationdata.Status.toObject(message.before, options); if (message.after != null && message.hasOwnProperty("after")) object.after = $root.replicationdata.Status.toObject(message.after, options); + if (message.backup_running != null && message.hasOwnProperty("backup_running")) + object.backup_running = message.backup_running; return object; }; From 0b51839d66f83e66368d4d9753400e245423b760 Mon Sep 17 00:00:00 2001 From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com> Date: Thu, 21 Nov 2024 12:07:34 +0530 Subject: [PATCH 14/22] Fix potential deadlock in health streamer (#17261) Signed-off-by: Manan Gupta --- go/vt/vttablet/tabletserver/health_streamer.go | 4 +++- go/vt/vttablet/tabletserver/health_streamer_test.go | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/go/vt/vttablet/tabletserver/health_streamer.go b/go/vt/vttablet/tabletserver/health_streamer.go index f9f65d197b2..eaeba6315e3 100644 --- a/go/vt/vttablet/tabletserver/health_streamer.go +++ b/go/vt/vttablet/tabletserver/health_streamer.go @@ -293,8 +293,10 @@ func (hs *healthStreamer) SetUnhealthyThreshold(v time.Duration) { // so it can read and write to the MySQL instance for schema-tracking. func (hs *healthStreamer) MakePrimary(serving bool) { hs.fieldsMu.Lock() - defer hs.fieldsMu.Unlock() hs.isServingPrimary = serving + // We let go of the lock here because we don't want to hold the lock when calling RegisterNotifier. + // If we keep holding the lock, there is a potential deadlock that can happen. + hs.fieldsMu.Unlock() // We register for notifications from the schema Engine only when schema tracking is enabled, // and we are going to a serving primary state. if serving && hs.signalWhenSchemaChange { diff --git a/go/vt/vttablet/tabletserver/health_streamer_test.go b/go/vt/vttablet/tabletserver/health_streamer_test.go index 3421141ff80..9561518eed6 100644 --- a/go/vt/vttablet/tabletserver/health_streamer_test.go +++ b/go/vt/vttablet/tabletserver/health_streamer_test.go @@ -592,13 +592,14 @@ func TestDeadlockBwCloseAndReload(t *testing.T) { wg := sync.WaitGroup{} wg.Add(2) - // Try running Close and reload in parallel multiple times. + // Try running Close & MakePrimary and reload in parallel multiple times. // This reproduces the deadlock quite readily. go func() { defer wg.Done() for i := 0; i < 100; i++ { hs.Close() hs.Open() + hs.MakePrimary(true) } }() From 072d1fadb63c51334aa2c4fc90571a8ec11e0323 Mon Sep 17 00:00:00 2001 From: Manan Gupta <35839558+GuptaManan100@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:09:41 +0530 Subject: [PATCH 15/22] Fix errant GTID detection in VTOrc to also work with a replica not connected to any primary (#17267) Signed-off-by: Manan Gupta --- go/test/endtoend/vtorc/general/vtorc_test.go | 58 +++++++++ go/vt/vtorc/inst/instance_dao.go | 82 ++++++++----- go/vt/vtorc/inst/instance_dao_test.go | 118 +++++++++++++++++++ 3 files changed, 229 insertions(+), 29 deletions(-) diff --git a/go/test/endtoend/vtorc/general/vtorc_test.go b/go/test/endtoend/vtorc/general/vtorc_test.go index 329601deb0c..2ec2fd4b0ae 100644 --- a/go/test/endtoend/vtorc/general/vtorc_test.go +++ b/go/test/endtoend/vtorc/general/vtorc_test.go @@ -62,6 +62,64 @@ func TestPrimaryElection(t *testing.T) { require.Len(t, res.Rows, 1, "There should only be 1 primary tablet which was elected") } +// TestErrantGTIDOnPreviousPrimary tests that VTOrc is able to detect errant GTIDs on a previously demoted primary +// if it has an errant GTID. +func TestErrantGTIDOnPreviousPrimary(t *testing.T) { + defer utils.PrintVTOrcLogsOnFailure(t, clusterInfo.ClusterInstance) + defer cluster.PanicHandler(t) + utils.SetupVttabletsAndVTOrcs(t, clusterInfo, 3, 0, []string{"--change-tablets-with-errant-gtid-to-drained"}, cluster.VTOrcConfiguration{}, 1, "") + keyspace := &clusterInfo.ClusterInstance.Keyspaces[0] + shard0 := &keyspace.Shards[0] + + // find primary from topo + curPrimary := utils.ShardPrimaryTablet(t, clusterInfo, keyspace, shard0) + assert.NotNil(t, curPrimary, "should have elected a primary") + vtOrcProcess := clusterInfo.ClusterInstance.VTOrcProcesses[0] + utils.WaitForSuccessfulRecoveryCount(t, vtOrcProcess, logic.ElectNewPrimaryRecoveryName, 1) + utils.WaitForSuccessfulPRSCount(t, vtOrcProcess, keyspace.Name, shard0.Name, 1) + + var replica, otherReplica *cluster.Vttablet + for _, tablet := range shard0.Vttablets { + // we know we have only two tablets, so the "other" one must be the new primary + if tablet.Alias != curPrimary.Alias { + if replica == nil { + replica = tablet + } else { + otherReplica = tablet + } + } + } + require.NotNil(t, replica, "should be able to find a replica") + require.NotNil(t, otherReplica, "should be able to find 2nd replica") + utils.CheckReplication(t, clusterInfo, curPrimary, []*cluster.Vttablet{replica, otherReplica}, 15*time.Second) + + // Disable global recoveries for the cluster. + vtOrcProcess.DisableGlobalRecoveries(t) + + // Run PRS to promote a different replica. + output, err := clusterInfo.ClusterInstance.VtctldClientProcess.ExecuteCommandWithOutput( + "PlannedReparentShard", + fmt.Sprintf("%s/%s", keyspace.Name, shard0.Name), + "--new-primary", replica.Alias) + require.NoError(t, err, "error in PlannedReparentShard output - %s", output) + + // Stop replicatin on the previous primary to simulate it not reparenting properly. + // Also insert an errant GTID on the previous primary. + err = utils.RunSQLs(t, []string{ + "STOP REPLICA", + "RESET REPLICA ALL", + "set global read_only=OFF", + "insert into vt_ks.vt_insert_test(id, msg) values (10173, 'test 178342')", + }, curPrimary, "") + require.NoError(t, err) + + // Wait for VTOrc to detect the errant GTID and change the tablet to a drained type. + vtOrcProcess.EnableGlobalRecoveries(t) + + // Wait for the tablet to be drained. + utils.WaitForTabletType(t, curPrimary, "drained") +} + // Cases to test: // 1. create cluster with 1 replica and 1 rdonly, let orc choose primary // verify rdonly is not elected, only replica diff --git a/go/vt/vtorc/inst/instance_dao.go b/go/vt/vtorc/inst/instance_dao.go index bd4438dd05f..bd437d1ddac 100644 --- a/go/vt/vtorc/inst/instance_dao.go +++ b/go/vt/vtorc/inst/instance_dao.go @@ -357,35 +357,7 @@ Cleanup: // Add replication group ancestry UUID as well. Otherwise, VTOrc thinks there are errant GTIDs in group // members and its replicas, even though they are not. instance.AncestryUUID = strings.Trim(instance.AncestryUUID, ",") - if instance.ExecutedGtidSet != "" && instance.primaryExecutedGtidSet != "" { - // Compare primary & replica GTID sets, but ignore the sets that present the primary's UUID. - // This is because vtorc may pool primary and replica at an inconvenient timing, - // such that the replica may _seems_ to have more entries than the primary, when in fact - // it's just that the primary's probing is stale. - redactedExecutedGtidSet, _ := NewOracleGtidSet(instance.ExecutedGtidSet) - for _, uuid := range strings.Split(instance.AncestryUUID, ",") { - if uuid != instance.ServerUUID { - redactedExecutedGtidSet.RemoveUUID(uuid) - } - if instance.IsCoPrimary && uuid == instance.ServerUUID { - // If this is a co-primary, then this server is likely to show its own generated GTIDs as errant, - // because its co-primary has not applied them yet - redactedExecutedGtidSet.RemoveUUID(uuid) - } - } - // Avoid querying the database if there's no point: - if !redactedExecutedGtidSet.IsEmpty() { - redactedPrimaryExecutedGtidSet, _ := NewOracleGtidSet(instance.primaryExecutedGtidSet) - redactedPrimaryExecutedGtidSet.RemoveUUID(instance.SourceUUID) - - instance.GtidErrant, err = replication.Subtract(redactedExecutedGtidSet.String(), redactedPrimaryExecutedGtidSet.String()) - if err == nil { - var gtidCount int64 - gtidCount, err = replication.GTIDCount(instance.GtidErrant) - currentErrantGTIDCount.Set(tabletAlias, gtidCount) - } - } - } + err = detectErrantGTIDs(tabletAlias, instance, tablet) } latency.Stop("instance") @@ -412,6 +384,58 @@ Cleanup: return nil, err } +// detectErrantGTIDs detects the errant GTIDs on an instance. +func detectErrantGTIDs(tabletAlias string, instance *Instance, tablet *topodatapb.Tablet) (err error) { + // If the tablet is not replicating from anyone, then it could be the previous primary. + // We should check for errant GTIDs by finding the difference with the shard's current primary. + if instance.primaryExecutedGtidSet == "" && instance.SourceHost == "" { + var primaryInstance *Instance + primaryAlias, _, _ := ReadShardPrimaryInformation(tablet.Keyspace, tablet.Shard) + if primaryAlias != "" { + primaryInstance, _, _ = ReadInstance(primaryAlias) + } + // Only run errant GTID detection, if we are sure that the data read of the current primary + // is up-to-date enough to reflect that it has been promoted. This is needed to prevent + // flagging incorrect errant GTIDs. If we were to use old data, we could have some GTIDs + // accepted by the old primary (this tablet) that don't show in the new primary's set. + if primaryInstance != nil { + if primaryInstance.SourceHost == "" { + instance.primaryExecutedGtidSet = primaryInstance.ExecutedGtidSet + } + } + } + if instance.ExecutedGtidSet != "" && instance.primaryExecutedGtidSet != "" { + // Compare primary & replica GTID sets, but ignore the sets that present the primary's UUID. + // This is because vtorc may pool primary and replica at an inconvenient timing, + // such that the replica may _seems_ to have more entries than the primary, when in fact + // it's just that the primary's probing is stale. + redactedExecutedGtidSet, _ := NewOracleGtidSet(instance.ExecutedGtidSet) + for _, uuid := range strings.Split(instance.AncestryUUID, ",") { + if uuid != instance.ServerUUID { + redactedExecutedGtidSet.RemoveUUID(uuid) + } + if instance.IsCoPrimary && uuid == instance.ServerUUID { + // If this is a co-primary, then this server is likely to show its own generated GTIDs as errant, + // because its co-primary has not applied them yet + redactedExecutedGtidSet.RemoveUUID(uuid) + } + } + // Avoid querying the database if there's no point: + if !redactedExecutedGtidSet.IsEmpty() { + redactedPrimaryExecutedGtidSet, _ := NewOracleGtidSet(instance.primaryExecutedGtidSet) + redactedPrimaryExecutedGtidSet.RemoveUUID(instance.SourceUUID) + + instance.GtidErrant, err = replication.Subtract(redactedExecutedGtidSet.String(), redactedPrimaryExecutedGtidSet.String()) + if err == nil { + var gtidCount int64 + gtidCount, err = replication.GTIDCount(instance.GtidErrant) + currentErrantGTIDCount.Set(tabletAlias, gtidCount) + } + } + } + return err +} + // getKeyspaceShardName returns a single string having both the keyspace and shard func getKeyspaceShardName(keyspace, shard string) string { return fmt.Sprintf("%v:%v", keyspace, shard) diff --git a/go/vt/vtorc/inst/instance_dao_test.go b/go/vt/vtorc/inst/instance_dao_test.go index 2416c1abb90..cb2064d10c0 100644 --- a/go/vt/vtorc/inst/instance_dao_test.go +++ b/go/vt/vtorc/inst/instance_dao_test.go @@ -14,6 +14,7 @@ import ( "vitess.io/vitess/go/vt/external/golib/sqlutils" "vitess.io/vitess/go/vt/log" topodatapb "vitess.io/vitess/go/vt/proto/topodata" + "vitess.io/vitess/go/vt/topo" "vitess.io/vitess/go/vt/topo/topoproto" "vitess.io/vitess/go/vt/vtorc/config" "vitess.io/vitess/go/vt/vtorc/db" @@ -773,3 +774,120 @@ func TestExpireTableData(t *testing.T) { }) } } + +func TestDetectErrantGTIDs(t *testing.T) { + tests := []struct { + name string + instance *Instance + primaryInstance *Instance + wantErr bool + wantErrantGTID string + }{ + { + name: "No errant GTIDs", + instance: &Instance{ + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34", + primaryExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10591,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34", + AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff,230ea8ea-81e3-11e4-972a-e25ec4bd140a", + ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + SourceUUID: "230ea8ea-81e3-11e4-972a-e25ec4bd140a", + }, + }, { + name: "Errant GTIDs on replica", + instance: &Instance{ + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:34", + primaryExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10591,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34", + AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff,230ea8ea-81e3-11e4-972a-e25ec4bd140a", + ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + SourceUUID: "230ea8ea-81e3-11e4-972a-e25ec4bd140a", + }, + wantErrantGTID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff:34", + }, + { + name: "No errant GTIDs on old primary", + instance: &Instance{ + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341", + AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + }, + primaryInstance: &Instance{ + SourceHost: "", + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10589,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341", + }, + }, + { + name: "Errant GTIDs on old primary", + instance: &Instance{ + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-342", + AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + }, + primaryInstance: &Instance{ + SourceHost: "", + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10589,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-341", + }, + wantErrantGTID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff:342", + }, { + name: "Old information for new primary", + instance: &Instance{ + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-342", + AncestryUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + ServerUUID: "316d193c-70e5-11e5-adb2-ecf4bb2262ff", + }, + primaryInstance: &Instance{ + SourceHost: "localhost", + ExecutedGtidSet: "230ea8ea-81e3-11e4-972a-e25ec4bd140a:1-10539,8bc65c84-3fe4-11ed-a912-257f0fcdd6c9:1-34,316d193c-70e5-11e5-adb2-ecf4bb2262ff:1-311", + }, + }, + } + + keyspaceName := "ks" + shardName := "0" + tablet := &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone-1", + Uid: 100, + }, + Keyspace: keyspaceName, + Shard: shardName, + } + primaryTablet := &topodatapb.Tablet{ + Alias: &topodatapb.TabletAlias{ + Cell: "zone-1", + Uid: 100, + }, + Keyspace: keyspaceName, + Shard: shardName, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Clear the database after the test. The easiest way to do that is to run all the initialization commands again. + defer func() { + db.ClearVTOrcDatabase() + }() + db.ClearVTOrcDatabase() + + // Save shard record for the primary tablet. + err := SaveShard(topo.NewShardInfo(keyspaceName, shardName, &topodatapb.Shard{ + PrimaryAlias: primaryTablet.Alias, + }, nil)) + require.NoError(t, err) + + if tt.primaryInstance != nil { + tt.primaryInstance.InstanceAlias = topoproto.TabletAliasString(primaryTablet.Alias) + err = SaveTablet(primaryTablet) + require.NoError(t, err) + err = WriteInstance(tt.primaryInstance, true, nil) + require.NoError(t, err) + } + + err = detectErrantGTIDs(topoproto.TabletAliasString(tablet.Alias), tt.instance, tablet) + if tt.wantErr { + require.Error(t, err) + return + } + require.NoError(t, err) + require.EqualValues(t, tt.wantErrantGTID, tt.instance.GtidErrant) + }) + } +} From 145ff6b09e223e4fd89eaf4813be81ec46d04b2e Mon Sep 17 00:00:00 2001 From: Dirkjan Bussink Date: Mon, 25 Nov 2024 19:03:55 +0100 Subject: [PATCH 16/22] Specify Ubuntu 24.04 for all jobs (#17278) Signed-off-by: Dirkjan Bussink --- .github/workflows/assign_milestone.yml | 2 +- .github/workflows/auto_approve_pr.yml | 2 +- .github/workflows/check_label.yml | 2 +- .../check_make_vtadmin_authz_testgen.yml | 4 +-- .../check_make_vtadmin_web_proto.yml | 2 +- .../workflows/close_stale_pull_requests.yml | 2 +- .github/workflows/cluster_endtoend_12.yml | 13 ++++++-- .github/workflows/cluster_endtoend_13.yml | 13 ++++++-- .github/workflows/cluster_endtoend_15.yml | 13 ++++++-- .github/workflows/cluster_endtoend_18.yml | 13 ++++++-- .github/workflows/cluster_endtoend_21.yml | 13 ++++++-- .../cluster_endtoend_backup_pitr.yml | 13 ++++++-- ...luster_endtoend_backup_pitr_mysqlshell.yml | 13 ++++++-- ...luster_endtoend_backup_pitr_xtrabackup.yml | 2 +- ...ter_endtoend_ers_prs_newfeatures_heavy.yml | 13 ++++++-- .../workflows/cluster_endtoend_mysql80.yml | 13 ++++++-- .../cluster_endtoend_mysql_server_vault.yml | 13 ++++++-- .../cluster_endtoend_onlineddl_revert.yml | 13 ++++++-- .../cluster_endtoend_onlineddl_scheduler.yml | 13 ++++++-- .../cluster_endtoend_onlineddl_vrepl.yml | 13 ++++++-- ...luster_endtoend_onlineddl_vrepl_stress.yml | 13 ++++++-- ..._endtoend_onlineddl_vrepl_stress_suite.yml | 13 ++++++-- ...cluster_endtoend_onlineddl_vrepl_suite.yml | 13 ++++++-- .../cluster_endtoend_schemadiff_vrepl.yml | 13 ++++++-- .../cluster_endtoend_tabletmanager_consul.yml | 13 ++++++-- ...cluster_endtoend_tabletmanager_tablegc.yml | 13 ++++++-- ..._endtoend_tabletmanager_throttler_topo.yml | 13 ++++++-- ...cluster_endtoend_topo_connection_cache.yml | 13 ++++++-- ...dtoend_vreplication_across_db_versions.yml | 13 ++++++-- .../cluster_endtoend_vreplication_basic.yml | 13 ++++++-- ...luster_endtoend_vreplication_cellalias.yml | 13 ++++++-- ...er_endtoend_vreplication_copy_parallel.yml | 13 ++++++-- ...dtoend_vreplication_foreign_key_stress.yml | 13 ++++++-- ...endtoend_vreplication_mariadb_to_mysql.yml | 13 ++++++-- .../cluster_endtoend_vreplication_migrate.yml | 13 ++++++-- ...ter_endtoend_vreplication_multi_tenant.yml | 13 ++++++-- ...ion_partial_movetables_and_materialize.yml | 13 ++++++-- .../cluster_endtoend_vreplication_v2.yml | 13 ++++++-- ...tion_vtctldclient_vdiff2_movetables_tz.yml | 13 ++++++-- .../workflows/cluster_endtoend_vstream.yml | 13 ++++++-- .../workflows/cluster_endtoend_vtbackup.yml | 13 ++++++-- ..._vtctlbackup_sharded_clustertest_heavy.yml | 13 ++++++-- .../cluster_endtoend_vtgate_concurrentdml.yml | 13 ++++++-- ...ster_endtoend_vtgate_foreignkey_stress.yml | 13 ++++++-- .../cluster_endtoend_vtgate_gen4.yml | 13 ++++++-- .../cluster_endtoend_vtgate_general_heavy.yml | 13 ++++++-- .../cluster_endtoend_vtgate_godriver.yml | 13 ++++++-- ...uster_endtoend_vtgate_partial_keyspace.yml | 13 ++++++-- .../cluster_endtoend_vtgate_queries.yml | 13 ++++++-- ...cluster_endtoend_vtgate_readafterwrite.yml | 13 ++++++-- .../cluster_endtoend_vtgate_reservedconn.yml | 13 ++++++-- .../cluster_endtoend_vtgate_schema.yml | 13 ++++++-- ...cluster_endtoend_vtgate_schema_tracker.yml | 13 ++++++-- ...dtoend_vtgate_tablet_healthcheck_cache.yml | 13 ++++++-- .../cluster_endtoend_vtgate_topo.yml | 13 ++++++-- .../cluster_endtoend_vtgate_topo_consul.yml | 13 ++++++-- .../cluster_endtoend_vtgate_topo_etcd.yml | 13 ++++++-- .../cluster_endtoend_vtgate_transaction.yml | 13 ++++++-- .../cluster_endtoend_vtgate_unsharded.yml | 13 ++++++-- .../cluster_endtoend_vtgate_vindex_heavy.yml | 13 ++++++-- .../cluster_endtoend_vtgate_vschema.yml | 13 ++++++-- .github/workflows/cluster_endtoend_vtorc.yml | 13 ++++++-- .../cluster_endtoend_vttablet_prscomplex.yml | 13 ++++++-- .../workflows/cluster_endtoend_xb_backup.yml | 2 +- .../cluster_endtoend_xb_recovery.yml | 2 +- .github/workflows/code_freeze.yml | 2 +- .github/workflows/codecov.yml | 2 +- .github/workflows/codeql_analysis.yml | 6 ++-- .github/workflows/create_release.yml | 2 +- .github/workflows/docker_build_images.yml | 8 ++--- .github/workflows/docker_test_cluster_10.yml | 2 +- .github/workflows/docker_test_cluster_25.yml | 2 +- .github/workflows/e2e_race.yml | 6 ++-- .github/workflows/endtoend.yml | 4 +-- .github/workflows/local_example.yml | 22 ++----------- .github/workflows/region_example.yml | 22 ++----------- .github/workflows/scorecards.yml | 2 +- .github/workflows/static_checks_etc.yml | 4 +-- .github/workflows/unit_race.yml | 2 +- .github/workflows/unit_race_evalengine.yml | 2 +- .../unit_test_evalengine_mysql57.yml | 25 +++++++++----- .../unit_test_evalengine_mysql80.yml | 18 +++++----- .../unit_test_evalengine_mysql84.yml | 18 +++++----- .github/workflows/unit_test_mysql57.yml | 25 +++++++++----- .github/workflows/unit_test_mysql80.yml | 18 +++++----- .github/workflows/unit_test_mysql84.yml | 18 +++++----- .../workflows/update_golang_dependencies.yml | 2 +- .github/workflows/update_golang_version.yml | 2 +- .../upgrade_downgrade_test_backups_e2e.yml | 4 +-- ...owngrade_test_backups_e2e_next_release.yml | 4 +-- .../upgrade_downgrade_test_backups_manual.yml | 6 ++-- ...grade_test_backups_manual_next_release.yml | 6 ++-- .../upgrade_downgrade_test_onlineddl_flow.yml | 6 ++-- ...e_downgrade_test_query_serving_queries.yml | 6 ++-- ...est_query_serving_queries_next_release.yml | 6 ++-- ...de_downgrade_test_query_serving_schema.yml | 6 ++-- ...test_query_serving_schema_next_release.yml | 6 ++-- ...rade_downgrade_test_reparent_new_vtctl.yml | 6 ++-- ...e_downgrade_test_reparent_new_vttablet.yml | 6 ++-- ...rade_downgrade_test_reparent_old_vtctl.yml | 6 ++-- ...e_downgrade_test_reparent_old_vttablet.yml | 6 ++-- .../upgrade_downgrade_test_semi_sync.yml | 4 +-- .github/workflows/vitess_tester_vtgate.yml | 4 +-- .github/workflows/vtadmin_web_build.yml | 2 +- .github/workflows/vtadmin_web_lint.yml | 2 +- .github/workflows/vtadmin_web_unit_tests.yml | 2 +- test/templates/cluster_endtoend_test.tpl | 13 ++++++-- .../cluster_endtoend_test_docker.tpl | 2 +- .../cluster_endtoend_test_mysql57.tpl | 8 +++-- test/templates/cluster_vitess_tester.tpl | 4 +-- test/templates/unit_test.tpl | 33 +++++++++++-------- 111 files changed, 806 insertions(+), 304 deletions(-) diff --git a/.github/workflows/assign_milestone.yml b/.github/workflows/assign_milestone.yml index 3ae0a89b4a9..6687a239b57 100644 --- a/.github/workflows/assign_milestone.yml +++ b/.github/workflows/assign_milestone.yml @@ -12,7 +12,7 @@ env: jobs: build: name: Assign Milestone - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: pull-requests: write diff --git a/.github/workflows/auto_approve_pr.yml b/.github/workflows/auto_approve_pr.yml index de553694927..e584337f78b 100644 --- a/.github/workflows/auto_approve_pr.yml +++ b/.github/workflows/auto_approve_pr.yml @@ -9,7 +9,7 @@ permissions: jobs: auto_approve: name: Auto Approve Pull Request - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: pull-requests: write # only given on local PRs, forks run with `read` access diff --git a/.github/workflows/check_label.yml b/.github/workflows/check_label.yml index 15b3ae3ec15..2c6439a29f9 100644 --- a/.github/workflows/check_label.yml +++ b/.github/workflows/check_label.yml @@ -9,7 +9,7 @@ jobs: check_pull_request_labels: name: Check Pull Request labels timeout-minutes: 10 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.repository == 'vitessio/vitess' steps: - name: Release Notes label diff --git a/.github/workflows/check_make_vtadmin_authz_testgen.yml b/.github/workflows/check_make_vtadmin_authz_testgen.yml index f69df918be1..26543c8a948 100644 --- a/.github/workflows/check_make_vtadmin_authz_testgen.yml +++ b/.github/workflows/check_make_vtadmin_authz_testgen.yml @@ -6,7 +6,7 @@ permissions: read-all jobs: build: name: Check Make vtadmin_authz_testgen - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | @@ -61,7 +61,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.vtadmin_changes == 'true' run: | sudo apt-get update - sudo apt-get install -y make unzip g++ etcd curl git wget + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget sudo service etcd stop go mod download go install golang.org/x/tools/cmd/goimports@latest diff --git a/.github/workflows/check_make_vtadmin_web_proto.yml b/.github/workflows/check_make_vtadmin_web_proto.yml index 0f8d404a256..1c1bf2cae4f 100644 --- a/.github/workflows/check_make_vtadmin_web_proto.yml +++ b/.github/workflows/check_make_vtadmin_web_proto.yml @@ -6,7 +6,7 @@ permissions: read-all jobs: build: name: Check Make VTAdmin Web Proto - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | diff --git a/.github/workflows/close_stale_pull_requests.yml b/.github/workflows/close_stale_pull_requests.yml index 17fef550aa3..dbb71ac79b9 100644 --- a/.github/workflows/close_stale_pull_requests.yml +++ b/.github/workflows/close_stale_pull_requests.yml @@ -9,7 +9,7 @@ permissions: read-all jobs: close_stale_pull_requests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: pull-requests: write diff --git a/.github/workflows/cluster_endtoend_12.yml b/.github/workflows/cluster_endtoend_12.yml index 236e6e2835c..7c98855b783 100644 --- a/.github/workflows/cluster_endtoend_12.yml +++ b/.github/workflows/cluster_endtoend_12.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (12) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_13.yml b/.github/workflows/cluster_endtoend_13.yml index 945d3448287..947d393bbbb 100644 --- a/.github/workflows/cluster_endtoend_13.yml +++ b/.github/workflows/cluster_endtoend_13.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (13) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_15.yml b/.github/workflows/cluster_endtoend_15.yml index 0c57e651013..aedc1bbd691 100644 --- a/.github/workflows/cluster_endtoend_15.yml +++ b/.github/workflows/cluster_endtoend_15.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (15) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_18.yml b/.github/workflows/cluster_endtoend_18.yml index 0c04f3e1b76..9886b617d51 100644 --- a/.github/workflows/cluster_endtoend_18.yml +++ b/.github/workflows/cluster_endtoend_18.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (18) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_21.yml b/.github/workflows/cluster_endtoend_21.yml index 7d14a8b99ed..5d703099a3d 100644 --- a/.github/workflows/cluster_endtoend_21.yml +++ b/.github/workflows/cluster_endtoend_21.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (21) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_backup_pitr.yml b/.github/workflows/cluster_endtoend_backup_pitr.yml index 99047933d69..1f744e85004 100644 --- a/.github/workflows/cluster_endtoend_backup_pitr.yml +++ b/.github/workflows/cluster_endtoend_backup_pitr.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (backup_pitr) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml index 8da7e054666..6ed73f260df 100644 --- a/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml +++ b/.github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (backup_pitr_mysqlshell) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml index 4012d1b1e4d..9bb6a4b56f8 100644 --- a/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml +++ b/.github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (backup_pitr_xtrabackup) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI diff --git a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml index 177fc77a5c4..e859749ceca 100644 --- a/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml +++ b/.github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (ers_prs_newfeatures_heavy) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_mysql80.yml b/.github/workflows/cluster_endtoend_mysql80.yml index d0ff268c5fb..653db141b7d 100644 --- a/.github/workflows/cluster_endtoend_mysql80.yml +++ b/.github/workflows/cluster_endtoend_mysql80.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (mysql80) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_mysql_server_vault.yml b/.github/workflows/cluster_endtoend_mysql_server_vault.yml index 38cdcbadf95..9de4aacd499 100644 --- a/.github/workflows/cluster_endtoend_mysql_server_vault.yml +++ b/.github/workflows/cluster_endtoend_mysql_server_vault.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (mysql_server_vault) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_revert.yml b/.github/workflows/cluster_endtoend_onlineddl_revert.yml index dd9990b4761..54c85944190 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_revert.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_revert.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_revert) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml index 144e06915ce..9e117ac0f04 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_scheduler.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_scheduler) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml index 5cd394f2d42..5056e46d895 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_vrepl) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml index 993a2d5193e..3597b37ede7 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_vrepl_stress) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml index 015db29723e..a5322578981 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_vrepl_stress_suite) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml index 550408f5def..12bde509048 100644 --- a/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml +++ b/.github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (onlineddl_vrepl_suite) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml index 9c2cac74843..e452d28606a 100644 --- a/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml +++ b/.github/workflows/cluster_endtoend_schemadiff_vrepl.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (schemadiff_vrepl) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -97,10 +97,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml index 4846fdcc2ac..3e8ffce0ac5 100644 --- a/.github/workflows/cluster_endtoend_tabletmanager_consul.yml +++ b/.github/workflows/cluster_endtoend_tabletmanager_consul.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (tabletmanager_consul) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml index 435d28a722a..cc75ef22937 100644 --- a/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml +++ b/.github/workflows/cluster_endtoend_tabletmanager_tablegc.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (tabletmanager_tablegc) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml index 6cf480aa1f1..0837be5356e 100644 --- a/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml +++ b/.github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (tabletmanager_throttler_topo) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_topo_connection_cache.yml b/.github/workflows/cluster_endtoend_topo_connection_cache.yml index 056bfb6d8a4..da6ee53ad53 100644 --- a/.github/workflows/cluster_endtoend_topo_connection_cache.yml +++ b/.github/workflows/cluster_endtoend_topo_connection_cache.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (topo_connection_cache) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml index aacf9d157fd..a38506ddd7d 100644 --- a/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml +++ b/.github/workflows/cluster_endtoend_vreplication_across_db_versions.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_across_db_versions) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_basic.yml b/.github/workflows/cluster_endtoend_vreplication_basic.yml index ead3b816df2..283d0451a34 100644 --- a/.github/workflows/cluster_endtoend_vreplication_basic.yml +++ b/.github/workflows/cluster_endtoend_vreplication_basic.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_basic) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml index d9f1aeac45e..b316c075614 100644 --- a/.github/workflows/cluster_endtoend_vreplication_cellalias.yml +++ b/.github/workflows/cluster_endtoend_vreplication_cellalias.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_cellalias) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml index 9cdc4a9091a..48f506709e7 100644 --- a/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml +++ b/.github/workflows/cluster_endtoend_vreplication_copy_parallel.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_copy_parallel) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml index f95f70e8550..a1293e3688e 100644 --- a/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml +++ b/.github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_foreign_key_stress) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml index 2a6af9b91bd..2013d89a83d 100644 --- a/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml +++ b/.github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_mariadb_to_mysql) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_migrate.yml b/.github/workflows/cluster_endtoend_vreplication_migrate.yml index 6b6768eb676..e7a8a8cb5ce 100644 --- a/.github/workflows/cluster_endtoend_vreplication_migrate.yml +++ b/.github/workflows/cluster_endtoend_vreplication_migrate.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_migrate) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml index 78b6c616691..c0c80a8dc61 100644 --- a/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml +++ b/.github/workflows/cluster_endtoend_vreplication_multi_tenant.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_multi_tenant) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml index 30367611574..0b80b82fd7f 100644 --- a/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml +++ b/.github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_partial_movetables_and_materialize) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_v2.yml b/.github/workflows/cluster_endtoend_vreplication_v2.yml index 23871ada3b8..fcbe7057b4c 100644 --- a/.github/workflows/cluster_endtoend_vreplication_v2.yml +++ b/.github/workflows/cluster_endtoend_vreplication_v2.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_v2) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml index dd1eb76ca0e..40f2002f9a3 100644 --- a/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml +++ b/.github/workflows/cluster_endtoend_vreplication_vtctldclient_vdiff2_movetables_tz.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vreplication_vtctldclient_vdiff2_movetables_tz) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vstream.yml b/.github/workflows/cluster_endtoend_vstream.yml index 3c99a687abc..acfefb40758 100644 --- a/.github/workflows/cluster_endtoend_vstream.yml +++ b/.github/workflows/cluster_endtoend_vstream.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vstream) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtbackup.yml b/.github/workflows/cluster_endtoend_vtbackup.yml index e47e8fbad47..947598bc307 100644 --- a/.github/workflows/cluster_endtoend_vtbackup.yml +++ b/.github/workflows/cluster_endtoend_vtbackup.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtbackup) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml index 8f9a27bc750..c6f8712a35a 100644 --- a/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml +++ b/.github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtctlbackup_sharded_clustertest_heavy) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml index db9ea451081..2cd81fe04ef 100644 --- a/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml +++ b/.github/workflows/cluster_endtoend_vtgate_concurrentdml.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_concurrentdml) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml index 2fada310f7e..19620d9e3a2 100644 --- a/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml +++ b/.github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_foreignkey_stress) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_gen4.yml b/.github/workflows/cluster_endtoend_vtgate_gen4.yml index 04813704cd2..06961af4ee7 100644 --- a/.github/workflows/cluster_endtoend_vtgate_gen4.yml +++ b/.github/workflows/cluster_endtoend_vtgate_gen4.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_gen4) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml index bdb6b8b149d..e0b21df421a 100644 --- a/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml +++ b/.github/workflows/cluster_endtoend_vtgate_general_heavy.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_general_heavy) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_godriver.yml b/.github/workflows/cluster_endtoend_vtgate_godriver.yml index e23742a5650..23c9da550c2 100644 --- a/.github/workflows/cluster_endtoend_vtgate_godriver.yml +++ b/.github/workflows/cluster_endtoend_vtgate_godriver.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_godriver) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml index 4d082900790..f5d1850aca3 100644 --- a/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml +++ b/.github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_partial_keyspace) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_queries.yml b/.github/workflows/cluster_endtoend_vtgate_queries.yml index 46242a6b7f4..80462086a57 100644 --- a/.github/workflows/cluster_endtoend_vtgate_queries.yml +++ b/.github/workflows/cluster_endtoend_vtgate_queries.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_queries) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml index b39aa3693e6..686db1e12ab 100644 --- a/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml +++ b/.github/workflows/cluster_endtoend_vtgate_readafterwrite.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_readafterwrite) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml index 0032704b240..0f4ae20b0a7 100644 --- a/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml +++ b/.github/workflows/cluster_endtoend_vtgate_reservedconn.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_reservedconn) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_schema.yml b/.github/workflows/cluster_endtoend_vtgate_schema.yml index be619a0815c..2dca36298e1 100644 --- a/.github/workflows/cluster_endtoend_vtgate_schema.yml +++ b/.github/workflows/cluster_endtoend_vtgate_schema.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_schema) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml index a02b4ec5435..711f38253cb 100644 --- a/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml +++ b/.github/workflows/cluster_endtoend_vtgate_schema_tracker.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_schema_tracker) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml index ff0c6990512..55996d7fa86 100644 --- a/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml +++ b/.github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_tablet_healthcheck_cache) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_topo.yml b/.github/workflows/cluster_endtoend_vtgate_topo.yml index e0f4397d56c..f47e0a8dd63 100644 --- a/.github/workflows/cluster_endtoend_vtgate_topo.yml +++ b/.github/workflows/cluster_endtoend_vtgate_topo.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_topo) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml index a10a9947218..1b62ac79041 100644 --- a/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml +++ b/.github/workflows/cluster_endtoend_vtgate_topo_consul.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_topo_consul) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml index 42e3b3d919c..f88d3b9af3a 100644 --- a/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml +++ b/.github/workflows/cluster_endtoend_vtgate_topo_etcd.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_topo_etcd) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_transaction.yml b/.github/workflows/cluster_endtoend_vtgate_transaction.yml index bc400dde33f..9ae7b465695 100644 --- a/.github/workflows/cluster_endtoend_vtgate_transaction.yml +++ b/.github/workflows/cluster_endtoend_vtgate_transaction.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_transaction) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml index 8c128e95b0f..d348606dc31 100644 --- a/.github/workflows/cluster_endtoend_vtgate_unsharded.yml +++ b/.github/workflows/cluster_endtoend_vtgate_unsharded.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_unsharded) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml index e260443a242..16bdee60217 100644 --- a/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml +++ b/.github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_vindex_heavy) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtgate_vschema.yml b/.github/workflows/cluster_endtoend_vtgate_vschema.yml index 72e9ac45949..fb176119769 100644 --- a/.github/workflows/cluster_endtoend_vtgate_vschema.yml +++ b/.github/workflows/cluster_endtoend_vtgate_vschema.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtgate_vschema) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vtorc.yml b/.github/workflows/cluster_endtoend_vtorc.yml index 23544b28d01..92c2ea3d5d7 100644 --- a/.github/workflows/cluster_endtoend_vtorc.yml +++ b/.github/workflows/cluster_endtoend_vtorc.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vtorc) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -105,10 +105,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml index eaf6583a22d..9868c382a69 100644 --- a/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml +++ b/.github/workflows/cluster_endtoend_vttablet_prscomplex.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (vttablet_prscomplex) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -96,10 +96,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/.github/workflows/cluster_endtoend_xb_backup.yml b/.github/workflows/cluster_endtoend_xb_backup.yml index dae2eca922f..26dbfea2def 100644 --- a/.github/workflows/cluster_endtoend_xb_backup.yml +++ b/.github/workflows/cluster_endtoend_xb_backup.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (xb_backup) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI diff --git a/.github/workflows/cluster_endtoend_xb_recovery.yml b/.github/workflows/cluster_endtoend_xb_recovery.yml index 0dad33aee7f..43360690d6b 100644 --- a/.github/workflows/cluster_endtoend_xb_recovery.yml +++ b/.github/workflows/cluster_endtoend_xb_recovery.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Cluster (xb_recovery) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI diff --git a/.github/workflows/code_freeze.yml b/.github/workflows/code_freeze.yml index 92ef037ee6b..a66fb6e8b2b 100644 --- a/.github/workflows/code_freeze.yml +++ b/.github/workflows/code_freeze.yml @@ -7,7 +7,7 @@ permissions: read-all jobs: build: name: Code Freeze - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Fail if Code Freeze is enabled run: | diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index 7846749a013..fc30974212b 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -9,7 +9,7 @@ permissions: read-all jobs: test: name: Code Coverage - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Check out code diff --git a/.github/workflows/codeql_analysis.yml b/.github/workflows/codeql_analysis.yml index e1a474ce9a2..c523e34c697 100644 --- a/.github/workflows/codeql_analysis.yml +++ b/.github/workflows/codeql_analysis.yml @@ -14,7 +14,7 @@ permissions: read-all jobs: analyze: name: Analyze - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: actions: read contents: read @@ -59,13 +59,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml index a42bbc0ff2d..424cc5bfe15 100644 --- a/.github/workflows/create_release.yml +++ b/.github/workflows/create_release.yml @@ -12,7 +12,7 @@ permissions: read-all jobs: build: name: Create Release - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: contents: write steps: diff --git a/.github/workflows/docker_build_images.yml b/.github/workflows/docker_build_images.yml index 827946a43dc..2024d677205 100644 --- a/.github/workflows/docker_build_images.yml +++ b/.github/workflows/docker_build_images.yml @@ -16,7 +16,7 @@ permissions: read-all jobs: build_and_push_vttestserver: name: Build and push vttestserver - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 if: github.repository == 'vitessio/vitess' strategy: @@ -70,7 +70,7 @@ jobs: build_and_push_lite: name: Build and push lite - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 if: github.repository == 'vitessio/vitess' strategy: @@ -132,7 +132,7 @@ jobs: build_and_push_components: name: Build and push - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 if: github.repository == 'vitessio/vitess' && needs.build_and_push_lite.result == 'success' needs: - build_and_push_lite @@ -226,7 +226,7 @@ jobs: slack_notification: name: Slack Notification if failed - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 needs: - build_and_push_vttestserver - build_and_push_lite diff --git a/.github/workflows/docker_test_cluster_10.yml b/.github/workflows/docker_test_cluster_10.yml index ce1c9e7277b..10a7c1551c0 100644 --- a/.github/workflows/docker_test_cluster_10.yml +++ b/.github/workflows/docker_test_cluster_10.yml @@ -5,7 +5,7 @@ jobs: build: name: Docker Test Cluster 10 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI diff --git a/.github/workflows/docker_test_cluster_25.yml b/.github/workflows/docker_test_cluster_25.yml index eb2319b8c9f..34463ce3830 100644 --- a/.github/workflows/docker_test_cluster_25.yml +++ b/.github/workflows/docker_test_cluster_25.yml @@ -5,7 +5,7 @@ jobs: build: name: Docker Test Cluster 25 - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI diff --git a/.github/workflows/e2e_race.yml b/.github/workflows/e2e_race.yml index 78c8d0b1753..50e1e4b9485 100644 --- a/.github/workflows/e2e_race.yml +++ b/.github/workflows/e2e_race.yml @@ -5,7 +5,7 @@ jobs: build: name: End-to-End Test (Race) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | @@ -65,13 +65,13 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update # Install everything else we need, and configure - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata xz-utils + sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils sudo service mysql stop sudo service etcd stop sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/endtoend.yml b/.github/workflows/endtoend.yml index 9e06e4ee44b..f061e8bee68 100644 --- a/.github/workflows/endtoend.yml +++ b/.github/workflows/endtoend.yml @@ -5,7 +5,7 @@ jobs: build: name: End-to-End Test - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | @@ -63,7 +63,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' run: | sudo apt-get update - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget + sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget sudo service mysql stop sudo service etcd stop sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/local_example.yml b/.github/workflows/local_example.yml index 65669158415..fc9724aa6ac 100644 --- a/.github/workflows/local_example.yml +++ b/.github/workflows/local_example.yml @@ -4,8 +4,8 @@ permissions: read-all jobs: build: - name: Local example using ${{ matrix.topo }} on ubuntu-22.04 - runs-on: gh-hosted-runners-16cores-1 + name: Local example using ${{ matrix.topo }} on Ubuntu + runs-on: gh-hosted-runners-16cores-1-24.04 strategy: matrix: topo: [consul,etcd,zk2] @@ -67,24 +67,6 @@ jobs: - name: Get dependencies if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true' run: | - if [ ${{matrix.os}} = "ubuntu-22.04" ]; then - # Get key to latest MySQL repo - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb - echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections - sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get update - - # Install everything else we need, and configure - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata - sudo service mysql stop - sudo service etcd stop - sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ - sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld - elif [ ${{matrix.os}} = "macos-latest" ]; then - brew install mysql@5.7 make unzip etcd curl git wget - fi go mod download - name: Run make minimaltools diff --git a/.github/workflows/region_example.yml b/.github/workflows/region_example.yml index c031ea315b5..c17f43eec11 100644 --- a/.github/workflows/region_example.yml +++ b/.github/workflows/region_example.yml @@ -4,8 +4,8 @@ permissions: read-all jobs: build: - name: Region Sharding example using ${{ matrix.topo }} on ubuntu-22.04 - runs-on: gh-hosted-runners-16cores-1 + name: Region Sharding example using ${{ matrix.topo }} on Ubuntu + runs-on: gh-hosted-runners-16cores-1-24.04 strategy: matrix: topo: [etcd] @@ -67,24 +67,6 @@ jobs: - name: Get dependencies if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.examples == 'true' run: | - if [ ${{matrix.os}} = "ubuntu-22.04" ]; then - # Get key to latest MySQL repo - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb - echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections - sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get update - - # Install everything else we need, and configure - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata - sudo service mysql stop - sudo service etcd stop - sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ - sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld - elif [ ${{matrix.os}} = "macos-latest" ]; then - brew install mysql@5.7 make unzip etcd curl git wget - fi go mod download - name: Run make minimaltools diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 7d20694b850..b879ec8c144 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -14,7 +14,7 @@ permissions: read-all jobs: analysis: name: Scorecard analysis - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 permissions: # Needed to upload the results to code-scanning dashboard. security-events: write diff --git a/.github/workflows/static_checks_etc.yml b/.github/workflows/static_checks_etc.yml index cd896d5fd29..cd2cce93827 100644 --- a/.github/workflows/static_checks_etc.yml +++ b/.github/workflows/static_checks_etc.yml @@ -9,7 +9,7 @@ permissions: read-all jobs: build: name: Static Code Checks Etc - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -152,7 +152,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && (steps.changes.outputs.parser_changes == 'true' || steps.changes.outputs.go_files == 'true') run: | sudo apt-get update - sudo apt-get install -y make unzip g++ etcd curl git wget + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget sudo service etcd stop go mod download diff --git a/.github/workflows/unit_race.yml b/.github/workflows/unit_race.yml index e764cd33d9d..8ffb74bd2cb 100644 --- a/.github/workflows/unit_race.yml +++ b/.github/workflows/unit_race.yml @@ -15,7 +15,7 @@ jobs: build: name: Unit Test (Race) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI run: | diff --git a/.github/workflows/unit_race_evalengine.yml b/.github/workflows/unit_race_evalengine.yml index 5a5cb637681..d6d248f066e 100644 --- a/.github/workflows/unit_race_evalengine.yml +++ b/.github/workflows/unit_race_evalengine.yml @@ -15,7 +15,7 @@ jobs: build: name: Unit Test (Evalengine_Race) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI run: | diff --git a/.github/workflows/unit_test_evalengine_mysql57.yml b/.github/workflows/unit_test_evalengine_mysql57.yml index 09cb392c794..ecc366b38fe 100644 --- a/.github/workflows/unit_test_evalengine_mysql57.yml +++ b/.github/workflows/unit_test_evalengine_mysql57.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (evalengine_mysql57) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,30 +89,37 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb # Bionic packages are still compatible for Jammy since there's no MySQL 5.7 # packages for Jammy. echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 + sudo apt-get update + # We have to install this old version of libaio1. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/unit_test_evalengine_mysql80.yml b/.github/workflows/unit_test_evalengine_mysql80.yml index 5578829d48d..e6e802b52d8 100644 --- a/.github/workflows/unit_test_evalengine_mysql80.yml +++ b/.github/workflows/unit_test_evalengine_mysql80.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (evalengine_mysql80) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,27 +89,27 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/unit_test_evalengine_mysql84.yml b/.github/workflows/unit_test_evalengine_mysql84.yml index 2a86d5bfabd..46736dac349 100644 --- a/.github/workflows/unit_test_evalengine_mysql84.yml +++ b/.github/workflows/unit_test_evalengine_mysql84.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (evalengine_mysql84) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,27 +89,27 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/unit_test_mysql57.yml b/.github/workflows/unit_test_mysql57.yml index bd4b6ed8c3c..3eaf02d1538 100644 --- a/.github/workflows/unit_test_mysql57.yml +++ b/.github/workflows/unit_test_mysql57.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (mysql57) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,30 +89,37 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb # Bionic packages are still compatible for Jammy since there's no MySQL 5.7 # packages for Jammy. echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 + sudo apt-get update + # We have to install this old version of libaio1. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/unit_test_mysql80.yml b/.github/workflows/unit_test_mysql80.yml index 03f31a25cc8..c036e6dd477 100644 --- a/.github/workflows/unit_test_mysql80.yml +++ b/.github/workflows/unit_test_mysql80.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (mysql80) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,27 +89,27 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/unit_test_mysql84.yml b/.github/workflows/unit_test_mysql84.yml index 95a56aeff81..84447ce390b 100644 --- a/.github/workflows/unit_test_mysql84.yml +++ b/.github/workflows/unit_test_mysql84.yml @@ -16,7 +16,7 @@ env: jobs: test: name: Unit Test (mysql84) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -89,27 +89,27 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/update_golang_dependencies.yml b/.github/workflows/update_golang_dependencies.yml index a614a634d83..33c5157097c 100644 --- a/.github/workflows/update_golang_dependencies.yml +++ b/.github/workflows/update_golang_dependencies.yml @@ -14,7 +14,7 @@ jobs: contents: write pull-requests: write name: Update Golang Dependencies - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Set up Go uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 diff --git a/.github/workflows/update_golang_version.yml b/.github/workflows/update_golang_version.yml index 503cad50ce8..09bbf451451 100644 --- a/.github/workflows/update_golang_version.yml +++ b/.github/workflows/update_golang_version.yml @@ -17,7 +17,7 @@ jobs: matrix: branch: [ main, release-21.0, release-20.0, release-19.0 ] name: Update Golang Version - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Check out code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml index f1c4f335f0d..a56aad2f523 100644 --- a/.github/workflows/upgrade_downgrade_test_backups_e2e.yml +++ b/.github/workflows/upgrade_downgrade_test_backups_e2e.yml @@ -13,7 +13,7 @@ jobs: upgrade_downgrade_test_e2e: timeout-minutes: 60 name: Run Upgrade Downgrade Test - Backups - E2E - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -87,7 +87,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' run: | sudo apt-get update - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml index 73c24c5e72e..7ee6c2db799 100644 --- a/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml +++ b/.github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml @@ -14,7 +14,7 @@ jobs: upgrade_downgrade_test_e2e: timeout-minutes: 60 name: Run Upgrade Downgrade Test - Backups - E2E - Next Release - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -89,7 +89,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' run: | sudo apt-get update - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual.yml b/.github/workflows/upgrade_downgrade_test_backups_manual.yml index 9c866affb0b..00aab1b78ff 100644 --- a/.github/workflows/upgrade_downgrade_test_backups_manual.yml +++ b/.github/workflows/upgrade_downgrade_test_backups_manual.yml @@ -15,7 +15,7 @@ jobs: upgrade_downgrade_test_manual: timeout-minutes: 40 name: Run Upgrade Downgrade Test - Backups - Manual - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -102,14 +102,14 @@ jobs: # Install MySQL 8.0 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata grep + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata grep sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml index 802ee78d940..768268271a1 100644 --- a/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml +++ b/.github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml @@ -15,7 +15,7 @@ jobs: upgrade_downgrade_test_manual: timeout-minutes: 40 name: Run Upgrade Downgrade Test - Backups - Manual - Next Release - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -103,14 +103,14 @@ jobs: # Install MySQL 8.0 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata grep + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata grep sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml b/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml index 89e5f7c4d25..72426e70a61 100644 --- a/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml +++ b/.github/workflows/upgrade_downgrade_test_onlineddl_flow.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Online DDL flow - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -108,13 +108,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml index f7d68dfee04..5ac1a55334c 100644 --- a/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml +++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Query Serving (Queries) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -100,13 +100,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml index e3a34bd43f8..c65fff08c52 100644 --- a/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml +++ b/.github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Query Serving (Queries) Next Release - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -101,13 +101,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml index a9162d2f199..4b5fad0ab29 100644 --- a/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml +++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Query Serving (Schema) - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -100,13 +100,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml index bf5f63d8836..6157079db6f 100644 --- a/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml +++ b/.github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Query Serving (Schema) Next Release - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -101,13 +101,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml index ac6615b5788..931d9174c31 100644 --- a/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml +++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Reparent New Vtctl - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -101,13 +101,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml index e163ab35ea4..d77b7be53b3 100644 --- a/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml +++ b/.github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Reparent New VTTablet - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -101,13 +101,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml index 93e94466b74..701025d7ecc 100644 --- a/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml +++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Reparent Old Vtctl - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -100,13 +100,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml index 12f6b514aa1..8b121d4af10 100644 --- a/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml +++ b/.github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml @@ -16,7 +16,7 @@ jobs: upgrade_downgrade_test: name: Run Upgrade Downgrade Test - Reparent Old VTTablet - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -100,13 +100,13 @@ jobs: sudo rm -rf /etc/mysql # Install mysql80 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client # Install everything else we need, and configure - sudo apt-get install -y make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 diff --git a/.github/workflows/upgrade_downgrade_test_semi_sync.yml b/.github/workflows/upgrade_downgrade_test_semi_sync.yml index 16dac6e7fd2..f12e323654e 100644 --- a/.github/workflows/upgrade_downgrade_test_semi_sync.yml +++ b/.github/workflows/upgrade_downgrade_test_semi_sync.yml @@ -13,7 +13,7 @@ jobs: upgrade_downgrade_test_e2e: timeout-minutes: 60 name: Run Semi Sync Upgrade Downgrade Test - runs-on: gh-hosted-runners-16cores-1 + runs-on: gh-hosted-runners-16cores-1-24.04 steps: - name: Skip CI @@ -87,7 +87,7 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.end_to_end == 'true' run: | sudo apt-get update - sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd curl git wget eatmydata + sudo apt-get install -y mysql-server mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata sudo service mysql stop sudo service etcd stop sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ diff --git a/.github/workflows/vitess_tester_vtgate.yml b/.github/workflows/vitess_tester_vtgate.yml index 5f8c52d454b..7d5cf89a3ec 100644 --- a/.github/workflows/vitess_tester_vtgate.yml +++ b/.github/workflows/vitess_tester_vtgate.yml @@ -16,7 +16,7 @@ env: jobs: build: name: Run endtoend tests on Vitess Tester (vtgate) - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -95,7 +95,7 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update diff --git a/.github/workflows/vtadmin_web_build.yml b/.github/workflows/vtadmin_web_build.yml index 096b70cd002..822fa8a0920 100644 --- a/.github/workflows/vtadmin_web_build.yml +++ b/.github/workflows/vtadmin_web_build.yml @@ -16,7 +16,7 @@ permissions: read-all jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | diff --git a/.github/workflows/vtadmin_web_lint.yml b/.github/workflows/vtadmin_web_lint.yml index 5435b4b54fe..694c24734a6 100644 --- a/.github/workflows/vtadmin_web_lint.yml +++ b/.github/workflows/vtadmin_web_lint.yml @@ -16,7 +16,7 @@ permissions: read-all jobs: lint: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | diff --git a/.github/workflows/vtadmin_web_unit_tests.yml b/.github/workflows/vtadmin_web_unit_tests.yml index b765a68fa76..72a887c1926 100644 --- a/.github/workflows/vtadmin_web_unit_tests.yml +++ b/.github/workflows/vtadmin_web_unit_tests.yml @@ -16,7 +16,7 @@ permissions: read-all jobs: unit-tests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI run: | diff --git a/test/templates/cluster_endtoend_test.tpl b/test/templates/cluster_endtoend_test.tpl index 01f4555e303..6fe58fae361 100644 --- a/test/templates/cluster_endtoend_test.tpl +++ b/test/templates/cluster_endtoend_test.tpl @@ -14,7 +14,7 @@ env: jobs: build: name: Run endtoend tests on {{.Name}} - runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}} + runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}} steps: - name: Skip CI @@ -124,10 +124,19 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update + + # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + # Install everything else we need, and configure sudo apt-get -qq install -y mysql-server mysql-shell mysql-client make unzip g++ etcd-client etcd-server curl git wget eatmydata xz-utils libncurses6 diff --git a/test/templates/cluster_endtoend_test_docker.tpl b/test/templates/cluster_endtoend_test_docker.tpl index f68e4223c75..f7e8aa2c1d8 100644 --- a/test/templates/cluster_endtoend_test_docker.tpl +++ b/test/templates/cluster_endtoend_test_docker.tpl @@ -6,7 +6,7 @@ permissions: read-all jobs: build: name: Run endtoend tests on {{.Name}} - runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}} + runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}} steps: - name: Skip CI diff --git a/test/templates/cluster_endtoend_test_mysql57.tpl b/test/templates/cluster_endtoend_test_mysql57.tpl index b51ffc9110e..f4152c939b0 100644 --- a/test/templates/cluster_endtoend_test_mysql57.tpl +++ b/test/templates/cluster_endtoend_test_mysql57.tpl @@ -19,7 +19,7 @@ env: jobs: build: name: Run endtoend tests on {{.Name}} - runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1{{else}}ubuntu-latest{{end}} + runs-on: {{if .Cores16}}gh-hosted-runners-16cores-1-24.04{{else}}ubuntu-24.04{{end}} steps: - name: Skip CI @@ -126,13 +126,17 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb # Bionic packages are still compatible for Jammy since there's no MySQL 5.7 # packages for Jammy. echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get update + # We have to install this old version of libaio1. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 sudo apt-get install -y make unzip g++ etcd-client etcd-server curl git wget eatmydata diff --git a/test/templates/cluster_vitess_tester.tpl b/test/templates/cluster_vitess_tester.tpl index f0b5838d8e8..b8d77754ba6 100644 --- a/test/templates/cluster_vitess_tester.tpl +++ b/test/templates/cluster_vitess_tester.tpl @@ -14,7 +14,7 @@ env: jobs: build: name: Run endtoend tests on {{.Name}} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -93,7 +93,7 @@ jobs: # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C # Setup MySQL 8.0 - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* sudo apt-get -qq update diff --git a/test/templates/unit_test.tpl b/test/templates/unit_test.tpl index c47b7a1d796..3704aebac4e 100644 --- a/test/templates/unit_test.tpl +++ b/test/templates/unit_test.tpl @@ -14,7 +14,7 @@ env: jobs: test: name: {{.Name}} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Skip CI @@ -87,20 +87,20 @@ jobs: if: steps.skip-workflow.outputs.skip-workflow == 'false' && steps.changes.outputs.unit_tests == 'true' run: | export DEBIAN_FRONTEND="noninteractive" - sudo apt-get -qq update + sudo apt-get update # Uninstall any previously installed MySQL first sudo systemctl stop apparmor - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq remove -y --purge mysql-server mysql-client mysql-common - sudo apt-get -qq -y autoremove - sudo apt-get -qq -y autoclean + sudo DEBIAN_FRONTEND="noninteractive" apt-get remove -y --purge mysql-server mysql-client mysql-common + sudo apt-get -y autoremove + sudo apt-get -y autoclean sudo deluser mysql sudo rm -rf /var/lib/mysql sudo rm -rf /etc/mysql # Get key to latest MySQL repo sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8D3785C - wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb + wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb {{if (eq .Platform "mysql57")}} # Bionic packages are still compatible for Jammy since there's no MySQL 5.7 @@ -108,25 +108,32 @@ jobs: echo mysql-apt-config mysql-apt-config/repo-codename select bionic | sudo debconf-set-selections echo mysql-apt-config mysql-apt-config/select-server select mysql-5.7 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 + sudo apt-get update + # We have to install this old version of libaio1. See also: + # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 + curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb + sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb + # libtinfo5 is also needed for older MySQL 5.7 builds. + curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 {{end}} {{if (eq .Platform "mysql80")}} echo mysql-apt-config mysql-apt-config/select-server select mysql-8.0 | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client {{end}} {{if (eq .Platform "mysql84")}} echo mysql-apt-config mysql-apt-config/select-server select mysql-8.4-lts | sudo debconf-set-selections sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config* - sudo apt-get -qq update - sudo DEBIAN_FRONTEND="noninteractive" apt-get -qq install -y mysql-server mysql-client + sudo apt-get update + sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server mysql-client {{end}} - sudo apt-get -qq install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata + sudo apt-get install -y make unzip g++ curl git wget ant openjdk-11-jdk eatmydata sudo service mysql stop sudo bash -c "echo '/usr/sbin/mysqld { }' > /etc/apparmor.d/usr.sbin.mysqld" # https://bugs.launchpad.net/ubuntu/+source/mariadb-10.1/+bug/1806263 sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/ From 0439d89f5b59550b0d4602aaeeee1844fb76e11c Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:14:06 +0200 Subject: [PATCH 17/22] `Applyschema` uses `ExecuteMultiFetchAsDba` (#17078) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/vt/schemamanager/local_controller.go | 6 ++++-- go/vt/schemamanager/local_controller_test.go | 4 ++-- go/vt/schemamanager/schemamanager.go | 4 ++-- go/vt/schemamanager/schemamanager_test.go | 7 +++++++ go/vt/schemamanager/tablet_executor.go | 14 ++++++++------ go/vt/vtctl/grpcvtctldserver/server.go | 4 +++- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/go/vt/schemamanager/local_controller.go b/go/vt/schemamanager/local_controller.go index b95bb1398bf..92b7afa83c0 100644 --- a/go/vt/schemamanager/local_controller.go +++ b/go/vt/schemamanager/local_controller.go @@ -208,8 +208,10 @@ func (controller *LocalController) writeToLogDir(ctx context.Context, result *Ex rowsReturned := uint64(0) rowsAffected := uint64(0) for _, queryResult := range result.SuccessShards { - rowsReturned += uint64(len(queryResult.Result.Rows)) - rowsAffected += queryResult.Result.RowsAffected + for _, result := range queryResult.Results { + rowsReturned += uint64(len(result.Rows)) + rowsAffected += result.RowsAffected + } } logFile.WriteString(fmt.Sprintf("-- Rows returned: %d\n", rowsReturned)) logFile.WriteString(fmt.Sprintf("-- Rows affected: %d\n", rowsAffected)) diff --git a/go/vt/schemamanager/local_controller_test.go b/go/vt/schemamanager/local_controller_test.go index 1784a76e133..74d66033c63 100644 --- a/go/vt/schemamanager/local_controller_test.go +++ b/go/vt/schemamanager/local_controller_test.go @@ -138,8 +138,8 @@ func TestLocalControllerSchemaChange(t *testing.T) { result := &ExecuteResult{ Sqls: []string{"create table test_table (id int)"}, SuccessShards: []ShardResult{{ - Shard: "0", - Result: &querypb.QueryResult{}, + Shard: "0", + Results: []*querypb.QueryResult{{}}, }}, } logPath := path.Join(controller.logDir, controller.sqlFilename) diff --git a/go/vt/schemamanager/schemamanager.go b/go/vt/schemamanager/schemamanager.go index 1ccc52d6a6d..8a695a1164e 100644 --- a/go/vt/schemamanager/schemamanager.go +++ b/go/vt/schemamanager/schemamanager.go @@ -85,8 +85,8 @@ type ShardWithError struct { // ShardResult contains sql execute information on a particular shard type ShardResult struct { - Shard string - Result *querypb.QueryResult + Shard string + Results []*querypb.QueryResult // Position is a replication position that is guaranteed to be after the // schema change was applied. It can be used to wait for replicas to receive // the schema change via replication. diff --git a/go/vt/schemamanager/schemamanager_test.go b/go/vt/schemamanager/schemamanager_test.go index 129600d0527..76b638960fe 100644 --- a/go/vt/schemamanager/schemamanager_test.go +++ b/go/vt/schemamanager/schemamanager_test.go @@ -293,6 +293,13 @@ func (client *fakeTabletManagerClient) ExecuteFetchAsDba(ctx context.Context, ta return client.TabletManagerClient.ExecuteFetchAsDba(ctx, tablet, usePool, req) } +func (client *fakeTabletManagerClient) ExecuteMultiFetchAsDba(ctx context.Context, tablet *topodatapb.Tablet, usePool bool, req *tabletmanagerdatapb.ExecuteMultiFetchAsDbaRequest) ([]*querypb.QueryResult, error) { + if client.EnableExecuteFetchAsDbaError { + return nil, fmt.Errorf("ExecuteMultiFetchAsDba occur an unknown error") + } + return client.TabletManagerClient.ExecuteMultiFetchAsDba(ctx, tablet, usePool, req) +} + // newFakeTopo returns a topo with: // - a keyspace named 'test_keyspace'. // - 3 shards named '1', '2', '3'. diff --git a/go/vt/schemamanager/tablet_executor.go b/go/vt/schemamanager/tablet_executor.go index 68270e0babc..bd521703723 100644 --- a/go/vt/schemamanager/tablet_executor.go +++ b/go/vt/schemamanager/tablet_executor.go @@ -572,13 +572,15 @@ func (exec *TabletExecutor) executeOneTablet( errChan chan ShardWithError, successChan chan ShardResult) { - var result *querypb.QueryResult + var results []*querypb.QueryResult var err error if viaQueryService { - result, err = exec.tmc.ExecuteQuery(ctx, tablet, &tabletmanagerdatapb.ExecuteQueryRequest{ + result, reserr := exec.tmc.ExecuteQuery(ctx, tablet, &tabletmanagerdatapb.ExecuteQueryRequest{ Query: []byte(sql), MaxRows: 10, }) + results = []*querypb.QueryResult{result} + err = reserr } else { if exec.ddlStrategySetting != nil && exec.ddlStrategySetting.IsAllowZeroInDateFlag() { // --allow-zero-in-date Applies to DDLs @@ -588,14 +590,14 @@ func (exec *TabletExecutor) executeOneTablet( return } } - request := &tabletmanagerdatapb.ExecuteFetchAsDbaRequest{ - Query: []byte(sql), + request := &tabletmanagerdatapb.ExecuteMultiFetchAsDbaRequest{ + Sql: []byte(sql), MaxRows: 10, } if exec.ddlStrategySetting != nil && exec.ddlStrategySetting.IsAllowForeignKeysFlag() { request.DisableForeignKeyChecks = true } - result, err = exec.tmc.ExecuteFetchAsDba(ctx, tablet, false, request) + results, err = exec.tmc.ExecuteMultiFetchAsDba(ctx, tablet, false, request) } if err != nil { @@ -614,7 +616,7 @@ func (exec *TabletExecutor) executeOneTablet( } successChan <- ShardResult{ Shard: tablet.Shard, - Result: result, + Results: results, Position: pos, } } diff --git a/go/vt/vtctl/grpcvtctldserver/server.go b/go/vt/vtctl/grpcvtctldserver/server.go index e280a410e02..3bfce2204a2 100644 --- a/go/vt/vtctl/grpcvtctldserver/server.go +++ b/go/vt/vtctl/grpcvtctldserver/server.go @@ -303,7 +303,9 @@ func (s *VtctldServer) ApplySchema(ctx context.Context, req *vtctldatapb.ApplySc } for _, shard := range execResult.SuccessShards { - resp.RowsAffectedByShard[shard.Shard] = shard.Result.RowsAffected + for _, result := range shard.Results { + resp.RowsAffectedByShard[shard.Shard] += result.RowsAffected + } } return resp, err From ebf321ef957d52eb760ccecf8780ebda50c12045 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:17:45 +0200 Subject: [PATCH 18/22] Online DDL: publish `vreplication_lag_seconds` from vreplication progress (#17263) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- .../schema/onlineddl/schema_migrations.sql | 1 + go/vt/vttablet/onlineddl/executor.go | 86 +++++++++---------- go/vt/vttablet/onlineddl/schema.go | 5 ++ go/vt/vttablet/onlineddl/vrepl.go | 14 +++ 4 files changed, 61 insertions(+), 45 deletions(-) diff --git a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql index 91c0323e54b..3e2a72d6ae5 100644 --- a/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql +++ b/go/vt/sidecardb/schema/onlineddl/schema_migrations.sql @@ -45,6 +45,7 @@ CREATE TABLE IF NOT EXISTS schema_migrations `message_timestamp` timestamp(6) NULL DEFAULT NULL, `eta_seconds` bigint NOT NULL DEFAULT '-1', `rows_copied` bigint unsigned NOT NULL DEFAULT '0', + `vreplication_lag_seconds` bigint unsigned NOT NULL DEFAULT '0', `table_rows` bigint NOT NULL DEFAULT '0', `added_unique_keys` int unsigned NOT NULL DEFAULT '0', `removed_unique_keys` int unsigned NOT NULL DEFAULT '0', diff --git a/go/vt/vttablet/onlineddl/executor.go b/go/vt/vttablet/onlineddl/executor.go index 002cd1fb6d0..f8b5cfd9b8d 100644 --- a/go/vt/vttablet/onlineddl/executor.go +++ b/go/vt/vttablet/onlineddl/executor.go @@ -3583,53 +3583,36 @@ func (e *Executor) isPreserveForeignKeySupported(ctx context.Context) (isSupport // and is up to date with the binlogs. func (e *Executor) isVReplMigrationReadyToCutOver(ctx context.Context, onlineDDL *schema.OnlineDDL, s *VReplStream) (isReady bool, err error) { // Check all the cases where migration is still running: - { - // when ready to cut-over, pos must have some value - if s.pos == "" { - return false, nil - } + // when ready to cut-over, pos must have some value + if s.pos == "" { + return false, nil } - { - // Both time_updated and transaction_timestamp must be in close proximity to each - // other and to the time now, otherwise that means we're lagging and it's not a good time - // to cut-over - durationDiff := func(t1, t2 time.Time) time.Duration { - return t1.Sub(t2).Abs() - } - timeNow := time.Now() - timeUpdated := time.Unix(s.timeUpdated, 0) - if durationDiff(timeNow, timeUpdated) > onlineDDL.CutOverThreshold { - return false, nil - } - // Let's look at transaction timestamp. This gets written by any ongoing - // writes on the server (whether on this table or any other table) - transactionTimestamp := time.Unix(s.transactionTimestamp, 0) - if durationDiff(timeNow, transactionTimestamp) > onlineDDL.CutOverThreshold { - return false, nil - } + // Both time_updated and transaction_timestamp must be in close proximity to each + // other and to the time now, otherwise that means we're lagging and it's not a good time + // to cut-over + if s.Lag() > onlineDDL.CutOverThreshold { + return false, nil } - { - // copy_state must have no entries for this vreplication id: if entries are - // present that means copy is still in progress - query, err := sqlparser.ParseAndBind(sqlReadCountCopyState, - sqltypes.Int32BindVariable(s.id), - ) - if err != nil { - return false, err - } - r, err := e.execQuery(ctx, query) - if err != nil { - return false, err - } - csRow := r.Named().Row() - if csRow == nil { - return false, err - } - count := csRow.AsInt64("cnt", 0) - if count > 0 { - // Still copying - return false, nil - } + // copy_state must have no entries for this vreplication id: if entries are + // present that means copy is still in progress + query, err := sqlparser.ParseAndBind(sqlReadCountCopyState, + sqltypes.Int32BindVariable(s.id), + ) + if err != nil { + return false, err + } + r, err := e.execQuery(ctx, query) + if err != nil { + return false, err + } + csRow := r.Named().Row() + if csRow == nil { + return false, err + } + count := csRow.AsInt64("cnt", 0) + if count > 0 { + // Still copying + return false, nil } return true, nil @@ -3776,6 +3759,7 @@ func (e *Executor) reviewRunningMigrations(ctx context.Context) (countRunnning i } _ = e.updateRowsCopied(ctx, uuid, s.rowsCopied) _ = e.updateMigrationProgressByRowsCopied(ctx, uuid, s.rowsCopied) + _ = e.updateMigrationVreplicationLagSeconds(ctx, uuid, int64(s.Lag().Seconds())) _ = e.updateMigrationETASecondsByProgress(ctx, uuid) if s.timeThrottled != 0 { // Avoid creating a 0000-00-00 00:00:00 timestamp @@ -4534,6 +4518,18 @@ func (e *Executor) updateRowsCopied(ctx context.Context, uuid string, rowsCopied return err } +func (e *Executor) updateMigrationVreplicationLagSeconds(ctx context.Context, uuid string, vreplicationLagSeconds int64) error { + query, err := sqlparser.ParseAndBind(sqlUpdateMigrationVreplicationLagSeconds, + sqltypes.Int64BindVariable(vreplicationLagSeconds), + sqltypes.StringBindVariable(uuid), + ) + if err != nil { + return err + } + _, err = e.execQuery(ctx, query) + return err +} + func (e *Executor) updateVitessLivenessIndicator(ctx context.Context, uuid string, livenessIndicator int64) error { query, err := sqlparser.ParseAndBind(sqlUpdateMigrationVitessLivenessIndicator, sqltypes.Int64BindVariable(livenessIndicator), diff --git a/go/vt/vttablet/onlineddl/schema.go b/go/vt/vttablet/onlineddl/schema.go index bc3fa4f2bc9..943a3b1df07 100644 --- a/go/vt/vttablet/onlineddl/schema.go +++ b/go/vt/vttablet/onlineddl/schema.go @@ -87,6 +87,11 @@ const ( WHERE migration_uuid=%a ` + sqlUpdateMigrationVreplicationLagSeconds = `UPDATE _vt.schema_migrations + SET vreplication_lag_seconds=%a + WHERE + migration_uuid=%a + ` sqlUpdateMigrationIsView = `UPDATE _vt.schema_migrations SET is_view=%a WHERE diff --git a/go/vt/vttablet/onlineddl/vrepl.go b/go/vt/vttablet/onlineddl/vrepl.go index 26eb614e95a..2761c27c801 100644 --- a/go/vt/vttablet/onlineddl/vrepl.go +++ b/go/vt/vttablet/onlineddl/vrepl.go @@ -30,6 +30,7 @@ import ( "net/url" "strconv" "strings" + "time" "vitess.io/vitess/go/mysql/collations" "vitess.io/vitess/go/mysql/collations/charset" @@ -96,6 +97,19 @@ func (v *VReplStream) hasError() (isTerminal bool, vreplError error) { return false, nil } +// Lag returns the vreplication lag, as determined by the higher of the transaction timestamp and the time updated. +func (s *VReplStream) Lag() time.Duration { + durationDiff := func(t1, t2 time.Time) time.Duration { + return t1.Sub(t2).Abs() + } + timeNow := time.Now() + timeUpdated := time.Unix(s.timeUpdated, 0) + // Let's look at transaction timestamp. This gets written by any ongoing + // writes on the server (whether on this table or any other table) + transactionTimestamp := time.Unix(s.transactionTimestamp, 0) + return max(durationDiff(timeNow, timeUpdated), durationDiff(timeNow, transactionTimestamp)) +} + // VRepl is an online DDL helper for VReplication based migrations (ddl_strategy="online") type VRepl struct { workflow string From 96f4ac7562c4ae93319a28bda7a73bdf9041259a Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:23:49 +0200 Subject: [PATCH 19/22] A couple `endtoend` cluster tests enhancement (#17247) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- go/test/endtoend/cluster/vtctldclient_process.go | 5 ++++- go/test/endtoend/cluster/vttablet_process.go | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/go/test/endtoend/cluster/vtctldclient_process.go b/go/test/endtoend/cluster/vtctldclient_process.go index 892f03e27fe..8b401f59070 100644 --- a/go/test/endtoend/cluster/vtctldclient_process.go +++ b/go/test/endtoend/cluster/vtctldclient_process.go @@ -41,6 +41,7 @@ type VtctldClientProcess struct { TempDirectory string ZoneName string VtctldClientMajorVersion int + Quiet bool } // ExecuteCommand executes any vtctldclient command @@ -72,7 +73,9 @@ func (vtctldclient *VtctldClientProcess) ExecuteCommandWithOutput(args ...string filterDoubleDashArgs(pArgs, vtctldclient.VtctldClientMajorVersion)..., ) msg := binlogplayer.LimitString(strings.Join(tmpProcess.Args, " "), 256) // limit log line length - log.Infof("Executing vtctldclient with command: %v (attempt %d of %d)", msg, i+1, retries) + if !vtctldclient.Quiet { + log.Infof("Executing vtctldclient with command: %v (attempt %d of %d)", msg, i+1, retries) + } resultByte, err = tmpProcess.CombinedOutput() resultStr = string(resultByte) if err == nil || !shouldRetry(resultStr) { diff --git a/go/test/endtoend/cluster/vttablet_process.go b/go/test/endtoend/cluster/vttablet_process.go index 6c7a85ec533..6bc6e6b8d7f 100644 --- a/go/test/endtoend/cluster/vttablet_process.go +++ b/go/test/endtoend/cluster/vttablet_process.go @@ -459,6 +459,16 @@ func (vttablet *VttabletProcess) QueryTablet(query string, keyspace string, useD return executeQuery(conn, query) } +// MultiQueryTablet lets you execute a query in this tablet and get the result +func (vttablet *VttabletProcess) MultiQueryTablet(sql string, keyspace string, useDb bool) error { + conn, err := vttablet.TabletConn(keyspace, useDb) + if err != nil { + return err + } + defer conn.Close() + return executeMultiQuery(conn, sql) +} + // SemiSyncExtensionLoaded returns what type of semi-sync extension is loaded func (vttablet *VttabletProcess) SemiSyncExtensionLoaded() (mysql.SemiSyncType, error) { conn, err := vttablet.TabletConn("", false) From 69b381fe185b28bf6ed68eba63821f169d64559c Mon Sep 17 00:00:00 2001 From: Tim Vaillancourt Date: Tue, 26 Nov 2024 12:39:05 +0100 Subject: [PATCH 20/22] `vtorc`: make SQL formatting consistent (#17154) Signed-off-by: Tim Vaillancourt Signed-off-by: Manan Gupta Co-authored-by: Manan Gupta --- go/vt/vtorc/db/db.go | 18 +- go/vt/vtorc/inst/analysis_dao.go | 62 ++--- go/vt/vtorc/inst/audit_dao.go | 24 +- go/vt/vtorc/inst/instance_dao.go | 276 +++++++++++---------- go/vt/vtorc/inst/instance_dao_test.go | 46 ++-- go/vt/vtorc/inst/tablet_dao.go | 44 ++-- go/vt/vtorc/logic/disable_recovery.go | 33 ++- go/vt/vtorc/logic/tablet_discovery.go | 2 +- go/vt/vtorc/logic/topology_recovery_dao.go | 157 ++++++------ go/vt/vtorc/process/health.go | 9 +- 10 files changed, 358 insertions(+), 313 deletions(-) diff --git a/go/vt/vtorc/db/db.go b/go/vt/vtorc/db/db.go index 64143477645..4bb22b65b5a 100644 --- a/go/vt/vtorc/db/db.go +++ b/go/vt/vtorc/db/db.go @@ -58,13 +58,13 @@ func OpenVTOrc() (db *sql.DB, err error) { // registerVTOrcDeployment updates the vtorc_db_deployments table upon successful deployment func registerVTOrcDeployment(db *sql.DB) error { - query := ` - replace into vtorc_db_deployments ( - deployed_version, deployed_timestamp - ) values ( - ?, datetime('now') - ) - ` + query := `REPLACE INTO vtorc_db_deployments ( + deployed_version, + deployed_timestamp + ) VALUES ( + ?, + DATETIME('now') + )` if _, err := execInternal(db, query, ""); err != nil { log.Fatalf("Unable to write to vtorc_db_deployments: %+v", err) } @@ -116,9 +116,7 @@ func initVTOrcDB(db *sql.DB) error { // execInternal func execInternal(db *sql.DB, query string, args ...any) (sql.Result, error) { - var err error - res, err := sqlutils.ExecNoPrepare(db, query, args...) - return res, err + return sqlutils.ExecNoPrepare(db, query, args...) } // ExecVTOrc will execute given query on the vtorc backend database. diff --git a/go/vt/vtorc/inst/analysis_dao.go b/go/vt/vtorc/inst/analysis_dao.go index 25d93a6864b..e44538e694c 100644 --- a/go/vt/vtorc/inst/analysis_dao.go +++ b/go/vt/vtorc/inst/analysis_dao.go @@ -69,8 +69,7 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna // TODO(sougou); deprecate ReduceReplicationAnalysisCount args := sqlutils.Args(config.Config.ReasonableReplicationLagSeconds, ValidSecondsFromSeenToLastAttemptedCheck(), config.Config.ReasonableReplicationLagSeconds, keyspace, shard) - query := ` - SELECT + query := `SELECT vitess_tablet.info AS tablet_info, vitess_tablet.tablet_type, vitess_tablet.primary_timestamp, @@ -91,13 +90,13 @@ func GetReplicationAnalysis(keyspace string, shard string, hints *ReplicationAna IFNULL( primary_instance.binary_log_file = database_instance_stale_binlog_coordinates.binary_log_file AND primary_instance.binary_log_pos = database_instance_stale_binlog_coordinates.binary_log_pos - AND database_instance_stale_binlog_coordinates.first_seen < datetime('now', printf('-%d second', ?)), + AND database_instance_stale_binlog_coordinates.first_seen < DATETIME('now', PRINTF('-%d SECOND', ?)), 0 ) ) AS is_stale_binlog_coordinates, MIN( primary_instance.last_checked <= primary_instance.last_seen - and primary_instance.last_attempted_check <= datetime(primary_instance.last_seen, printf('+%d second', ?)) + and primary_instance.last_attempted_check <= DATETIME(primary_instance.last_seen, PRINTF('+%d SECOND', ?)) ) = 1 AS is_last_check_valid, /* To be considered a primary, traditional async replication must not be present/valid AND the host should either */ /* not be a replication group member OR be the primary of the replication group */ @@ -655,13 +654,13 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC // Find if the lastAnalysisHasChanged or not while updating the row if it has. lastAnalysisChanged := false { - sqlResult, err := db.ExecVTOrc(` - update database_instance_last_analysis set + sqlResult, err := db.ExecVTOrc(`UPDATE database_instance_last_analysis + SET analysis = ?, - analysis_timestamp = datetime('now') - where + analysis_timestamp = DATETIME('now') + WHERE alias = ? - and analysis != ? + AND analysis != ? `, string(analysisCode), tabletAlias, string(analysisCode), ) @@ -682,13 +681,16 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC firstInsertion := false if !lastAnalysisChanged { // The insert only returns more than 1 row changed if this is the first insertion. - sqlResult, err := db.ExecVTOrc(` - insert or ignore into database_instance_last_analysis ( - alias, analysis_timestamp, analysis - ) values ( - ?, datetime('now'), ? - ) - `, + sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO database_instance_last_analysis ( + alias, + analysis_timestamp, + analysis + ) VALUES ( + ?, + DATETIME('now'), + ? + )`, tabletAlias, string(analysisCode), ) if err != nil { @@ -708,13 +710,16 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC return nil } - _, err := db.ExecVTOrc(` - insert into database_instance_analysis_changelog ( - alias, analysis_timestamp, analysis - ) values ( - ?, datetime('now'), ? - ) - `, + _, err := db.ExecVTOrc(`INSERT + INTO database_instance_analysis_changelog ( + alias, + analysis_timestamp, + analysis + ) VALUES ( + ?, + DATETIME('now'), + ? + )`, tabletAlias, string(analysisCode), ) if err == nil { @@ -727,12 +732,11 @@ func auditInstanceAnalysisInChangelog(tabletAlias string, analysisCode AnalysisC // ExpireInstanceAnalysisChangelog removes old-enough analysis entries from the changelog func ExpireInstanceAnalysisChangelog() error { - _, err := db.ExecVTOrc(` - delete - from database_instance_analysis_changelog - where - analysis_timestamp < datetime('now', printf('-%d hour', ?)) - `, + _, err := db.ExecVTOrc(`DELETE + FROM database_instance_analysis_changelog + WHERE + analysis_timestamp < DATETIME('now', PRINTF('-%d HOUR', ?)) + `, config.UnseenInstanceForgetHours, ) if err != nil { diff --git a/go/vt/vtorc/inst/audit_dao.go b/go/vt/vtorc/inst/audit_dao.go index 642fb187509..cbfd771e81c 100644 --- a/go/vt/vtorc/inst/audit_dao.go +++ b/go/vt/vtorc/inst/audit_dao.go @@ -55,14 +55,22 @@ func AuditOperation(auditType string, tabletAlias string, message string) error }() } if config.Config.AuditToBackendDB { - _, err := db.ExecVTOrc(` - insert - into audit ( - audit_timestamp, audit_type, alias, keyspace, shard, message - ) VALUES ( - datetime('now'), ?, ?, ?, ?, ? - ) - `, + _, err := db.ExecVTOrc(`INSERT + INTO audit ( + audit_timestamp, + audit_type, + alias, + keyspace, + shard, + message + ) VALUES ( + DATETIME('now'), + ?, + ?, + ?, + ?, + ? + )`, auditType, tabletAlias, keyspace, diff --git a/go/vt/vtorc/inst/instance_dao.go b/go/vt/vtorc/inst/instance_dao.go index bd437d1ddac..c8ff218710f 100644 --- a/go/vt/vtorc/inst/instance_dao.go +++ b/go/vt/vtorc/inst/instance_dao.go @@ -114,10 +114,15 @@ func ExecDBWriteFunc(f func() error) error { func ExpireTableData(tableName string, timestampColumn string) error { writeFunc := func() error { - _, err := db.ExecVTOrc( - fmt.Sprintf("delete from %s where %s < datetime('now', printf('-%%d DAY', ?))", tableName, timestampColumn), - config.Config.AuditPurgeDays, + query := fmt.Sprintf(`DELETE + FROM %s + WHERE + %s < DATETIME('now', PRINTF('-%%d DAY', ?)) + `, + tableName, + timestampColumn, ) + _, err := db.ExecVTOrc(query, config.Config.AuditPurgeDays) return err } return ExecDBWriteFunc(writeFunc) @@ -463,16 +468,16 @@ func ReadInstanceClusterAttributes(instance *Instance) (err error) { var primaryExecutedGtidSet string primaryDataFound := false - query := ` - select - replication_depth, - source_host, - source_port, - ancestry_uuid, - executed_gtid_set - from database_instance - where hostname=? and port=? - ` + query := `SELECT + replication_depth, + source_host, + source_port, + ancestry_uuid, + executed_gtid_set + FROM database_instance + WHERE + hostname = ? + AND port = ?` primaryHostname := instance.SourceHost primaryPort := instance.SourcePort args := sqlutils.Args(primaryHostname, primaryPort) @@ -604,20 +609,22 @@ func readInstancesByCondition(condition string, args []any, sort string) ([](*In if sort == "" { sort = `alias` } - query := fmt.Sprintf(` - select - *, - strftime('%%s', 'now') - strftime('%%s', last_checked) as seconds_since_last_checked, - ifnull(last_checked <= last_seen, 0) as is_last_check_valid, - strftime('%%s', 'now') - strftime('%%s', last_seen) as seconds_since_last_seen - from - vitess_tablet - left join database_instance using (alias, hostname, port) - where - %s - order by - %s - `, condition, sort) + query := fmt.Sprintf(`SELECT + *, + STRFTIME('%%s', 'now') - STRFTIME('%%s', last_checked) AS seconds_since_last_checked, + IFNULL(last_checked <= last_seen, 0) AS is_last_check_valid, + STRFTIME('%%s', 'now') - STRFTIME('%%s', last_seen) AS seconds_since_last_seen + FROM + vitess_tablet + LEFT JOIN database_instance USING (alias, hostname, port) + WHERE + %s + ORDER BY + %s + `, + condition, + sort, + ) err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error { instance := readInstanceRow(m) @@ -638,9 +645,7 @@ func readInstancesByCondition(condition string, args []any, sort string) ([](*In // ReadInstance reads an instance from the vtorc backend database func ReadInstance(tabletAlias string) (*Instance, bool, error) { - condition := ` - alias = ? - ` + condition := `alias = ?` instances, err := readInstancesByCondition(condition, sqlutils.Args(tabletAlias), "") // We know there will be at most one (alias is the PK). // And we expect to find one. @@ -657,18 +662,17 @@ func ReadInstance(tabletAlias string) (*Instance, bool, error) { // ReadProblemInstances reads all instances with problems func ReadProblemInstances(keyspace string, shard string) ([](*Instance), error) { condition := ` - keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) - and shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) - and ( - (last_seen < last_checked) - or (strftime('%%s', 'now') - strftime('%%s', last_checked) > ?) - or (replication_sql_thread_state not in (-1 ,1)) - or (replication_io_thread_state not in (-1 ,1)) - or (abs(cast(replication_lag_seconds as integer) - cast(sql_delay as integer)) > ?) - or (abs(cast(replica_lag_seconds as integer) - cast(sql_delay as integer)) > ?) - or (gtid_errant != '') - ) - ` + keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) + AND shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) + AND ( + (last_seen < last_checked) + OR (STRFTIME('%%s', 'now') - STRFTIME('%%s', last_checked) > ?) + OR (replication_sql_thread_state NOT IN (-1 ,1)) + OR (replication_io_thread_state NOT IN (-1 ,1)) + OR (ABS(CAST(replication_lag_seconds AS integer) - CAST(sql_delay AS integer)) > ?) + OR (ABS(CAST(replica_lag_seconds AS integer) - CAST(sql_delay AS integer)) > ?) + OR (gtid_errant != '') + )` args := sqlutils.Args(keyspace, keyspace, shard, shard, config.Config.InstancePollSeconds*5, config.Config.ReasonableReplicationLagSeconds, config.Config.ReasonableReplicationLagSeconds) return readInstancesByCondition(condition, args, "") @@ -677,10 +681,9 @@ func ReadProblemInstances(keyspace string, shard string) ([](*Instance), error) // ReadInstancesWithErrantGTIds reads all instances with errant GTIDs func ReadInstancesWithErrantGTIds(keyspace string, shard string) ([]*Instance, error) { condition := ` - keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) - and shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) - and gtid_errant != '' - ` + keyspace LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) + AND shard LIKE (CASE WHEN ? = '' THEN '%' ELSE ? END) + AND gtid_errant != ''` args := sqlutils.Args(keyspace, keyspace, shard, shard) return readInstancesByCondition(condition, args, "") @@ -688,15 +691,14 @@ func ReadInstancesWithErrantGTIds(keyspace string, shard string) ([]*Instance, e // GetKeyspaceShardName gets the keyspace shard name for the given instance key func GetKeyspaceShardName(tabletAlias string) (keyspace string, shard string, err error) { - query := ` - select - keyspace, - shard - from - vitess_tablet - where - alias = ? - ` + query := `SELECT + keyspace, + shard + FROM + vitess_tablet + WHERE + alias = ? + ` err = db.QueryVTOrc(query, sqlutils.Args(tabletAlias), func(m sqlutils.RowMap) error { keyspace = m.GetString("keyspace") shard = m.GetString("shard") @@ -719,27 +721,26 @@ func GetKeyspaceShardName(tabletAlias string) (keyspace string, shard string, er // the instance. func ReadOutdatedInstanceKeys() ([]string, error) { var res []string - query := ` - SELECT - alias - FROM - database_instance - WHERE - CASE - WHEN last_attempted_check <= last_checked - THEN last_checked < datetime('now', printf('-%d second', ?)) - ELSE last_checked < datetime('now', printf('-%d second', ?)) - END - UNION - SELECT - vitess_tablet.alias - FROM - vitess_tablet LEFT JOIN database_instance ON ( - vitess_tablet.alias = database_instance.alias - ) - WHERE - database_instance.alias IS NULL - ` + query := `SELECT + alias + FROM + database_instance + WHERE + CASE + WHEN last_attempted_check <= last_checked + THEN last_checked < DATETIME('now', PRINTF('-%d SECOND', ?)) + ELSE last_checked < DATETIME('now', PRINTF('-%d SECOND', ?)) + END + UNION + SELECT + vitess_tablet.alias + FROM + vitess_tablet LEFT JOIN database_instance ON ( + vitess_tablet.alias = database_instance.alias + ) + WHERE + database_instance.alias IS NULL + ` args := sqlutils.Args(config.Config.InstancePollSeconds, 2*config.Config.InstancePollSeconds) err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error { @@ -782,12 +783,17 @@ func mkInsert(table string, columns []string, values []string, nrRows int, inser } col := strings.Join(columns, ", ") - q.WriteString(fmt.Sprintf(`%s %s - (%s) - VALUES - %s - `, - insertStr, table, col, val.String())) + query := fmt.Sprintf(`%s %s + (%s) + VALUES + %s + `, + insertStr, + table, + col, + val.String(), + ) + q.WriteString(query) return q.String(), nil } @@ -873,13 +879,13 @@ func mkInsertForInstances(instances []*Instance, instanceWasActuallyFound bool, for i := range columns { values[i] = "?" } - values[3] = "datetime('now')" // last_checked - values[4] = "datetime('now')" // last_attempted_check + values[3] = "DATETIME('now')" // last_checked + values[4] = "DATETIME('now')" // last_attempted_check values[5] = "1" // last_check_partial_success if updateLastSeen { columns = append(columns, "last_seen") - values = append(values, "datetime('now')") + values = append(values, "DATETIME('now')") } var args []any @@ -995,14 +1001,13 @@ func WriteInstance(instance *Instance, instanceWasActuallyFound bool, lastError // for a given instance func UpdateInstanceLastChecked(tabletAlias string, partialSuccess bool) error { writeFunc := func() error { - _, err := db.ExecVTOrc(` - update - database_instance - set - last_checked = datetime('now'), - last_check_partial_success = ? - where - alias = ?`, + _, err := db.ExecVTOrc(`UPDATE database_instance + SET + last_checked = DATETIME('now'), + last_check_partial_success = ? + WHERE + alias = ? + `, partialSuccess, tabletAlias, ) @@ -1024,13 +1029,12 @@ func UpdateInstanceLastChecked(tabletAlias string, partialSuccess bool) error { // we have a "hanging" issue. func UpdateInstanceLastAttemptedCheck(tabletAlias string) error { writeFunc := func() error { - _, err := db.ExecVTOrc(` - update - database_instance - set - last_attempted_check = datetime('now') - where - alias = ?`, + _, err := db.ExecVTOrc(`UPDATE database_instance + SET + last_attempted_check = DATETIME('now') + WHERE + alias = ? + `, tabletAlias, ) if err != nil { @@ -1061,11 +1065,11 @@ func ForgetInstance(tabletAlias string) error { currentErrantGTIDCount.Reset(tabletAlias) // Delete from the 'vitess_tablet' table. - _, err := db.ExecVTOrc(` - delete - from vitess_tablet - where - alias = ?`, + _, err := db.ExecVTOrc(`DELETE + FROM vitess_tablet + WHERE + alias = ? + `, tabletAlias, ) if err != nil { @@ -1074,11 +1078,11 @@ func ForgetInstance(tabletAlias string) error { } // Also delete from the 'database_instance' table. - sqlResult, err := db.ExecVTOrc(` - delete - from database_instance - where - alias = ?`, + sqlResult, err := db.ExecVTOrc(`DELETE + FROM database_instance + WHERE + alias = ? + `, tabletAlias, ) if err != nil { @@ -1102,11 +1106,11 @@ func ForgetInstance(tabletAlias string) error { // ForgetLongUnseenInstances will remove entries of all instances that have long since been last seen. func ForgetLongUnseenInstances() error { - sqlResult, err := db.ExecVTOrc(` - delete - from database_instance - where - last_seen < datetime('now', printf('-%d hour', ?))`, + sqlResult, err := db.ExecVTOrc(`DELETE + FROM database_instance + WHERE + last_seen < DATETIME('now', PRINTF('-%d HOUR', ?)) + `, config.UnseenInstanceForgetHours, ) if err != nil { @@ -1127,18 +1131,26 @@ func ForgetLongUnseenInstances() error { // SnapshotTopologies records topology graph for all existing topologies func SnapshotTopologies() error { writeFunc := func() error { - _, err := db.ExecVTOrc(` - insert or ignore into - database_instance_topology_history (snapshot_unix_timestamp, - alias, hostname, port, source_host, source_port, keyspace, shard, version) - select - strftime('%s', 'now'), - vitess_tablet.alias, vitess_tablet.hostname, vitess_tablet.port, - database_instance.source_host, database_instance.source_port, + _, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO database_instance_topology_history ( + snapshot_unix_timestamp, + alias, + hostname, + port, + source_host, + source_port, + keyspace, + shard, + version + ) + SELECT + STRFTIME('%s', 'now'), + vitess_tablet.alias, vitess_tablet.hostname, vitess_tablet.port, + database_instance.source_host, database_instance.source_port, vitess_tablet.keyspace, vitess_tablet.shard, database_instance.version - from - vitess_tablet left join database_instance using (alias, hostname, port) - `, + FROM + vitess_tablet LEFT JOIN database_instance USING (alias, hostname, port) + `, ) if err != nil { log.Error(err) @@ -1156,10 +1168,12 @@ func ExpireStaleInstanceBinlogCoordinates() error { expireSeconds = config.StaleInstanceCoordinatesExpireSeconds } writeFunc := func() error { - _, err := db.ExecVTOrc(` - delete from database_instance_stale_binlog_coordinates - where first_seen < datetime('now', printf('-%d second', ?)) - `, expireSeconds, + _, err := db.ExecVTOrc(`DELETE + FROM database_instance_stale_binlog_coordinates + WHERE + first_seen < DATETIME('now', PRINTF('-%d SECOND', ?)) + `, + expireSeconds, ) if err != nil { log.Error(err) @@ -1181,7 +1195,7 @@ func GetDatabaseState() (string, error) { ts := tableState{ TableName: tableName, } - err := db.QueryVTOrc("select * from "+tableName, nil, func(rowMap sqlutils.RowMap) error { + err := db.QueryVTOrc("SELECT * FROM "+tableName, nil, func(rowMap sqlutils.RowMap) error { ts.Rows = append(ts.Rows, rowMap) return nil }) diff --git a/go/vt/vtorc/inst/instance_dao_test.go b/go/vt/vtorc/inst/instance_dao_test.go index cb2064d10c0..f248ded5e2b 100644 --- a/go/vt/vtorc/inst/instance_dao_test.go +++ b/go/vt/vtorc/inst/instance_dao_test.go @@ -66,7 +66,7 @@ func TestMkInsertSingle(t *testing.T) { replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid, source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen) VALUES - (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')) + (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')) ` a1 := `zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT, FULL, false, false, , 0, , 0, 0, 0, @@ -89,9 +89,9 @@ func TestMkInsertThree(t *testing.T) { replica_sql_running, replica_io_running, replication_sql_thread_state, replication_io_thread_state, has_replication_filters, supports_oracle_gtid, oracle_gtid, source_uuid, ancestry_uuid, executed_gtid_set, gtid_mode, gtid_purged, gtid_errant, mariadb_gtid, pseudo_gtid, source_log_file, read_source_log_pos, relay_source_log_file, exec_source_log_pos, relay_log_file, relay_log_pos, last_sql_error, last_io_error, replication_lag_seconds, replica_lag_seconds, sql_delay, data_center, region, physical_environment, replication_depth, is_co_primary, has_replication_credentials, allow_tls, semi_sync_enforced, semi_sync_primary_enabled, semi_sync_primary_timeout, semi_sync_primary_wait_for_replica_count, semi_sync_replica_enabled, semi_sync_primary_status, semi_sync_primary_clients, semi_sync_replica_status, last_discovery_latency, last_seen) VALUES - (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')), - (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')), - (?, ?, ?, datetime('now'), datetime('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now')) + (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')), + (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')), + (?, ?, ?, DATETIME('now'), DATETIME('now'), 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, DATETIME('now')) ` a3 := ` zone1-i710, i710, 3306, 710, , 5.6.7, 5.6, MySQL, false, false, STATEMENT, FULL, false, false, , 0, , 0, 0, 0, false, false, 0, 0, false, false, false, , , , , , , false, false, , 0, mysql.000007, 10, , 0, , , {0 false}, {0 false}, 0, , , , 0, false, false, false, false, false, 0, 0, false, false, 0, false, 0, @@ -429,27 +429,27 @@ func TestReadOutdatedInstanceKeys(t *testing.T) { }{ { name: "No problems", - sql: []string{"update database_instance set last_checked = datetime('now')"}, + sql: []string{"update database_instance set last_checked = DATETIME('now')"}, instancesRequired: nil, }, { name: "One instance is outdated", sql: []string{ - "update database_instance set last_checked = datetime('now')", - "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'", + "update database_instance set last_checked = DATETIME('now')", + "update database_instance set last_checked = DATETIME('now', '-1 hour') where alias = 'zone1-0000000100'", }, instancesRequired: []string{"zone1-0000000100"}, }, { name: "One instance doesn't have myql data", sql: []string{ - "update database_instance set last_checked = datetime('now')", + "update database_instance set last_checked = DATETIME('now')", `INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`, }, instancesRequired: []string{"zone1-0000000103"}, }, { name: "One instance doesn't have myql data and one is outdated", sql: []string{ - "update database_instance set last_checked = datetime('now')", - "update database_instance set last_checked = datetime('now', '-1 hour') where alias = 'zone1-0000000100'", + "update database_instance set last_checked = DATETIME('now')", + "update database_instance set last_checked = DATETIME('now', '-1 hour') where alias = 'zone1-0000000100'", `INSERT INTO vitess_tablet VALUES('zone1-0000000103','localhost',7706,'ks','0','zone1',2,'0001-01-01 00:00:00+00:00','');`, }, instancesRequired: []string{"zone1-0000000103", "zone1-0000000100"}, @@ -486,10 +486,10 @@ func TestReadOutdatedInstanceKeys(t *testing.T) { errInDataCollection := db.QueryVTOrcRowsMap(`select alias, last_checked, last_attempted_check, -ROUND((JULIANDAY(datetime('now')) - JULIANDAY(last_checked)) * 86400) AS difference, +ROUND((JULIANDAY(DATETIME('now')) - JULIANDAY(last_checked)) * 86400) AS difference, last_attempted_check <= last_checked as use1, -last_checked < datetime('now', '-1500 second') as is_outdated1, -last_checked < datetime('now', '-3000 second') as is_outdated2 +last_checked < DATETIME('now', '-1500 second') as is_outdated1, +last_checked < DATETIME('now', '-3000 second') as is_outdated2 from database_instance`, func(rowMap sqlutils.RowMap) error { log.Errorf("Row in database_instance - %+v", rowMap) return nil @@ -513,12 +513,12 @@ func TestUpdateInstanceLastChecked(t *testing.T) { name: "Verify updated last checked", tabletAlias: "zone1-0000000100", partialSuccess: false, - conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = false", + conditionToCheck: "last_checked >= DATETIME('now', '-30 second') and last_check_partial_success = false", }, { name: "Verify partial success", tabletAlias: "zone1-0000000100", partialSuccess: true, - conditionToCheck: "last_checked >= datetime('now', '-30 second') and last_check_partial_success = true", + conditionToCheck: "last_checked >= DATETIME('now', '-30 second') and last_check_partial_success = true", }, { name: "Verify no error on unknown tablet", tabletAlias: "unknown tablet", @@ -564,7 +564,7 @@ func TestUpdateInstanceLastAttemptedCheck(t *testing.T) { { name: "Verify updated last checked", tabletAlias: "zone1-0000000100", - conditionToCheck: "last_attempted_check >= datetime('now', '-30 second')", + conditionToCheck: "last_attempted_check >= DATETIME('now', '-30 second')", }, { name: "Verify no error on unknown tablet", tabletAlias: "unknown tablet", @@ -737,19 +737,19 @@ func TestExpireTableData(t *testing.T) { tableName: "audit", timestampColumn: "audit_timestamp", expectedRowCount: 1, - insertQuery: `insert into audit (audit_id, audit_timestamp, audit_type, alias, message, keyspace, shard) values -(1, datetime('now', '-50 DAY'), 'a','a','a','a','a'), -(2, datetime('now', '-5 DAY'), 'a','a','a','a','a')`, + insertQuery: `INSERT INTO audit (audit_id, audit_timestamp, audit_type, alias, message, keyspace, shard) VALUES +(1, DATETIME('now', '-50 DAY'), 'a','a','a','a','a'), +(2, DATETIME('now', '-5 DAY'), 'a','a','a','a','a')`, }, { name: "ExpireRecoveryDetectionHistory", tableName: "recovery_detection", timestampColumn: "detection_timestamp", expectedRowCount: 2, - insertQuery: `insert into recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) values -(1, datetime('now', '-3 DAY'),'a','a','a','a'), -(2, datetime('now', '-5 DAY'),'a','a','a','a'), -(3, datetime('now', '-15 DAY'),'a','a','a','a')`, + insertQuery: `INSERT INTO recovery_detection (detection_id, detection_timestamp, alias, analysis, keyspace, shard) VALUES +(1, DATETIME('now', '-3 DAY'),'a','a','a','a'), +(2, DATETIME('now', '-5 DAY'),'a','a','a','a'), +(3, DATETIME('now', '-15 DAY'),'a','a','a','a')`, }, } for _, tt := range tests { diff --git a/go/vt/vtorc/inst/tablet_dao.go b/go/vt/vtorc/inst/tablet_dao.go index af304292a70..f48f2b97370 100644 --- a/go/vt/vtorc/inst/tablet_dao.go +++ b/go/vt/vtorc/inst/tablet_dao.go @@ -56,13 +56,13 @@ func fullStatus(tabletAlias string) (*replicationdatapb.FullStatus, error) { // ReadTablet reads the vitess tablet record. func ReadTablet(tabletAlias string) (*topodatapb.Tablet, error) { - query := ` - select - info - from - vitess_tablet - where alias = ? - ` + query := `SELECT + info + FROM + vitess_tablet + WHERE + alias = ? + ` args := sqlutils.Args(tabletAlias) tablet := &topodatapb.Tablet{} opts := prototext.UnmarshalOptions{DiscardUnknown: true} @@ -84,14 +84,28 @@ func SaveTablet(tablet *topodatapb.Tablet) error { if err != nil { return err } - _, err = db.ExecVTOrc(` - replace - into vitess_tablet ( - alias, hostname, port, cell, keyspace, shard, tablet_type, primary_timestamp, info - ) values ( - ?, ?, ?, ?, ?, ?, ?, ?, ? - ) - `, + _, err = db.ExecVTOrc(`REPLACE + INTO vitess_tablet ( + alias, + hostname, + port, + cell, + keyspace, + shard, + tablet_type, + primary_timestamp, + info + ) VALUES ( + ?, + ?, + ?, + ?, + ?, + ?, + ?, + ?, + ? + )`, topoproto.TabletAliasString(tablet.Alias), tablet.MysqlHostname, int(tablet.MysqlPort), diff --git a/go/vt/vtorc/logic/disable_recovery.go b/go/vt/vtorc/logic/disable_recovery.go index 60650798876..c5446eeb9ff 100644 --- a/go/vt/vtorc/logic/disable_recovery.go +++ b/go/vt/vtorc/logic/disable_recovery.go @@ -40,14 +40,13 @@ import ( // IsRecoveryDisabled returns true if Recoveries are disabled globally func IsRecoveryDisabled() (disabled bool, err error) { - query := ` - SELECT - COUNT(*) as mycount - FROM - global_recovery_disable - WHERE - disable_recovery=? - ` + query := `SELECT + COUNT(*) AS mycount + FROM + global_recovery_disable + WHERE + disable_recovery = ? + ` err = db.QueryVTOrc(query, sqlutils.Args(1), func(m sqlutils.RowMap) error { mycount := m.GetInt("mycount") disabled = (mycount > 0) @@ -63,21 +62,19 @@ func IsRecoveryDisabled() (disabled bool, err error) { // DisableRecovery ensures recoveries are disabled globally func DisableRecovery() error { - _, err := db.ExecVTOrc(` - INSERT OR IGNORE INTO global_recovery_disable - (disable_recovery) - VALUES (1) - `, - ) + _, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO global_recovery_disable ( + disable_recovery + ) VALUES (1)`) return err } // EnableRecovery ensures recoveries are enabled globally func EnableRecovery() error { // The "WHERE" clause is just to avoid full-scan reports by monitoring tools - _, err := db.ExecVTOrc(` - DELETE FROM global_recovery_disable WHERE disable_recovery >= 0 - `, - ) + _, err := db.ExecVTOrc(`DELETE + FROM global_recovery_disable + WHERE + disable_recovery >= 0`) return err } diff --git a/go/vt/vtorc/logic/tablet_discovery.go b/go/vt/vtorc/logic/tablet_discovery.go index e9bbcee35cb..1ee9e2cfefa 100644 --- a/go/vt/vtorc/logic/tablet_discovery.go +++ b/go/vt/vtorc/logic/tablet_discovery.go @@ -66,7 +66,7 @@ func OpenTabletDiscovery() <-chan time.Time { ts = topo.Open() tmc = inst.InitializeTMC() // Clear existing cache and perform a new refresh. - if _, err := db.ExecVTOrc("delete from vitess_tablet"); err != nil { + if _, err := db.ExecVTOrc("DELETE FROM vitess_tablet"); err != nil { log.Error(err) } // We refresh all information from the topo once before we start the ticks to do it on a timer. diff --git a/go/vt/vtorc/logic/topology_recovery_dao.go b/go/vt/vtorc/logic/topology_recovery_dao.go index 730e6b2a158..137251c4fc8 100644 --- a/go/vt/vtorc/logic/topology_recovery_dao.go +++ b/go/vt/vtorc/logic/topology_recovery_dao.go @@ -30,21 +30,20 @@ import ( // InsertRecoveryDetection inserts the recovery analysis that has been detected. func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error { - sqlResult, err := db.ExecVTOrc(` - insert or ignore - into recovery_detection ( - alias, - analysis, - keyspace, - shard, - detection_timestamp - ) values ( - ?, - ?, - ?, - ?, - datetime('now') - )`, + sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO recovery_detection ( + alias, + analysis, + keyspace, + shard, + detection_timestamp + ) VALUES ( + ?, + ?, + ?, + ?, + DATETIME('now') + )`, analysisEntry.AnalyzedInstanceAlias, string(analysisEntry.Analysis), analysisEntry.ClusterDetails.Keyspace, @@ -65,26 +64,24 @@ func InsertRecoveryDetection(analysisEntry *inst.ReplicationAnalysis) error { func writeTopologyRecovery(topologyRecovery *TopologyRecovery) (*TopologyRecovery, error) { analysisEntry := topologyRecovery.AnalysisEntry - sqlResult, err := db.ExecVTOrc(` - insert or ignore - into topology_recovery ( - recovery_id, - alias, - start_recovery, - analysis, - keyspace, - shard, - detection_id - ) values ( - ?, - ?, - datetime('now'), - ?, - ?, - ?, - ? - ) - `, + sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO topology_recovery ( + recovery_id, + alias, + start_recovery, + analysis, + keyspace, + shard, + detection_id + ) VALUES ( + ?, + ?, + DATETIME('now'), + ?, + ?, + ?, + ? + )`, sqlutils.NilIfZero(topologyRecovery.ID), analysisEntry.AnalyzedInstanceAlias, string(analysisEntry.Analysis), @@ -138,15 +135,16 @@ func AttemptRecoveryRegistration(analysisEntry *inst.ReplicationAnalysis) (*Topo // ResolveRecovery is called on completion of a recovery process and updates the recovery status. // It does not clear the "active period" as this still takes place in order to avoid flapping. func writeResolveRecovery(topologyRecovery *TopologyRecovery) error { - _, err := db.ExecVTOrc(` - update topology_recovery set - is_successful = ?, - successor_alias = ?, - all_errors = ?, - end_recovery = datetime('now') - where - recovery_id = ? - `, topologyRecovery.IsSuccessful, + _, err := db.ExecVTOrc(`UPDATE topology_recovery + SET + is_successful = ?, + successor_alias = ?, + all_errors = ?, + end_recovery = DATETIME('now') + WHERE + recovery_id = ? + `, + topologyRecovery.IsSuccessful, topologyRecovery.SuccessorAlias, strings.Join(topologyRecovery.AllErrors, "\n"), topologyRecovery.ID, @@ -160,26 +158,27 @@ func writeResolveRecovery(topologyRecovery *TopologyRecovery) error { // readRecoveries reads recovery entry/audit entries from topology_recovery func readRecoveries(whereCondition string, limit string, args []any) ([]*TopologyRecovery, error) { res := []*TopologyRecovery{} - query := fmt.Sprintf(` - select - recovery_id, - alias, - start_recovery, - IFNULL(end_recovery, '') AS end_recovery, - is_successful, - ifnull(successor_alias, '') as successor_alias, - analysis, - keyspace, - shard, - all_errors, - detection_id - from + query := fmt.Sprintf(`SELECT + recovery_id, + alias, + start_recovery, + IFNULL(end_recovery, '') AS end_recovery, + is_successful, + IFNULL(successor_alias, '') AS successor_alias, + analysis, + keyspace, + shard, + all_errors, + detection_id + FROM topology_recovery %s - order by - recovery_id desc + ORDER BY recovery_id DESC %s - `, whereCondition, limit) + `, + whereCondition, + limit, + ) err := db.QueryVTOrc(query, args, func(m sqlutils.RowMap) error { topologyRecovery := *NewTopologyRecovery(inst.ReplicationAnalysis{}) topologyRecovery.ID = m.GetInt64("recovery_id") @@ -211,11 +210,10 @@ func readRecoveries(whereCondition string, limit string, args []any) ([]*Topolog // ReadActiveClusterRecoveries reads recoveries that are ongoing for the given cluster. func ReadActiveClusterRecoveries(keyspace string, shard string) ([]*TopologyRecovery, error) { - whereClause := ` - where - end_recovery IS NULL - and keyspace=? - and shard=?` + whereClause := `WHERE + end_recovery IS NULL + AND keyspace = ? + AND shard = ?` return readRecoveries(whereClause, ``, sqlutils.Args(keyspace, shard)) } @@ -225,23 +223,30 @@ func ReadRecentRecoveries(page int) ([]*TopologyRecovery, error) { whereClause := "" var args []any if len(whereConditions) > 0 { - whereClause = fmt.Sprintf("where %s", strings.Join(whereConditions, " and ")) + whereClause = fmt.Sprintf("WHERE %s", strings.Join(whereConditions, " AND ")) } - limit := ` - limit ? - offset ?` + limit := `LIMIT ? OFFSET ?` args = append(args, config.AuditPageSize, page*config.AuditPageSize) return readRecoveries(whereClause, limit, args) } // writeTopologyRecoveryStep writes down a single step in a recovery process func writeTopologyRecoveryStep(topologyRecoveryStep *TopologyRecoveryStep) error { - sqlResult, err := db.ExecVTOrc(` - insert or ignore - into topology_recovery_steps ( - recovery_step_id, recovery_id, audit_at, message - ) values (?, ?, datetime('now'), ?) - `, sqlutils.NilIfZero(topologyRecoveryStep.ID), topologyRecoveryStep.RecoveryID, topologyRecoveryStep.Message, + sqlResult, err := db.ExecVTOrc(`INSERT OR IGNORE + INTO topology_recovery_steps ( + recovery_step_id, + recovery_id, + audit_at, + message + ) VALUES ( + ?, + ?, + DATETIME('now'), + ? + )`, + sqlutils.NilIfZero(topologyRecoveryStep.ID), + topologyRecoveryStep.RecoveryID, + topologyRecoveryStep.Message, ) if err != nil { log.Error(err) diff --git a/go/vt/vtorc/process/health.go b/go/vt/vtorc/process/health.go index 87a11733f66..f72d7b05210 100644 --- a/go/vt/vtorc/process/health.go +++ b/go/vt/vtorc/process/health.go @@ -35,12 +35,17 @@ var ThisNodeHealth = &NodeHealth{} // writeHealthToDatabase writes to the database and returns if it was successful. func writeHealthToDatabase() bool { - _, err := db.ExecVTOrc("delete from node_health") + _, err := db.ExecVTOrc("DELETE FROM node_health") if err != nil { log.Error(err) return false } - sqlResult, err := db.ExecVTOrc(`insert into node_health (last_seen_active) values (datetime('now'))`) + sqlResult, err := db.ExecVTOrc(`INSERT + INTO node_health ( + last_seen_active + ) VALUES ( + DATETIME('now') + )`) if err != nil { log.Error(err) return false From 1f23496f0fd88159c43923f080c0af6a991f9413 Mon Sep 17 00:00:00 2001 From: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:26:36 +0200 Subject: [PATCH 21/22] Multi-metrics throttler: adding InnoDB `history_list_length` metric (#17262) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> --- .../throttler_topo/throttler_test.go | 34 ++++++++++ .../tabletserver/throttle/base/metric_name.go | 1 + .../throttle/base/metric_name_test.go | 4 +- .../self_metric_innodb_history_list_length.go | 68 +++++++++++++++++++ .../tabletserver/throttle/throttler_test.go | 17 +++++ 5 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go diff --git a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go index f96069c81b8..d5a1053d77d 100644 --- a/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go +++ b/go/test/endtoend/tabletmanager/throttler_topo/throttler_test.go @@ -175,6 +175,16 @@ func throttledApps(tablet *cluster.Vttablet) (resp *http.Response, respBody stri return resp, respBody, err } +func vitessThrottleCheck(tablet *cluster.Vttablet, skipRequestHeartbeats bool) (*vtctldatapb.CheckThrottlerResponse, error) { + flags := &throttle.CheckFlags{ + Scope: base.ShardScope, + SkipRequestHeartbeats: skipRequestHeartbeats, + MultiMetricsEnabled: true, + } + resp, err := throttler.CheckThrottler(clusterInstance, tablet, throttlerapp.VitessName, flags) + return resp, err +} + func throttleCheck(tablet *cluster.Vttablet, skipRequestHeartbeats bool) (*vtctldatapb.CheckThrottlerResponse, error) { flags := &throttle.CheckFlags{ Scope: base.ShardScope, @@ -305,6 +315,17 @@ func TestInitialThrottler(t *testing.T) { waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_THRESHOLD_EXCEEDED) }) t.Run("setting high threshold", func(t *testing.T) { + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.LoadAvgMetricName.String(), Threshold: 5555} + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) + assert.NoError(t, err) + } + { + req := &vtctldatapb.UpdateThrottlerConfigRequest{MetricName: base.MysqldLoadAvgMetricName.String(), Threshold: 5555} + _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) + assert.NoError(t, err) + } + req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: extremelyHighThreshold.Seconds()} _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) assert.NoError(t, err) @@ -317,6 +338,19 @@ func TestInitialThrottler(t *testing.T) { t.Run("validating OK response from throttler with high threshold", func(t *testing.T) { waitForThrottleCheckStatus(t, primaryTablet, tabletmanagerdatapb.CheckThrottlerResponseCode_OK) }) + t.Run("validating vitess app throttler check", func(t *testing.T) { + resp, err := vitessThrottleCheck(primaryTablet, true) + require.NoError(t, err) + for _, metricName := range base.KnownMetricNames { + t.Run(metricName.String(), func(t *testing.T) { + assert.Contains(t, resp.Check.Metrics, metricName.String()) + metric := resp.Check.Metrics[metricName.String()] + require.NotNil(t, metric) + assert.Equal(t, tabletmanagerdatapb.CheckThrottlerResponseCode_OK, metric.ResponseCode, "metric: %+v", metric) + }) + } + }) + t.Run("setting low threshold", func(t *testing.T) { req := &vtctldatapb.UpdateThrottlerConfigRequest{Threshold: throttler.DefaultThreshold.Seconds()} _, err := throttler.UpdateThrottlerTopoConfig(clusterInstance, req, nil, nil) diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go index 607192b9c0c..43bd2d17a8c 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/metric_name.go +++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name.go @@ -65,6 +65,7 @@ const ( ThreadsRunningMetricName MetricName = "threads_running" CustomMetricName MetricName = "custom" LoadAvgMetricName MetricName = "loadavg" + HistoryListLengthMetricName MetricName = "history_list_length" MysqldLoadAvgMetricName MetricName = "mysqld-loadavg" MysqldDatadirUsedRatioMetricName MetricName = "mysqld-datadir-used-ratio" ) diff --git a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go index ffd7f674cc2..c2e2b44b36f 100644 --- a/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go +++ b/go/vt/vttablet/tabletserver/throttle/base/metric_name_test.go @@ -241,15 +241,17 @@ func TestKnownMetricNames(t *testing.T) { assert.Contains(t, KnownMetricNames, LoadAvgMetricName) assert.Contains(t, KnownMetricNames, CustomMetricName) assert.Contains(t, KnownMetricNames, DefaultMetricName) + assert.Contains(t, KnownMetricNames, HistoryListLengthMetricName) assert.Contains(t, KnownMetricNames, MysqldLoadAvgMetricName) assert.Contains(t, KnownMetricNames, MysqldDatadirUsedRatioMetricName) } -func TestSingleWordCamelKnownMetricNames(t *testing.T) { +func TestKnownMetricNamesPascalCase(t *testing.T) { expectCases := map[MetricName]string{ LagMetricName: "Lag", ThreadsRunningMetricName: "ThreadsRunning", LoadAvgMetricName: "Loadavg", + HistoryListLengthMetricName: "HistoryListLength", CustomMetricName: "Custom", DefaultMetricName: "Default", MysqldLoadAvgMetricName: "MysqldLoadavg", diff --git a/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go b/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go new file mode 100644 index 00000000000..2696b1750ea --- /dev/null +++ b/go/vt/vttablet/tabletserver/throttle/base/self_metric_innodb_history_list_length.go @@ -0,0 +1,68 @@ +/* +Copyright 2024 The Vitess Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package base + +import ( + "context" + "math" + "sync/atomic" + "time" +) + +var ( + historyListLengthQuery = "select count as history_len from information_schema.INNODB_METRICS where name = 'trx_rseg_history_len'" + + cachedHistoryListLengthMetric atomic.Pointer[ThrottleMetric] + historyListLengthCacheDuration = 5 * time.Second + historyListLengthDefaultThreshold = math.Pow10(9) +) + +var _ SelfMetric = registerSelfMetric(&HistoryListLengthSelfMetric{}) + +type HistoryListLengthSelfMetric struct { +} + +func (m *HistoryListLengthSelfMetric) Name() MetricName { + return HistoryListLengthMetricName +} + +func (m *HistoryListLengthSelfMetric) DefaultScope() Scope { + return SelfScope +} + +func (m *HistoryListLengthSelfMetric) DefaultThreshold() float64 { + return historyListLengthDefaultThreshold +} + +func (m *HistoryListLengthSelfMetric) RequiresConn() bool { + return true +} + +func (m *HistoryListLengthSelfMetric) Read(ctx context.Context, params *SelfMetricReadParams) *ThrottleMetric { + // This function will be called sequentially, and therefore does not need strong mutex protection. Still, we use atomics + // to ensure correctness in case an external goroutine tries to read the metric concurrently. + metric := cachedHistoryListLengthMetric.Load() + if metric != nil { + return metric + } + metric = ReadSelfMySQLThrottleMetric(ctx, params.Conn, historyListLengthQuery) + cachedHistoryListLengthMetric.Store(metric) + time.AfterFunc(historyListLengthCacheDuration, func() { + cachedHistoryListLengthMetric.Store(nil) + }) + return metric +} diff --git a/go/vt/vttablet/tabletserver/throttle/throttler_test.go b/go/vt/vttablet/tabletserver/throttle/throttler_test.go index 0a1162b02d3..352e641fa35 100644 --- a/go/vt/vttablet/tabletserver/throttle/throttler_test.go +++ b/go/vt/vttablet/tabletserver/throttle/throttler_test.go @@ -71,6 +71,12 @@ var ( Value: 2.718, Err: nil, }, + base.HistoryListLengthMetricName: &base.ThrottleMetric{ + Scope: base.SelfScope, + Alias: "", + Value: 5, + Err: nil, + }, base.MysqldLoadAvgMetricName: &base.ThrottleMetric{ Scope: base.SelfScope, Alias: "", @@ -105,6 +111,11 @@ var ( ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, Value: 5.1, }, + base.HistoryListLengthMetricName.String(): { + StatusCode: http.StatusOK, + ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, + Value: 6, + }, base.MysqldLoadAvgMetricName.String(): { StatusCode: http.StatusOK, ResponseCode: tabletmanagerdatapb.CheckThrottlerResponseCode_OK, @@ -1853,6 +1864,7 @@ func TestChecks(t *testing.T) { assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because flags.Scope is set assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because flags.Scope is set assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because flags.Scope is set + assert.EqualValues(t, 5, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // self value, because flags.Scope is set assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because flags.Scope is set assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because flags.Scope is set for _, metric := range checkResult.Metrics { @@ -1914,6 +1926,7 @@ func TestChecks(t *testing.T) { assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, because flags.Scope is set assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value, because flags.Scope is set assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set + assert.EqualValues(t, 6, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // shard value, because flags.Scope is set assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, because flags.Scope is set assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, because flags.Scope is set for _, metric := range checkResult.Metrics { @@ -1948,6 +1961,7 @@ func TestChecks(t *testing.T) { assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // self value, because "self" is the default scope for threads_running assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // self value, because "self" is the default scope for custom assert.EqualValues(t, 2.718, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg + assert.EqualValues(t, 5, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // self value, because "self" is the default scope for loadavg assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // self value, because "self" is the default scope for loadavg assert.EqualValues(t, 0.85, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // self value, because "self" is the default scope for loadavg assert.EqualValues(t, base.ShardScope.String(), checkResult.Metrics[base.LagMetricName.String()].Scope) @@ -1970,6 +1984,7 @@ func TestChecks(t *testing.T) { base.MetricName("custom"), base.MetricName("shard/loadavg"), base.MetricName("shard/mysqld-loadavg"), + base.MetricName("self/history_list_length"), base.MetricName("self/mysqld-datadir-used-ratio"), base.MetricName("default"), } @@ -1986,6 +2001,7 @@ func TestChecks(t *testing.T) { assert.EqualValues(t, 26, checkResult.Metrics[base.ThreadsRunningMetricName.String()].Value) // shard value, even though scope name is in metric name assert.EqualValues(t, 17, checkResult.Metrics[base.CustomMetricName.String()].Value) // shard value because flags.Scope is set assert.EqualValues(t, 5.1, checkResult.Metrics[base.LoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set + assert.EqualValues(t, 6, checkResult.Metrics[base.HistoryListLengthMetricName.String()].Value) // shard value, even though scope name is in metric name assert.EqualValues(t, 0.3311, checkResult.Metrics[base.MysqldLoadAvgMetricName.String()].Value) // shard value, not because scope name is in metric name but because flags.Scope is set assert.EqualValues(t, 0.87, checkResult.Metrics[base.MysqldDatadirUsedRatioMetricName.String()].Value) // shard value, even though scope name is in metric name for _, metric := range checkResult.Metrics { @@ -2257,6 +2273,7 @@ func TestReplica(t *testing.T) { assert.Error(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold) assert.ErrorIs(t, metricResult.Error, base.ErrThresholdExceeded) case base.ThreadsRunningMetricName, + base.HistoryListLengthMetricName, base.MysqldLoadAvgMetricName, base.MysqldDatadirUsedRatioMetricName: assert.NoError(t, metricResult.Error, "metricName=%v, value=%v, threshold=%v", metricName, metricResult.Value, metricResult.Threshold) From 8648264f9049cd979669d6942731fe95dec79e15 Mon Sep 17 00:00:00 2001 From: Tim Vaillancourt Date: Tue, 26 Nov 2024 16:33:27 +0100 Subject: [PATCH 22/22] `vtorc`: cleanup init db handling (#17198) Signed-off-by: Tim Vaillancourt Signed-off-by: Manan Gupta Co-authored-by: Manan Gupta --- go/vt/vtorc/db/db.go | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/go/vt/vtorc/db/db.go b/go/vt/vtorc/db/db.go index 4bb22b65b5a..470e5364680 100644 --- a/go/vt/vtorc/db/db.go +++ b/go/vt/vtorc/db/db.go @@ -47,7 +47,9 @@ func OpenVTOrc() (db *sql.DB, err error) { db, fromCache, err = sqlutils.GetSQLiteDB(config.Config.SQLite3DataFile) if err == nil && !fromCache { log.Infof("Connected to vtorc backend: sqlite on %v", config.Config.SQLite3DataFile) - _ = initVTOrcDB(db) + if err := initVTOrcDB(db); err != nil { + log.Fatalf("Cannot initiate vtorc: %+v", err) + } } if db != nil { db.SetMaxOpenConns(1) @@ -76,19 +78,14 @@ func registerVTOrcDeployment(db *sql.DB) error { func deployStatements(db *sql.DB, queries []string) error { tx, err := db.Begin() if err != nil { - log.Fatal(err.Error()) return err } for _, query := range queries { if _, err := tx.Exec(query); err != nil { - log.Fatalf("Cannot initiate vtorc: %+v; query=%+v", err, query) return err } } - if err := tx.Commit(); err != nil { - log.Fatal(err.Error()) - } - return nil + return tx.Commit() } // ClearVTOrcDatabase is used to clear the VTOrc database. This function is meant to be used by tests to clear the @@ -96,7 +93,9 @@ func deployStatements(db *sql.DB, queries []string) error { func ClearVTOrcDatabase() { db, _, _ := sqlutils.GetSQLiteDB(config.Config.SQLite3DataFile) if db != nil { - _ = initVTOrcDB(db) + if err := initVTOrcDB(db); err != nil { + log.Fatalf("Cannot re-initiate vtorc: %+v", err) + } } } @@ -105,12 +104,18 @@ func ClearVTOrcDatabase() { func initVTOrcDB(db *sql.DB) error { log.Info("Initializing vtorc") log.Info("Migrating database schema") - _ = deployStatements(db, vtorcBackend) - _ = registerVTOrcDeployment(db) - - _, _ = ExecVTOrc(`PRAGMA journal_mode = WAL`) - _, _ = ExecVTOrc(`PRAGMA synchronous = NORMAL`) - + if err := deployStatements(db, vtorcBackend); err != nil { + return err + } + if err := registerVTOrcDeployment(db); err != nil { + return err + } + if _, err := ExecVTOrc(`PRAGMA journal_mode = WAL`); err != nil { + return err + } + if _, err := ExecVTOrc(`PRAGMA synchronous = NORMAL`); err != nil { + return err + } return nil }