From 4e82835ba7a551e9b590813515bbfa73d37060e3 Mon Sep 17 00:00:00 2001 From: Mike Fridman Date: Wed, 13 Mar 2024 13:27:36 -0400 Subject: [PATCH] Initial commit --- .gitattributes | 10 + .github/CODE_OF_CONDUCT.md | 133 + .github/dependabot.yml | 6 + .github/workflows/ci.yaml | 36 + .../workflows/emergency-review-bypass.yaml | 12 + .github/workflows/notify-approval-bypass.yaml | 13 + .github/workflows/pr-title.yaml | 18 + .github/workflows/windows.yaml | 39 + .gitignore | 2 + .golangci.yml | 66 + LICENSE | 201 + Makefile | 97 + README.md | 255 + buf.gen.yaml | 12 + buf.work.yaml | 3 + cmd/protoc-gen-bigquery/main.go | 25 + cmd/protoc-gen-jsonschema/main.go | 25 + cmd/protoc-gen-pubsub/main.go | 25 + go.mod | 78 + go.sum | 278 + .../cmd/bigquery-generate-testdata/main.go | 125 + .../cmd/bigquery-protobuf-uploader/main.go | 102 + internal/cmd/bigquery-schema-uploader/main.go | 80 + .../cmd/jsonschema-generate-testdata/main.go | 73 + internal/cmd/pubsub-generate-testdata/main.go | 66 + .../buf/protoschema/test/v1/bq_wkt_test.pb.go | 181 + .../buf/protoschema/test/v1/test_cases.pb.go | 392 ++ .../conformance/proto3/test_all_types.pb.go | 5297 +++++++++++++++++ internal/proto/buf.lock | 13 + internal/proto/buf.yaml | 7 + .../buf/protoschema/test/v1/bq_wkt_test.proto | 23 + .../buf/protoschema/test/v1/test_cases.proto | 68 + .../conformance/proto3/test_all_types.proto | 319 + internal/protoschema/bigquery/bigquery.go | 311 + .../protoschema/bigquery/bigquery_test.go | 41 + internal/protoschema/bigquery/options.go | 45 + internal/protoschema/golden/golden.go | 74 + internal/protoschema/jsonschema/jsonschema.go | 249 + .../protoschema/jsonschema/jsonschema_test.go | 44 + internal/protoschema/normalize/normalizer.go | 298 + internal/protoschema/normalize/options.go | 25 + .../plugin/pluginbigquery/pluginbigquery.go | 58 + .../pluginbigquery/pluginbigquery_test.go | 100 + .../pluginjsonschema/pluginjsonschema.go | 67 + .../pluginjsonschema/pluginjsonschema_test.go | 99 + .../plugin/pluginpubsub/pluginpubsub.go | 51 + .../plugin/pluginpubsub/pluginpubsub_test.go | 101 + internal/protoschema/protoschema.go | 20 + internal/protoschema/pubsub/pubsub.go | 54 + internal/protoschema/pubsub/pubsub_test.go | 36 + ...BigQueryWellknownTypeTest.TableSchema.json | 6 + ...1.BigQueryWellknownTypeTest.bigquery.proto | 5 + ...ma.test.v1.CustomBigQuery.TableSchema.json | 10 + ...hema.test.v1.CustomBigQuery.bigquery.proto | 299 + ...ema.test.v1.CustomOptions.TableSchema.json | 11 + ...chema.test.v1.CustomOptions.bigquery.proto | 9 + ...a.test.v1.NestedReference.TableSchema.json | 12 + ...ema.test.v1.NestedReference.bigquery.proto | 295 + ...mance.proto3.TestAllTypes.TableSchema.json | 2955 +++++++++ ...ormance.proto3.TestAllTypes.bigquery.proto | 294 + internal/testdata/codegenrequest/input.json | 1 + .../jsonschema-doc/test.TestAllTypes.yaml | 21 + ...t.v1.BigQueryWellknownTypeTest.schema.json | 11 + ...oschema.test.v1.CustomBigQuery.schema.json | 19 + ...toschema.test.v1.CustomOptions.schema.json | 19 + ...schema.test.v1.NestedReference.schema.json | 11 + ...ance.proto3.NestedTestAllTypes.schema.json | 14 + ...to3.TestAllTypes.NestedMessage.schema.json | 13 + ...onformance.proto3.TestAllTypes.schema.json | 2587 ++++++++ .../google.protobuf.Any.schema.json | 10 + .../google.protobuf.BoolValue.schema.json | 18 + .../google.protobuf.BytesValue.schema.json | 20 + .../google.protobuf.DoubleValue.schema.json | 48 + .../google.protobuf.Duration.schema.json | 26 + .../google.protobuf.FloatValue.schema.json | 48 + .../google.protobuf.Int32Value.schema.json | 22 + .../google.protobuf.Int64Value.schema.json | 22 + .../google.protobuf.ListValue.schema.json | 5 + .../google.protobuf.StringValue.schema.json | 18 + .../google.protobuf.Struct.schema.json | 5 + .../google.protobuf.Timestamp.schema.json | 26 + .../google.protobuf.UInt32Value.schema.json | 22 + .../google.protobuf.UInt64Value.schema.json | 22 + .../google.protobuf.Value.schema.json | 4 + ....v1.BigQueryWellknownTypeTest.pubsub.proto | 20 + ...schema.test.v1.CustomBigQuery.pubsub.proto | 315 + ...oschema.test.v1.CustomOptions.pubsub.proto | 8 + ...chema.test.v1.NestedReference.pubsub.proto | 310 + ...nce.proto3.NestedTestAllTypes.pubsub.proto | 307 + ...nformance.proto3.TestAllTypes.pubsub.proto | 307 + 90 files changed, 17928 insertions(+) create mode 100644 .gitattributes create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/emergency-review-bypass.yaml create mode 100644 .github/workflows/notify-approval-bypass.yaml create mode 100644 .github/workflows/pr-title.yaml create mode 100644 .github/workflows/windows.yaml create mode 100644 .gitignore create mode 100644 .golangci.yml create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 buf.gen.yaml create mode 100644 buf.work.yaml create mode 100644 cmd/protoc-gen-bigquery/main.go create mode 100644 cmd/protoc-gen-jsonschema/main.go create mode 100644 cmd/protoc-gen-pubsub/main.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/cmd/bigquery-generate-testdata/main.go create mode 100644 internal/cmd/bigquery-protobuf-uploader/main.go create mode 100644 internal/cmd/bigquery-schema-uploader/main.go create mode 100644 internal/cmd/jsonschema-generate-testdata/main.go create mode 100644 internal/cmd/pubsub-generate-testdata/main.go create mode 100644 internal/gen/proto/buf/protoschema/test/v1/bq_wkt_test.pb.go create mode 100644 internal/gen/proto/buf/protoschema/test/v1/test_cases.pb.go create mode 100644 internal/gen/proto/bufext/cel/expr/conformance/proto3/test_all_types.pb.go create mode 100644 internal/proto/buf.lock create mode 100644 internal/proto/buf.yaml create mode 100644 internal/proto/buf/protoschema/test/v1/bq_wkt_test.proto create mode 100644 internal/proto/buf/protoschema/test/v1/test_cases.proto create mode 100644 internal/proto/bufext/cel/expr/conformance/proto3/test_all_types.proto create mode 100644 internal/protoschema/bigquery/bigquery.go create mode 100644 internal/protoschema/bigquery/bigquery_test.go create mode 100644 internal/protoschema/bigquery/options.go create mode 100644 internal/protoschema/golden/golden.go create mode 100644 internal/protoschema/jsonschema/jsonschema.go create mode 100644 internal/protoschema/jsonschema/jsonschema_test.go create mode 100644 internal/protoschema/normalize/normalizer.go create mode 100644 internal/protoschema/normalize/options.go create mode 100644 internal/protoschema/plugin/pluginbigquery/pluginbigquery.go create mode 100644 internal/protoschema/plugin/pluginbigquery/pluginbigquery_test.go create mode 100644 internal/protoschema/plugin/pluginjsonschema/pluginjsonschema.go create mode 100644 internal/protoschema/plugin/pluginjsonschema/pluginjsonschema_test.go create mode 100644 internal/protoschema/plugin/pluginpubsub/pluginpubsub.go create mode 100644 internal/protoschema/plugin/pluginpubsub/pluginpubsub_test.go create mode 100644 internal/protoschema/protoschema.go create mode 100644 internal/protoschema/pubsub/pubsub.go create mode 100644 internal/protoschema/pubsub/pubsub_test.go create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.TableSchema.json create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.bigquery.proto create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.TableSchema.json create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.bigquery.proto create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.TableSchema.json create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.bigquery.proto create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.TableSchema.json create mode 100644 internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.bigquery.proto create mode 100644 internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.TableSchema.json create mode 100644 internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.bigquery.proto create mode 100644 internal/testdata/codegenrequest/input.json create mode 100644 internal/testdata/jsonschema-doc/test.TestAllTypes.yaml create mode 100644 internal/testdata/jsonschema/buf.protoschema.test.v1.BigQueryWellknownTypeTest.schema.json create mode 100644 internal/testdata/jsonschema/buf.protoschema.test.v1.CustomBigQuery.schema.json create mode 100644 internal/testdata/jsonschema/buf.protoschema.test.v1.CustomOptions.schema.json create mode 100644 internal/testdata/jsonschema/buf.protoschema.test.v1.NestedReference.schema.json create mode 100644 internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json create mode 100644 internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json create mode 100644 internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Any.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.BoolValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.BytesValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.DoubleValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Duration.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.FloatValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Int32Value.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Int64Value.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.ListValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.StringValue.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Struct.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Timestamp.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.UInt32Value.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.UInt64Value.schema.json create mode 100644 internal/testdata/jsonschema/google.protobuf.Value.schema.json create mode 100644 internal/testdata/pubsub/buf.protoschema.test.v1.BigQueryWellknownTypeTest.pubsub.proto create mode 100644 internal/testdata/pubsub/buf.protoschema.test.v1.CustomBigQuery.pubsub.proto create mode 100644 internal/testdata/pubsub/buf.protoschema.test.v1.CustomOptions.pubsub.proto create mode 100644 internal/testdata/pubsub/buf.protoschema.test.v1.NestedReference.pubsub.proto create mode 100644 internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.pubsub.proto create mode 100644 internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.TestAllTypes.pubsub.proto diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..93d5925 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,10 @@ +# This is similar to the git option core.autocrlf but it applies to all +# users of the repository and therefore doesn't depend on a developers +# local configuration. +* text=auto + +# Never attempt EOL conversion on files within testdata +**/testdata/** binary + +/internal/gen/** linguist-generated=true +/internal/testdata/** linguist-generated=true diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..1900eb4 --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +conduct@buf.build. All complaints will be reviewed and investigated promptly +and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available +at [https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5ace460 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..9a20648 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,36 @@ +name: ci +on: + push: + branches: [main] + tags: ['v*'] + pull_request: + branches: [main] + schedule: + - cron: '15 22 * * *' + workflow_dispatch: {} # support manual runs +permissions: + contents: read +jobs: + ci: + runs-on: ubuntu-latest + strategy: + matrix: + go-version: [1.22.x] + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + - name: Test + run: make test + - name: Lint + # Often, lint & gofmt guidelines depend on the Go version. To prevent + # conflicting guidance, run only on the most recent supported version. + # For the same reason, only check generated code on the most recent + # supported version. + if: matrix.go-version == '1.22.x' + run: make checkgenerate && make lint diff --git a/.github/workflows/emergency-review-bypass.yaml b/.github/workflows/emergency-review-bypass.yaml new file mode 100644 index 0000000..3d0b436 --- /dev/null +++ b/.github/workflows/emergency-review-bypass.yaml @@ -0,0 +1,12 @@ +name: Bypass review in case of emergency +on: + pull_request: + types: + - labeled +permissions: + pull-requests: write +jobs: + approve: + if: github.event.label.name == 'Emergency Bypass Review' + uses: bufbuild/base-workflows/.github/workflows/emergency-review-bypass.yaml@main + secrets: inherit diff --git a/.github/workflows/notify-approval-bypass.yaml b/.github/workflows/notify-approval-bypass.yaml new file mode 100644 index 0000000..14af550 --- /dev/null +++ b/.github/workflows/notify-approval-bypass.yaml @@ -0,0 +1,13 @@ +name: PR Approval Bypass Notifier +on: + pull_request: + types: + - closed + branches: + - main +permissions: + pull-requests: read +jobs: + approval: + uses: bufbuild/base-workflows/.github/workflows/notify-approval-bypass.yaml@main + secrets: inherit diff --git a/.github/workflows/pr-title.yaml b/.github/workflows/pr-title.yaml new file mode 100644 index 0000000..b114603 --- /dev/null +++ b/.github/workflows/pr-title.yaml @@ -0,0 +1,18 @@ +name: Lint PR Title +# Prevent writing to the repository using the CI token. +# Ref: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#permissions +permissions: + pull-requests: read +on: + pull_request: + # By default, a workflow only runs when a pull_request's activity type is opened, + # synchronize, or reopened. We explicity override here so that PR titles are + # re-linted when the PR text content is edited. + types: + - opened + - edited + - reopened + - synchronize +jobs: + lint: + uses: bufbuild/base-workflows/.github/workflows/pr-title.yaml@main diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml new file mode 100644 index 0000000..2410ced --- /dev/null +++ b/.github/workflows/windows.yaml @@ -0,0 +1,39 @@ +name: windows +on: + push: + branches: [main] + tags: ['v*'] + pull_request: + branches: [main] + workflow_dispatch: {} +permissions: + contents: read +jobs: + ci: + runs-on: windows-latest + strategy: + matrix: + go-version: [1.22.x] + steps: + - name: Checkout Code + uses: actions/checkout@v4 + with: + fetch-depth: 1 + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + - id: go-cache-paths + shell: bash + run: | + echo "go-mod=$(go env GOMODCACHE)" >> $GITHUB_OUTPUT + - name: Mod Cache + uses: actions/cache@v4 + with: + path: ${{ steps.go-cache-paths.outputs.go-mod }} + key: ${{ runner.os }}-ci-go-mod-${{ hashFiles('**/go.sum') }} + - name: Test + shell: bash + run: | + go build ./... + go test -vet=off -race ./... diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3d2a260 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.tmp/ +/.vscode/ diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..72bf1bd --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,66 @@ +run: + skip-dirs-use-default: false +linters-settings: + gocyclo: + min-complexity: 25 + errcheck: + check-type-assertions: true + forbidigo: + forbid: + - '^fmt\.Print' + - '^log\.' + - '^print$' + - '^println$' + - '^panic$' + godox: + # TODO, OPT, etc. comments are fine to commit. Use FIXME comments for + # temporary hacks, and use godox to prevent committing them. + keywords: [FIXME] + varnamelen: + ignore-decls: + - ok bool + - T any + - i int + - wg sync.WaitGroup +linters: + enable-all: true + disable: + - cyclop # covered by gocyclo + - deadcode # abandoned + - depguard + - exhaustive + - exhaustivestruct # replaced by exhaustruct + - exhaustruct + - funlen # rely on code review to limit function length + - gochecknoglobals # globals are fine + - gocognit # dubious "cognitive overhead" quantification + - gofumpt # prefer standard gofmt + - goimports # rely on gci instead + - golint # deprecated by Go team + - gomnd # some unnamed constants are okay + - ifshort # deprecated by author + - interfacer # deprecated by author + - ireturn # "accept interfaces, return structs" isn't ironclad + - lll # don't want hard limits for line length + - maintidx # covered by gocyclo + - maligned # readability trumps efficient struct packing + - nilnil + - nlreturn # generous whitespace violates house style + - nosnakecase # deprecated in https://github.com/golangci/golangci-lint/pull/3065 + - protogetter + - scopelint # deprecated by author + - structcheck # abandoned + - testpackage # internal tests are fine + - varcheck # abandoned + - wrapcheck # don't _always_ need to wrap errors + - wsl # generous whitespace violates house style +issues: + exclude: + # Don't ban use of fmt.Errorf to create new errors, but the remaining + # checks from err113 are useful. + - "err113: do not define dynamic errors.*" + exclude-rules: + # We allow fmt.Println to be used. + - path: internal/cmd/bigquery-protobuf-uploader/main.go + linters: + - forbidigo diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1040748 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Buf Technologies, Inc. + + 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. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c60fbe2 --- /dev/null +++ b/Makefile @@ -0,0 +1,97 @@ +# See https://tech.davis-hansson.com/p/make/ +SHELL := bash +.DELETE_ON_ERROR: +.SHELLFLAGS := -eu -o pipefail -c +.DEFAULT_GOAL := all +MAKEFLAGS += --warn-undefined-variables +MAKEFLAGS += --no-builtin-rules +MAKEFLAGS += --no-print-directory +BIN := .tmp/bin +export PATH := $(BIN):$(PATH) +export GOBIN := $(abspath $(BIN)) +COPYRIGHT_YEARS := 2024 +LICENSE_IGNORE := --ignore testdata/ + +.PHONY: help +help: ## Describe useful make targets + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "%-30s %s\n", $$1, $$2}' + +.PHONY: all +all: ## Build, test, and lint (default) + $(MAKE) test + $(MAKE) lint + +.PHONY: clean +clean: ## Delete intermediate build artifacts + @# -X only removes untracked files, -d recurses into directories, -f actually removes files/dirs + git clean -Xdf + +.PHONY: test +test: build $(BIN)/jv ## Run unit tests + go test -vet=off -race -cover ./... + $(BIN)/jv internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json internal/testdata/jsonschema-doc/test.TestAllTypes.yaml + +.PHONY: golden +golden: generate + rm -rf internal/testdata/bigquery + rm -rf internal/testdata/pubsub + rm -rf internal/testdata/jsonschema + go run internal/cmd/bigquery-generate-testdata/main.go internal/testdata/bigquery + go run internal/cmd/pubsub-generate-testdata/main.go internal/testdata/pubsub + go run internal/cmd/jsonschema-generate-testdata/main.go internal/testdata/jsonschema + buf build ./internal/proto --exclude-source-info -o -#format=json > ./internal/testdata/codegenrequest/input.json + +.PHONY: build +build: generate ## Build all packages + go build ./... + +.PHONY: lint +lint: $(BIN)/golangci-lint $(BIN)/buf ## Lint + go vet ./... + $(BIN)/golangci-lint run + buf lint + buf format -d --exit-code + +.PHONY: lintfix +lintfix: $(BIN)/golangci-lint ## Automatically fix some lint errors + $(BIN)/golangci-lint run --fix + buf format -w + +.PHONY: install +install: ## Install all binaries + go install ./... + +.PHONY: generate +generate: $(BIN)/license-header $(BIN)/buf ## Regenerate code and licenses + rm -rf internal/gen + buf generate + license-header \ + --license-type apache \ + --copyright-holder "Buf Technologies, Inc." \ + --year-range "$(COPYRIGHT_YEARS)" $(LICENSE_IGNORE) + +.PHONY: upgrade +upgrade: ## Upgrade dependencies + go get -u -t ./... + go mod tidy -v + buf mod update internal/proto + +.PHONY: checkgenerate +checkgenerate: + @# Used in CI to verify that `make generate` doesn't produce a diff. + test -z "$$(git status --porcelain | tee /dev/stderr)" + +$(BIN): + @mkdir -p $(BIN) + +$(BIN)/buf: $(BIN) Makefile + go install github.com/bufbuild/buf/cmd/buf@latest + +$(BIN)/license-header: $(BIN) Makefile + go install github.com/bufbuild/buf/private/pkg/licenseheader/cmd/license-header@latest + +$(BIN)/golangci-lint: $(BIN) Makefile + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + +$(BIN)/jv: $(BIN) Makefile + go install github.com/santhosh-tekuri/jsonschema/cmd/jv@latest diff --git a/README.md b/README.md new file mode 100644 index 0000000..dacd6ae --- /dev/null +++ b/README.md @@ -0,0 +1,255 @@ +# protoschema-plugins + +[![Build](https://github.com/bufbuild/protoschema-plugins/actions/workflows/ci.yaml/badge.svg?branch=main)][badges_ci] +[![Report Card](https://goreportcard.com/badge/github.com/bufbuild/protoschema-plugins)][badges_goreportcard] +[![GoDoc](https://pkg.go.dev/badge/github.com/bufbuild/protoschema-plugins.svg)][badges_godoc] +[![Slack](https://img.shields.io/badge/slack-buf-%23e01563)][badges_slack] + +The protoschema-plugins repository contains a collection of Protobuf plugins that generate different +types of schema from protobuf files. This includes: + +- [PubSub](#pubsub-protobuf-schema) +- [BigQuery](#bigquery-protobuf-schema) +- [JSON Schema](#json-schema) + +## PubSub Protobuf Schema + +Generates a schema for a given protobuf file that can be used as a PubSub schema in the form of a +single self-contained messaged normalized to proto2. + +Install the `protoc-gen-pubsub` plugin directly: + +```sh +go install github.com/bufbuild/protoschema-plugins/cmd/protoc-gen-pubsub@latest +``` + +Or reference it as a [Remote Plugin](https://buf.build/docs/generate/remote-plugins) in `buf.gen.yaml`: + +```yaml +version: v1 +plugins: + - plugin: buf.build/bufbuild/protoschema-pubsub + out: ./gen +``` + +For examples see [testdata](/internal/testdata/pubsub/) which contains the generated schema for +test case definitions found in [proto](/internal/proto/). + +## BigQuery Protobuf Schema + +Generates a Table schema that can be used to initialize a BigQuery table, and a self-contained +message normalized to proto2, that can be used to upload data to that BigQuery table. + +Install the `protoc-gen-bigquery` directly: + +```sh +go install github.com/bufbuild/protoschema-plugins/cmd/protoc-gen-bigquery@latest +``` + +Or reference it as a [Remote Plugin](https://buf.build/docs/generate/remote-plugins) in `buf.gen.yaml`: + +```yaml +version: v1 +plugins: + - plugin: buf.build/bufbuild/protoschema-bigquery + out: ./gen +``` + +For examples see [testdata](/internal/testdata/bigquery/) which contains the generated schema for +test case definitions found in [proto](/internal/proto/). + +This supports the `gen_bq_schema` annotations. For example: + +```proto +message CustomBigQuery { + option (gen_bq_schema.bigquery_opts) = { + table_name: "CustomName" + use_json_names: true + }; + + int32 int32_field = 1 [(gen_bq_schema.bigquery) = { + type_override: "TIMESTAMP", + name: "create_time" + }]; + string string_field = 2; + + NestedReference nested_reference = 3 [(gen_bq_schema.bigquery) = {ignore: true}]; +} +``` + +Results in the Table schema: + +```json +[ + { + "name": "create_time", + "type": "TIMESTAMP" + }, + { + "name": "stringField", + "type": "STRING" + } +] +``` + +and the message: + +```proto +message CustomBigQuery { + optional int32 create_time = 1; + optional string stringField = 2; +} +``` + +### Limitations + +The well-known JSON types are not support in BigQuery. This includes `google.protobuf.Struct`, +`google.protobuf.Value` and `google.protobuf.ListValue`. If these types are used in a message, the +generated schema will not include them, and the generated message will not include them. + +## JSON Schema + +Generates a [JSON Schema](https://json-schema.org/) for a given protobuf file. This implementation +uses the latest [JSON Schema Draft 2020-12](https://json-schema.org/draft/2020-12/release-notes). + +Install the `protoc-gen-jsonschema` directly: + +```sh +go install github.com/bufbuild/protoschema-plugins/cmd/protoc-gen-jsonschema@latest +``` + +Or reference it as a [Remote Plugin](https://buf.build/docs/generate/remote-plugins) in `buf.gen.yaml`: + +```yaml +version: v1 +plugins: + - plugin: buf.build/bufbuild/protoschema-jsonschema + out: ./gen +``` + +For examples see [testdata](/internal/testdata/jsonschema/) which contains the generated schema for +test case definitions found in [proto](/internal/proto/). + +Here is a simple generated schema from the following protobuf: + +```proto +message Product { + message Location { + float lat = 1; + float long = 2; + } + + int32 product_id = 1; + string product_name = 2; + float price = 3; + repeated string tags = 4; + Location location = 5; +} +``` + +Results in the following JSON Schema files: + +
+Product.schema.json + +```json +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "properties": { + "product_id": { + "type": "integer" + }, + "product_name": { + "type": "string" + }, + "price": { + "type": "number" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "location": { + "type": "object", + "properties": { + "lat": { + "type": "number" + }, + "long": { + "type": "number" + } + }, + "required": ["lat", "long"] + } + }, + "required": ["product_id", "product_name", "price", "tags", "location"] +} +``` + +
+ +
+Product.Location.schema.json + +```json +{ + "$id": "Product.Location.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "lat": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": ["NaN", "Infinity", "-Infinity"], + "type": "string" + } + ] + }, + "long": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": ["NaN", "Infinity", "-Infinity"], + "type": "string" + } + ] + } + }, + "type": "object" +} +``` + +
+ +## Community + +For help and discussion around Protobuf, best practices, and more, join us +on [Slack][badges_slack]. + +## Status + +This project is currently in **alpha**. The API should be considered unstable and likely to change. + +## Legal + +Offered under the [Apache 2 license][license]. + +[badges_ci]: https://github.com/bufbuild/protoschema-plugins/actions/workflows/ci.yaml +[badges_goreportcard]: https://goreportcard.com/report/github.com/bufbuild/protoschema-plugins +[badges_godoc]: https://pkg.go.dev/github.com/bufbuild/protoschema-plugins +[badges_slack]: https://join.slack.com/t/bufbuild/shared_invite/zt-f5k547ki-dW9LjSwEnl6qTzbyZtPojw +[license]: https://github.com/bufbuild/protoschema-plugins/blob/main/LICENSE.txt diff --git a/buf.gen.yaml b/buf.gen.yaml new file mode 100644 index 0000000..e3fe00d --- /dev/null +++ b/buf.gen.yaml @@ -0,0 +1,12 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: github.com/bufbuild/protoschema-plugins/internal/gen/proto + except: + - buf.build/bufbuild/protovalidate + - buf.build/liberetech/protoc-gen-bq-schema +plugins: + - plugin: buf.build/protocolbuffers/go + out: internal/gen/proto + opt: paths=source_relative diff --git a/buf.work.yaml b/buf.work.yaml new file mode 100644 index 0000000..30f1e1f --- /dev/null +++ b/buf.work.yaml @@ -0,0 +1,3 @@ +version: v1 +directories: + - internal/proto diff --git a/cmd/protoc-gen-bigquery/main.go b/cmd/protoc-gen-bigquery/main.go new file mode 100644 index 0000000..f62be7c --- /dev/null +++ b/cmd/protoc-gen-bigquery/main.go @@ -0,0 +1,25 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 main + +import ( + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/plugin/pluginbigquery" +) + +func main() { + protoplugin.Main(protoplugin.HandlerFunc(pluginbigquery.Handle), protoplugin.WithVersion(protoschema.Version)) +} diff --git a/cmd/protoc-gen-jsonschema/main.go b/cmd/protoc-gen-jsonschema/main.go new file mode 100644 index 0000000..351990e --- /dev/null +++ b/cmd/protoc-gen-jsonschema/main.go @@ -0,0 +1,25 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 main + +import ( + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/plugin/pluginjsonschema" +) + +func main() { + protoplugin.Main(protoplugin.HandlerFunc(pluginjsonschema.Handle), protoplugin.WithVersion(protoschema.Version)) +} diff --git a/cmd/protoc-gen-pubsub/main.go b/cmd/protoc-gen-pubsub/main.go new file mode 100644 index 0000000..687b83c --- /dev/null +++ b/cmd/protoc-gen-pubsub/main.go @@ -0,0 +1,25 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 main + +import ( + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/plugin/pluginpubsub" +) + +func main() { + protoplugin.Main(protoplugin.HandlerFunc(pluginpubsub.Handle), protoplugin.WithVersion(protoschema.Version)) +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ef5a69f --- /dev/null +++ b/go.mod @@ -0,0 +1,78 @@ +module github.com/bufbuild/protoschema-plugins + +go 1.22 + +require ( + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 + cloud.google.com/go/bigquery v1.59.1 + github.com/GoogleCloudPlatform/protoc-gen-bq-schema v0.0.0-20240229095244-e9949450f473 + github.com/bufbuild/buf v1.29.0 + github.com/bufbuild/protoplugin v0.0.0-20240307214627-634912f18796 + github.com/jhump/protoreflect v1.15.6 + github.com/stretchr/testify v1.9.0 + google.golang.org/protobuf v1.33.0 +) + +require ( + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.0 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + github.com/antlr4-go/antlr/v4 v4.13.0 // indirect + github.com/apache/arrow/go/v14 v14.0.2 // indirect + github.com/bufbuild/protocompile v0.8.0 // indirect + github.com/bufbuild/protovalidate-go v0.5.0 // indirect + github.com/bufbuild/protoyaml-go v0.1.7 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/gofrs/uuid/v5 v5.0.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/cel-go v0.19.0 // indirect + github.com/google/flatbuffers v23.5.26+incompatible // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/klauspost/compress v1.17.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.7 // indirect + github.com/pierrec/lz4/v4 v4.1.21 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stoewer/go-strcase v1.3.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect + go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.uber.org/atomic v1.11.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go.uber.org/zap v1.26.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect + golang.org/x/mod v0.16.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.19.0 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + google.golang.org/api v0.168.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240304212257-790db918fca8 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect + google.golang.org/grpc v1.62.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..da89b6a --- /dev/null +++ b/go.sum @@ -0,0 +1,278 @@ +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1 h1:0nWhrRcnkgw1kwJ7xibIO8bqfOA7pBzBjGCDBxIHch8= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240221180331-f05a6f4403ce.1/go.mod h1:Tgn5bgL220vkFOI0KPStlcClPeOJzAv4uT+V8JXGUnw= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go/bigquery v1.59.1 h1:CpT+/njKuKT3CEmswm6IbhNu9u35zt5dO4yPDLW+nG4= +cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= +cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= +cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= +cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= +cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= +cloud.google.com/go/storage v1.38.0 h1:Az68ZRGlnNTpIBbLjSMIV2BDcwwXYlRlQzis0llkpJg= +cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/GoogleCloudPlatform/protoc-gen-bq-schema v0.0.0-20240229095244-e9949450f473 h1:dS1BcytfLw3XzanVNKChlfEDbbLponqEfHYRxcqkJOU= +github.com/GoogleCloudPlatform/protoc-gen-bq-schema v0.0.0-20240229095244-e9949450f473/go.mod h1:ZWP6hShlkP3umZRP3V9jft8h1egCZWZnX5CgYQIDbuU= +github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= +github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= +github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= +github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= +github.com/bufbuild/buf v1.29.0 h1:llP6HqOcCaSGBxOfnrp/mwvcY1O/dciEOl1QaMEOB3M= +github.com/bufbuild/buf v1.29.0/go.mod h1:UTjvPXTObvKQiGqxod32wt9zRz70TJsMpaigpbIZGuc= +github.com/bufbuild/protocompile v0.8.0 h1:9Kp1q6OkS9L4nM3FYbr8vlJnEwtbpDPQlQOVXfR+78s= +github.com/bufbuild/protocompile v0.8.0/go.mod h1:+Etjg4guZoAqzVk2czwEQP12yaxLJ8DxuqCJ9qHdH94= +github.com/bufbuild/protoplugin v0.0.0-20240307214627-634912f18796 h1:xlmttOuN819XJADxHZjQ6NL3aMSC9kq0G/PtnslWv3Q= +github.com/bufbuild/protoplugin v0.0.0-20240307214627-634912f18796/go.mod h1:qVygFu1N9TJOXQ0LVhJanBlsbWuYfV2hPoKkjbhy6Z4= +github.com/bufbuild/protovalidate-go v0.5.0 h1:xFery2RlLh07FQTvB7hlasKqPrDK2ug+uw6DUiuadjo= +github.com/bufbuild/protovalidate-go v0.5.0/go.mod h1:3XAwFeJ2x9sXyPLgkxufH9sts1tQRk8fdt1AW93NiUU= +github.com/bufbuild/protoyaml-go v0.1.7 h1:3uKIoNb/l5zrZ93u+Xzsg6cdAO06lveZE/K7UUbUQLw= +github.com/bufbuild/protoyaml-go v0.1.7/go.mod h1:R8vE2+l49bSiIExP4VJpxOXleHE+FDzZ6HVxr3cYunw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +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/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/gofrs/uuid/v5 v5.0.0 h1:p544++a97kEL+svbcFbCQVM9KFu0Yo25UoISXGNNH9M= +github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/cel-go v0.19.0 h1:vVgaZoHPBDd1lXCYGQOh5A06L4EtuIfmqQ/qnSXSKiU= +github.com/google/cel-go v0.19.0/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= +github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +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.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jhump/protoreflect v1.15.6 h1:WMYJbw2Wo+KOWwZFvgY0jMoVHM6i4XIvRs2RcBj5VmI= +github.com/jhump/protoreflect v1.15.6/go.mod h1:jCHoyYQIJnaabEYnbGwyo9hUqfyUMTbJw/tAut5t97E= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.2.7 h1:ZWSB3igEs+d0qvnxR/ZBzXVmxkgt8DdzP6m9pfuVLDM= +github.com/klauspost/cpuid/v2 v2.2.7/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +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/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= +github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +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.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +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= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.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.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.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= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= +gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= +google.golang.org/api v0.168.0 h1:MBRe+Ki4mMN93jhDDbpuRLjRddooArz4FeSObvUMmjY= +google.golang.org/api v0.168.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20240304212257-790db918fca8 h1:Fe8QycXyEd9mJgnwB9kmw00WgB43eQ/xYO5C6gceybQ= +google.golang.org/genproto v0.0.0-20240304212257-790db918fca8/go.mod h1:yA7a1bW1kwl459Ol0m0lV4hLTfrL/7Bkk4Mj2Ir1mWI= +google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8 h1:8eadJkXbwDEMNwcB5O0s5Y5eCfyuCLdvaiOIaGTrWmQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240304212257-790db918fca8/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 h1:IR+hp6ypxjH24bkMfEJ0yHR21+gwPWdV+/IBrPQyn3k= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= +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= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/cmd/bigquery-generate-testdata/main.go b/internal/cmd/bigquery-generate-testdata/main.go new file mode 100644 index 0000000..2ae7a4e --- /dev/null +++ b/internal/cmd/bigquery-generate-testdata/main.go @@ -0,0 +1,125 @@ +// Copyright 2023 Buf Technologies, Inc. +// +// 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 main + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/bufbuild/protoschema-plugins/internal/protoschema/bigquery" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/jhump/protoreflect/desc" + "github.com/jhump/protoreflect/desc/protoprint" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/types/descriptorpb" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/structpb" + "google.golang.org/protobuf/types/known/timestamppb" + "google.golang.org/protobuf/types/known/wrapperspb" +) + +func main() { + if err := run(); err != nil { + if errString := err.Error(); errString != "" { + _, _ = fmt.Fprintln(os.Stderr, errString) + } + os.Exit(1) + } +} + +func run() error { + if len(os.Args) != 2 { + return fmt.Errorf("usage: %s [directory]", os.Args[0]) + } + dirPath := os.Args[1] + + // Make sure the directory exists + if err := os.MkdirAll(dirPath, 0755); err != nil { + return err + } + + fileInfo, err := os.Stat(dirPath) + if err != nil { + return err + } else if !fileInfo.IsDir() { + return fmt.Errorf("expected %s to be a directory", dirPath) + } + + // Generate the testdata + for _, testDesc := range golden.GetTestDescriptors() { + schemaPath := filepath.Join(dirPath, fmt.Sprintf("%s.%s", testDesc.FullName(), bigquery.FileExtension)) + protoPath := filepath.Join(dirPath, fmt.Sprintf("%s.bigquery.proto", testDesc.FullName())) + schema, pbDesc, err := bigquery.Generate(testDesc) + if err != nil { + return err + } + data, err := schema.ToJSONFields() + if err != nil { + return err + } + if len(data) == 0 || string(data) == "null" { + continue + } + if err := golden.GenerateGolden(schemaPath, string(data)); err != nil { + return err + } + + // Generate the root file + file := &descriptorpb.FileDescriptorProto{ + Name: proto.String("bigquery.proto"), + Syntax: proto.String("proto2"), + Dependency: []string{ + "google/protobuf/struct.proto", + }, + MessageType: []*descriptorpb.DescriptorProto{ + pbDesc, + }, + } + + depMap, err := desc.CreateFileDescriptors([]*descriptorpb.FileDescriptorProto{ + protodesc.ToFileDescriptorProto(durationpb.File_google_protobuf_duration_proto), + protodesc.ToFileDescriptorProto(structpb.File_google_protobuf_struct_proto), + protodesc.ToFileDescriptorProto(timestamppb.File_google_protobuf_timestamp_proto), + protodesc.ToFileDescriptorProto(wrapperspb.File_google_protobuf_wrappers_proto), + }) + if err != nil { + return err + } + deps := make([]*desc.FileDescriptor, 0, len(depMap)) + for _, dep := range depMap { + deps = append(deps, dep) + } + + // Print the file. + fileDesc, err := desc.CreateFileDescriptor(file, deps...) + if err != nil { + return err + } + printer := &protoprint.Printer{ + Compact: true, + } + pbData, err := printer.PrintProtoToString(fileDesc) + if err != nil { + return err + } + if err := golden.GenerateGolden(protoPath, pbData); err != nil { + return err + } + } + + return nil +} diff --git a/internal/cmd/bigquery-protobuf-uploader/main.go b/internal/cmd/bigquery-protobuf-uploader/main.go new file mode 100644 index 0000000..2c1d8b0 --- /dev/null +++ b/internal/cmd/bigquery-protobuf-uploader/main.go @@ -0,0 +1,102 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 main + +import ( + "context" + "fmt" + "os" + + "cloud.google.com/go/bigquery/storage/managedwriter" + testv1 "github.com/bufbuild/protoschema-plugins/internal/gen/proto/buf/protoschema/test/v1" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/bigquery" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/structpb" +) + +func main() { + if err := run(); err != nil { + if errString := err.Error(); errString != "" { + _, _ = fmt.Fprintln(os.Stderr, errString) + } + os.Exit(1) + } +} + +func run() error { + if len(os.Args) != 4 { + return fmt.Errorf("usage: %s [project] [dataset] [table]", os.Args[0]) + } + projectID := os.Args[1] + datasetID := os.Args[2] + tableID := os.Args[3] + tableName := fmt.Sprintf("projects/%s/datasets/%s/tables/%s", projectID, datasetID, tableID) + + ctx := context.Background() + client, err := managedwriter.NewClient(ctx, projectID) + if err != nil { + return err + } + + // Define a couple of messages. + msgs := []*testv1.BigQueryWellknownTypeTest{ + { + JsonValue: &structpb.Value{ + Kind: &structpb.Value_NumberValue{ + NumberValue: 1.0, + }, + }, + }, + } + + _, msgDesc, err := bigquery.Generate(msgs[0].ProtoReflect().Descriptor()) + if err != nil { + return err + } + + managedStream, err := client.NewManagedStream(ctx, + managedwriter.WithDestinationTable(tableName), + managedwriter.WithType(managedwriter.DefaultStream), + managedwriter.WithSchemaDescriptor(msgDesc)) + if err != nil { + return err + } + + // Encode the messages into binary format. + encoded := make([][]byte, len(msgs)) + for k, v := range msgs { + b, err := proto.Marshal(v) + if err != nil { + return err + } + encoded[k] = b + } + + // Send the rows to the service, and specify an offset for managing deduplication. + result, err := managedStream.AppendRows(ctx, encoded) + if err != nil { + return err + } + + // Block until the write is complete and return the result. + resp, err := result.FullResponse(ctx) + if err != nil { + return err + } + fmt.Println(resp) + + defer client.Close() + return nil +} diff --git a/internal/cmd/bigquery-schema-uploader/main.go b/internal/cmd/bigquery-schema-uploader/main.go new file mode 100644 index 0000000..894846b --- /dev/null +++ b/internal/cmd/bigquery-schema-uploader/main.go @@ -0,0 +1,80 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 main + +import ( + "context" + "fmt" + "os" + + "cloud.google.com/go/bigquery" +) + +func main() { + if err := run(); err != nil { + if errString := err.Error(); errString != "" { + _, _ = fmt.Fprintln(os.Stderr, errString) + } + os.Exit(1) + } +} + +func run() error { + if len(os.Args) != 5 { + return fmt.Errorf("usage: %s [project] [dataset] [table] [*.TableSchema.json]", os.Args[0]) + } + projectID := os.Args[1] + datasetID := os.Args[2] + tableID := os.Args[3] + schemaPath := os.Args[4] + + fileInfo, err := os.Stat(schemaPath) + if err != nil { + return err + } else if fileInfo.IsDir() { + return fmt.Errorf("expected %s to be a file", fileInfo) + } + // Read all the contents of the file + data, err := os.ReadFile(schemaPath) + if err != nil { + return err + } + + schema, err := bigquery.SchemaFromJSON(data) + if err != nil { + return err + } + + if err := createTable(projectID, datasetID, tableID, &bigquery.TableMetadata{ + Schema: schema, + }); err != nil { + return err + } + return nil +} + +func createTable(projectID, datasetID, tableID string, tableMetadata *bigquery.TableMetadata) error { + ctx := context.Background() + client, err := bigquery.NewClient(ctx, projectID) + if err != nil { + return err + } + defer client.Close() + tableRef := client.Dataset(datasetID).Table(tableID) + if err := tableRef.Create(ctx, tableMetadata); err != nil { + return err + } + return nil +} diff --git a/internal/cmd/jsonschema-generate-testdata/main.go b/internal/cmd/jsonschema-generate-testdata/main.go new file mode 100644 index 0000000..402eb43 --- /dev/null +++ b/internal/cmd/jsonschema-generate-testdata/main.go @@ -0,0 +1,73 @@ +// Copyright 2023 Buf Technologies, Inc. +// +// 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 main + +import ( + "encoding/json" + "errors" + "fmt" + "os" + "path/filepath" + + _ "github.com/bufbuild/protoschema-plugins/internal/gen/proto/bufext/cel/expr/conformance/proto3" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/jsonschema" +) + +func main() { + if err := run(); err != nil { + if errString := err.Error(); errString != "" { + _, _ = fmt.Fprintln(os.Stderr, errString) + } + os.Exit(1) + } +} + +func run() error { + if len(os.Args) != 2 { + return fmt.Errorf("usage: %s [output dir]", os.Args[0]) + } + outputDir := os.Args[1] + + for _, testDesc := range golden.GetTestDescriptors() { + // Generate the JSON schema + result := jsonschema.Generate(testDesc) + + // Make sure the directory exists + if err := os.MkdirAll(outputDir, 0755); err != nil { + return err + } + + for _, jsonSchema := range result { + // Serialize the JSON + data, err := json.MarshalIndent(jsonSchema, "", " ") + if err != nil { + return err + } + identifier, ok := jsonSchema["$id"].(string) + if !ok { + return errors.New("expected $id to be a string") + } + if identifier == "" { + return errors.New("expected $id to be non-empty") + } + filePath := filepath.Join(outputDir, identifier) + if err := golden.GenerateGolden(filePath, string(data)); err != nil { + return err + } + } + } + return nil +} diff --git a/internal/cmd/pubsub-generate-testdata/main.go b/internal/cmd/pubsub-generate-testdata/main.go new file mode 100644 index 0000000..92fb979 --- /dev/null +++ b/internal/cmd/pubsub-generate-testdata/main.go @@ -0,0 +1,66 @@ +// Copyright 2023 Buf Technologies, Inc. +// +// 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 main + +import ( + "fmt" + "os" + "path/filepath" + + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/pubsub" +) + +func main() { + if err := run(); err != nil { + if errString := err.Error(); errString != "" { + _, _ = fmt.Fprintln(os.Stderr, errString) + } + os.Exit(1) + } +} + +func run() error { + if len(os.Args) != 2 { + return fmt.Errorf("usage: %s [directory]", os.Args[0]) + } + dirPath := os.Args[1] + + // Make sure the directory exists + if err := os.MkdirAll(dirPath, 0755); err != nil { + return err + } + + fileInfo, err := os.Stat(dirPath) + if err != nil { + return err + } else if !fileInfo.IsDir() { + return fmt.Errorf("expected %s to be a directory", dirPath) + } + + // Generate the testdata + for _, testDesc := range golden.GetTestDescriptors() { + filePath := filepath.Join(dirPath, fmt.Sprintf("%s.%s", testDesc.FullName(), pubsub.FileExtension)) + data, err := pubsub.Generate(testDesc) + if err != nil { + return err + } + if err := golden.GenerateGolden(filePath, data); err != nil { + return err + } + } + + return nil +} diff --git a/internal/gen/proto/buf/protoschema/test/v1/bq_wkt_test.pb.go b/internal/gen/proto/buf/protoschema/test/v1/bq_wkt_test.pb.go new file mode 100644 index 0000000..c5faddd --- /dev/null +++ b/internal/gen/proto/buf/protoschema/test/v1/bq_wkt_test.pb.go @@ -0,0 +1,181 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc (unknown) +// source: buf/protoschema/test/v1/bq_wkt_test.proto + +package testv1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BigQueryWellknownTypeTest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JsonValue *structpb.Value `protobuf:"bytes,1,opt,name=json_value,json=jsonValue" json:"json_value,omitempty"` +} + +func (x *BigQueryWellknownTypeTest) Reset() { + *x = BigQueryWellknownTypeTest{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_protoschema_test_v1_bq_wkt_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BigQueryWellknownTypeTest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigQueryWellknownTypeTest) ProtoMessage() {} + +func (x *BigQueryWellknownTypeTest) ProtoReflect() protoreflect.Message { + mi := &file_buf_protoschema_test_v1_bq_wkt_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BigQueryWellknownTypeTest.ProtoReflect.Descriptor instead. +func (*BigQueryWellknownTypeTest) Descriptor() ([]byte, []int) { + return file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescGZIP(), []int{0} +} + +func (x *BigQueryWellknownTypeTest) GetJsonValue() *structpb.Value { + if x != nil { + return x.JsonValue + } + return nil +} + +var File_buf_protoschema_test_v1_bq_wkt_test_proto protoreflect.FileDescriptor + +var file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x71, 0x5f, 0x77, 0x6b, 0x74, + 0x5f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x62, 0x75, 0x66, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x52, 0x0a, 0x19, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x65, + 0x6c, 0x6c, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x54, 0x65, 0x73, 0x74, 0x12, + 0x35, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6a, 0x73, 0x6f, + 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x87, 0x02, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x62, + 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x42, 0x71, 0x57, 0x6b, 0x74, 0x54, 0x65, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, + 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x73, + 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x50, 0x54, 0xaa, 0x02, 0x17, 0x42, 0x75, 0x66, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x42, 0x75, 0x66, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, 0x54, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, + 0x42, 0x75, 0x66, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, + 0x54, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x75, 0x66, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x3a, 0x54, 0x65, 0x73, 0x74, 0x3a, 0x3a, 0x56, 0x31, +} + +var ( + file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescOnce sync.Once + file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescData = file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDesc +) + +func file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescGZIP() []byte { + file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescOnce.Do(func() { + file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescData) + }) + return file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDescData +} + +var file_buf_protoschema_test_v1_bq_wkt_test_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_buf_protoschema_test_v1_bq_wkt_test_proto_goTypes = []interface{}{ + (*BigQueryWellknownTypeTest)(nil), // 0: buf.protoschema.test.v1.BigQueryWellknownTypeTest + (*structpb.Value)(nil), // 1: google.protobuf.Value +} +var file_buf_protoschema_test_v1_bq_wkt_test_proto_depIdxs = []int32{ + 1, // 0: buf.protoschema.test.v1.BigQueryWellknownTypeTest.json_value:type_name -> google.protobuf.Value + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_buf_protoschema_test_v1_bq_wkt_test_proto_init() } +func file_buf_protoschema_test_v1_bq_wkt_test_proto_init() { + if File_buf_protoschema_test_v1_bq_wkt_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_buf_protoschema_test_v1_bq_wkt_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BigQueryWellknownTypeTest); 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{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_buf_protoschema_test_v1_bq_wkt_test_proto_goTypes, + DependencyIndexes: file_buf_protoschema_test_v1_bq_wkt_test_proto_depIdxs, + MessageInfos: file_buf_protoschema_test_v1_bq_wkt_test_proto_msgTypes, + }.Build() + File_buf_protoschema_test_v1_bq_wkt_test_proto = out.File + file_buf_protoschema_test_v1_bq_wkt_test_proto_rawDesc = nil + file_buf_protoschema_test_v1_bq_wkt_test_proto_goTypes = nil + file_buf_protoschema_test_v1_bq_wkt_test_proto_depIdxs = nil +} diff --git a/internal/gen/proto/buf/protoschema/test/v1/test_cases.pb.go b/internal/gen/proto/buf/protoschema/test/v1/test_cases.pb.go new file mode 100644 index 0000000..02439b2 --- /dev/null +++ b/internal/gen/proto/buf/protoschema/test/v1/test_cases.pb.go @@ -0,0 +1,392 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc (unknown) +// source: buf/protoschema/test/v1/test_cases.proto + +package testv1 + +import ( + _ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate" + _ "github.com/GoogleCloudPlatform/protoc-gen-bq-schema/protos" + proto3 "github.com/bufbuild/protoschema-plugins/internal/gen/proto/bufext/cel/expr/conformance/proto3" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type NestedReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NestedMessage *proto3.TestAllTypes_NestedMessage `protobuf:"bytes,1,opt,name=nested_message,json=nestedMessage,proto3" json:"nested_message,omitempty"` +} + +func (x *NestedReference) Reset() { + *x = NestedReference{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NestedReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NestedReference) ProtoMessage() {} + +func (x *NestedReference) ProtoReflect() protoreflect.Message { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NestedReference.ProtoReflect.Descriptor instead. +func (*NestedReference) Descriptor() ([]byte, []int) { + return file_buf_protoschema_test_v1_test_cases_proto_rawDescGZIP(), []int{0} +} + +func (x *NestedReference) GetNestedMessage() *proto3.TestAllTypes_NestedMessage { + if x != nil { + return x.NestedMessage + } + return nil +} + +type CustomOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Int32Field []int32 `protobuf:"varint,1,rep,packed,name=int32_field,json=int32Field,proto3" json:"int32_field,omitempty"` + // Types that are assignable to Kind: + // + // *CustomOptions_StringField + Kind isCustomOptions_Kind `protobuf_oneof:"kind"` +} + +func (x *CustomOptions) Reset() { + *x = CustomOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomOptions) ProtoMessage() {} + +func (x *CustomOptions) ProtoReflect() protoreflect.Message { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CustomOptions.ProtoReflect.Descriptor instead. +func (*CustomOptions) Descriptor() ([]byte, []int) { + return file_buf_protoschema_test_v1_test_cases_proto_rawDescGZIP(), []int{1} +} + +func (x *CustomOptions) GetInt32Field() []int32 { + if x != nil { + return x.Int32Field + } + return nil +} + +func (m *CustomOptions) GetKind() isCustomOptions_Kind { + if m != nil { + return m.Kind + } + return nil +} + +func (x *CustomOptions) GetStringField() string { + if x, ok := x.GetKind().(*CustomOptions_StringField); ok { + return x.StringField + } + return "" +} + +type isCustomOptions_Kind interface { + isCustomOptions_Kind() +} + +type CustomOptions_StringField struct { + StringField string `protobuf:"bytes,2,opt,name=string_field,json=stringField,proto3,oneof"` +} + +func (*CustomOptions_StringField) isCustomOptions_Kind() {} + +type CustomBigQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Int32Field int32 `protobuf:"varint,1,opt,name=int32_field,json=int32Field,proto3" json:"int32_field,omitempty"` + StringField string `protobuf:"bytes,2,opt,name=string_field,json=stringField,proto3" json:"string_field,omitempty"` + NestedReference *NestedReference `protobuf:"bytes,3,opt,name=nested_reference,json=nestedReference,proto3" json:"nested_reference,omitempty"` +} + +func (x *CustomBigQuery) Reset() { + *x = CustomBigQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomBigQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomBigQuery) ProtoMessage() {} + +func (x *CustomBigQuery) ProtoReflect() protoreflect.Message { + mi := &file_buf_protoschema_test_v1_test_cases_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CustomBigQuery.ProtoReflect.Descriptor instead. +func (*CustomBigQuery) Descriptor() ([]byte, []int) { + return file_buf_protoschema_test_v1_test_cases_proto_rawDescGZIP(), []int{2} +} + +func (x *CustomBigQuery) GetInt32Field() int32 { + if x != nil { + return x.Int32Field + } + return 0 +} + +func (x *CustomBigQuery) GetStringField() string { + if x != nil { + return x.StringField + } + return "" +} + +func (x *CustomBigQuery) GetNestedReference() *NestedReference { + if x != nil { + return x.NestedReference + } + return nil +} + +var File_buf_protoschema_test_v1_test_cases_proto protoreflect.FileDescriptor + +var file_buf_protoschema_test_v1_test_cases_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x61, 0x73, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x62, 0x75, 0x66, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x37, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, + 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x62, 0x71, 0x2d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, + 0x62, 0x71, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x62, 0x71, 0x2d, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x62, 0x71, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x78, 0x0a, 0x0f, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x0e, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, + 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xf4, 0x01, + 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4f, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x05, 0x42, 0x2e, 0xba, 0x48, 0x29, 0xba, 0x01, 0x26, 0x0a, 0x0e, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x12, 0x0c, 0x6d, 0x75, + 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x75, 0x65, 0x1a, 0x06, 0x31, 0x20, 0x3d, 0x3d, + 0x20, 0x31, 0x10, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x12, 0x52, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xba, 0x48, 0x2a, 0xba, 0x01, 0x27, 0x0a, 0x0f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x12, + 0x0c, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x75, 0x65, 0x1a, 0x06, 0x31, + 0x20, 0x3d, 0x3d, 0x20, 0x31, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x2f, 0xba, 0x48, 0x2a, 0x1a, 0x28, 0x0a, 0x10, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x0c, 0x6d, + 0x75, 0x73, 0x74, 0x20, 0x62, 0x65, 0x20, 0x74, 0x72, 0x75, 0x65, 0x1a, 0x06, 0x31, 0x20, 0x3d, + 0x3d, 0x20, 0x31, 0x10, 0x01, 0x42, 0x0d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x05, 0xba, + 0x48, 0x02, 0x08, 0x01, 0x22, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, + 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x1b, 0xea, 0x3f, + 0x18, 0x12, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x2a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x5a, 0x0a, 0x10, 0x6e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x05, 0xea, 0x3f, + 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x11, 0xea, 0x3f, 0x0e, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x87, 0x02, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, + 0x62, 0x75, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, + 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x59, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, + 0x6e, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, + 0x73, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x50, 0x54, 0xaa, 0x02, 0x17, 0x42, 0x75, 0x66, + 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x42, 0x75, 0x66, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5c, 0x54, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x23, 0x42, 0x75, 0x66, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x5c, 0x54, 0x65, 0x73, 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x42, 0x75, 0x66, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x3a, 0x3a, 0x54, 0x65, 0x73, 0x74, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_buf_protoschema_test_v1_test_cases_proto_rawDescOnce sync.Once + file_buf_protoschema_test_v1_test_cases_proto_rawDescData = file_buf_protoschema_test_v1_test_cases_proto_rawDesc +) + +func file_buf_protoschema_test_v1_test_cases_proto_rawDescGZIP() []byte { + file_buf_protoschema_test_v1_test_cases_proto_rawDescOnce.Do(func() { + file_buf_protoschema_test_v1_test_cases_proto_rawDescData = protoimpl.X.CompressGZIP(file_buf_protoschema_test_v1_test_cases_proto_rawDescData) + }) + return file_buf_protoschema_test_v1_test_cases_proto_rawDescData +} + +var file_buf_protoschema_test_v1_test_cases_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_buf_protoschema_test_v1_test_cases_proto_goTypes = []interface{}{ + (*NestedReference)(nil), // 0: buf.protoschema.test.v1.NestedReference + (*CustomOptions)(nil), // 1: buf.protoschema.test.v1.CustomOptions + (*CustomBigQuery)(nil), // 2: buf.protoschema.test.v1.CustomBigQuery + (*proto3.TestAllTypes_NestedMessage)(nil), // 3: bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage +} +var file_buf_protoschema_test_v1_test_cases_proto_depIdxs = []int32{ + 3, // 0: buf.protoschema.test.v1.NestedReference.nested_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 0, // 1: buf.protoschema.test.v1.CustomBigQuery.nested_reference:type_name -> buf.protoschema.test.v1.NestedReference + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_buf_protoschema_test_v1_test_cases_proto_init() } +func file_buf_protoschema_test_v1_test_cases_proto_init() { + if File_buf_protoschema_test_v1_test_cases_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_buf_protoschema_test_v1_test_cases_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NestedReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_protoschema_test_v1_test_cases_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_buf_protoschema_test_v1_test_cases_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomBigQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_buf_protoschema_test_v1_test_cases_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*CustomOptions_StringField)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_buf_protoschema_test_v1_test_cases_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_buf_protoschema_test_v1_test_cases_proto_goTypes, + DependencyIndexes: file_buf_protoschema_test_v1_test_cases_proto_depIdxs, + MessageInfos: file_buf_protoschema_test_v1_test_cases_proto_msgTypes, + }.Build() + File_buf_protoschema_test_v1_test_cases_proto = out.File + file_buf_protoschema_test_v1_test_cases_proto_rawDesc = nil + file_buf_protoschema_test_v1_test_cases_proto_goTypes = nil + file_buf_protoschema_test_v1_test_cases_proto_depIdxs = nil +} diff --git a/internal/gen/proto/bufext/cel/expr/conformance/proto3/test_all_types.pb.go b/internal/gen/proto/bufext/cel/expr/conformance/proto3/test_all_types.pb.go new file mode 100644 index 0000000..ba79870 --- /dev/null +++ b/internal/gen/proto/bufext/cel/expr/conformance/proto3/test_all_types.pb.go @@ -0,0 +1,5297 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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. + +// Mostly originally copied from https://github.com/google/cel-spec/blob/ed066e332b7acc3dbf68e65e0001061539d25e83/proto/cel/expr/conformance/proto3/test_all_types.proto. +// See the license at https://github.com/google/cel-spec/blob/ed066e332b7acc3dbf68e65e0001061539d25e83/LICENSE. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc (unknown) +// source: bufext/cel/expr/conformance/proto3/test_all_types.proto + +package proto3 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// This proto tests that global enums are resolved correctly. +type GlobalEnum int32 + +const ( + GlobalEnum_GOO GlobalEnum = 0 + GlobalEnum_GAR GlobalEnum = 1 + GlobalEnum_GAZ GlobalEnum = 2 +) + +// Enum value maps for GlobalEnum. +var ( + GlobalEnum_name = map[int32]string{ + 0: "GOO", + 1: "GAR", + 2: "GAZ", + } + GlobalEnum_value = map[string]int32{ + "GOO": 0, + "GAR": 1, + "GAZ": 2, + } +) + +func (x GlobalEnum) Enum() *GlobalEnum { + p := new(GlobalEnum) + *p = x + return p +} + +func (x GlobalEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GlobalEnum) Descriptor() protoreflect.EnumDescriptor { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes[0].Descriptor() +} + +func (GlobalEnum) Type() protoreflect.EnumType { + return &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes[0] +} + +func (x GlobalEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GlobalEnum.Descriptor instead. +func (GlobalEnum) EnumDescriptor() ([]byte, []int) { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP(), []int{0} +} + +type TestAllTypes_NestedEnum int32 + +const ( + TestAllTypes_FOO TestAllTypes_NestedEnum = 0 + TestAllTypes_BAR TestAllTypes_NestedEnum = 1 + TestAllTypes_BAZ TestAllTypes_NestedEnum = 2 +) + +// Enum value maps for TestAllTypes_NestedEnum. +var ( + TestAllTypes_NestedEnum_name = map[int32]string{ + 0: "FOO", + 1: "BAR", + 2: "BAZ", + } + TestAllTypes_NestedEnum_value = map[string]int32{ + "FOO": 0, + "BAR": 1, + "BAZ": 2, + } +) + +func (x TestAllTypes_NestedEnum) Enum() *TestAllTypes_NestedEnum { + p := new(TestAllTypes_NestedEnum) + *p = x + return p +} + +func (x TestAllTypes_NestedEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TestAllTypes_NestedEnum) Descriptor() protoreflect.EnumDescriptor { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes[1].Descriptor() +} + +func (TestAllTypes_NestedEnum) Type() protoreflect.EnumType { + return &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes[1] +} + +func (x TestAllTypes_NestedEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TestAllTypes_NestedEnum.Descriptor instead. +func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP(), []int{0, 0} +} + +// This proto includes every type of field in both singular and repeated +// forms. +type TestAllTypes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Singular + SingleInt32 int32 `protobuf:"varint,1,opt,name=single_int32,json=singleInt32,proto3" json:"single_int32,omitempty"` + SingleInt64 int64 `protobuf:"varint,2,opt,name=single_int64,json=singleInt64,proto3" json:"single_int64,omitempty"` + SingleUint32 uint32 `protobuf:"varint,3,opt,name=single_uint32,json=singleUint32,proto3" json:"single_uint32,omitempty"` + SingleUint64 uint64 `protobuf:"varint,4,opt,name=single_uint64,json=singleUint64,proto3" json:"single_uint64,omitempty"` + SingleSint32 int32 `protobuf:"zigzag32,5,opt,name=single_sint32,json=singleSint32,proto3" json:"single_sint32,omitempty"` + SingleSint64 int64 `protobuf:"zigzag64,6,opt,name=single_sint64,json=singleSint64,proto3" json:"single_sint64,omitempty"` + SingleFixed32 uint32 `protobuf:"fixed32,7,opt,name=single_fixed32,json=singleFixed32,proto3" json:"single_fixed32,omitempty"` + SingleFixed64 uint64 `protobuf:"fixed64,8,opt,name=single_fixed64,json=singleFixed64,proto3" json:"single_fixed64,omitempty"` + SingleSfixed32 int32 `protobuf:"fixed32,9,opt,name=single_sfixed32,json=singleSfixed32,proto3" json:"single_sfixed32,omitempty"` + SingleSfixed64 int64 `protobuf:"fixed64,10,opt,name=single_sfixed64,json=singleSfixed64,proto3" json:"single_sfixed64,omitempty"` + SingleFloat float32 `protobuf:"fixed32,11,opt,name=single_float,json=singleFloat,proto3" json:"single_float,omitempty"` + SingleDouble float64 `protobuf:"fixed64,12,opt,name=single_double,json=singleDouble,proto3" json:"single_double,omitempty"` + SingleBool bool `protobuf:"varint,13,opt,name=single_bool,json=singleBool,proto3" json:"single_bool,omitempty"` + SingleString string `protobuf:"bytes,14,opt,name=single_string,json=singleString,proto3" json:"single_string,omitempty"` + SingleBytes []byte `protobuf:"bytes,15,opt,name=single_bytes,json=singleBytes,proto3" json:"single_bytes,omitempty"` + // Wellknown. + SingleAny *anypb.Any `protobuf:"bytes,100,opt,name=single_any,json=singleAny,proto3" json:"single_any,omitempty"` + SingleDuration *durationpb.Duration `protobuf:"bytes,101,opt,name=single_duration,json=singleDuration,proto3" json:"single_duration,omitempty"` + SingleTimestamp *timestamppb.Timestamp `protobuf:"bytes,102,opt,name=single_timestamp,json=singleTimestamp,proto3" json:"single_timestamp,omitempty"` + SingleStruct *structpb.Struct `protobuf:"bytes,103,opt,name=single_struct,json=singleStruct,proto3" json:"single_struct,omitempty"` + SingleValue *structpb.Value `protobuf:"bytes,104,opt,name=single_value,json=singleValue,proto3" json:"single_value,omitempty"` + SingleInt64Wrapper *wrapperspb.Int64Value `protobuf:"bytes,105,opt,name=single_int64_wrapper,json=singleInt64Wrapper,proto3" json:"single_int64_wrapper,omitempty"` + SingleInt32Wrapper *wrapperspb.Int32Value `protobuf:"bytes,106,opt,name=single_int32_wrapper,json=singleInt32Wrapper,proto3" json:"single_int32_wrapper,omitempty"` + SingleDoubleWrapper *wrapperspb.DoubleValue `protobuf:"bytes,107,opt,name=single_double_wrapper,json=singleDoubleWrapper,proto3" json:"single_double_wrapper,omitempty"` + SingleFloatWrapper *wrapperspb.FloatValue `protobuf:"bytes,108,opt,name=single_float_wrapper,json=singleFloatWrapper,proto3" json:"single_float_wrapper,omitempty"` + SingleUint64Wrapper *wrapperspb.UInt64Value `protobuf:"bytes,109,opt,name=single_uint64_wrapper,json=singleUint64Wrapper,proto3" json:"single_uint64_wrapper,omitempty"` + SingleUint32Wrapper *wrapperspb.UInt32Value `protobuf:"bytes,110,opt,name=single_uint32_wrapper,json=singleUint32Wrapper,proto3" json:"single_uint32_wrapper,omitempty"` + SingleStringWrapper *wrapperspb.StringValue `protobuf:"bytes,111,opt,name=single_string_wrapper,json=singleStringWrapper,proto3" json:"single_string_wrapper,omitempty"` + SingleBoolWrapper *wrapperspb.BoolValue `protobuf:"bytes,112,opt,name=single_bool_wrapper,json=singleBoolWrapper,proto3" json:"single_bool_wrapper,omitempty"` + SingleBytesWrapper *wrapperspb.BytesValue `protobuf:"bytes,113,opt,name=single_bytes_wrapper,json=singleBytesWrapper,proto3" json:"single_bytes_wrapper,omitempty"` + ListValue *structpb.ListValue `protobuf:"bytes,114,opt,name=list_value,json=listValue,proto3" json:"list_value,omitempty"` + NullValue structpb.NullValue `protobuf:"varint,115,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue" json:"null_value,omitempty"` + OptionalNullValue *structpb.NullValue `protobuf:"varint,116,opt,name=optional_null_value,json=optionalNullValue,proto3,enum=google.protobuf.NullValue,oneof" json:"optional_null_value,omitempty"` + // Nested messages + // + // Types that are assignable to NestedType: + // + // *TestAllTypes_SingleNestedMessage + // *TestAllTypes_SingleNestedEnum + NestedType isTestAllTypes_NestedType `protobuf_oneof:"nested_type"` + StandaloneMessage *TestAllTypes_NestedMessage `protobuf:"bytes,23,opt,name=standalone_message,json=standaloneMessage,proto3" json:"standalone_message,omitempty"` + StandaloneEnum TestAllTypes_NestedEnum `protobuf:"varint,24,opt,name=standalone_enum,json=standaloneEnum,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum" json:"standalone_enum,omitempty"` + // Repeated + RepeatedInt32 []int32 `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32,proto3" json:"repeated_int32,omitempty"` + RepeatedInt64 []int64 `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64,proto3" json:"repeated_int64,omitempty"` + RepeatedUint32 []uint32 `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32,proto3" json:"repeated_uint32,omitempty"` + RepeatedUint64 []uint64 `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64,proto3" json:"repeated_uint64,omitempty"` + RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32,proto3" json:"repeated_sint32,omitempty"` + RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64,proto3" json:"repeated_sint64,omitempty"` + RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32,proto3" json:"repeated_fixed32,omitempty"` + RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64,proto3" json:"repeated_fixed64,omitempty"` + RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32,proto3" json:"repeated_sfixed32,omitempty"` + RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64,proto3" json:"repeated_sfixed64,omitempty"` + RepeatedFloat []float32 `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat,proto3" json:"repeated_float,omitempty"` + RepeatedDouble []float64 `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble,proto3" json:"repeated_double,omitempty"` + RepeatedBool []bool `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool,proto3" json:"repeated_bool,omitempty"` + RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString,proto3" json:"repeated_string,omitempty"` + RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` + // Repeated and nested + RepeatedNestedMessage []*TestAllTypes_NestedMessage `protobuf:"bytes,51,rep,name=repeated_nested_message,json=repeatedNestedMessage,proto3" json:"repeated_nested_message,omitempty"` + RepeatedNestedEnum []TestAllTypes_NestedEnum `protobuf:"varint,52,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"` + RepeatedStringPiece []string `protobuf:"bytes,53,rep,name=repeated_string_piece,json=repeatedStringPiece,proto3" json:"repeated_string_piece,omitempty"` + RepeatedCord []string `protobuf:"bytes,54,rep,name=repeated_cord,json=repeatedCord,proto3" json:"repeated_cord,omitempty"` + RepeatedLazyMessage []*TestAllTypes_NestedMessage `protobuf:"bytes,55,rep,name=repeated_lazy_message,json=repeatedLazyMessage,proto3" json:"repeated_lazy_message,omitempty"` + // Repeated wellknown. + RepeatedAny []*anypb.Any `protobuf:"bytes,120,rep,name=repeated_any,json=repeatedAny,proto3" json:"repeated_any,omitempty"` + RepeatedDuration []*durationpb.Duration `protobuf:"bytes,121,rep,name=repeated_duration,json=repeatedDuration,proto3" json:"repeated_duration,omitempty"` + RepeatedTimestamp []*timestamppb.Timestamp `protobuf:"bytes,122,rep,name=repeated_timestamp,json=repeatedTimestamp,proto3" json:"repeated_timestamp,omitempty"` + RepeatedStruct []*structpb.Struct `protobuf:"bytes,123,rep,name=repeated_struct,json=repeatedStruct,proto3" json:"repeated_struct,omitempty"` + RepeatedValue []*structpb.Value `protobuf:"bytes,124,rep,name=repeated_value,json=repeatedValue,proto3" json:"repeated_value,omitempty"` + RepeatedInt64Wrapper []*wrapperspb.Int64Value `protobuf:"bytes,125,rep,name=repeated_int64_wrapper,json=repeatedInt64Wrapper,proto3" json:"repeated_int64_wrapper,omitempty"` + RepeatedInt32Wrapper []*wrapperspb.Int32Value `protobuf:"bytes,126,rep,name=repeated_int32_wrapper,json=repeatedInt32Wrapper,proto3" json:"repeated_int32_wrapper,omitempty"` + RepeatedDoubleWrapper []*wrapperspb.DoubleValue `protobuf:"bytes,127,rep,name=repeated_double_wrapper,json=repeatedDoubleWrapper,proto3" json:"repeated_double_wrapper,omitempty"` + RepeatedFloatWrapper []*wrapperspb.FloatValue `protobuf:"bytes,128,rep,name=repeated_float_wrapper,json=repeatedFloatWrapper,proto3" json:"repeated_float_wrapper,omitempty"` + RepeatedUint64Wrapper []*wrapperspb.UInt64Value `protobuf:"bytes,129,rep,name=repeated_uint64_wrapper,json=repeatedUint64Wrapper,proto3" json:"repeated_uint64_wrapper,omitempty"` + RepeatedUint32Wrapper []*wrapperspb.UInt32Value `protobuf:"bytes,130,rep,name=repeated_uint32_wrapper,json=repeatedUint32Wrapper,proto3" json:"repeated_uint32_wrapper,omitempty"` + RepeatedStringWrapper []*wrapperspb.StringValue `protobuf:"bytes,131,rep,name=repeated_string_wrapper,json=repeatedStringWrapper,proto3" json:"repeated_string_wrapper,omitempty"` + RepeatedBoolWrapper []*wrapperspb.BoolValue `protobuf:"bytes,132,rep,name=repeated_bool_wrapper,json=repeatedBoolWrapper,proto3" json:"repeated_bool_wrapper,omitempty"` + RepeatedBytesWrapper []*wrapperspb.BytesValue `protobuf:"bytes,133,rep,name=repeated_bytes_wrapper,json=repeatedBytesWrapper,proto3" json:"repeated_bytes_wrapper,omitempty"` + RepeatedListValue []*structpb.ListValue `protobuf:"bytes,134,rep,name=repeated_list_value,json=repeatedListValue,proto3" json:"repeated_list_value,omitempty"` + RepeatedNullValue []structpb.NullValue `protobuf:"varint,135,rep,packed,name=repeated_null_value,json=repeatedNullValue,proto3,enum=google.protobuf.NullValue" json:"repeated_null_value,omitempty"` + // Map + MapInt64NestedType map[int64]*NestedTestAllTypes `protobuf:"bytes,62,rep,name=map_int64_nested_type,json=mapInt64NestedType,proto3" json:"map_int64_nested_type,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolBool map[bool]bool `protobuf:"bytes,63,rep,name=map_bool_bool,json=mapBoolBool,proto3" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapBoolString map[bool]string `protobuf:"bytes,64,rep,name=map_bool_string,json=mapBoolString,proto3" json:"map_bool_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolBytes map[bool][]byte `protobuf:"bytes,65,rep,name=map_bool_bytes,json=mapBoolBytes,proto3" json:"map_bool_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolInt32 map[bool]int32 `protobuf:"bytes,66,rep,name=map_bool_int32,json=mapBoolInt32,proto3" json:"map_bool_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapBoolInt64 map[bool]int64 `protobuf:"bytes,67,rep,name=map_bool_int64,json=mapBoolInt64,proto3" json:"map_bool_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapBoolUint32 map[bool]uint32 `protobuf:"bytes,68,rep,name=map_bool_uint32,json=mapBoolUint32,proto3" json:"map_bool_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapBoolUint64 map[bool]uint64 `protobuf:"bytes,69,rep,name=map_bool_uint64,json=mapBoolUint64,proto3" json:"map_bool_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapBoolFloat map[bool]float32 `protobuf:"bytes,70,rep,name=map_bool_float,json=mapBoolFloat,proto3" json:"map_bool_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapBoolDouble map[bool]float64 `protobuf:"bytes,71,rep,name=map_bool_double,json=mapBoolDouble,proto3" json:"map_bool_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapBoolEnum map[bool]TestAllTypes_NestedEnum `protobuf:"bytes,72,rep,name=map_bool_enum,json=mapBoolEnum,proto3" json:"map_bool_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapBoolMessage map[bool]*TestAllTypes_NestedMessage `protobuf:"bytes,73,rep,name=map_bool_message,json=mapBoolMessage,proto3" json:"map_bool_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolDuration map[bool]*durationpb.Duration `protobuf:"bytes,228,rep,name=map_bool_duration,json=mapBoolDuration,proto3" json:"map_bool_duration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolTimestamp map[bool]*timestamppb.Timestamp `protobuf:"bytes,229,rep,name=map_bool_timestamp,json=mapBoolTimestamp,proto3" json:"map_bool_timestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolNullValue map[bool]structpb.NullValue `protobuf:"bytes,230,rep,name=map_bool_null_value,json=mapBoolNullValue,proto3" json:"map_bool_null_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapBoolAny map[bool]*anypb.Any `protobuf:"bytes,246,rep,name=map_bool_any,json=mapBoolAny,proto3" json:"map_bool_any,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolStruct map[bool]*structpb.Struct `protobuf:"bytes,247,rep,name=map_bool_struct,json=mapBoolStruct,proto3" json:"map_bool_struct,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolValue map[bool]*structpb.Value `protobuf:"bytes,248,rep,name=map_bool_value,json=mapBoolValue,proto3" json:"map_bool_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolListValue map[bool]*structpb.ListValue `protobuf:"bytes,249,rep,name=map_bool_list_value,json=mapBoolListValue,proto3" json:"map_bool_list_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolInt64Wrapper map[bool]*wrapperspb.Int64Value `protobuf:"bytes,250,rep,name=map_bool_int64_wrapper,json=mapBoolInt64Wrapper,proto3" json:"map_bool_int64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolInt32Wrapper map[bool]*wrapperspb.Int32Value `protobuf:"bytes,251,rep,name=map_bool_int32_wrapper,json=mapBoolInt32Wrapper,proto3" json:"map_bool_int32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolDoubleWrapper map[bool]*wrapperspb.DoubleValue `protobuf:"bytes,252,rep,name=map_bool_double_wrapper,json=mapBoolDoubleWrapper,proto3" json:"map_bool_double_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolFloatWrapper map[bool]*wrapperspb.FloatValue `protobuf:"bytes,253,rep,name=map_bool_float_wrapper,json=mapBoolFloatWrapper,proto3" json:"map_bool_float_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolUint64Wrapper map[bool]*wrapperspb.UInt64Value `protobuf:"bytes,254,rep,name=map_bool_uint64_wrapper,json=mapBoolUint64Wrapper,proto3" json:"map_bool_uint64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolUint32Wrapper map[bool]*wrapperspb.UInt32Value `protobuf:"bytes,255,rep,name=map_bool_uint32_wrapper,json=mapBoolUint32Wrapper,proto3" json:"map_bool_uint32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolStringWrapper map[bool]*wrapperspb.StringValue `protobuf:"bytes,256,rep,name=map_bool_string_wrapper,json=mapBoolStringWrapper,proto3" json:"map_bool_string_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolBoolWrapper map[bool]*wrapperspb.BoolValue `protobuf:"bytes,257,rep,name=map_bool_bool_wrapper,json=mapBoolBoolWrapper,proto3" json:"map_bool_bool_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapBoolBytesWrapper map[bool]*wrapperspb.BytesValue `protobuf:"bytes,258,rep,name=map_bool_bytes_wrapper,json=mapBoolBytesWrapper,proto3" json:"map_bool_bytes_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Bool map[int32]bool `protobuf:"bytes,74,rep,name=map_int32_bool,json=mapInt32Bool,proto3" json:"map_int32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt32String map[int32]string `protobuf:"bytes,75,rep,name=map_int32_string,json=mapInt32String,proto3" json:"map_int32_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Bytes map[int32][]byte `protobuf:"bytes,76,rep,name=map_int32_bytes,json=mapInt32Bytes,proto3" json:"map_int32_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Int32 map[int32]int32 `protobuf:"bytes,77,rep,name=map_int32_int32,json=mapInt32Int32,proto3" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt32Int64 map[int32]int64 `protobuf:"bytes,78,rep,name=map_int32_int64,json=mapInt32Int64,proto3" json:"map_int32_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt32Uint32 map[int32]uint32 `protobuf:"bytes,79,rep,name=map_int32_uint32,json=mapInt32Uint32,proto3" json:"map_int32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt32Uint64 map[int32]uint64 `protobuf:"bytes,80,rep,name=map_int32_uint64,json=mapInt32Uint64,proto3" json:"map_int32_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt32Float map[int32]float32 `protobuf:"bytes,81,rep,name=map_int32_float,json=mapInt32Float,proto3" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapInt32Double map[int32]float64 `protobuf:"bytes,82,rep,name=map_int32_double,json=mapInt32Double,proto3" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapInt32Enum map[int32]TestAllTypes_NestedEnum `protobuf:"bytes,83,rep,name=map_int32_enum,json=mapInt32Enum,proto3" json:"map_int32_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapInt32Message map[int32]*TestAllTypes_NestedMessage `protobuf:"bytes,84,rep,name=map_int32_message,json=mapInt32Message,proto3" json:"map_int32_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Duration map[int32]*durationpb.Duration `protobuf:"bytes,231,rep,name=map_int32_duration,json=mapInt32Duration,proto3" json:"map_int32_duration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Timestamp map[int32]*timestamppb.Timestamp `protobuf:"bytes,232,rep,name=map_int32_timestamp,json=mapInt32Timestamp,proto3" json:"map_int32_timestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32NullValue map[int32]structpb.NullValue `protobuf:"bytes,233,rep,name=map_int32_null_value,json=mapInt32NullValue,proto3" json:"map_int32_null_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapInt32Any map[int32]*anypb.Any `protobuf:"bytes,259,rep,name=map_int32_any,json=mapInt32Any,proto3" json:"map_int32_any,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Struct map[int32]*structpb.Struct `protobuf:"bytes,260,rep,name=map_int32_struct,json=mapInt32Struct,proto3" json:"map_int32_struct,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Value map[int32]*structpb.Value `protobuf:"bytes,261,rep,name=map_int32_value,json=mapInt32Value,proto3" json:"map_int32_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32ListValue map[int32]*structpb.ListValue `protobuf:"bytes,262,rep,name=map_int32_list_value,json=mapInt32ListValue,proto3" json:"map_int32_list_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Int64Wrapper map[int32]*wrapperspb.Int64Value `protobuf:"bytes,263,rep,name=map_int32_int64_wrapper,json=mapInt32Int64Wrapper,proto3" json:"map_int32_int64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Int32Wrapper map[int32]*wrapperspb.Int32Value `protobuf:"bytes,264,rep,name=map_int32_int32_wrapper,json=mapInt32Int32Wrapper,proto3" json:"map_int32_int32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32DoubleWrapper map[int32]*wrapperspb.DoubleValue `protobuf:"bytes,265,rep,name=map_int32_double_wrapper,json=mapInt32DoubleWrapper,proto3" json:"map_int32_double_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32FloatWrapper map[int32]*wrapperspb.FloatValue `protobuf:"bytes,266,rep,name=map_int32_float_wrapper,json=mapInt32FloatWrapper,proto3" json:"map_int32_float_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Uint64Wrapper map[int32]*wrapperspb.UInt64Value `protobuf:"bytes,267,rep,name=map_int32_uint64_wrapper,json=mapInt32Uint64Wrapper,proto3" json:"map_int32_uint64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32Uint32Wrapper map[int32]*wrapperspb.UInt32Value `protobuf:"bytes,268,rep,name=map_int32_uint32_wrapper,json=mapInt32Uint32Wrapper,proto3" json:"map_int32_uint32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32StringWrapper map[int32]*wrapperspb.StringValue `protobuf:"bytes,269,rep,name=map_int32_string_wrapper,json=mapInt32StringWrapper,proto3" json:"map_int32_string_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32BoolWrapper map[int32]*wrapperspb.BoolValue `protobuf:"bytes,270,rep,name=map_int32_bool_wrapper,json=mapInt32BoolWrapper,proto3" json:"map_int32_bool_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt32BytesWrapper map[int32]*wrapperspb.BytesValue `protobuf:"bytes,271,rep,name=map_int32_bytes_wrapper,json=mapInt32BytesWrapper,proto3" json:"map_int32_bytes_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Bool map[int64]bool `protobuf:"bytes,85,rep,name=map_int64_bool,json=mapInt64Bool,proto3" json:"map_int64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt64String map[int64]string `protobuf:"bytes,86,rep,name=map_int64_string,json=mapInt64String,proto3" json:"map_int64_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Bytes map[int64][]byte `protobuf:"bytes,87,rep,name=map_int64_bytes,json=mapInt64Bytes,proto3" json:"map_int64_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Int32 map[int64]int32 `protobuf:"bytes,88,rep,name=map_int64_int32,json=mapInt64Int32,proto3" json:"map_int64_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt64Int64 map[int64]int64 `protobuf:"bytes,89,rep,name=map_int64_int64,json=mapInt64Int64,proto3" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt64Uint32 map[int64]uint32 `protobuf:"bytes,90,rep,name=map_int64_uint32,json=mapInt64Uint32,proto3" json:"map_int64_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt64Uint64 map[int64]uint64 `protobuf:"bytes,91,rep,name=map_int64_uint64,json=mapInt64Uint64,proto3" json:"map_int64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapInt64Float map[int64]float32 `protobuf:"bytes,92,rep,name=map_int64_float,json=mapInt64Float,proto3" json:"map_int64_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapInt64Double map[int64]float64 `protobuf:"bytes,93,rep,name=map_int64_double,json=mapInt64Double,proto3" json:"map_int64_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapInt64Enum map[int64]TestAllTypes_NestedEnum `protobuf:"bytes,94,rep,name=map_int64_enum,json=mapInt64Enum,proto3" json:"map_int64_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapInt64Message map[int64]*TestAllTypes_NestedMessage `protobuf:"bytes,95,rep,name=map_int64_message,json=mapInt64Message,proto3" json:"map_int64_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Duration map[int64]*durationpb.Duration `protobuf:"bytes,234,rep,name=map_int64_duration,json=mapInt64Duration,proto3" json:"map_int64_duration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Timestamp map[int64]*timestamppb.Timestamp `protobuf:"bytes,235,rep,name=map_int64_timestamp,json=mapInt64Timestamp,proto3" json:"map_int64_timestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64NullValue map[int64]structpb.NullValue `protobuf:"bytes,236,rep,name=map_int64_null_value,json=mapInt64NullValue,proto3" json:"map_int64_null_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapInt64Any map[int64]*anypb.Any `protobuf:"bytes,272,rep,name=map_int64_any,json=mapInt64Any,proto3" json:"map_int64_any,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Struct map[int64]*structpb.Struct `protobuf:"bytes,273,rep,name=map_int64_struct,json=mapInt64Struct,proto3" json:"map_int64_struct,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Value map[int64]*structpb.Value `protobuf:"bytes,274,rep,name=map_int64_value,json=mapInt64Value,proto3" json:"map_int64_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64ListValue map[int64]*structpb.ListValue `protobuf:"bytes,275,rep,name=map_int64_list_value,json=mapInt64ListValue,proto3" json:"map_int64_list_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Int64Wrapper map[int64]*wrapperspb.Int64Value `protobuf:"bytes,276,rep,name=map_int64_int64_wrapper,json=mapInt64Int64Wrapper,proto3" json:"map_int64_int64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Int32Wrapper map[int64]*wrapperspb.Int32Value `protobuf:"bytes,277,rep,name=map_int64_int32_wrapper,json=mapInt64Int32Wrapper,proto3" json:"map_int64_int32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64DoubleWrapper map[int64]*wrapperspb.DoubleValue `protobuf:"bytes,278,rep,name=map_int64_double_wrapper,json=mapInt64DoubleWrapper,proto3" json:"map_int64_double_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64FloatWrapper map[int64]*wrapperspb.FloatValue `protobuf:"bytes,279,rep,name=map_int64_float_wrapper,json=mapInt64FloatWrapper,proto3" json:"map_int64_float_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Uint64Wrapper map[int64]*wrapperspb.UInt64Value `protobuf:"bytes,280,rep,name=map_int64_uint64_wrapper,json=mapInt64Uint64Wrapper,proto3" json:"map_int64_uint64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64Uint32Wrapper map[int64]*wrapperspb.UInt32Value `protobuf:"bytes,281,rep,name=map_int64_uint32_wrapper,json=mapInt64Uint32Wrapper,proto3" json:"map_int64_uint32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64StringWrapper map[int64]*wrapperspb.StringValue `protobuf:"bytes,282,rep,name=map_int64_string_wrapper,json=mapInt64StringWrapper,proto3" json:"map_int64_string_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64BoolWrapper map[int64]*wrapperspb.BoolValue `protobuf:"bytes,283,rep,name=map_int64_bool_wrapper,json=mapInt64BoolWrapper,proto3" json:"map_int64_bool_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapInt64BytesWrapper map[int64]*wrapperspb.BytesValue `protobuf:"bytes,284,rep,name=map_int64_bytes_wrapper,json=mapInt64BytesWrapper,proto3" json:"map_int64_bytes_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Bool map[uint32]bool `protobuf:"bytes,96,rep,name=map_uint32_bool,json=mapUint32Bool,proto3" json:"map_uint32_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint32String map[uint32]string `protobuf:"bytes,97,rep,name=map_uint32_string,json=mapUint32String,proto3" json:"map_uint32_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Bytes map[uint32][]byte `protobuf:"bytes,98,rep,name=map_uint32_bytes,json=mapUint32Bytes,proto3" json:"map_uint32_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Int32 map[uint32]int32 `protobuf:"bytes,99,rep,name=map_uint32_int32,json=mapUint32Int32,proto3" json:"map_uint32_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint32Int64 map[uint32]int64 `protobuf:"bytes,200,rep,name=map_uint32_int64,json=mapUint32Int64,proto3" json:"map_uint32_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,201,rep,name=map_uint32_uint32,json=mapUint32Uint32,proto3" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint32Uint64 map[uint32]uint64 `protobuf:"bytes,202,rep,name=map_uint32_uint64,json=mapUint32Uint64,proto3" json:"map_uint32_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint32Float map[uint32]float32 `protobuf:"bytes,203,rep,name=map_uint32_float,json=mapUint32Float,proto3" json:"map_uint32_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapUint32Double map[uint32]float64 `protobuf:"bytes,204,rep,name=map_uint32_double,json=mapUint32Double,proto3" json:"map_uint32_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapUint32Enum map[uint32]TestAllTypes_NestedEnum `protobuf:"bytes,205,rep,name=map_uint32_enum,json=mapUint32Enum,proto3" json:"map_uint32_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapUint32Message map[uint32]*TestAllTypes_NestedMessage `protobuf:"bytes,206,rep,name=map_uint32_message,json=mapUint32Message,proto3" json:"map_uint32_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Duration map[uint32]*durationpb.Duration `protobuf:"bytes,237,rep,name=map_uint32_duration,json=mapUint32Duration,proto3" json:"map_uint32_duration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Timestamp map[uint32]*timestamppb.Timestamp `protobuf:"bytes,238,rep,name=map_uint32_timestamp,json=mapUint32Timestamp,proto3" json:"map_uint32_timestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32NullValue map[uint32]structpb.NullValue `protobuf:"bytes,239,rep,name=map_uint32_null_value,json=mapUint32NullValue,proto3" json:"map_uint32_null_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapUint32Any map[uint32]*anypb.Any `protobuf:"bytes,285,rep,name=map_uint32_any,json=mapUint32Any,proto3" json:"map_uint32_any,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Struct map[uint32]*structpb.Struct `protobuf:"bytes,286,rep,name=map_uint32_struct,json=mapUint32Struct,proto3" json:"map_uint32_struct,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Value map[uint32]*structpb.Value `protobuf:"bytes,287,rep,name=map_uint32_value,json=mapUint32Value,proto3" json:"map_uint32_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32ListValue map[uint32]*structpb.ListValue `protobuf:"bytes,288,rep,name=map_uint32_list_value,json=mapUint32ListValue,proto3" json:"map_uint32_list_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Int64Wrapper map[uint32]*wrapperspb.Int64Value `protobuf:"bytes,289,rep,name=map_uint32_int64_wrapper,json=mapUint32Int64Wrapper,proto3" json:"map_uint32_int64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Int32Wrapper map[uint32]*wrapperspb.Int32Value `protobuf:"bytes,290,rep,name=map_uint32_int32_wrapper,json=mapUint32Int32Wrapper,proto3" json:"map_uint32_int32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32DoubleWrapper map[uint32]*wrapperspb.DoubleValue `protobuf:"bytes,291,rep,name=map_uint32_double_wrapper,json=mapUint32DoubleWrapper,proto3" json:"map_uint32_double_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32FloatWrapper map[uint32]*wrapperspb.FloatValue `protobuf:"bytes,292,rep,name=map_uint32_float_wrapper,json=mapUint32FloatWrapper,proto3" json:"map_uint32_float_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Uint64Wrapper map[uint32]*wrapperspb.UInt64Value `protobuf:"bytes,293,rep,name=map_uint32_uint64_wrapper,json=mapUint32Uint64Wrapper,proto3" json:"map_uint32_uint64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32Uint32Wrapper map[uint32]*wrapperspb.UInt32Value `protobuf:"bytes,294,rep,name=map_uint32_uint32_wrapper,json=mapUint32Uint32Wrapper,proto3" json:"map_uint32_uint32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32StringWrapper map[uint32]*wrapperspb.StringValue `protobuf:"bytes,295,rep,name=map_uint32_string_wrapper,json=mapUint32StringWrapper,proto3" json:"map_uint32_string_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32BoolWrapper map[uint32]*wrapperspb.BoolValue `protobuf:"bytes,296,rep,name=map_uint32_bool_wrapper,json=mapUint32BoolWrapper,proto3" json:"map_uint32_bool_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint32BytesWrapper map[uint32]*wrapperspb.BytesValue `protobuf:"bytes,297,rep,name=map_uint32_bytes_wrapper,json=mapUint32BytesWrapper,proto3" json:"map_uint32_bytes_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Bool map[uint64]bool `protobuf:"bytes,207,rep,name=map_uint64_bool,json=mapUint64Bool,proto3" json:"map_uint64_bool,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint64String map[uint64]string `protobuf:"bytes,208,rep,name=map_uint64_string,json=mapUint64String,proto3" json:"map_uint64_string,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Bytes map[uint64][]byte `protobuf:"bytes,209,rep,name=map_uint64_bytes,json=mapUint64Bytes,proto3" json:"map_uint64_bytes,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Int32 map[uint64]int32 `protobuf:"bytes,210,rep,name=map_uint64_int32,json=mapUint64Int32,proto3" json:"map_uint64_int32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint64Int64 map[uint64]int64 `protobuf:"bytes,211,rep,name=map_uint64_int64,json=mapUint64Int64,proto3" json:"map_uint64_int64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint64Uint32 map[uint64]uint32 `protobuf:"bytes,212,rep,name=map_uint64_uint32,json=mapUint64Uint32,proto3" json:"map_uint64_uint32,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,213,rep,name=map_uint64_uint64,json=mapUint64Uint64,proto3" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapUint64Float map[uint64]float32 `protobuf:"bytes,214,rep,name=map_uint64_float,json=mapUint64Float,proto3" json:"map_uint64_float,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapUint64Double map[uint64]float64 `protobuf:"bytes,215,rep,name=map_uint64_double,json=mapUint64Double,proto3" json:"map_uint64_double,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapUint64Enum map[uint64]TestAllTypes_NestedEnum `protobuf:"bytes,216,rep,name=map_uint64_enum,json=mapUint64Enum,proto3" json:"map_uint64_enum,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapUint64Message map[uint64]*TestAllTypes_NestedMessage `protobuf:"bytes,217,rep,name=map_uint64_message,json=mapUint64Message,proto3" json:"map_uint64_message,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Duration map[uint64]*durationpb.Duration `protobuf:"bytes,240,rep,name=map_uint64_duration,json=mapUint64Duration,proto3" json:"map_uint64_duration,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Timestamp map[uint64]*timestamppb.Timestamp `protobuf:"bytes,241,rep,name=map_uint64_timestamp,json=mapUint64Timestamp,proto3" json:"map_uint64_timestamp,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64NullValue map[uint64]structpb.NullValue `protobuf:"bytes,242,rep,name=map_uint64_null_value,json=mapUint64NullValue,proto3" json:"map_uint64_null_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapUint64Any map[uint64]*anypb.Any `protobuf:"bytes,298,rep,name=map_uint64_any,json=mapUint64Any,proto3" json:"map_uint64_any,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Struct map[uint64]*structpb.Struct `protobuf:"bytes,299,rep,name=map_uint64_struct,json=mapUint64Struct,proto3" json:"map_uint64_struct,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Value map[uint64]*structpb.Value `protobuf:"bytes,300,rep,name=map_uint64_value,json=mapUint64Value,proto3" json:"map_uint64_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64ListValue map[uint64]*structpb.ListValue `protobuf:"bytes,301,rep,name=map_uint64_list_value,json=mapUint64ListValue,proto3" json:"map_uint64_list_value,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Int64Wrapper map[uint64]*wrapperspb.Int64Value `protobuf:"bytes,302,rep,name=map_uint64_int64_wrapper,json=mapUint64Int64Wrapper,proto3" json:"map_uint64_int64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Int32Wrapper map[uint64]*wrapperspb.Int32Value `protobuf:"bytes,303,rep,name=map_uint64_int32_wrapper,json=mapUint64Int32Wrapper,proto3" json:"map_uint64_int32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64DoubleWrapper map[uint64]*wrapperspb.DoubleValue `protobuf:"bytes,304,rep,name=map_uint64_double_wrapper,json=mapUint64DoubleWrapper,proto3" json:"map_uint64_double_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64FloatWrapper map[uint64]*wrapperspb.FloatValue `protobuf:"bytes,305,rep,name=map_uint64_float_wrapper,json=mapUint64FloatWrapper,proto3" json:"map_uint64_float_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Uint64Wrapper map[uint64]*wrapperspb.UInt64Value `protobuf:"bytes,306,rep,name=map_uint64_uint64_wrapper,json=mapUint64Uint64Wrapper,proto3" json:"map_uint64_uint64_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64Uint32Wrapper map[uint64]*wrapperspb.UInt32Value `protobuf:"bytes,307,rep,name=map_uint64_uint32_wrapper,json=mapUint64Uint32Wrapper,proto3" json:"map_uint64_uint32_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64StringWrapper map[uint64]*wrapperspb.StringValue `protobuf:"bytes,308,rep,name=map_uint64_string_wrapper,json=mapUint64StringWrapper,proto3" json:"map_uint64_string_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64BoolWrapper map[uint64]*wrapperspb.BoolValue `protobuf:"bytes,309,rep,name=map_uint64_bool_wrapper,json=mapUint64BoolWrapper,proto3" json:"map_uint64_bool_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapUint64BytesWrapper map[uint64]*wrapperspb.BytesValue `protobuf:"bytes,310,rep,name=map_uint64_bytes_wrapper,json=mapUint64BytesWrapper,proto3" json:"map_uint64_bytes_wrapper,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringBool map[string]bool `protobuf:"bytes,218,rep,name=map_string_bool,json=mapStringBool,proto3" json:"map_string_bool,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapStringString map[string]string `protobuf:"bytes,61,rep,name=map_string_string,json=mapStringString,proto3" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringBytes map[string][]byte `protobuf:"bytes,219,rep,name=map_string_bytes,json=mapStringBytes,proto3" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringInt32 map[string]int32 `protobuf:"bytes,220,rep,name=map_string_int32,json=mapStringInt32,proto3" json:"map_string_int32,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapStringInt64 map[string]int64 `protobuf:"bytes,221,rep,name=map_string_int64,json=mapStringInt64,proto3" json:"map_string_int64,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapStringUint32 map[string]uint32 `protobuf:"bytes,222,rep,name=map_string_uint32,json=mapStringUint32,proto3" json:"map_string_uint32,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapStringUint64 map[string]uint64 `protobuf:"bytes,223,rep,name=map_string_uint64,json=mapStringUint64,proto3" json:"map_string_uint64,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + MapStringFloat map[string]float32 `protobuf:"bytes,224,rep,name=map_string_float,json=mapStringFloat,proto3" json:"map_string_float,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed32,2,opt,name=value,proto3"` + MapStringDouble map[string]float64 `protobuf:"bytes,225,rep,name=map_string_double,json=mapStringDouble,proto3" json:"map_string_double,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"fixed64,2,opt,name=value,proto3"` + MapStringEnum map[string]TestAllTypes_NestedEnum `protobuf:"bytes,226,rep,name=map_string_enum,json=mapStringEnum,proto3" json:"map_string_enum,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum"` + MapStringMessage map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,227,rep,name=map_string_message,json=mapStringMessage,proto3" json:"map_string_message,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringDuration map[string]*durationpb.Duration `protobuf:"bytes,243,rep,name=map_string_duration,json=mapStringDuration,proto3" json:"map_string_duration,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringTimestamp map[string]*timestamppb.Timestamp `protobuf:"bytes,244,rep,name=map_string_timestamp,json=mapStringTimestamp,proto3" json:"map_string_timestamp,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringNullValue map[string]structpb.NullValue `protobuf:"bytes,245,rep,name=map_string_null_value,json=mapStringNullValue,proto3" json:"map_string_null_value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=google.protobuf.NullValue"` + MapStringAny map[string]*anypb.Any `protobuf:"bytes,311,rep,name=map_string_any,json=mapStringAny,proto3" json:"map_string_any,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringStruct map[string]*structpb.Struct `protobuf:"bytes,312,rep,name=map_string_struct,json=mapStringStruct,proto3" json:"map_string_struct,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringValue map[string]*structpb.Value `protobuf:"bytes,313,rep,name=map_string_value,json=mapStringValue,proto3" json:"map_string_value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringListValue map[string]*structpb.ListValue `protobuf:"bytes,314,rep,name=map_string_list_value,json=mapStringListValue,proto3" json:"map_string_list_value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringInt64Wrapper map[string]*wrapperspb.Int64Value `protobuf:"bytes,315,rep,name=map_string_int64_wrapper,json=mapStringInt64Wrapper,proto3" json:"map_string_int64_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringInt32Wrapper map[string]*wrapperspb.Int32Value `protobuf:"bytes,316,rep,name=map_string_int32_wrapper,json=mapStringInt32Wrapper,proto3" json:"map_string_int32_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringDoubleWrapper map[string]*wrapperspb.DoubleValue `protobuf:"bytes,317,rep,name=map_string_double_wrapper,json=mapStringDoubleWrapper,proto3" json:"map_string_double_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringFloatWrapper map[string]*wrapperspb.FloatValue `protobuf:"bytes,318,rep,name=map_string_float_wrapper,json=mapStringFloatWrapper,proto3" json:"map_string_float_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringUint64Wrapper map[string]*wrapperspb.UInt64Value `protobuf:"bytes,319,rep,name=map_string_uint64_wrapper,json=mapStringUint64Wrapper,proto3" json:"map_string_uint64_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringUint32Wrapper map[string]*wrapperspb.UInt32Value `protobuf:"bytes,320,rep,name=map_string_uint32_wrapper,json=mapStringUint32Wrapper,proto3" json:"map_string_uint32_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringStringWrapper map[string]*wrapperspb.StringValue `protobuf:"bytes,321,rep,name=map_string_string_wrapper,json=mapStringStringWrapper,proto3" json:"map_string_string_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringBoolWrapper map[string]*wrapperspb.BoolValue `protobuf:"bytes,322,rep,name=map_string_bool_wrapper,json=mapStringBoolWrapper,proto3" json:"map_string_bool_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MapStringBytesWrapper map[string]*wrapperspb.BytesValue `protobuf:"bytes,323,rep,name=map_string_bytes_wrapper,json=mapStringBytesWrapper,proto3" json:"map_string_bytes_wrapper,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *TestAllTypes) Reset() { + *x = TestAllTypes{} + if protoimpl.UnsafeEnabled { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestAllTypes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestAllTypes) ProtoMessage() {} + +func (x *TestAllTypes) ProtoReflect() protoreflect.Message { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestAllTypes.ProtoReflect.Descriptor instead. +func (*TestAllTypes) Descriptor() ([]byte, []int) { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP(), []int{0} +} + +func (x *TestAllTypes) GetSingleInt32() int32 { + if x != nil { + return x.SingleInt32 + } + return 0 +} + +func (x *TestAllTypes) GetSingleInt64() int64 { + if x != nil { + return x.SingleInt64 + } + return 0 +} + +func (x *TestAllTypes) GetSingleUint32() uint32 { + if x != nil { + return x.SingleUint32 + } + return 0 +} + +func (x *TestAllTypes) GetSingleUint64() uint64 { + if x != nil { + return x.SingleUint64 + } + return 0 +} + +func (x *TestAllTypes) GetSingleSint32() int32 { + if x != nil { + return x.SingleSint32 + } + return 0 +} + +func (x *TestAllTypes) GetSingleSint64() int64 { + if x != nil { + return x.SingleSint64 + } + return 0 +} + +func (x *TestAllTypes) GetSingleFixed32() uint32 { + if x != nil { + return x.SingleFixed32 + } + return 0 +} + +func (x *TestAllTypes) GetSingleFixed64() uint64 { + if x != nil { + return x.SingleFixed64 + } + return 0 +} + +func (x *TestAllTypes) GetSingleSfixed32() int32 { + if x != nil { + return x.SingleSfixed32 + } + return 0 +} + +func (x *TestAllTypes) GetSingleSfixed64() int64 { + if x != nil { + return x.SingleSfixed64 + } + return 0 +} + +func (x *TestAllTypes) GetSingleFloat() float32 { + if x != nil { + return x.SingleFloat + } + return 0 +} + +func (x *TestAllTypes) GetSingleDouble() float64 { + if x != nil { + return x.SingleDouble + } + return 0 +} + +func (x *TestAllTypes) GetSingleBool() bool { + if x != nil { + return x.SingleBool + } + return false +} + +func (x *TestAllTypes) GetSingleString() string { + if x != nil { + return x.SingleString + } + return "" +} + +func (x *TestAllTypes) GetSingleBytes() []byte { + if x != nil { + return x.SingleBytes + } + return nil +} + +func (x *TestAllTypes) GetSingleAny() *anypb.Any { + if x != nil { + return x.SingleAny + } + return nil +} + +func (x *TestAllTypes) GetSingleDuration() *durationpb.Duration { + if x != nil { + return x.SingleDuration + } + return nil +} + +func (x *TestAllTypes) GetSingleTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.SingleTimestamp + } + return nil +} + +func (x *TestAllTypes) GetSingleStruct() *structpb.Struct { + if x != nil { + return x.SingleStruct + } + return nil +} + +func (x *TestAllTypes) GetSingleValue() *structpb.Value { + if x != nil { + return x.SingleValue + } + return nil +} + +func (x *TestAllTypes) GetSingleInt64Wrapper() *wrapperspb.Int64Value { + if x != nil { + return x.SingleInt64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleInt32Wrapper() *wrapperspb.Int32Value { + if x != nil { + return x.SingleInt32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleDoubleWrapper() *wrapperspb.DoubleValue { + if x != nil { + return x.SingleDoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleFloatWrapper() *wrapperspb.FloatValue { + if x != nil { + return x.SingleFloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleUint64Wrapper() *wrapperspb.UInt64Value { + if x != nil { + return x.SingleUint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleUint32Wrapper() *wrapperspb.UInt32Value { + if x != nil { + return x.SingleUint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleStringWrapper() *wrapperspb.StringValue { + if x != nil { + return x.SingleStringWrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleBoolWrapper() *wrapperspb.BoolValue { + if x != nil { + return x.SingleBoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetSingleBytesWrapper() *wrapperspb.BytesValue { + if x != nil { + return x.SingleBytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetListValue() *structpb.ListValue { + if x != nil { + return x.ListValue + } + return nil +} + +func (x *TestAllTypes) GetNullValue() structpb.NullValue { + if x != nil { + return x.NullValue + } + return structpb.NullValue(0) +} + +func (x *TestAllTypes) GetOptionalNullValue() structpb.NullValue { + if x != nil && x.OptionalNullValue != nil { + return *x.OptionalNullValue + } + return structpb.NullValue(0) +} + +func (m *TestAllTypes) GetNestedType() isTestAllTypes_NestedType { + if m != nil { + return m.NestedType + } + return nil +} + +func (x *TestAllTypes) GetSingleNestedMessage() *TestAllTypes_NestedMessage { + if x, ok := x.GetNestedType().(*TestAllTypes_SingleNestedMessage); ok { + return x.SingleNestedMessage + } + return nil +} + +func (x *TestAllTypes) GetSingleNestedEnum() TestAllTypes_NestedEnum { + if x, ok := x.GetNestedType().(*TestAllTypes_SingleNestedEnum); ok { + return x.SingleNestedEnum + } + return TestAllTypes_FOO +} + +func (x *TestAllTypes) GetStandaloneMessage() *TestAllTypes_NestedMessage { + if x != nil { + return x.StandaloneMessage + } + return nil +} + +func (x *TestAllTypes) GetStandaloneEnum() TestAllTypes_NestedEnum { + if x != nil { + return x.StandaloneEnum + } + return TestAllTypes_FOO +} + +func (x *TestAllTypes) GetRepeatedInt32() []int32 { + if x != nil { + return x.RepeatedInt32 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedInt64() []int64 { + if x != nil { + return x.RepeatedInt64 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedUint32() []uint32 { + if x != nil { + return x.RepeatedUint32 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedUint64() []uint64 { + if x != nil { + return x.RepeatedUint64 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedSint32() []int32 { + if x != nil { + return x.RepeatedSint32 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedSint64() []int64 { + if x != nil { + return x.RepeatedSint64 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedFixed32() []uint32 { + if x != nil { + return x.RepeatedFixed32 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedFixed64() []uint64 { + if x != nil { + return x.RepeatedFixed64 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedSfixed32() []int32 { + if x != nil { + return x.RepeatedSfixed32 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedSfixed64() []int64 { + if x != nil { + return x.RepeatedSfixed64 + } + return nil +} + +func (x *TestAllTypes) GetRepeatedFloat() []float32 { + if x != nil { + return x.RepeatedFloat + } + return nil +} + +func (x *TestAllTypes) GetRepeatedDouble() []float64 { + if x != nil { + return x.RepeatedDouble + } + return nil +} + +func (x *TestAllTypes) GetRepeatedBool() []bool { + if x != nil { + return x.RepeatedBool + } + return nil +} + +func (x *TestAllTypes) GetRepeatedString() []string { + if x != nil { + return x.RepeatedString + } + return nil +} + +func (x *TestAllTypes) GetRepeatedBytes() [][]byte { + if x != nil { + return x.RepeatedBytes + } + return nil +} + +func (x *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage { + if x != nil { + return x.RepeatedNestedMessage + } + return nil +} + +func (x *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum { + if x != nil { + return x.RepeatedNestedEnum + } + return nil +} + +func (x *TestAllTypes) GetRepeatedStringPiece() []string { + if x != nil { + return x.RepeatedStringPiece + } + return nil +} + +func (x *TestAllTypes) GetRepeatedCord() []string { + if x != nil { + return x.RepeatedCord + } + return nil +} + +func (x *TestAllTypes) GetRepeatedLazyMessage() []*TestAllTypes_NestedMessage { + if x != nil { + return x.RepeatedLazyMessage + } + return nil +} + +func (x *TestAllTypes) GetRepeatedAny() []*anypb.Any { + if x != nil { + return x.RepeatedAny + } + return nil +} + +func (x *TestAllTypes) GetRepeatedDuration() []*durationpb.Duration { + if x != nil { + return x.RepeatedDuration + } + return nil +} + +func (x *TestAllTypes) GetRepeatedTimestamp() []*timestamppb.Timestamp { + if x != nil { + return x.RepeatedTimestamp + } + return nil +} + +func (x *TestAllTypes) GetRepeatedStruct() []*structpb.Struct { + if x != nil { + return x.RepeatedStruct + } + return nil +} + +func (x *TestAllTypes) GetRepeatedValue() []*structpb.Value { + if x != nil { + return x.RepeatedValue + } + return nil +} + +func (x *TestAllTypes) GetRepeatedInt64Wrapper() []*wrapperspb.Int64Value { + if x != nil { + return x.RepeatedInt64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedInt32Wrapper() []*wrapperspb.Int32Value { + if x != nil { + return x.RepeatedInt32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedDoubleWrapper() []*wrapperspb.DoubleValue { + if x != nil { + return x.RepeatedDoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedFloatWrapper() []*wrapperspb.FloatValue { + if x != nil { + return x.RepeatedFloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedUint64Wrapper() []*wrapperspb.UInt64Value { + if x != nil { + return x.RepeatedUint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedUint32Wrapper() []*wrapperspb.UInt32Value { + if x != nil { + return x.RepeatedUint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedStringWrapper() []*wrapperspb.StringValue { + if x != nil { + return x.RepeatedStringWrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedBoolWrapper() []*wrapperspb.BoolValue { + if x != nil { + return x.RepeatedBoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedBytesWrapper() []*wrapperspb.BytesValue { + if x != nil { + return x.RepeatedBytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetRepeatedListValue() []*structpb.ListValue { + if x != nil { + return x.RepeatedListValue + } + return nil +} + +func (x *TestAllTypes) GetRepeatedNullValue() []structpb.NullValue { + if x != nil { + return x.RepeatedNullValue + } + return nil +} + +func (x *TestAllTypes) GetMapInt64NestedType() map[int64]*NestedTestAllTypes { + if x != nil { + return x.MapInt64NestedType + } + return nil +} + +func (x *TestAllTypes) GetMapBoolBool() map[bool]bool { + if x != nil { + return x.MapBoolBool + } + return nil +} + +func (x *TestAllTypes) GetMapBoolString() map[bool]string { + if x != nil { + return x.MapBoolString + } + return nil +} + +func (x *TestAllTypes) GetMapBoolBytes() map[bool][]byte { + if x != nil { + return x.MapBoolBytes + } + return nil +} + +func (x *TestAllTypes) GetMapBoolInt32() map[bool]int32 { + if x != nil { + return x.MapBoolInt32 + } + return nil +} + +func (x *TestAllTypes) GetMapBoolInt64() map[bool]int64 { + if x != nil { + return x.MapBoolInt64 + } + return nil +} + +func (x *TestAllTypes) GetMapBoolUint32() map[bool]uint32 { + if x != nil { + return x.MapBoolUint32 + } + return nil +} + +func (x *TestAllTypes) GetMapBoolUint64() map[bool]uint64 { + if x != nil { + return x.MapBoolUint64 + } + return nil +} + +func (x *TestAllTypes) GetMapBoolFloat() map[bool]float32 { + if x != nil { + return x.MapBoolFloat + } + return nil +} + +func (x *TestAllTypes) GetMapBoolDouble() map[bool]float64 { + if x != nil { + return x.MapBoolDouble + } + return nil +} + +func (x *TestAllTypes) GetMapBoolEnum() map[bool]TestAllTypes_NestedEnum { + if x != nil { + return x.MapBoolEnum + } + return nil +} + +func (x *TestAllTypes) GetMapBoolMessage() map[bool]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapBoolMessage + } + return nil +} + +func (x *TestAllTypes) GetMapBoolDuration() map[bool]*durationpb.Duration { + if x != nil { + return x.MapBoolDuration + } + return nil +} + +func (x *TestAllTypes) GetMapBoolTimestamp() map[bool]*timestamppb.Timestamp { + if x != nil { + return x.MapBoolTimestamp + } + return nil +} + +func (x *TestAllTypes) GetMapBoolNullValue() map[bool]structpb.NullValue { + if x != nil { + return x.MapBoolNullValue + } + return nil +} + +func (x *TestAllTypes) GetMapBoolAny() map[bool]*anypb.Any { + if x != nil { + return x.MapBoolAny + } + return nil +} + +func (x *TestAllTypes) GetMapBoolStruct() map[bool]*structpb.Struct { + if x != nil { + return x.MapBoolStruct + } + return nil +} + +func (x *TestAllTypes) GetMapBoolValue() map[bool]*structpb.Value { + if x != nil { + return x.MapBoolValue + } + return nil +} + +func (x *TestAllTypes) GetMapBoolListValue() map[bool]*structpb.ListValue { + if x != nil { + return x.MapBoolListValue + } + return nil +} + +func (x *TestAllTypes) GetMapBoolInt64Wrapper() map[bool]*wrapperspb.Int64Value { + if x != nil { + return x.MapBoolInt64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolInt32Wrapper() map[bool]*wrapperspb.Int32Value { + if x != nil { + return x.MapBoolInt32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolDoubleWrapper() map[bool]*wrapperspb.DoubleValue { + if x != nil { + return x.MapBoolDoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolFloatWrapper() map[bool]*wrapperspb.FloatValue { + if x != nil { + return x.MapBoolFloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolUint64Wrapper() map[bool]*wrapperspb.UInt64Value { + if x != nil { + return x.MapBoolUint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolUint32Wrapper() map[bool]*wrapperspb.UInt32Value { + if x != nil { + return x.MapBoolUint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolStringWrapper() map[bool]*wrapperspb.StringValue { + if x != nil { + return x.MapBoolStringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolBoolWrapper() map[bool]*wrapperspb.BoolValue { + if x != nil { + return x.MapBoolBoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapBoolBytesWrapper() map[bool]*wrapperspb.BytesValue { + if x != nil { + return x.MapBoolBytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Bool() map[int32]bool { + if x != nil { + return x.MapInt32Bool + } + return nil +} + +func (x *TestAllTypes) GetMapInt32String() map[int32]string { + if x != nil { + return x.MapInt32String + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Bytes() map[int32][]byte { + if x != nil { + return x.MapInt32Bytes + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Int32() map[int32]int32 { + if x != nil { + return x.MapInt32Int32 + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Int64() map[int32]int64 { + if x != nil { + return x.MapInt32Int64 + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Uint32() map[int32]uint32 { + if x != nil { + return x.MapInt32Uint32 + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Uint64() map[int32]uint64 { + if x != nil { + return x.MapInt32Uint64 + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Float() map[int32]float32 { + if x != nil { + return x.MapInt32Float + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Double() map[int32]float64 { + if x != nil { + return x.MapInt32Double + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Enum() map[int32]TestAllTypes_NestedEnum { + if x != nil { + return x.MapInt32Enum + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Message() map[int32]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapInt32Message + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Duration() map[int32]*durationpb.Duration { + if x != nil { + return x.MapInt32Duration + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Timestamp() map[int32]*timestamppb.Timestamp { + if x != nil { + return x.MapInt32Timestamp + } + return nil +} + +func (x *TestAllTypes) GetMapInt32NullValue() map[int32]structpb.NullValue { + if x != nil { + return x.MapInt32NullValue + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Any() map[int32]*anypb.Any { + if x != nil { + return x.MapInt32Any + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Struct() map[int32]*structpb.Struct { + if x != nil { + return x.MapInt32Struct + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Value() map[int32]*structpb.Value { + if x != nil { + return x.MapInt32Value + } + return nil +} + +func (x *TestAllTypes) GetMapInt32ListValue() map[int32]*structpb.ListValue { + if x != nil { + return x.MapInt32ListValue + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Int64Wrapper() map[int32]*wrapperspb.Int64Value { + if x != nil { + return x.MapInt32Int64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Int32Wrapper() map[int32]*wrapperspb.Int32Value { + if x != nil { + return x.MapInt32Int32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32DoubleWrapper() map[int32]*wrapperspb.DoubleValue { + if x != nil { + return x.MapInt32DoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32FloatWrapper() map[int32]*wrapperspb.FloatValue { + if x != nil { + return x.MapInt32FloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Uint64Wrapper() map[int32]*wrapperspb.UInt64Value { + if x != nil { + return x.MapInt32Uint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32Uint32Wrapper() map[int32]*wrapperspb.UInt32Value { + if x != nil { + return x.MapInt32Uint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32StringWrapper() map[int32]*wrapperspb.StringValue { + if x != nil { + return x.MapInt32StringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32BoolWrapper() map[int32]*wrapperspb.BoolValue { + if x != nil { + return x.MapInt32BoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt32BytesWrapper() map[int32]*wrapperspb.BytesValue { + if x != nil { + return x.MapInt32BytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Bool() map[int64]bool { + if x != nil { + return x.MapInt64Bool + } + return nil +} + +func (x *TestAllTypes) GetMapInt64String() map[int64]string { + if x != nil { + return x.MapInt64String + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Bytes() map[int64][]byte { + if x != nil { + return x.MapInt64Bytes + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Int32() map[int64]int32 { + if x != nil { + return x.MapInt64Int32 + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Int64() map[int64]int64 { + if x != nil { + return x.MapInt64Int64 + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Uint32() map[int64]uint32 { + if x != nil { + return x.MapInt64Uint32 + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Uint64() map[int64]uint64 { + if x != nil { + return x.MapInt64Uint64 + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Float() map[int64]float32 { + if x != nil { + return x.MapInt64Float + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Double() map[int64]float64 { + if x != nil { + return x.MapInt64Double + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Enum() map[int64]TestAllTypes_NestedEnum { + if x != nil { + return x.MapInt64Enum + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Message() map[int64]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapInt64Message + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Duration() map[int64]*durationpb.Duration { + if x != nil { + return x.MapInt64Duration + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Timestamp() map[int64]*timestamppb.Timestamp { + if x != nil { + return x.MapInt64Timestamp + } + return nil +} + +func (x *TestAllTypes) GetMapInt64NullValue() map[int64]structpb.NullValue { + if x != nil { + return x.MapInt64NullValue + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Any() map[int64]*anypb.Any { + if x != nil { + return x.MapInt64Any + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Struct() map[int64]*structpb.Struct { + if x != nil { + return x.MapInt64Struct + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Value() map[int64]*structpb.Value { + if x != nil { + return x.MapInt64Value + } + return nil +} + +func (x *TestAllTypes) GetMapInt64ListValue() map[int64]*structpb.ListValue { + if x != nil { + return x.MapInt64ListValue + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Int64Wrapper() map[int64]*wrapperspb.Int64Value { + if x != nil { + return x.MapInt64Int64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Int32Wrapper() map[int64]*wrapperspb.Int32Value { + if x != nil { + return x.MapInt64Int32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64DoubleWrapper() map[int64]*wrapperspb.DoubleValue { + if x != nil { + return x.MapInt64DoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64FloatWrapper() map[int64]*wrapperspb.FloatValue { + if x != nil { + return x.MapInt64FloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Uint64Wrapper() map[int64]*wrapperspb.UInt64Value { + if x != nil { + return x.MapInt64Uint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64Uint32Wrapper() map[int64]*wrapperspb.UInt32Value { + if x != nil { + return x.MapInt64Uint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64StringWrapper() map[int64]*wrapperspb.StringValue { + if x != nil { + return x.MapInt64StringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64BoolWrapper() map[int64]*wrapperspb.BoolValue { + if x != nil { + return x.MapInt64BoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapInt64BytesWrapper() map[int64]*wrapperspb.BytesValue { + if x != nil { + return x.MapInt64BytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Bool() map[uint32]bool { + if x != nil { + return x.MapUint32Bool + } + return nil +} + +func (x *TestAllTypes) GetMapUint32String() map[uint32]string { + if x != nil { + return x.MapUint32String + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Bytes() map[uint32][]byte { + if x != nil { + return x.MapUint32Bytes + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Int32() map[uint32]int32 { + if x != nil { + return x.MapUint32Int32 + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Int64() map[uint32]int64 { + if x != nil { + return x.MapUint32Int64 + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 { + if x != nil { + return x.MapUint32Uint32 + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Uint64() map[uint32]uint64 { + if x != nil { + return x.MapUint32Uint64 + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Float() map[uint32]float32 { + if x != nil { + return x.MapUint32Float + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Double() map[uint32]float64 { + if x != nil { + return x.MapUint32Double + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Enum() map[uint32]TestAllTypes_NestedEnum { + if x != nil { + return x.MapUint32Enum + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Message() map[uint32]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapUint32Message + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Duration() map[uint32]*durationpb.Duration { + if x != nil { + return x.MapUint32Duration + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Timestamp() map[uint32]*timestamppb.Timestamp { + if x != nil { + return x.MapUint32Timestamp + } + return nil +} + +func (x *TestAllTypes) GetMapUint32NullValue() map[uint32]structpb.NullValue { + if x != nil { + return x.MapUint32NullValue + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Any() map[uint32]*anypb.Any { + if x != nil { + return x.MapUint32Any + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Struct() map[uint32]*structpb.Struct { + if x != nil { + return x.MapUint32Struct + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Value() map[uint32]*structpb.Value { + if x != nil { + return x.MapUint32Value + } + return nil +} + +func (x *TestAllTypes) GetMapUint32ListValue() map[uint32]*structpb.ListValue { + if x != nil { + return x.MapUint32ListValue + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Int64Wrapper() map[uint32]*wrapperspb.Int64Value { + if x != nil { + return x.MapUint32Int64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Int32Wrapper() map[uint32]*wrapperspb.Int32Value { + if x != nil { + return x.MapUint32Int32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32DoubleWrapper() map[uint32]*wrapperspb.DoubleValue { + if x != nil { + return x.MapUint32DoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32FloatWrapper() map[uint32]*wrapperspb.FloatValue { + if x != nil { + return x.MapUint32FloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Uint64Wrapper() map[uint32]*wrapperspb.UInt64Value { + if x != nil { + return x.MapUint32Uint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32Uint32Wrapper() map[uint32]*wrapperspb.UInt32Value { + if x != nil { + return x.MapUint32Uint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32StringWrapper() map[uint32]*wrapperspb.StringValue { + if x != nil { + return x.MapUint32StringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32BoolWrapper() map[uint32]*wrapperspb.BoolValue { + if x != nil { + return x.MapUint32BoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint32BytesWrapper() map[uint32]*wrapperspb.BytesValue { + if x != nil { + return x.MapUint32BytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Bool() map[uint64]bool { + if x != nil { + return x.MapUint64Bool + } + return nil +} + +func (x *TestAllTypes) GetMapUint64String() map[uint64]string { + if x != nil { + return x.MapUint64String + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Bytes() map[uint64][]byte { + if x != nil { + return x.MapUint64Bytes + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Int32() map[uint64]int32 { + if x != nil { + return x.MapUint64Int32 + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Int64() map[uint64]int64 { + if x != nil { + return x.MapUint64Int64 + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Uint32() map[uint64]uint32 { + if x != nil { + return x.MapUint64Uint32 + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 { + if x != nil { + return x.MapUint64Uint64 + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Float() map[uint64]float32 { + if x != nil { + return x.MapUint64Float + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Double() map[uint64]float64 { + if x != nil { + return x.MapUint64Double + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Enum() map[uint64]TestAllTypes_NestedEnum { + if x != nil { + return x.MapUint64Enum + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Message() map[uint64]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapUint64Message + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Duration() map[uint64]*durationpb.Duration { + if x != nil { + return x.MapUint64Duration + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Timestamp() map[uint64]*timestamppb.Timestamp { + if x != nil { + return x.MapUint64Timestamp + } + return nil +} + +func (x *TestAllTypes) GetMapUint64NullValue() map[uint64]structpb.NullValue { + if x != nil { + return x.MapUint64NullValue + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Any() map[uint64]*anypb.Any { + if x != nil { + return x.MapUint64Any + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Struct() map[uint64]*structpb.Struct { + if x != nil { + return x.MapUint64Struct + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Value() map[uint64]*structpb.Value { + if x != nil { + return x.MapUint64Value + } + return nil +} + +func (x *TestAllTypes) GetMapUint64ListValue() map[uint64]*structpb.ListValue { + if x != nil { + return x.MapUint64ListValue + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Int64Wrapper() map[uint64]*wrapperspb.Int64Value { + if x != nil { + return x.MapUint64Int64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Int32Wrapper() map[uint64]*wrapperspb.Int32Value { + if x != nil { + return x.MapUint64Int32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64DoubleWrapper() map[uint64]*wrapperspb.DoubleValue { + if x != nil { + return x.MapUint64DoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64FloatWrapper() map[uint64]*wrapperspb.FloatValue { + if x != nil { + return x.MapUint64FloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Uint64Wrapper() map[uint64]*wrapperspb.UInt64Value { + if x != nil { + return x.MapUint64Uint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64Uint32Wrapper() map[uint64]*wrapperspb.UInt32Value { + if x != nil { + return x.MapUint64Uint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64StringWrapper() map[uint64]*wrapperspb.StringValue { + if x != nil { + return x.MapUint64StringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64BoolWrapper() map[uint64]*wrapperspb.BoolValue { + if x != nil { + return x.MapUint64BoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapUint64BytesWrapper() map[uint64]*wrapperspb.BytesValue { + if x != nil { + return x.MapUint64BytesWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringBool() map[string]bool { + if x != nil { + return x.MapStringBool + } + return nil +} + +func (x *TestAllTypes) GetMapStringString() map[string]string { + if x != nil { + return x.MapStringString + } + return nil +} + +func (x *TestAllTypes) GetMapStringBytes() map[string][]byte { + if x != nil { + return x.MapStringBytes + } + return nil +} + +func (x *TestAllTypes) GetMapStringInt32() map[string]int32 { + if x != nil { + return x.MapStringInt32 + } + return nil +} + +func (x *TestAllTypes) GetMapStringInt64() map[string]int64 { + if x != nil { + return x.MapStringInt64 + } + return nil +} + +func (x *TestAllTypes) GetMapStringUint32() map[string]uint32 { + if x != nil { + return x.MapStringUint32 + } + return nil +} + +func (x *TestAllTypes) GetMapStringUint64() map[string]uint64 { + if x != nil { + return x.MapStringUint64 + } + return nil +} + +func (x *TestAllTypes) GetMapStringFloat() map[string]float32 { + if x != nil { + return x.MapStringFloat + } + return nil +} + +func (x *TestAllTypes) GetMapStringDouble() map[string]float64 { + if x != nil { + return x.MapStringDouble + } + return nil +} + +func (x *TestAllTypes) GetMapStringEnum() map[string]TestAllTypes_NestedEnum { + if x != nil { + return x.MapStringEnum + } + return nil +} + +func (x *TestAllTypes) GetMapStringMessage() map[string]*TestAllTypes_NestedMessage { + if x != nil { + return x.MapStringMessage + } + return nil +} + +func (x *TestAllTypes) GetMapStringDuration() map[string]*durationpb.Duration { + if x != nil { + return x.MapStringDuration + } + return nil +} + +func (x *TestAllTypes) GetMapStringTimestamp() map[string]*timestamppb.Timestamp { + if x != nil { + return x.MapStringTimestamp + } + return nil +} + +func (x *TestAllTypes) GetMapStringNullValue() map[string]structpb.NullValue { + if x != nil { + return x.MapStringNullValue + } + return nil +} + +func (x *TestAllTypes) GetMapStringAny() map[string]*anypb.Any { + if x != nil { + return x.MapStringAny + } + return nil +} + +func (x *TestAllTypes) GetMapStringStruct() map[string]*structpb.Struct { + if x != nil { + return x.MapStringStruct + } + return nil +} + +func (x *TestAllTypes) GetMapStringValue() map[string]*structpb.Value { + if x != nil { + return x.MapStringValue + } + return nil +} + +func (x *TestAllTypes) GetMapStringListValue() map[string]*structpb.ListValue { + if x != nil { + return x.MapStringListValue + } + return nil +} + +func (x *TestAllTypes) GetMapStringInt64Wrapper() map[string]*wrapperspb.Int64Value { + if x != nil { + return x.MapStringInt64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringInt32Wrapper() map[string]*wrapperspb.Int32Value { + if x != nil { + return x.MapStringInt32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringDoubleWrapper() map[string]*wrapperspb.DoubleValue { + if x != nil { + return x.MapStringDoubleWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringFloatWrapper() map[string]*wrapperspb.FloatValue { + if x != nil { + return x.MapStringFloatWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringUint64Wrapper() map[string]*wrapperspb.UInt64Value { + if x != nil { + return x.MapStringUint64Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringUint32Wrapper() map[string]*wrapperspb.UInt32Value { + if x != nil { + return x.MapStringUint32Wrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringStringWrapper() map[string]*wrapperspb.StringValue { + if x != nil { + return x.MapStringStringWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringBoolWrapper() map[string]*wrapperspb.BoolValue { + if x != nil { + return x.MapStringBoolWrapper + } + return nil +} + +func (x *TestAllTypes) GetMapStringBytesWrapper() map[string]*wrapperspb.BytesValue { + if x != nil { + return x.MapStringBytesWrapper + } + return nil +} + +type isTestAllTypes_NestedType interface { + isTestAllTypes_NestedType() +} + +type TestAllTypes_SingleNestedMessage struct { + SingleNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,21,opt,name=single_nested_message,json=singleNestedMessage,proto3,oneof"` +} + +type TestAllTypes_SingleNestedEnum struct { + SingleNestedEnum TestAllTypes_NestedEnum `protobuf:"varint,22,opt,name=single_nested_enum,json=singleNestedEnum,proto3,enum=bufext.cel.expr.conformance.proto3.TestAllTypes_NestedEnum,oneof"` +} + +func (*TestAllTypes_SingleNestedMessage) isTestAllTypes_NestedType() {} + +func (*TestAllTypes_SingleNestedEnum) isTestAllTypes_NestedType() {} + +// This proto includes a recursively nested message. +type NestedTestAllTypes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Child *NestedTestAllTypes `protobuf:"bytes,1,opt,name=child,proto3" json:"child,omitempty"` + Payload *TestAllTypes `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *NestedTestAllTypes) Reset() { + *x = NestedTestAllTypes{} + if protoimpl.UnsafeEnabled { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NestedTestAllTypes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NestedTestAllTypes) ProtoMessage() {} + +func (x *NestedTestAllTypes) ProtoReflect() protoreflect.Message { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NestedTestAllTypes.ProtoReflect.Descriptor instead. +func (*NestedTestAllTypes) Descriptor() ([]byte, []int) { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP(), []int{1} +} + +func (x *NestedTestAllTypes) GetChild() *NestedTestAllTypes { + if x != nil { + return x.Child + } + return nil +} + +func (x *NestedTestAllTypes) GetPayload() *TestAllTypes { + if x != nil { + return x.Payload + } + return nil +} + +type TestAllTypes_NestedMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The field name "b" fails to compile in proto1 because it conflicts with + // a local variable named "b" in one of the generated methods. + // This file needs to compile in proto1 to test backwards-compatibility. + Bb int32 `protobuf:"varint,1,opt,name=bb,proto3" json:"bb,omitempty"` +} + +func (x *TestAllTypes_NestedMessage) Reset() { + *x = TestAllTypes_NestedMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestAllTypes_NestedMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestAllTypes_NestedMessage) ProtoMessage() {} + +func (x *TestAllTypes_NestedMessage) ProtoReflect() protoreflect.Message { + mi := &file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TestAllTypes_NestedMessage.ProtoReflect.Descriptor instead. +func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) { + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *TestAllTypes_NestedMessage) GetBb() int32 { + if x != nil { + return x.Bb + } + return 0 +} + +var File_bufext_cel_expr_conformance_proto3_test_all_types_proto protoreflect.FileDescriptor + +var file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDesc = []byte{ + 0x0a, 0x37, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, 0x70, + 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x22, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x1a, 0x19, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, + 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0xb2, 0x02, 0x0a, 0x0c, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, + 0x23, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x23, + 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x12, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x07, 0x52, 0x0d, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x69, 0x78, 0x65, 0x64, 0x36, + 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x33, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x10, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x36, 0x34, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x0d, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x61, + 0x6e, 0x79, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x09, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x6e, 0x79, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x65, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, + 0x10, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x0d, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0b, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4d, 0x0a, + 0x14, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x14, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x15, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4d, 0x0a, + 0x14, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x15, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x50, + 0x0a, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x50, 0x0a, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x6f, 0x6f, + 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4d, + 0x0a, 0x14, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x73, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x39, 0x0a, + 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x72, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x11, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x74, 0x0a, 0x15, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6e, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x13, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6b, 0x0a, 0x12, 0x73, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x6d, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x11, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0e, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x1f, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x20, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x21, 0x20, + 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x22, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x27, 0x0a, 0x0f, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, + 0x23, 0x20, 0x03, 0x28, 0x11, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x73, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x24, 0x20, 0x03, 0x28, 0x12, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x29, + 0x0a, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, + 0x33, 0x32, 0x18, 0x25, 0x20, 0x03, 0x28, 0x07, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x46, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x26, 0x20, + 0x03, 0x28, 0x06, 0x52, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x36, 0x34, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x73, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, 0x32, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0f, 0x52, + 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x33, + 0x32, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x18, 0x28, 0x20, 0x03, 0x28, 0x10, 0x52, 0x10, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x66, 0x69, 0x78, 0x65, 0x64, 0x36, 0x34, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x18, 0x29, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x01, 0x52, 0x0e, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, + 0x2b, 0x20, 0x03, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x6f, 0x6f, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x2d, + 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x76, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x33, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x6d, 0x0a, 0x14, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x65, + 0x6e, 0x75, 0x6d, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x36, 0x0a, 0x15, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, + 0x65, 0x63, 0x65, 0x18, 0x35, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x02, 0x52, 0x13, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x65, + 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, + 0x6f, 0x72, 0x64, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x08, 0x01, 0x52, 0x0c, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x72, 0x64, 0x12, 0x76, 0x0a, 0x15, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x02, 0x28, 0x01, 0x52, 0x13, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x6e, 0x79, 0x18, 0x78, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x79, 0x12, 0x46, 0x0a, 0x11, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x79, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x10, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x7a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x11, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x40, 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x18, 0x7b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x12, 0x3d, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x7c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x51, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x7d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x7e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x18, 0x7f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x80, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x81, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0x82, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x55, + 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x83, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x84, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x6f, 0x6f, 0x6c, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x18, 0x85, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x86, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x87, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x11, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7b, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x3e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, + 0x6f, 0x6c, 0x18, 0x3f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, + 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, + 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x40, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, + 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x41, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x18, 0x42, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, + 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, + 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x43, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x44, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x18, 0x45, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, + 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x68, 0x0a, + 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, + 0x46, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x42, 0x6f, + 0x6f, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x62, + 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x47, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, + 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x48, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x6e, 0x0a, 0x10, 0x6d, + 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x49, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x72, 0x0a, 0x11, 0x6d, + 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xe4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, + 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, + 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x75, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0xe5, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x76, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, + 0x6f, 0x6c, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xe6, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, + 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, + 0x0a, 0x0c, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0xf6, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x41, + 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x41, 0x6e, 0x79, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0xf7, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x12, 0x69, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0xf8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, + 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x76, 0x0a, 0x13, + 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0xf9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xfa, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x13, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, + 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0xfb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x62, + 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0xfc, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, + 0x6f, 0x6f, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x7f, 0x0a, 0x16, 0x6d, + 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xfd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, + 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xfe, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xff, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x14, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x62, + 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0x80, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x42, + 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x7c, 0x0a, 0x15, 0x6d, + 0x61, 0x70, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0x81, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, + 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, + 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x18, 0x82, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, + 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x4a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x4b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x4c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x18, 0x4d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6b, + 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6e, 0x0a, 0x10, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, + 0x4f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6e, 0x0a, 0x10, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x51, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x52, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x53, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x75, 0x6d, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x71, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x54, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x13, + 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0xe8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x79, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xe9, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, + 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x66, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x61, + 0x6e, 0x79, 0x18, 0x83, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x41, 0x6e, 0x79, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x84, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, + 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x85, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x79, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x86, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x11, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0x87, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0x88, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, + 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x89, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, + 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x18, 0x8a, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x8b, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0x8c, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, + 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x8d, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x8e, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, + 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, + 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0x8f, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x55, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, + 0x6f, 0x6c, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x56, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x57, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x18, 0x58, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6b, 0x0a, 0x0f, + 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0x59, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x5a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0x5b, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x5c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x5d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x5e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x71, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x5f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xea, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, + 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0xeb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x79, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xec, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x66, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x61, 0x6e, 0x79, + 0x18, 0x90, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x41, 0x6e, 0x79, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x91, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x92, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x79, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x93, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, + 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x94, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0x95, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, + 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x96, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0x97, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x98, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x99, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x9a, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x7f, 0x0a, 0x16, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x62, 0x6f, + 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x9b, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x49, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x6d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x9c, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x14, 0x6d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x6b, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x60, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, + 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x61, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x62, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6e, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x63, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xc8, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xc9, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x18, 0xca, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, + 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, + 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x18, 0xcb, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xcc, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xcd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xce, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x46, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xed, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x11, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0xee, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x7c, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xef, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x75, 0x6c, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x69, + 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x61, 0x6e, 0x79, + 0x18, 0x9d, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x41, 0x6e, 0x79, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x9e, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x6f, 0x0a, + 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x9f, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, + 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7c, + 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xa0, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x85, 0x01, 0x0a, + 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa1, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x18, 0xa2, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, + 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa3, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x16, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0xa4, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, + 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa5, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa6, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x18, 0xa7, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xa8, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, + 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x14, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0xa9, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x6c, 0x0a, + 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, + 0x18, 0xcf, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x72, 0x0a, 0x11, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x18, 0xd0, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, + 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, + 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0xd1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x18, 0xd2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xd3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xd4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xd5, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, + 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xd6, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x72, 0x0a, 0x11, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, + 0x18, 0xd7, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, + 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, + 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x65, 0x6e, + 0x75, 0x6d, 0x18, 0xd8, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x75, 0x0a, + 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0xd9, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x78, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf0, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7b, + 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0xf1, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x7c, 0x0a, 0x15, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0xf2, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x6d, 0x61, 0x70, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0xaa, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x41, 0x6e, + 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x41, 0x6e, 0x79, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0xab, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xac, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x7c, 0x0a, 0x15, 0x6d, 0x61, 0x70, + 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0xad, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, + 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x18, 0xae, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, + 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xaf, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, + 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xb0, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0xb1, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, + 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xb2, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x18, 0xb3, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xb4, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, + 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xb5, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xb6, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0xda, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, + 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x12, 0x71, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x3d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, + 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xdb, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, + 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0xdc, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x6f, 0x0a, 0x10, 0x6d, + 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, + 0xdd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, + 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x12, 0x72, 0x0a, 0x11, + 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x18, 0xde, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x18, 0xdf, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, + 0x6e, 0x74, 0x36, 0x34, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0xe0, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x44, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x72, 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0xe1, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x6d, 0x61, 0x70, + 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0xe2, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, + 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x61, 0x70, 0x5f, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xe3, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6d, 0x61, + 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x78, + 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf3, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x14, 0x6d, 0x61, 0x70, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0xf4, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, + 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, + 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x12, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x7c, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xf5, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x12, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x69, 0x0a, 0x0e, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x61, 0x6e, 0x79, 0x18, 0xb7, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x6e, 0x79, 0x12, 0x72, + 0x0a, 0x11, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x18, 0xb8, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0f, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0x6f, 0x0a, 0x10, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xb9, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0e, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x7c, 0x0a, 0x15, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0xba, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xbb, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, + 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, 0x61, + 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xbc, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, + 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, + 0xbd, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, + 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, + 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, + 0x18, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xbe, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x4b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x18, 0xbf, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, + 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, + 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, + 0x88, 0x01, 0x0a, 0x19, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xc0, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x16, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, + 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x88, 0x01, 0x0a, 0x19, 0x6d, + 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xc1, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4c, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x16, 0x6d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x82, 0x01, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x18, 0xc2, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, + 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x12, 0x85, 0x01, 0x0a, 0x18, 0x6d, + 0x61, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0xc3, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x6d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x1a, 0x1f, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x02, 0x62, 0x62, 0x1a, 0x7d, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x41, + 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, 0x6f, 0x6f, + 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 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, 0x3f, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, + 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x42, 0x6f, + 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4d, + 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, + 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 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, 0x7b, + 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x81, 0x01, 0x0a, 0x13, + 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, + 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x5d, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, + 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x5f, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x53, 0x0a, 0x0f, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x41, 0x6e, 0x79, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x57, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x15, 0x4d, 0x61, 0x70, + 0x42, 0x6f, 0x6f, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x18, 0x4d, 0x61, + 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x63, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x18, 0x4d, + 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x65, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x42, 0x6f, + 0x6f, 0x6c, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, + 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x42, 0x6f, 0x6f, 0x6c, + 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x42, + 0x6f, 0x6f, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, + 0x11, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, + 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 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, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, + 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, + 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 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, 0x7c, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, + 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, + 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x82, 0x01, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, + 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x10, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x5a, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x58, 0x0a, 0x12, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, + 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x44, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x19, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x62, 0x0a, 0x18, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, + 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, + 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, + 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x7c, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x82, 0x01, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5e, 0x0a, 0x15, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, + 0x16, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x54, 0x0a, 0x10, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x41, 0x6e, 0x79, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x58, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x60, 0x0a, 0x16, 0x4d, + 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, + 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x64, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x66, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x62, 0x0a, 0x18, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 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, + 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 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, 0x7d, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, + 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x83, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, + 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, 0x16, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, + 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4e, 0x75, 0x6c, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x14, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4c, + 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, 0x72, + 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x63, + 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x42, 0x6f, 0x6f, 0x6c, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, 0x61, + 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, + 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 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, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, + 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, + 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 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, 0x7d, 0x0a, 0x12, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, + 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x83, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, 0x0a, + 0x16, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, + 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x14, 0x4d, + 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x55, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, + 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, + 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x57, + 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, + 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x63, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x42, 0x6f, 0x6f, 0x6c, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x40, 0x0a, 0x12, 0x4d, + 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, 0x6c, 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, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, + 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 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, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x79, + 0x74, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, 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, 0x05, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 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, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, + 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, 0x32, 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, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, + 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, + 0x34, 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, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x41, 0x0a, 0x13, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 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, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 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, 0x7d, 0x0a, 0x12, 0x4d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x75, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, + 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x83, 0x01, 0x0a, 0x15, 0x4d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, + 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5f, + 0x0a, 0x16, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x4e, + 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x0e, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x55, 0x0a, 0x11, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x41, 0x6e, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x14, + 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x4d, 0x61, 0x70, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x17, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 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, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, + 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, + 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, + 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x55, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x67, 0x0a, 0x1b, 0x4d, 0x61, 0x70, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x1a, 0x63, 0x0a, 0x19, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6f, + 0x6c, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 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, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x65, 0x0a, 0x1a, 0x4d, 0x61, 0x70, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x27, 0x0a, 0x0a, + 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x4f, + 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, + 0x42, 0x41, 0x5a, 0x10, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xae, 0x01, 0x0a, + 0x12, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x65, + 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x12, 0x4a, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, + 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2a, 0x27, 0x0a, + 0x0a, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x07, 0x0a, 0x03, 0x47, + 0x4f, 0x4f, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x41, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x47, 0x41, 0x5a, 0x10, 0x02, 0x42, 0xcb, 0x02, 0x0a, 0x26, 0x63, 0x6f, 0x6d, 0x2e, 0x62, + 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x63, 0x65, 0x6c, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x42, 0x11, 0x54, 0x65, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x62, 0x75, 0x66, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2d, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x2f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x65, 0x6c, 0x2f, 0x65, 0x78, + 0x70, 0x72, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x05, 0x42, 0x43, 0x45, 0x43, 0x50, + 0xaa, 0x02, 0x22, 0x42, 0x75, 0x66, 0x65, 0x78, 0x74, 0x2e, 0x43, 0x65, 0x6c, 0x2e, 0x45, 0x78, + 0x70, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x33, 0xca, 0x02, 0x22, 0x42, 0x75, 0x66, 0x65, 0x78, 0x74, 0x5c, 0x43, + 0x65, 0x6c, 0x5c, 0x45, 0x78, 0x70, 0x72, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x6e, 0x63, 0x65, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0xe2, 0x02, 0x2e, 0x42, 0x75, 0x66, + 0x65, 0x78, 0x74, 0x5c, 0x43, 0x65, 0x6c, 0x5c, 0x45, 0x78, 0x70, 0x72, 0x5c, 0x43, 0x6f, 0x6e, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x26, 0x42, 0x75, + 0x66, 0x65, 0x78, 0x74, 0x3a, 0x3a, 0x43, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x78, 0x70, 0x72, 0x3a, + 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x3a, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescOnce sync.Once + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescData = file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDesc +) + +func file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescGZIP() []byte { + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescOnce.Do(func() { + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescData) + }) + return file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDescData +} + +var file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes = make([]protoimpl.MessageInfo, 166) +var file_bufext_cel_expr_conformance_proto3_test_all_types_proto_goTypes = []interface{}{ + (GlobalEnum)(0), // 0: bufext.cel.expr.conformance.proto3.GlobalEnum + (TestAllTypes_NestedEnum)(0), // 1: bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + (*TestAllTypes)(nil), // 2: bufext.cel.expr.conformance.proto3.TestAllTypes + (*NestedTestAllTypes)(nil), // 3: bufext.cel.expr.conformance.proto3.NestedTestAllTypes + (*TestAllTypes_NestedMessage)(nil), // 4: bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + nil, // 5: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NestedTypeEntry + nil, // 6: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolEntry + nil, // 7: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringEntry + nil, // 8: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesEntry + nil, // 9: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32Entry + nil, // 10: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64Entry + nil, // 11: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32Entry + nil, // 12: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64Entry + nil, // 13: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatEntry + nil, // 14: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleEntry + nil, // 15: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolEnumEntry + nil, // 16: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolMessageEntry + nil, // 17: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDurationEntry + nil, // 18: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolTimestampEntry + nil, // 19: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolNullValueEntry + nil, // 20: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolAnyEntry + nil, // 21: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStructEntry + nil, // 22: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolValueEntry + nil, // 23: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolListValueEntry + nil, // 24: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64WrapperEntry + nil, // 25: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32WrapperEntry + nil, // 26: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleWrapperEntry + nil, // 27: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatWrapperEntry + nil, // 28: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64WrapperEntry + nil, // 29: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32WrapperEntry + nil, // 30: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringWrapperEntry + nil, // 31: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolWrapperEntry + nil, // 32: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesWrapperEntry + nil, // 33: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolEntry + nil, // 34: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringEntry + nil, // 35: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesEntry + nil, // 36: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32Entry + nil, // 37: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64Entry + nil, // 38: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32Entry + nil, // 39: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64Entry + nil, // 40: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatEntry + nil, // 41: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleEntry + nil, // 42: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32EnumEntry + nil, // 43: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32MessageEntry + nil, // 44: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DurationEntry + nil, // 45: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32TimestampEntry + nil, // 46: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32NullValueEntry + nil, // 47: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32AnyEntry + nil, // 48: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StructEntry + nil, // 49: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ValueEntry + nil, // 50: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ListValueEntry + nil, // 51: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64WrapperEntry + nil, // 52: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32WrapperEntry + nil, // 53: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleWrapperEntry + nil, // 54: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatWrapperEntry + nil, // 55: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64WrapperEntry + nil, // 56: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32WrapperEntry + nil, // 57: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringWrapperEntry + nil, // 58: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolWrapperEntry + nil, // 59: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesWrapperEntry + nil, // 60: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolEntry + nil, // 61: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringEntry + nil, // 62: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesEntry + nil, // 63: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32Entry + nil, // 64: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64Entry + nil, // 65: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32Entry + nil, // 66: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64Entry + nil, // 67: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatEntry + nil, // 68: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleEntry + nil, // 69: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64EnumEntry + nil, // 70: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64MessageEntry + nil, // 71: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DurationEntry + nil, // 72: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64TimestampEntry + nil, // 73: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NullValueEntry + nil, // 74: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64AnyEntry + nil, // 75: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StructEntry + nil, // 76: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ValueEntry + nil, // 77: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ListValueEntry + nil, // 78: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64WrapperEntry + nil, // 79: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32WrapperEntry + nil, // 80: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleWrapperEntry + nil, // 81: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatWrapperEntry + nil, // 82: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64WrapperEntry + nil, // 83: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32WrapperEntry + nil, // 84: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringWrapperEntry + nil, // 85: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolWrapperEntry + nil, // 86: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesWrapperEntry + nil, // 87: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolEntry + nil, // 88: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringEntry + nil, // 89: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesEntry + nil, // 90: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32Entry + nil, // 91: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64Entry + nil, // 92: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32Entry + nil, // 93: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64Entry + nil, // 94: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatEntry + nil, // 95: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleEntry + nil, // 96: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32EnumEntry + nil, // 97: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32MessageEntry + nil, // 98: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DurationEntry + nil, // 99: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32TimestampEntry + nil, // 100: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32NullValueEntry + nil, // 101: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32AnyEntry + nil, // 102: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StructEntry + nil, // 103: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ValueEntry + nil, // 104: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ListValueEntry + nil, // 105: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64WrapperEntry + nil, // 106: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32WrapperEntry + nil, // 107: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleWrapperEntry + nil, // 108: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatWrapperEntry + nil, // 109: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64WrapperEntry + nil, // 110: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32WrapperEntry + nil, // 111: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringWrapperEntry + nil, // 112: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolWrapperEntry + nil, // 113: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesWrapperEntry + nil, // 114: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolEntry + nil, // 115: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringEntry + nil, // 116: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesEntry + nil, // 117: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32Entry + nil, // 118: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64Entry + nil, // 119: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32Entry + nil, // 120: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64Entry + nil, // 121: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatEntry + nil, // 122: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleEntry + nil, // 123: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64EnumEntry + nil, // 124: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64MessageEntry + nil, // 125: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DurationEntry + nil, // 126: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64TimestampEntry + nil, // 127: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64NullValueEntry + nil, // 128: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64AnyEntry + nil, // 129: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StructEntry + nil, // 130: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ValueEntry + nil, // 131: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ListValueEntry + nil, // 132: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64WrapperEntry + nil, // 133: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32WrapperEntry + nil, // 134: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleWrapperEntry + nil, // 135: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatWrapperEntry + nil, // 136: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64WrapperEntry + nil, // 137: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32WrapperEntry + nil, // 138: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringWrapperEntry + nil, // 139: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolWrapperEntry + nil, // 140: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesWrapperEntry + nil, // 141: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolEntry + nil, // 142: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringEntry + nil, // 143: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesEntry + nil, // 144: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32Entry + nil, // 145: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64Entry + nil, // 146: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32Entry + nil, // 147: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64Entry + nil, // 148: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatEntry + nil, // 149: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleEntry + nil, // 150: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringEnumEntry + nil, // 151: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringMessageEntry + nil, // 152: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDurationEntry + nil, // 153: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringTimestampEntry + nil, // 154: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringNullValueEntry + nil, // 155: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringAnyEntry + nil, // 156: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStructEntry + nil, // 157: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringValueEntry + nil, // 158: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringListValueEntry + nil, // 159: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64WrapperEntry + nil, // 160: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32WrapperEntry + nil, // 161: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleWrapperEntry + nil, // 162: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatWrapperEntry + nil, // 163: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64WrapperEntry + nil, // 164: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32WrapperEntry + nil, // 165: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringWrapperEntry + nil, // 166: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolWrapperEntry + nil, // 167: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesWrapperEntry + (*anypb.Any)(nil), // 168: google.protobuf.Any + (*durationpb.Duration)(nil), // 169: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 170: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 171: google.protobuf.Struct + (*structpb.Value)(nil), // 172: google.protobuf.Value + (*wrapperspb.Int64Value)(nil), // 173: google.protobuf.Int64Value + (*wrapperspb.Int32Value)(nil), // 174: google.protobuf.Int32Value + (*wrapperspb.DoubleValue)(nil), // 175: google.protobuf.DoubleValue + (*wrapperspb.FloatValue)(nil), // 176: google.protobuf.FloatValue + (*wrapperspb.UInt64Value)(nil), // 177: google.protobuf.UInt64Value + (*wrapperspb.UInt32Value)(nil), // 178: google.protobuf.UInt32Value + (*wrapperspb.StringValue)(nil), // 179: google.protobuf.StringValue + (*wrapperspb.BoolValue)(nil), // 180: google.protobuf.BoolValue + (*wrapperspb.BytesValue)(nil), // 181: google.protobuf.BytesValue + (*structpb.ListValue)(nil), // 182: google.protobuf.ListValue + (structpb.NullValue)(0), // 183: google.protobuf.NullValue +} +var file_bufext_cel_expr_conformance_proto3_test_all_types_proto_depIdxs = []int32{ + 168, // 0: bufext.cel.expr.conformance.proto3.TestAllTypes.single_any:type_name -> google.protobuf.Any + 169, // 1: bufext.cel.expr.conformance.proto3.TestAllTypes.single_duration:type_name -> google.protobuf.Duration + 170, // 2: bufext.cel.expr.conformance.proto3.TestAllTypes.single_timestamp:type_name -> google.protobuf.Timestamp + 171, // 3: bufext.cel.expr.conformance.proto3.TestAllTypes.single_struct:type_name -> google.protobuf.Struct + 172, // 4: bufext.cel.expr.conformance.proto3.TestAllTypes.single_value:type_name -> google.protobuf.Value + 173, // 5: bufext.cel.expr.conformance.proto3.TestAllTypes.single_int64_wrapper:type_name -> google.protobuf.Int64Value + 174, // 6: bufext.cel.expr.conformance.proto3.TestAllTypes.single_int32_wrapper:type_name -> google.protobuf.Int32Value + 175, // 7: bufext.cel.expr.conformance.proto3.TestAllTypes.single_double_wrapper:type_name -> google.protobuf.DoubleValue + 176, // 8: bufext.cel.expr.conformance.proto3.TestAllTypes.single_float_wrapper:type_name -> google.protobuf.FloatValue + 177, // 9: bufext.cel.expr.conformance.proto3.TestAllTypes.single_uint64_wrapper:type_name -> google.protobuf.UInt64Value + 178, // 10: bufext.cel.expr.conformance.proto3.TestAllTypes.single_uint32_wrapper:type_name -> google.protobuf.UInt32Value + 179, // 11: bufext.cel.expr.conformance.proto3.TestAllTypes.single_string_wrapper:type_name -> google.protobuf.StringValue + 180, // 12: bufext.cel.expr.conformance.proto3.TestAllTypes.single_bool_wrapper:type_name -> google.protobuf.BoolValue + 181, // 13: bufext.cel.expr.conformance.proto3.TestAllTypes.single_bytes_wrapper:type_name -> google.protobuf.BytesValue + 182, // 14: bufext.cel.expr.conformance.proto3.TestAllTypes.list_value:type_name -> google.protobuf.ListValue + 183, // 15: bufext.cel.expr.conformance.proto3.TestAllTypes.null_value:type_name -> google.protobuf.NullValue + 183, // 16: bufext.cel.expr.conformance.proto3.TestAllTypes.optional_null_value:type_name -> google.protobuf.NullValue + 4, // 17: bufext.cel.expr.conformance.proto3.TestAllTypes.single_nested_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 1, // 18: bufext.cel.expr.conformance.proto3.TestAllTypes.single_nested_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 19: bufext.cel.expr.conformance.proto3.TestAllTypes.standalone_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 1, // 20: bufext.cel.expr.conformance.proto3.TestAllTypes.standalone_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 21: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_nested_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 1, // 22: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_nested_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 23: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_lazy_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 168, // 24: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_any:type_name -> google.protobuf.Any + 169, // 25: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_duration:type_name -> google.protobuf.Duration + 170, // 26: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_timestamp:type_name -> google.protobuf.Timestamp + 171, // 27: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_struct:type_name -> google.protobuf.Struct + 172, // 28: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_value:type_name -> google.protobuf.Value + 173, // 29: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_int64_wrapper:type_name -> google.protobuf.Int64Value + 174, // 30: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_int32_wrapper:type_name -> google.protobuf.Int32Value + 175, // 31: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_double_wrapper:type_name -> google.protobuf.DoubleValue + 176, // 32: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_float_wrapper:type_name -> google.protobuf.FloatValue + 177, // 33: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_uint64_wrapper:type_name -> google.protobuf.UInt64Value + 178, // 34: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_uint32_wrapper:type_name -> google.protobuf.UInt32Value + 179, // 35: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_string_wrapper:type_name -> google.protobuf.StringValue + 180, // 36: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_bool_wrapper:type_name -> google.protobuf.BoolValue + 181, // 37: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_bytes_wrapper:type_name -> google.protobuf.BytesValue + 182, // 38: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_list_value:type_name -> google.protobuf.ListValue + 183, // 39: bufext.cel.expr.conformance.proto3.TestAllTypes.repeated_null_value:type_name -> google.protobuf.NullValue + 5, // 40: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_nested_type:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NestedTypeEntry + 6, // 41: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolEntry + 7, // 42: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringEntry + 8, // 43: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesEntry + 9, // 44: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32Entry + 10, // 45: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64Entry + 11, // 46: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32Entry + 12, // 47: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64Entry + 13, // 48: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatEntry + 14, // 49: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleEntry + 15, // 50: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolEnumEntry + 16, // 51: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolMessageEntry + 17, // 52: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDurationEntry + 18, // 53: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolTimestampEntry + 19, // 54: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolNullValueEntry + 20, // 55: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolAnyEntry + 21, // 56: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStructEntry + 22, // 57: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolValueEntry + 23, // 58: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolListValueEntry + 24, // 59: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64WrapperEntry + 25, // 60: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32WrapperEntry + 26, // 61: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleWrapperEntry + 27, // 62: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatWrapperEntry + 28, // 63: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64WrapperEntry + 29, // 64: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32WrapperEntry + 30, // 65: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringWrapperEntry + 31, // 66: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolWrapperEntry + 32, // 67: bufext.cel.expr.conformance.proto3.TestAllTypes.map_bool_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesWrapperEntry + 33, // 68: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolEntry + 34, // 69: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringEntry + 35, // 70: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesEntry + 36, // 71: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32Entry + 37, // 72: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64Entry + 38, // 73: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32Entry + 39, // 74: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64Entry + 40, // 75: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatEntry + 41, // 76: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleEntry + 42, // 77: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32EnumEntry + 43, // 78: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32MessageEntry + 44, // 79: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DurationEntry + 45, // 80: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32TimestampEntry + 46, // 81: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32NullValueEntry + 47, // 82: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32AnyEntry + 48, // 83: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StructEntry + 49, // 84: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ValueEntry + 50, // 85: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ListValueEntry + 51, // 86: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64WrapperEntry + 52, // 87: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32WrapperEntry + 53, // 88: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleWrapperEntry + 54, // 89: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatWrapperEntry + 55, // 90: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64WrapperEntry + 56, // 91: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32WrapperEntry + 57, // 92: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringWrapperEntry + 58, // 93: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolWrapperEntry + 59, // 94: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int32_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesWrapperEntry + 60, // 95: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolEntry + 61, // 96: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringEntry + 62, // 97: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesEntry + 63, // 98: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32Entry + 64, // 99: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64Entry + 65, // 100: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32Entry + 66, // 101: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64Entry + 67, // 102: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatEntry + 68, // 103: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleEntry + 69, // 104: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64EnumEntry + 70, // 105: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64MessageEntry + 71, // 106: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DurationEntry + 72, // 107: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64TimestampEntry + 73, // 108: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NullValueEntry + 74, // 109: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64AnyEntry + 75, // 110: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StructEntry + 76, // 111: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ValueEntry + 77, // 112: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ListValueEntry + 78, // 113: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64WrapperEntry + 79, // 114: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32WrapperEntry + 80, // 115: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleWrapperEntry + 81, // 116: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatWrapperEntry + 82, // 117: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64WrapperEntry + 83, // 118: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32WrapperEntry + 84, // 119: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringWrapperEntry + 85, // 120: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolWrapperEntry + 86, // 121: bufext.cel.expr.conformance.proto3.TestAllTypes.map_int64_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesWrapperEntry + 87, // 122: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolEntry + 88, // 123: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringEntry + 89, // 124: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesEntry + 90, // 125: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32Entry + 91, // 126: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64Entry + 92, // 127: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32Entry + 93, // 128: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64Entry + 94, // 129: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatEntry + 95, // 130: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleEntry + 96, // 131: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32EnumEntry + 97, // 132: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32MessageEntry + 98, // 133: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DurationEntry + 99, // 134: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32TimestampEntry + 100, // 135: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32NullValueEntry + 101, // 136: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32AnyEntry + 102, // 137: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StructEntry + 103, // 138: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ValueEntry + 104, // 139: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ListValueEntry + 105, // 140: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64WrapperEntry + 106, // 141: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32WrapperEntry + 107, // 142: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleWrapperEntry + 108, // 143: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatWrapperEntry + 109, // 144: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64WrapperEntry + 110, // 145: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32WrapperEntry + 111, // 146: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringWrapperEntry + 112, // 147: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolWrapperEntry + 113, // 148: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint32_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesWrapperEntry + 114, // 149: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolEntry + 115, // 150: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringEntry + 116, // 151: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesEntry + 117, // 152: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32Entry + 118, // 153: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64Entry + 119, // 154: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32Entry + 120, // 155: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64Entry + 121, // 156: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatEntry + 122, // 157: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleEntry + 123, // 158: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64EnumEntry + 124, // 159: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64MessageEntry + 125, // 160: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DurationEntry + 126, // 161: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64TimestampEntry + 127, // 162: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64NullValueEntry + 128, // 163: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64AnyEntry + 129, // 164: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StructEntry + 130, // 165: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ValueEntry + 131, // 166: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ListValueEntry + 132, // 167: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64WrapperEntry + 133, // 168: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32WrapperEntry + 134, // 169: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleWrapperEntry + 135, // 170: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatWrapperEntry + 136, // 171: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64WrapperEntry + 137, // 172: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32WrapperEntry + 138, // 173: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringWrapperEntry + 139, // 174: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolWrapperEntry + 140, // 175: bufext.cel.expr.conformance.proto3.TestAllTypes.map_uint64_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesWrapperEntry + 141, // 176: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_bool:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolEntry + 142, // 177: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_string:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringEntry + 143, // 178: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_bytes:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesEntry + 144, // 179: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_int32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32Entry + 145, // 180: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_int64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64Entry + 146, // 181: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_uint32:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32Entry + 147, // 182: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_uint64:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64Entry + 148, // 183: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_float:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatEntry + 149, // 184: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_double:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleEntry + 150, // 185: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_enum:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringEnumEntry + 151, // 186: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_message:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringMessageEntry + 152, // 187: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_duration:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDurationEntry + 153, // 188: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_timestamp:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringTimestampEntry + 154, // 189: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_null_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringNullValueEntry + 155, // 190: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_any:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringAnyEntry + 156, // 191: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_struct:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStructEntry + 157, // 192: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringValueEntry + 158, // 193: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_list_value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringListValueEntry + 159, // 194: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_int64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64WrapperEntry + 160, // 195: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_int32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32WrapperEntry + 161, // 196: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_double_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleWrapperEntry + 162, // 197: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_float_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatWrapperEntry + 163, // 198: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_uint64_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64WrapperEntry + 164, // 199: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_uint32_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32WrapperEntry + 165, // 200: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_string_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringWrapperEntry + 166, // 201: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_bool_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolWrapperEntry + 167, // 202: bufext.cel.expr.conformance.proto3.TestAllTypes.map_string_bytes_wrapper:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesWrapperEntry + 3, // 203: bufext.cel.expr.conformance.proto3.NestedTestAllTypes.child:type_name -> bufext.cel.expr.conformance.proto3.NestedTestAllTypes + 2, // 204: bufext.cel.expr.conformance.proto3.NestedTestAllTypes.payload:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes + 3, // 205: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NestedTypeEntry.value:type_name -> bufext.cel.expr.conformance.proto3.NestedTestAllTypes + 1, // 206: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolEnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 207: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolMessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 208: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDurationEntry.value:type_name -> google.protobuf.Duration + 170, // 209: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolTimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 210: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolNullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 211: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolAnyEntry.value:type_name -> google.protobuf.Any + 171, // 212: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStructEntry.value:type_name -> google.protobuf.Struct + 172, // 213: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolValueEntry.value:type_name -> google.protobuf.Value + 182, // 214: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 215: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 216: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 217: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 218: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 219: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 220: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 221: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 222: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 223: bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 1, // 224: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32EnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 225: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32MessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 226: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DurationEntry.value:type_name -> google.protobuf.Duration + 170, // 227: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32TimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 228: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32NullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 229: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32AnyEntry.value:type_name -> google.protobuf.Any + 171, // 230: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StructEntry.value:type_name -> google.protobuf.Struct + 172, // 231: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ValueEntry.value:type_name -> google.protobuf.Value + 182, // 232: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 233: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 234: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 235: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 236: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 237: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 238: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 239: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 240: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 241: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 1, // 242: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64EnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 243: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64MessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 244: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DurationEntry.value:type_name -> google.protobuf.Duration + 170, // 245: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64TimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 246: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 247: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64AnyEntry.value:type_name -> google.protobuf.Any + 171, // 248: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StructEntry.value:type_name -> google.protobuf.Struct + 172, // 249: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ValueEntry.value:type_name -> google.protobuf.Value + 182, // 250: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 251: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 252: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 253: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 254: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 255: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 256: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 257: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 258: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 259: bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 1, // 260: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32EnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 261: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32MessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 262: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DurationEntry.value:type_name -> google.protobuf.Duration + 170, // 263: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32TimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 264: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32NullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 265: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32AnyEntry.value:type_name -> google.protobuf.Any + 171, // 266: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StructEntry.value:type_name -> google.protobuf.Struct + 172, // 267: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ValueEntry.value:type_name -> google.protobuf.Value + 182, // 268: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 269: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 270: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 271: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 272: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 273: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 274: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 275: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 276: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 277: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 1, // 278: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64EnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 279: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64MessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 280: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DurationEntry.value:type_name -> google.protobuf.Duration + 170, // 281: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64TimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 282: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64NullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 283: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64AnyEntry.value:type_name -> google.protobuf.Any + 171, // 284: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StructEntry.value:type_name -> google.protobuf.Struct + 172, // 285: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ValueEntry.value:type_name -> google.protobuf.Value + 182, // 286: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 287: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 288: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 289: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 290: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 291: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 292: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 293: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 294: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 295: bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 1, // 296: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringEnumEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum + 4, // 297: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringMessageEntry.value:type_name -> bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage + 169, // 298: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDurationEntry.value:type_name -> google.protobuf.Duration + 170, // 299: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringTimestampEntry.value:type_name -> google.protobuf.Timestamp + 183, // 300: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringNullValueEntry.value:type_name -> google.protobuf.NullValue + 168, // 301: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringAnyEntry.value:type_name -> google.protobuf.Any + 171, // 302: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStructEntry.value:type_name -> google.protobuf.Struct + 172, // 303: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringValueEntry.value:type_name -> google.protobuf.Value + 182, // 304: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringListValueEntry.value:type_name -> google.protobuf.ListValue + 173, // 305: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64WrapperEntry.value:type_name -> google.protobuf.Int64Value + 174, // 306: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32WrapperEntry.value:type_name -> google.protobuf.Int32Value + 175, // 307: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleWrapperEntry.value:type_name -> google.protobuf.DoubleValue + 176, // 308: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatWrapperEntry.value:type_name -> google.protobuf.FloatValue + 177, // 309: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64WrapperEntry.value:type_name -> google.protobuf.UInt64Value + 178, // 310: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32WrapperEntry.value:type_name -> google.protobuf.UInt32Value + 179, // 311: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringWrapperEntry.value:type_name -> google.protobuf.StringValue + 180, // 312: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolWrapperEntry.value:type_name -> google.protobuf.BoolValue + 181, // 313: bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesWrapperEntry.value:type_name -> google.protobuf.BytesValue + 314, // [314:314] is the sub-list for method output_type + 314, // [314:314] is the sub-list for method input_type + 314, // [314:314] is the sub-list for extension type_name + 314, // [314:314] is the sub-list for extension extendee + 0, // [0:314] is the sub-list for field type_name +} + +func init() { file_bufext_cel_expr_conformance_proto3_test_all_types_proto_init() } +func file_bufext_cel_expr_conformance_proto3_test_all_types_proto_init() { + if File_bufext_cel_expr_conformance_proto3_test_all_types_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestAllTypes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NestedTestAllTypes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestAllTypes_NestedMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*TestAllTypes_SingleNestedMessage)(nil), + (*TestAllTypes_SingleNestedEnum)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDesc, + NumEnums: 2, + NumMessages: 166, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_bufext_cel_expr_conformance_proto3_test_all_types_proto_goTypes, + DependencyIndexes: file_bufext_cel_expr_conformance_proto3_test_all_types_proto_depIdxs, + EnumInfos: file_bufext_cel_expr_conformance_proto3_test_all_types_proto_enumTypes, + MessageInfos: file_bufext_cel_expr_conformance_proto3_test_all_types_proto_msgTypes, + }.Build() + File_bufext_cel_expr_conformance_proto3_test_all_types_proto = out.File + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_rawDesc = nil + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_goTypes = nil + file_bufext_cel_expr_conformance_proto3_test_all_types_proto_depIdxs = nil +} diff --git a/internal/proto/buf.lock b/internal/proto/buf.lock new file mode 100644 index 0000000..9d4c3f1 --- /dev/null +++ b/internal/proto/buf.lock @@ -0,0 +1,13 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: bufbuild + repository: protovalidate + commit: f05a6f4403ce4327bae4f50f281c3ed0 + digest: shake256:668a0661b8df44d41839194896329330965fc215f3d2f88057fd60eeb759c2daf6cc6edfdd13b2a653d49fe2896ebedcb1a33c4c5b2dd10919f03ffb7fc52ae6 + - remote: buf.build + owner: liberetech + repository: protoc-gen-bq-schema + commit: 30f1288484d442c78a00ec5992a20c22 + digest: shake256:f7399b0da0e5e30f60aab5703c37ecd61cabf144bbc7f3607190b0d002d32707418c5ec710fc5b5422ff1b6c6a9413ab044e6012e6ec076df90ff4c48b196a92 diff --git a/internal/proto/buf.yaml b/internal/proto/buf.yaml new file mode 100644 index 0000000..0ee3a95 --- /dev/null +++ b/internal/proto/buf.yaml @@ -0,0 +1,7 @@ +version: v1 +deps: + - buf.build/bufbuild/protovalidate + - buf.build/liberetech/protoc-gen-bq-schema +lint: + ignore: + - bufext diff --git a/internal/proto/buf/protoschema/test/v1/bq_wkt_test.proto b/internal/proto/buf/protoschema/test/v1/bq_wkt_test.proto new file mode 100644 index 0000000..c6a5020 --- /dev/null +++ b/internal/proto/buf/protoschema/test/v1/bq_wkt_test.proto @@ -0,0 +1,23 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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. + +syntax = "proto2"; + +package buf.protoschema.test.v1; + +import "google/protobuf/struct.proto"; + +message BigQueryWellknownTypeTest { + optional google.protobuf.Value json_value = 1; +} diff --git a/internal/proto/buf/protoschema/test/v1/test_cases.proto b/internal/proto/buf/protoschema/test/v1/test_cases.proto new file mode 100644 index 0000000..0b1de72 --- /dev/null +++ b/internal/proto/buf/protoschema/test/v1/test_cases.proto @@ -0,0 +1,68 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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. + +syntax = "proto3"; + +package buf.protoschema.test.v1; + +import "buf/validate/validate.proto"; +import "bufext/cel/expr/conformance/proto3/test_all_types.proto"; +import "protoc-gen-bq-schema/bq_field.proto"; +import "protoc-gen-bq-schema/bq_table.proto"; + +message NestedReference { + bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage nested_message = 1; +} + +message CustomOptions { + option (buf.validate.message).cel = { + id: "custom_option_id", + expression: "1 == 1", + message: "must be true" + }; + option no_standard_descriptor_accessor = true; + + repeated int32 int32_field = 1 [ + packed = true, + (buf.validate.field).cel = { + id: "int32_field_id", + expression: "1 == 1", + message: "must be true" + } + ]; + + oneof kind { + option (buf.validate.oneof).required = true; + string string_field = 2 [(buf.validate.field).cel = { + id: "string_field_id", + expression: "1 == 1", + message: "must be true" + }]; + } +} + +message CustomBigQuery { + option (gen_bq_schema.bigquery_opts) = { + table_name: "CustomName" + use_json_names: true + }; + + int32 int32_field = 1 [(gen_bq_schema.bigquery) = { + type_override: "TIMESTAMP", + name: "create_time" + }]; + string string_field = 2; + + NestedReference nested_reference = 3 [(gen_bq_schema.bigquery) = {ignore: true}]; +} diff --git a/internal/proto/bufext/cel/expr/conformance/proto3/test_all_types.proto b/internal/proto/bufext/cel/expr/conformance/proto3/test_all_types.proto new file mode 100644 index 0000000..6570e72 --- /dev/null +++ b/internal/proto/bufext/cel/expr/conformance/proto3/test_all_types.proto @@ -0,0 +1,319 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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. + +// Mostly originally copied from https://github.com/google/cel-spec/blob/ed066e332b7acc3dbf68e65e0001061539d25e83/proto/cel/expr/conformance/proto3/test_all_types.proto. +// See the license at https://github.com/google/cel-spec/blob/ed066e332b7acc3dbf68e65e0001061539d25e83/LICENSE. + +syntax = "proto3"; + +package bufext.cel.expr.conformance.proto3; + +import "google/protobuf/any.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; + +option cc_enable_arenas = true; +option go_package = "cel.dev/expr/conformance/proto3"; +option java_multiple_files = true; +option java_outer_classname = "TestAllTypesProto"; +option java_package = "dev.cel.expr.conformance.proto3"; + +// This proto includes every type of field in both singular and repeated +// forms. +message TestAllTypes { + message NestedMessage { + // The field name "b" fails to compile in proto1 because it conflicts with + // a local variable named "b" in one of the generated methods. + // This file needs to compile in proto1 to test backwards-compatibility. + int32 bb = 1; + } + + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + + // Singular + int32 single_int32 = 1; + int64 single_int64 = 2; + uint32 single_uint32 = 3; + uint64 single_uint64 = 4; + sint32 single_sint32 = 5; + sint64 single_sint64 = 6; + fixed32 single_fixed32 = 7; + fixed64 single_fixed64 = 8; + sfixed32 single_sfixed32 = 9; + sfixed64 single_sfixed64 = 10; + float single_float = 11; + double single_double = 12; + bool single_bool = 13; + string single_string = 14; + bytes single_bytes = 15; + + // Wellknown. + google.protobuf.Any single_any = 100; + google.protobuf.Duration single_duration = 101; + google.protobuf.Timestamp single_timestamp = 102; + google.protobuf.Struct single_struct = 103; + google.protobuf.Value single_value = 104; + google.protobuf.Int64Value single_int64_wrapper = 105; + google.protobuf.Int32Value single_int32_wrapper = 106; + google.protobuf.DoubleValue single_double_wrapper = 107; + google.protobuf.FloatValue single_float_wrapper = 108; + google.protobuf.UInt64Value single_uint64_wrapper = 109; + google.protobuf.UInt32Value single_uint32_wrapper = 110; + google.protobuf.StringValue single_string_wrapper = 111; + google.protobuf.BoolValue single_bool_wrapper = 112; + google.protobuf.BytesValue single_bytes_wrapper = 113; + google.protobuf.ListValue list_value = 114; + google.protobuf.NullValue null_value = 115; + optional google.protobuf.NullValue optional_null_value = 116; + + // Nested messages + oneof nested_type { + NestedMessage single_nested_message = 21; + NestedEnum single_nested_enum = 22; + } + NestedMessage standalone_message = 23; + NestedEnum standalone_enum = 24; + + // Repeated + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + + // Repeated and nested + repeated NestedMessage repeated_nested_message = 51; + repeated NestedEnum repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + + // Repeated wellknown. + repeated google.protobuf.Any repeated_any = 120; + repeated google.protobuf.Duration repeated_duration = 121; + repeated google.protobuf.Timestamp repeated_timestamp = 122; + repeated google.protobuf.Struct repeated_struct = 123; + repeated google.protobuf.Value repeated_value = 124; + repeated google.protobuf.Int64Value repeated_int64_wrapper = 125; + repeated google.protobuf.Int32Value repeated_int32_wrapper = 126; + repeated google.protobuf.DoubleValue repeated_double_wrapper = 127; + repeated google.protobuf.FloatValue repeated_float_wrapper = 128; + repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 129; + repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 130; + repeated google.protobuf.StringValue repeated_string_wrapper = 131; + repeated google.protobuf.BoolValue repeated_bool_wrapper = 132; + repeated google.protobuf.BytesValue repeated_bytes_wrapper = 133; + repeated google.protobuf.ListValue repeated_list_value = 134; + repeated google.protobuf.NullValue repeated_null_value = 135; + + // Map + map map_int64_nested_type = 62; + + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; +} + +// This proto includes a recursively nested message. +message NestedTestAllTypes { + NestedTestAllTypes child = 1; + TestAllTypes payload = 2; +} + +// This proto tests that global enums are resolved correctly. +enum GlobalEnum { + GOO = 0; + GAR = 1; + GAZ = 2; +} diff --git a/internal/protoschema/bigquery/bigquery.go b/internal/protoschema/bigquery/bigquery.go new file mode 100644 index 0000000..4eb47d1 --- /dev/null +++ b/internal/protoschema/bigquery/bigquery.go @@ -0,0 +1,311 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 bigquery + +import ( + "fmt" + + "cloud.google.com/go/bigquery" + bqproto "github.com/GoogleCloudPlatform/protoc-gen-bq-schema/protos" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/normalize" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/descriptorpb" +) + +const ( + // FileExtension is the file extension for BigQuery schema files. + FileExtension = "TableSchema.json" +) + +var ( + typeOverrideToType = map[string]bigquery.FieldType{ + "STRING": bigquery.StringFieldType, + "INT64": bigquery.IntegerFieldType, + "DOUBLE": bigquery.FloatFieldType, + "BYTES": bigquery.BytesFieldType, + "BOOL": bigquery.BooleanFieldType, + "TIMESTAMP": bigquery.TimestampFieldType, + "DATE": bigquery.DateFieldType, + "TIME": bigquery.TimeFieldType, + "DATETIME": bigquery.DateTimeFieldType, + "GEOGRAPHY": bigquery.GeographyFieldType, + "NUMERIC": bigquery.NumericFieldType, + "BIGNUMERIC": bigquery.BigNumericFieldType, + "INTERVAL": bigquery.IntervalFieldType, + "JSON": bigquery.JSONFieldType, + "RECORD": bigquery.RecordFieldType, + "STRUCT": bigquery.RecordFieldType, + } + reflectKindToType = map[protoreflect.Kind]bigquery.FieldType{ + protoreflect.BoolKind: bigquery.BooleanFieldType, + protoreflect.Int32Kind: bigquery.IntegerFieldType, + protoreflect.Sint32Kind: bigquery.IntegerFieldType, + protoreflect.Sfixed32Kind: bigquery.IntegerFieldType, + protoreflect.Uint32Kind: bigquery.IntegerFieldType, + protoreflect.Fixed32Kind: bigquery.IntegerFieldType, + protoreflect.Int64Kind: bigquery.IntegerFieldType, + protoreflect.Sint64Kind: bigquery.IntegerFieldType, + protoreflect.Sfixed64Kind: bigquery.IntegerFieldType, + protoreflect.Uint64Kind: bigquery.BigNumericFieldType, + protoreflect.Fixed64Kind: bigquery.BigNumericFieldType, + protoreflect.FloatKind: bigquery.FloatFieldType, + protoreflect.DoubleKind: bigquery.FloatFieldType, + protoreflect.StringKind: bigquery.StringFieldType, + protoreflect.BytesKind: bigquery.BytesFieldType, + } + wktToType = map[protoreflect.FullName]bigquery.FieldType{ + "google.protobuf.Timestamp": bigquery.TimestampFieldType, + "google.protobuf.Duration": bigquery.IntervalFieldType, + "google.protobuf.StringValue": bigquery.StringFieldType, + "google.protobuf.BytesValue": bigquery.BytesFieldType, + "google.protobuf.Int32Value": bigquery.IntegerFieldType, + "google.protobuf.Int64Value": bigquery.IntegerFieldType, + "google.protobuf.UInt32Value": bigquery.IntegerFieldType, + "google.protobuf.UInt64Value": bigquery.BigNumericFieldType, + "google.protobuf.FloatValue": bigquery.FloatFieldType, + "google.protobuf.DoubleValue": bigquery.FloatFieldType, + "google.protobuf.BoolValue": bigquery.BooleanFieldType, + "google.protobuf.NullValue": bigquery.JSONFieldType, + "google.protobuf.Struct": bigquery.JSONFieldType, + "google.protobuf.Value": bigquery.JSONFieldType, + "google.protobuf.ListValue": bigquery.JSONFieldType, + } +) + +// Generate generates a BigQuery schema for the given message descriptor. +func Generate(input protoreflect.MessageDescriptor, opts ...GenerateOptions) (bigquery.Schema, *descriptorpb.DescriptorProto, error) { + options := new(generateOptions) + for _, opt := range opts { + opt.applyGenerateOptions(options) + } + normalizer := normalize.NewNormalizer(normalize.WithSkipTypes( + // The well-known JSON types are not support in BigQuery so we tell the normalizer to skip them. + "google.protobuf.Struct", + "google.protobuf.Value", + "google.protobuf.ListValue", + )) + generator := &bigQuerySchemaGenerator{ + maxDepth: options.maxDepth, + maxRecursionDepth: options.maxRecursionDepth, + seen: make(map[protoreflect.FullName]int), + normalizer: normalizer, + } + if generator.maxDepth == 0 || generator.maxDepth > 15 { + generator.maxDepth = 15 + } + if generator.maxRecursionDepth == 0 { + generator.maxRecursionDepth = 1 + } + normalized, err := generator.normalizer.Normalize(input) + if err != nil { + return nil, nil, err + } + schema, err := generator.generate(input, 0) + if err != nil { + return nil, nil, err + } + return schema, normalized, nil +} + +type bigQuerySchemaGenerator struct { + maxDepth int + maxRecursionDepth int + seen map[protoreflect.FullName]int + normalizer *normalize.Normalizer +} + +func (p *bigQuerySchemaGenerator) generate(msgDesc protoreflect.MessageDescriptor, depth int) (bigquery.Schema, error) { + schema, err := p.generateFields(msgDesc, depth) + if err != nil { + return nil, err + } + return schema, nil +} + +func (p *bigQuerySchemaGenerator) generateFields(msgDesc protoreflect.MessageDescriptor, depth int) (bigquery.Schema, error) { + msgOptions, err := p.getBqMessageOptions(msgDesc) + if err != nil { + return nil, err + } + + msgPb, err := p.normalizer.FindDescriptorProto(msgDesc) + if err != nil { + return nil, err + } + + result := make(bigquery.Schema, 0, msgDesc.Fields().Len()) + p.seen[msgDesc.FullName()]++ + for i := 0; i < len(msgPb.GetField()); i++ { + fieldPb := msgPb.GetField()[i] + fieldDesc := msgDesc.Fields().ByNumber(protoreflect.FieldNumber(fieldPb.GetNumber())) + if fieldDesc == nil { + return nil, fmt.Errorf("could not find field %d in message %s", fieldPb.GetNumber(), msgDesc.FullName()) + } + field, err := p.generateField(msgOptions, fieldDesc, fieldPb, depth+1) + switch { + case err != nil: + return nil, err + case field != nil: + result = append(result, field) + default: + for idx, fieldPb := range msgPb.Field { + if fieldPb.GetNumber() == int32(fieldDesc.Number()) { + msgPb.Field = append(msgPb.Field[:idx], msgPb.Field[idx+1:]...) + break + } + } + } + } + p.seen[msgDesc.FullName()]-- + return result, nil +} + +func (p *bigQuerySchemaGenerator) generateField(msgOptions *bqproto.BigQueryMessageOptions, + fieldDesc protoreflect.FieldDescriptor, fieldPb *descriptorpb.FieldDescriptorProto, + depth int) (*bigquery.FieldSchema, error) { + if depth >= p.maxDepth { + return nil, nil + } + fieldOptions, err := p.getBqFieldOptions(fieldDesc) + if err != nil { + return nil, err + } + if fieldOptions.GetIgnore() { + return nil, nil + } + + fieldSchema := p.generateFieldSchaema(msgOptions, fieldOptions, fieldDesc, fieldPb) + + switch fieldDesc.Kind() { + default: + if fieldType, ok := reflectKindToType[fieldDesc.Kind()]; ok { + fieldSchema.Type = fieldType + if fieldType == bigquery.BigNumericFieldType { + fieldSchema.Precision = 21 + fieldSchema.Scale = 20 + } + } else { + return nil, fmt.Errorf("invalid type: %s", fieldDesc.Kind()) + } + case protoreflect.EnumKind: + if fieldDesc.Syntax() == protoreflect.Proto3 { + fieldSchema.Type = bigquery.IntegerFieldType + } else { + fieldSchema.Type = bigquery.StringFieldType + } + case protoreflect.MessageKind, protoreflect.GroupKind: + if fieldOptions.GetTypeOverride() != "RECORD" { + if bqType, ok := wktToType[fieldDesc.Message().FullName()]; ok { + if bqType == "" { + return nil, nil + } + fieldSchema.Type = bqType + break + } + } + if count, ok := p.seen[fieldDesc.Message().FullName()]; ok && count >= p.maxRecursionDepth { + return nil, nil + } + fieldSchema.Type = bigquery.RecordFieldType + var err error + fieldSchema.Schema, err = p.generateFields(fieldDesc.Message(), depth) + if fieldDesc.IsMap() && len(fieldSchema.Schema) < 2 { + return nil, nil + } + if err != nil { + return nil, err + } else if len(fieldSchema.Schema) == 0 { + return nil, nil + } + } + if fieldOptions.GetTypeOverride() != "" { + if fieldType, ok := typeOverrideToType[fieldOptions.GetTypeOverride()]; ok { + fieldSchema.Type = fieldType + } else { + return nil, fmt.Errorf("invalid type override: %s", fieldOptions.GetTypeOverride()) + } + } + return fieldSchema, nil +} + +func (p *bigQuerySchemaGenerator) generateFieldSchaema( + msgOptions *bqproto.BigQueryMessageOptions, fieldOptions *bqproto.BigQueryFieldOptions, + fieldDesc protoreflect.FieldDescriptor, fieldPb *descriptorpb.FieldDescriptorProto) *bigquery.FieldSchema { + fieldSchema := &bigquery.FieldSchema{} + switch { + case fieldOptions.GetName() != "": + fieldSchema.Name = fieldOptions.GetName() + fieldPb.Name = proto.String(fieldOptions.GetName()) + fieldPb.JsonName = nil + case msgOptions.GetUseJsonNames(): + fieldSchema.Name = fieldDesc.JSONName() + fieldPb.Name = proto.String(fieldDesc.JSONName()) + default: + fieldSchema.Name = string(fieldDesc.Name()) + } + + switch fieldDesc.Cardinality() { + case protoreflect.Repeated: + fieldSchema.Repeated = true + case protoreflect.Required: + fieldSchema.Required = true + case protoreflect.Optional: + if fieldOptions.GetRequire() { + fieldSchema.Required = true + } + } + return fieldSchema +} + +func (p *bigQuerySchemaGenerator) getBqFieldOptions(field protoreflect.FieldDescriptor) (*bqproto.BigQueryFieldOptions, error) { + if !field.Options().ProtoReflect().Has(bqproto.E_Bigquery.TypeDescriptor()) { + return nil, nil + } + value := field.Options().ProtoReflect().Get(bqproto.E_Bigquery.TypeDescriptor()).Message().Interface() + if result, ok := value.(*bqproto.BigQueryFieldOptions); ok { + return result, nil + } + // Serialize and deserialize to get the correct type. + data, err := proto.Marshal(value) + if err != nil { + return nil, err + } + result := &bqproto.BigQueryFieldOptions{} + if err := proto.Unmarshal(data, result); err != nil { + return nil, err + } + return result, nil +} + +func (p *bigQuerySchemaGenerator) getBqMessageOptions(msg protoreflect.MessageDescriptor) (*bqproto.BigQueryMessageOptions, error) { + if !msg.Options().ProtoReflect().Has(bqproto.E_BigqueryOpts.TypeDescriptor()) { + return nil, nil + } + value := msg.Options().ProtoReflect().Get(bqproto.E_BigqueryOpts.TypeDescriptor()).Message().Interface() + if result, ok := value.(*bqproto.BigQueryMessageOptions); ok { + return result, nil + } + // Serialize and deserialize to get the correct type. + data, err := proto.Marshal(value) + if err != nil { + return nil, err + } + result := &bqproto.BigQueryMessageOptions{} + if err := proto.Unmarshal(data, result); err != nil { + return nil, err + } + return result, nil +} diff --git a/internal/protoschema/bigquery/bigquery_test.go b/internal/protoschema/bigquery/bigquery_test.go new file mode 100644 index 0000000..6e4f702 --- /dev/null +++ b/internal/protoschema/bigquery/bigquery_test.go @@ -0,0 +1,41 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 bigquery + +import ( + "fmt" + "path/filepath" + "testing" + + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/stretchr/testify/require" +) + +func TestBigQueryGolden(t *testing.T) { + t.Parallel() + dirPath := filepath.FromSlash("../../testdata/bigquery") + for _, testDesc := range golden.GetTestDescriptors() { + filePath := filepath.Join(dirPath, fmt.Sprintf("%s.%s", testDesc.FullName(), FileExtension)) + schema, _, err := Generate(testDesc) + require.NoError(t, err) + data, err := schema.ToJSONFields() + require.NoError(t, err) + if len(data) == 0 || string(data) == "null" { + continue + } + err = golden.CheckGolden(filePath, string(data)) + require.NoError(t, err) + } +} diff --git a/internal/protoschema/bigquery/options.go b/internal/protoschema/bigquery/options.go new file mode 100644 index 0000000..3b7c96b --- /dev/null +++ b/internal/protoschema/bigquery/options.go @@ -0,0 +1,45 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 bigquery + +// GenerateOptions are the options for Generate. +type GenerateOptions interface { + applyGenerateOptions(generateOptions *generateOptions) +} + +// WithMaxDepth returns a GenerateOptions that sets the max depth. +func WithMaxDepth(maxDepth int) GenerateOptions { + return generateOptionsFunc(func(options *generateOptions) { + options.maxDepth = maxDepth + }) +} + +// WithMaxRecursionDepth returns a GenerateOptions that sets the max recursion depth. +func WithMaxRecursionDepth(maxRecursionDepth int) GenerateOptions { + return generateOptionsFunc(func(options *generateOptions) { + options.maxRecursionDepth = maxRecursionDepth + }) +} + +type generateOptions struct { + maxDepth int + maxRecursionDepth int +} + +type generateOptionsFunc func(*generateOptions) + +func (f generateOptionsFunc) applyGenerateOptions(generateOptions *generateOptions) { + f(generateOptions) +} diff --git a/internal/protoschema/golden/golden.go b/internal/protoschema/golden/golden.go new file mode 100644 index 0000000..9df4f30 --- /dev/null +++ b/internal/protoschema/golden/golden.go @@ -0,0 +1,74 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 golden + +import ( + "fmt" + "io" + "os" + + testv1 "github.com/bufbuild/protoschema-plugins/internal/gen/proto/buf/protoschema/test/v1" + "github.com/bufbuild/protoschema-plugins/internal/gen/proto/bufext/cel/expr/conformance/proto3" + "google.golang.org/protobuf/reflect/protoreflect" +) + +// GetTestDescriptors returns the test descriptors that were generated from the ./internal/proto +// directory. +func GetTestDescriptors() []protoreflect.MessageDescriptor { + return []protoreflect.MessageDescriptor{ + (&proto3.TestAllTypes{}).ProtoReflect().Descriptor(), + (&proto3.NestedTestAllTypes{}).ProtoReflect().Descriptor(), + (&testv1.NestedReference{}).ProtoReflect().Descriptor(), + (&testv1.CustomOptions{}).ProtoReflect().Descriptor(), + (&testv1.CustomBigQuery{}).ProtoReflect().Descriptor(), + (&testv1.BigQueryWellknownTypeTest{}).ProtoReflect().Descriptor(), + } +} + +// CheckGolden checks the golden file exists and matches the given data. +func CheckGolden(filePath string, data string) error { + if _, err := os.Stat(filePath); err != nil { + return err + } + + file, err := os.Open(filePath) + if err != nil { + return err + } + defer file.Close() + + actualBytes, err := io.ReadAll(file) + if err != nil { + return err + } + actualText := string(actualBytes) + if actualText != data { + return fmt.Errorf("file %s does not match expected contents", filePath) + } + return nil +} + +func GenerateGolden(filePath string, data string) error { + file, err := os.Create(filePath) + if err != nil { + return err + } + defer file.Close() + // Write the data to the file + if _, err := file.WriteString(data); err != nil { + return err + } + return nil +} diff --git a/internal/protoschema/jsonschema/jsonschema.go b/internal/protoschema/jsonschema/jsonschema.go new file mode 100644 index 0000000..5b87a61 --- /dev/null +++ b/internal/protoschema/jsonschema/jsonschema.go @@ -0,0 +1,249 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 jsonschema + +import ( + "math" + + "google.golang.org/protobuf/reflect/protoreflect" +) + +// An enumeration of the JSON Schema type names. +const ( + jsArray = "array" + jsBoolean = "boolean" + jsInteger = "integer" + jsNull = "null" + jsNumber = "number" + jsObject = "object" + jsString = "string" +) + +// Generate generates a JSON schema for the given message descriptor. +func Generate(input protoreflect.MessageDescriptor) map[protoreflect.FullName]map[string]interface{} { + generator := &jsonSchemaGenerator{ + result: make(map[protoreflect.FullName]map[string]interface{}), + } + generator.custom = generator.makeWktGenerators() + generator.generate(input) + return generator.result +} + +type jsonSchemaGenerator struct { + result map[protoreflect.FullName]map[string]interface{} + custom map[protoreflect.FullName]func(map[string]interface{}, protoreflect.MessageDescriptor) +} + +func (p *jsonSchemaGenerator) getID(desc protoreflect.Descriptor) string { + return string(desc.FullName()) + ".schema.json" +} + +func (p *jsonSchemaGenerator) generate(desc protoreflect.MessageDescriptor) { + if _, ok := p.result[desc.FullName()]; ok { + return // Already generated. + } + result := make(map[string]interface{}) + result["$schema"] = "https://json-schema.org/draft/2020-12/schema" + result["$id"] = p.getID(desc) + p.result[desc.FullName()] = result + if custom, ok := p.custom[desc.FullName()]; ok { // Custom generator. + custom(result, desc) + } else { // Default generator. + p.generateDefault(result, desc) + } +} + +func (p *jsonSchemaGenerator) generateDefault(result map[string]interface{}, desc protoreflect.MessageDescriptor) { + result["type"] = jsObject + p.setDescription(desc, result) + var properties = make(map[string]interface{}) + for i := 0; i < desc.Fields().Len(); i++ { + field := desc.Fields().Get(i) + name := string(field.Name()) + properties[name] = p.generateField(field) + } + result["properties"] = properties + result["additionalProperties"] = false +} + +func (p *jsonSchemaGenerator) setDescription(desc protoreflect.Descriptor, result map[string]interface{}) { + src := desc.ParentFile().SourceLocations().ByDescriptor(desc) + if src.LeadingComments != "" { + result["description"] = src.LeadingComments + } +} + +func (p *jsonSchemaGenerator) generateField(field protoreflect.FieldDescriptor) map[string]interface{} { + var result = make(map[string]interface{}) + p.setDescription(field, result) + p.generateValidation(field, result) + return result +} + +func (p *jsonSchemaGenerator) generateValidation(field protoreflect.FieldDescriptor, entry map[string]interface{}) { + if field.IsList() { + entry["type"] = jsArray + items := make(map[string]interface{}) + entry["items"] = items + entry = items + } + switch field.Kind() { + case protoreflect.BoolKind: + p.generateBoolValidation(field, entry) + case protoreflect.EnumKind: + p.generateEnumValidation(field, entry) + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + p.generateIntValidation(field, entry, 32) + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + p.generateIntValidation(field, entry, 64) + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + p.generateUintValidation(field, entry, 32) + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + p.generateUintValidation(field, entry, 64) + case protoreflect.FloatKind: + p.generateFloatValidation(field, entry, 32) + case protoreflect.DoubleKind: + p.generateFloatValidation(field, entry, 64) + case protoreflect.StringKind: + p.generateStringValidation(field, entry) + case protoreflect.BytesKind: + p.generateBytesValidation(field, entry) + case protoreflect.MessageKind, protoreflect.GroupKind: + if field.IsMap() { + entry["type"] = jsObject + propertyNames := make(map[string]interface{}) + p.generateValidation(field.MapKey(), propertyNames) + entry["propertyNames"] = propertyNames + properties := make(map[string]interface{}) + p.generateValidation(field.MapValue(), properties) + entry["additionalProperties"] = properties + } else { + p.generateMessageValidation(field, entry) + } + } +} + +func (p *jsonSchemaGenerator) generateBoolValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}) { + entry["type"] = jsBoolean +} + +func (p *jsonSchemaGenerator) generateEnumValidation(field protoreflect.FieldDescriptor, entry map[string]interface{}) { + var enum = make([]interface{}, 0) + for i := 0; i < field.Enum().Values().Len(); i++ { + enum = append(enum, field.Enum().Values().Get(i).Name()) + } + anyOf := []map[string]interface{}{ + {"type": jsString, "enum": enum}, + {"type": jsInteger, "minimum": math.MinInt32, "maximum": math.MaxInt32}, + } + entry["anyOf"] = anyOf +} + +func (p *jsonSchemaGenerator) generateIntValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}, bitSize int) { + entry["type"] = jsInteger + // Use floats to handle integer overflow. + entry["minimum"] = -math.Pow(2, float64(bitSize-1)) + entry["exclusiveMaximum"] = math.Pow(2, float64(bitSize-1)) +} + +func (p *jsonSchemaGenerator) generateUintValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}, bitSize int) { + entry["type"] = jsInteger + entry["minimum"] = 0 + entry["exclusiveMaximum"] = math.Pow(2, float64(bitSize)) +} + +func (p *jsonSchemaGenerator) generateFloatValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}, _ int) { + entry["anyOf"] = []map[string]interface{}{ + {"type": jsNumber}, + {"type": jsString}, + {"type": jsString, "enum": []interface{}{"NaN", "Infinity", "-Infinity"}}, + } +} + +func (p *jsonSchemaGenerator) generateStringValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}) { + entry["type"] = jsString +} + +func (p *jsonSchemaGenerator) generateBytesValidation(_ protoreflect.FieldDescriptor, entry map[string]interface{}) { + entry["type"] = jsString + // Set a regex to match base64 encoded strings. + entry["pattern"] = "^[A-Za-z0-9+/]*={0,2}$" +} + +func (p *jsonSchemaGenerator) generateMessageValidation(field protoreflect.FieldDescriptor, entry map[string]interface{}) { + // Create a reference to the message type. + entry["$ref"] = p.getID(field.Message()) + p.generate(field.Message()) +} + +func (p *jsonSchemaGenerator) generateWrapperValidation(result map[string]interface{}, desc protoreflect.MessageDescriptor) { + anyOf := []map[string]interface{}{ + make(map[string]interface{}), + p.generateField(desc.Fields().ByName("value")), + } + p.generateDefault(anyOf[0], desc) + result["anyOf"] = anyOf +} + +func (p *jsonSchemaGenerator) makeWktGenerators() map[protoreflect.FullName]func(map[string]interface{}, protoreflect.MessageDescriptor) { + var result = make(map[protoreflect.FullName]func(map[string]interface{}, protoreflect.MessageDescriptor)) + result["google.protobuf.Any"] = func(result map[string]interface{}, _ protoreflect.MessageDescriptor) { + result["type"] = jsObject + result["properties"] = map[string]interface{}{ + "@type": map[string]interface{}{ + "type": "string", + }, + } + } + + result["google.protobuf.Duration"] = func(result map[string]interface{}, desc protoreflect.MessageDescriptor) { + anyOf := []map[string]interface{}{ + make(map[string]interface{}), + {"type": jsString, "format": "duration"}, + } + p.generateDefault(anyOf[0], desc) + result["anyOf"] = anyOf + } + result["google.protobuf.Timestamp"] = func(result map[string]interface{}, desc protoreflect.MessageDescriptor) { + anyOf := []map[string]interface{}{ + make(map[string]interface{}), + {"type": jsString, "format": "date-time"}, + } + p.generateDefault(anyOf[0], desc) + result["anyOf"] = anyOf + } + + result["google.protobuf.Value"] = func(_ map[string]interface{}, _ protoreflect.MessageDescriptor) {} + result["google.protobuf.ListValue"] = func(result map[string]interface{}, _ protoreflect.MessageDescriptor) { + result["type"] = jsArray + } + result["google.protobuf.NullValue"] = func(result map[string]interface{}, _ protoreflect.MessageDescriptor) { + result["type"] = jsNull + } + result["google.protobuf.Struct"] = func(result map[string]interface{}, _ protoreflect.MessageDescriptor) { + result["type"] = jsObject + } + + result["google.protobuf.BoolValue"] = p.generateWrapperValidation + result["google.protobuf.BytesValue"] = p.generateWrapperValidation + result["google.protobuf.DoubleValue"] = p.generateWrapperValidation + result["google.protobuf.FloatValue"] = p.generateWrapperValidation + result["google.protobuf.Int32Value"] = p.generateWrapperValidation + result["google.protobuf.Int64Value"] = p.generateWrapperValidation + result["google.protobuf.StringValue"] = p.generateWrapperValidation + result["google.protobuf.UInt32Value"] = p.generateWrapperValidation + result["google.protobuf.UInt64Value"] = p.generateWrapperValidation + return result +} diff --git a/internal/protoschema/jsonschema/jsonschema_test.go b/internal/protoschema/jsonschema/jsonschema_test.go new file mode 100644 index 0000000..32dab77 --- /dev/null +++ b/internal/protoschema/jsonschema/jsonschema_test.go @@ -0,0 +1,44 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 jsonschema + +import ( + "encoding/json" + "path/filepath" + "testing" + + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/stretchr/testify/require" +) + +func TestJSONSchemaGolden(t *testing.T) { + t.Parallel() + dirPath := filepath.FromSlash("../../testdata/jsonschema") + for _, testDesc := range golden.GetTestDescriptors() { + for _, entry := range Generate(testDesc) { + // Serialize the JSON + data, err := json.MarshalIndent(entry, "", " ") + require.NoError(t, err) + + identifier, ok := entry["$id"].(string) + require.True(t, ok) + require.NotEmpty(t, identifier) + + filePath := filepath.Join(dirPath, identifier) + err = golden.CheckGolden(filePath, string(data)) + require.NoError(t, err) + } + } +} diff --git a/internal/protoschema/normalize/normalizer.go b/internal/protoschema/normalize/normalizer.go new file mode 100644 index 0000000..cbf43b4 --- /dev/null +++ b/internal/protoschema/normalize/normalizer.go @@ -0,0 +1,298 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 normalize + +import ( + "errors" + "fmt" + "strings" + + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/descriptorpb" +) + +// Normalizer is a normalizer for descriptor protos. +type Normalizer struct { + skipTypes []string + rootDesc protoreflect.MessageDescriptor + rootPb *descriptorpb.DescriptorProto + nameToMangled map[string]string + mangledToName map[string]string + inlineMsgMap map[string]*descriptorpb.DescriptorProto + inlineMsgs []*descriptorpb.DescriptorProto +} + +// NewNormalizer returns a new Normalizer. +func NewNormalizer(options ...NormalizerOption) *Normalizer { + normalizer := &Normalizer{} + for _, option := range options { + option(normalizer) + } + return normalizer +} + +// Normalize returns the normalized descriptor proto for the given message descriptor. +func (n *Normalizer) Normalize(rootDesc protoreflect.MessageDescriptor) (*descriptorpb.DescriptorProto, error) { + n.rootDesc = rootDesc + n.nameToMangled = map[string]string{ + string(n.rootDesc.FullName()): string(n.rootDesc.Name()), + } + for _, name := range n.skipTypes { + n.nameToMangled[name] = name + } + n.mangledToName = map[string]string{} + n.inlineMsgMap = map[string]*descriptorpb.DescriptorProto{} + + if n.rootDesc.ParentFile() != n.rootDesc.Parent() { + return nil, errors.New("message must be top-level") + } + n.rootPb = protodesc.ToDescriptorProto(n.rootDesc) + if err := n.inlineRefs(n.rootPb, n.rootDesc); err != nil { + return nil, err + } + n.inlineMsgMap[string(n.rootDesc.FullName())] = n.rootPb + n.rootPb.NestedType = append(n.rootPb.NestedType, n.inlineMsgs...) + return n.rootPb, nil +} + +// FindDescriptorProto finds the descriptor proto for the given message descriptor. +func (n *Normalizer) FindDescriptorProto(msgDesc protoreflect.Descriptor) (*descriptorpb.DescriptorProto, error) { + rootMsg, path := findRootAndPath(msgDesc) + msg, ok := n.inlineMsgMap[string(rootMsg.FullName())] + if !ok { + return nil, fmt.Errorf("could not find message %s", rootMsg.FullName()) + } + for _, pathPart := range path { + msg = findNestedMessage(msg, pathPart) + } + return msg, nil +} + +func (n *Normalizer) inlineMessage(msgDesc protoreflect.MessageDescriptor) error { + msg := protodesc.ToDescriptorProto(msgDesc) + msg.Name = proto.String(n.addMangledName(string(msgDesc.FullName()), "")) + if err := n.inlineRefs(msg, msgDesc); err != nil { + return err + } + n.inlineMsgMap[string(msgDesc.FullName())] = msg + n.inlineMsgs = append(n.inlineMsgs, msg) + return nil +} + +func (n *Normalizer) inlineEnum(enumDesc protoreflect.EnumDescriptor) error { + enum := protodesc.ToEnumDescriptorProto(enumDesc) + // Create a message to hold the enum. + msg := &descriptorpb.DescriptorProto{ + Name: proto.String(n.addMangledName(string(enumDesc.FullName()), string(enumDesc.Name()))), + EnumType: []*descriptorpb.EnumDescriptorProto{ + enum, + }, + } + n.inlineMsgMap[string(enumDesc.FullName())] = msg + n.inlineMsgs = append(n.inlineMsgs, msg) + return nil +} + +func (n *Normalizer) inlineRefs(msgDescPb *descriptorpb.DescriptorProto, msgDesc protoreflect.MessageDescriptor) error { + // Remap types in nested any nested messages. + for _, nestedMsg := range msgDescPb.GetNestedType() { + nestedDesc := msgDesc.Messages().ByName(protoreflect.Name(nestedMsg.GetName())) + if err := n.inlineRefs(nestedMsg, nestedDesc); err != nil { + return err + } + } + + // Strip any custom options. + stripExtensionsAndUnknown(msgDescPb.GetOptions()) + for _, oneOf := range msgDescPb.GetOneofDecl() { + stripExtensionsAndUnknown(oneOf.GetOptions()) + } + + // Remap types in fields. + syntheticOneofs := map[int32]struct{}{} + for _, field := range msgDescPb.GetField() { + stripExtensionsAndUnknown(field.GetOptions()) + if field.GetProto3Optional() { + // Convert to proto2 optional. + field.Label = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL.Enum() + field.Proto3Optional = nil + syntheticOneofs[field.GetOneofIndex()] = struct{}{} + field.OneofIndex = nil + } + if err := n.inlineFieldRefs(msgDescPb, msgDesc, field); err != nil { + return err + } + } + + if len(syntheticOneofs) > 0 { + n.removeOneofs(msgDescPb, syntheticOneofs) + } + + return nil +} + +func (n *Normalizer) inlineFieldRefs( + msgDescPb *descriptorpb.DescriptorProto, msgDesc protoreflect.MessageDescriptor, field *descriptorpb.FieldDescriptorProto) error { + switch field.GetType() { + case descriptorpb.FieldDescriptorProto_TYPE_ENUM: + fieldDesc := msgDesc.Fields().ByName(protoreflect.Name(field.GetName())) + if fieldDesc.Enum().Syntax() == protoreflect.Proto3 { + // Convert to int32. + field.Type = descriptorpb.FieldDescriptorProto_TYPE_INT32.Enum() + field.TypeName = nil + return nil + } + refDesc, path := findRootAndPath(fieldDesc.Enum()) + if refDesc == nil { + if err := n.updateEnumType(fieldDesc.Enum(), field); err != nil { + return err + } + } else { + if err := n.updateMessageType(refDesc, field, path); err != nil { + return err + } + } + case descriptorpb.FieldDescriptorProto_TYPE_MESSAGE: + fieldDesc := msgDesc.Fields().ByName(protoreflect.Name(field.GetName())) + if fieldDesc.IsMap() { + field.TypeName = proto.String(msgDescPb.GetName() + "." + string(fieldDesc.Message().Name())) + } else { + refDesc, path := findRootAndPath(fieldDesc.Message()) + if err := n.updateMessageType(refDesc, field, path); err != nil { + return err + } + } + } + return nil +} + +func (n *Normalizer) removeOneofs(msgDescPb *descriptorpb.DescriptorProto, emptyOneofs map[int32]struct{}) { + oneofRemap := map[int32]int32{} + newOneofDecl := []*descriptorpb.OneofDescriptorProto{} + for idx, oneOf := range msgDescPb.GetOneofDecl() { + idx := int32(idx) + if _, ok := emptyOneofs[idx]; ok { + continue + } + stripExtensionsAndUnknown(oneOf.GetOptions()) + oneofRemap[idx] = int32(len(newOneofDecl)) + newOneofDecl = append(newOneofDecl, oneOf) + } + for _, field := range msgDescPb.GetField() { + if field.OneofIndex != nil { + oneofIdx := oneofRemap[field.GetOneofIndex()] + field.OneofIndex = &oneofIdx + } + } + msgDescPb.OneofDecl = newOneofDecl +} + +func (n *Normalizer) updateMessageType(refDesc protoreflect.MessageDescriptor, field *descriptorpb.FieldDescriptorProto, path []string) error { + ref := string(refDesc.FullName()) + newRef, ok := n.nameToMangled[ref] + if !ok { + if err := n.inlineMessage(refDesc); err != nil { + return err + } + newRef, ok = n.nameToMangled[ref] + if !ok { + return fmt.Errorf("could not find mangled name for %s", ref) + } + } + newType := newRef + for _, pathPart := range path { + newType += "." + pathPart + } + field.TypeName = proto.String(newType) + return nil +} + +func (n *Normalizer) updateEnumType(refDesc protoreflect.EnumDescriptor, field *descriptorpb.FieldDescriptorProto) error { + ref := string(refDesc.FullName()) + newRef, ok := n.nameToMangled[ref] + if !ok { + if err := n.inlineEnum(refDesc); err != nil { + return err + } + newRef, ok = n.nameToMangled[ref] + if !ok { + return fmt.Errorf("could not find mangled name for %s", ref) + } + } + field.TypeName = proto.String(newRef) + return nil +} + +func (n *Normalizer) mangleName(name string) string { + return "Inline_" + strings.ReplaceAll(name, ".", "_") +} + +func (n *Normalizer) addMangledName(name string, subName string) string { + mangled := n.mangleName(name) + base := mangled + for i := 0; ; i++ { + if _, ok := n.mangledToName[mangled]; !ok { + break + } + mangled = fmt.Sprintf("%s_%d", base, i) + } + n.mangledToName[mangled] = name + if subName != "" { + n.nameToMangled[name] = fmt.Sprintf("%s.%s.%s", n.rootDesc.Name(), mangled, subName) + } else { + n.nameToMangled[name] = fmt.Sprintf("%s.%s", n.rootDesc.Name(), mangled) + } + return mangled +} + +func findNestedMessage(msg *descriptorpb.DescriptorProto, name string) *descriptorpb.DescriptorProto { + for _, nestedMsg := range msg.GetNestedType() { + if nestedMsg.GetName() == name { + return nestedMsg + } + } + return nil +} + +func findRootAndPath(target protoreflect.Descriptor) (protoreflect.MessageDescriptor, []string) { + var path []string + for { + parent := target.Parent() + parentMsg, ok := parent.(protoreflect.MessageDescriptor) + if !ok { + break + } + path = append(path, string(target.Name())) + target = parentMsg + } + msg, _ := target.(protoreflect.MessageDescriptor) + return msg, path +} + +func stripExtensionsAndUnknown(options protoreflect.ProtoMessage) { + msg := options.ProtoReflect() + if !msg.IsValid() { + return + } + msg.Range(func(field protoreflect.FieldDescriptor, _ protoreflect.Value) bool { + if field.IsExtension() { + msg.Clear(field) + } + return true + }) + msg.SetUnknown(nil) +} diff --git a/internal/protoschema/normalize/options.go b/internal/protoschema/normalize/options.go new file mode 100644 index 0000000..429bcfd --- /dev/null +++ b/internal/protoschema/normalize/options.go @@ -0,0 +1,25 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 normalize + +// NormalizerOption is an option for a new Normalizer. +type NormalizerOption func(*Normalizer) + +// WithSkipTypes returns a new NormalizerOption that skips the given types. +func WithSkipTypes(skipTypes ...string) NormalizerOption { + return func(n *Normalizer) { + n.skipTypes = skipTypes + } +} diff --git a/internal/protoschema/plugin/pluginbigquery/pluginbigquery.go b/internal/protoschema/plugin/pluginbigquery/pluginbigquery.go new file mode 100644 index 0000000..d1c9e0c --- /dev/null +++ b/internal/protoschema/plugin/pluginbigquery/pluginbigquery.go @@ -0,0 +1,58 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginbigquery + +import ( + "context" + "fmt" + + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/bigquery" +) + +// Handle implements protoplugin.Handler and is the main entry point for the plugin. +func Handle( + _ context.Context, + responseWriter *protoplugin.ResponseWriter, + request *protoplugin.Request, +) error { + fileDescriptors, err := request.FileDescriptorsToGenerate() + if err != nil { + return err + } + for _, fileDescriptor := range fileDescriptors { + for i := range fileDescriptor.Messages().Len() { + messageDescriptor := fileDescriptor.Messages().Get(i) + schema, _, err := bigquery.Generate(messageDescriptor) + if err != nil { + return err + } + data, err := schema.ToJSONFields() + if err != nil { + return err + } + if len(data) == 0 || string(data) == "null" { + continue + } + responseWriter.AddFile( + fmt.Sprintf("%s.%s", messageDescriptor.FullName(), bigquery.FileExtension), + string(data), + ) + } + } + + responseWriter.SetFeatureProto3Optional() + return nil +} diff --git a/internal/protoschema/plugin/pluginbigquery/pluginbigquery_test.go b/internal/protoschema/plugin/pluginbigquery/pluginbigquery_test.go new file mode 100644 index 0000000..3621051 --- /dev/null +++ b/internal/protoschema/plugin/pluginbigquery/pluginbigquery_test.go @@ -0,0 +1,100 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginbigquery + +import ( + "bytes" + "context" + "os" + "path" + "path/filepath" + "slices" + "strings" + "testing" + + "github.com/bufbuild/buf/private/bufpkg/bufimage" + imagev1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/image/v1" + "github.com/bufbuild/buf/private/pkg/protoencoding" + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/bigquery" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/types/pluginpb" +) + +func TestBigQueryHandler(t *testing.T) { + t.Parallel() + + goldenPath := filepath.FromSlash("../../../testdata/bigquery") + inputImage := filepath.FromSlash("../../../testdata/codegenrequest/input.json") + + by, err := os.ReadFile(inputImage) + require.NoError(t, err) + protoImage := new(imagev1.Image) + err = protojson.Unmarshal(by, protoImage) + require.NoError(t, err) + image, err := bufimage.NewImageForProto(protoImage) + require.NoError(t, err) + codeGeneratorRequest := bufimage.ImageToCodeGeneratorRequest(image, "", nil, false, false) + + request, err := protoencoding.NewWireMarshaler().Marshal(codeGeneratorRequest) + require.NoError(t, err) + stdin := bytes.NewReader(request) + stdout := bytes.NewBuffer(nil) + stderr := bytes.NewBuffer(nil) + err = protoplugin.Run( + context.Background(), + nil, // no args + stdin, + stdout, + stderr, + protoplugin.HandlerFunc(Handle), + ) + require.NoError(t, err) + require.Empty(t, stderr.String()) + + response := new(pluginpb.CodeGeneratorResponse) + err = protoencoding.NewWireUnmarshaler(nil).Unmarshal(stdout.Bytes(), response) + require.NoError(t, err) + + wantFiles := make([]string, 0, len(response.File)) + for _, file := range response.File { + wantFiles = append(wantFiles, file.GetName()) + } + slices.Sort(wantFiles) + require.Equal(t, wantFiles, gatherGoldenFiles(t, goldenPath)) + + for _, file := range response.File { + filename := path.Join(goldenPath, file.GetName()) + want, err := os.ReadFile(filename) + require.NoError(t, err) + require.Equal(t, string(want), file.GetContent()) + } +} + +func gatherGoldenFiles(t *testing.T, dir string) []string { + t.Helper() + + entries, err := os.ReadDir(dir) + require.NoError(t, err) + var files []string + for _, entry := range entries { + if strings.HasSuffix(entry.Name(), bigquery.FileExtension) { + files = append(files, entry.Name()) + } + } + slices.Sort(files) + return files +} diff --git a/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema.go b/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema.go new file mode 100644 index 0000000..6a86f06 --- /dev/null +++ b/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema.go @@ -0,0 +1,67 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginjsonschema + +import ( + "context" + "encoding/json" + "fmt" + + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/jsonschema" +) + +// Handle implements protoplugin.Handler and is the main entry point for the plugin. +func Handle( + _ context.Context, + responseWriter *protoplugin.ResponseWriter, + request *protoplugin.Request, +) error { + fileDescriptors, err := request.FileDescriptorsToGenerate() + if err != nil { + return err + } + seenIdentifiers := make(map[string]bool) + for _, fileDescriptor := range fileDescriptors { + for i := range fileDescriptor.Messages().Len() { + messageDescriptor := fileDescriptor.Messages().Get(i) + + for _, entry := range jsonschema.Generate(messageDescriptor) { + data, err := json.MarshalIndent(entry, "", " ") + if err != nil { + return err + } + identifier, ok := entry["$id"].(string) + if !ok { + return fmt.Errorf("expected unique id for message %q to be a string, got type %T", messageDescriptor.FullName(), entry["$id"]) + } + if identifier == "" { + return fmt.Errorf("expected unique id for message %q to be a non-empty string", messageDescriptor.FullName()) + } + if seenIdentifiers[identifier] { + continue + } + responseWriter.AddFile( + identifier, + string(data), + ) + seenIdentifiers[identifier] = true + } + } + } + + responseWriter.SetFeatureProto3Optional() + return nil +} diff --git a/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema_test.go b/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema_test.go new file mode 100644 index 0000000..e22fd7e --- /dev/null +++ b/internal/protoschema/plugin/pluginjsonschema/pluginjsonschema_test.go @@ -0,0 +1,99 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginjsonschema + +import ( + "bytes" + "context" + "os" + "path" + "path/filepath" + "slices" + "testing" + + "github.com/bufbuild/buf/private/bufpkg/bufimage" + imagev1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/image/v1" + "github.com/bufbuild/buf/private/pkg/protoencoding" + "github.com/bufbuild/protoplugin" + _ "github.com/bufbuild/protoschema-plugins/internal/gen/proto/buf/protoschema/test/v1" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/types/pluginpb" +) + +func TestJSONSchemaHandler(t *testing.T) { + t.Parallel() + + goldenPath := filepath.FromSlash("../../../testdata/jsonschema") + inputImage := filepath.FromSlash("../../../testdata/codegenrequest/input.json") + + by, err := os.ReadFile(inputImage) + require.NoError(t, err) + protoImage := new(imagev1.Image) + err = protojson.Unmarshal(by, protoImage) + require.NoError(t, err) + image, err := bufimage.NewImageForProto(protoImage) + require.NoError(t, err) + codeGeneratorRequest := bufimage.ImageToCodeGeneratorRequest(image, "", nil, false, false) + + request, err := protoencoding.NewWireMarshaler().Marshal(codeGeneratorRequest) + require.NoError(t, err) + stdin := bytes.NewReader(request) + stdout := bytes.NewBuffer(nil) + stderr := bytes.NewBuffer(nil) + err = protoplugin.Run( + context.Background(), + nil, // no args + stdin, + stdout, + stderr, + protoplugin.HandlerFunc(Handle), + ) + require.NoError(t, err) + require.Empty(t, stderr.String()) + + response := new(pluginpb.CodeGeneratorResponse) + err = protoencoding.NewWireUnmarshaler(nil).Unmarshal(stdout.Bytes(), response) + require.NoError(t, err) + + wantFiles := make([]string, 0, len(response.File)) + for _, file := range response.File { + wantFiles = append(wantFiles, file.GetName()) + } + slices.Sort(wantFiles) + require.Equal(t, wantFiles, gatherGoldenFiles(t, goldenPath)) + + for _, file := range response.File { + filename := path.Join(goldenPath, file.GetName()) + want, err := os.ReadFile(filename) + require.NoError(t, err) + require.Equal(t, string(want), file.GetContent()) + } +} + +func gatherGoldenFiles(t *testing.T, dir string) []string { + t.Helper() + + entries, err := os.ReadDir(dir) + require.NoError(t, err) + var files []string + for _, entry := range entries { + if path.Ext(entry.Name()) == ".json" { + files = append(files, entry.Name()) + } + } + slices.Sort(files) + return files +} diff --git a/internal/protoschema/plugin/pluginpubsub/pluginpubsub.go b/internal/protoschema/plugin/pluginpubsub/pluginpubsub.go new file mode 100644 index 0000000..1fdc8c1 --- /dev/null +++ b/internal/protoschema/plugin/pluginpubsub/pluginpubsub.go @@ -0,0 +1,51 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginpubsub + +import ( + "context" + "fmt" + + "github.com/bufbuild/protoplugin" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/pubsub" +) + +// Handle implements protoplugin.Handler and is the main entry point for the plugin. +func Handle( + _ context.Context, + responseWriter *protoplugin.ResponseWriter, + request *protoplugin.Request, +) error { + fileDescriptors, err := request.FileDescriptorsToGenerate() + if err != nil { + return err + } + for _, fileDescriptor := range fileDescriptors { + for i := range fileDescriptor.Messages().Len() { + messageDescriptor := fileDescriptor.Messages().Get(i) + data, err := pubsub.Generate(messageDescriptor) + if err != nil { + return err + } + responseWriter.AddFile( + fmt.Sprintf("%s.%s", messageDescriptor.FullName(), pubsub.FileExtension), + data, + ) + } + } + + responseWriter.SetFeatureProto3Optional() + return nil +} diff --git a/internal/protoschema/plugin/pluginpubsub/pluginpubsub_test.go b/internal/protoschema/plugin/pluginpubsub/pluginpubsub_test.go new file mode 100644 index 0000000..8c48825 --- /dev/null +++ b/internal/protoschema/plugin/pluginpubsub/pluginpubsub_test.go @@ -0,0 +1,101 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pluginpubsub + +import ( + "bytes" + "context" + "os" + "path" + "path/filepath" + "slices" + "strings" + "testing" + + "github.com/bufbuild/buf/private/bufpkg/bufimage" + imagev1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/image/v1" + "github.com/bufbuild/buf/private/pkg/protoencoding" + "github.com/bufbuild/protoplugin" + _ "github.com/bufbuild/protoschema-plugins/internal/gen/proto/buf/protoschema/test/v1" + "github.com/bufbuild/protoschema-plugins/internal/protoschema/pubsub" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/types/pluginpb" +) + +func TestPubsubHandler(t *testing.T) { + t.Parallel() + + goldenPath := filepath.FromSlash("../../../testdata/pubsub") + inputImage := filepath.FromSlash("../../../testdata/codegenrequest/input.json") + + by, err := os.ReadFile(inputImage) + require.NoError(t, err) + protoImage := new(imagev1.Image) + err = protojson.Unmarshal(by, protoImage) + require.NoError(t, err) + image, err := bufimage.NewImageForProto(protoImage) + require.NoError(t, err) + codeGeneratorRequest := bufimage.ImageToCodeGeneratorRequest(image, "", nil, false, false) + + request, err := protoencoding.NewWireMarshaler().Marshal(codeGeneratorRequest) + require.NoError(t, err) + stdin := bytes.NewReader(request) + stdout := bytes.NewBuffer(nil) + stderr := bytes.NewBuffer(nil) + err = protoplugin.Run( + context.Background(), + nil, // no args + stdin, + stdout, + stderr, + protoplugin.HandlerFunc(Handle), + ) + require.NoError(t, err) + require.Empty(t, stderr.String()) + + response := new(pluginpb.CodeGeneratorResponse) + err = protoencoding.NewWireUnmarshaler(nil).Unmarshal(stdout.Bytes(), response) + require.NoError(t, err) + + wantFiles := make([]string, 0, len(response.File)) + for _, file := range response.File { + wantFiles = append(wantFiles, file.GetName()) + } + slices.Sort(wantFiles) + require.Equal(t, wantFiles, gatherGoldenFiles(t, goldenPath)) + + for _, file := range response.File { + filename := path.Join(goldenPath, file.GetName()) + want, err := os.ReadFile(filename) + require.NoError(t, err) + require.Equal(t, string(want), file.GetContent()) + } +} + +func gatherGoldenFiles(t *testing.T, dir string) []string { + t.Helper() + + entries, err := os.ReadDir(dir) + require.NoError(t, err) + var files []string + for _, entry := range entries { + if strings.HasSuffix(entry.Name(), pubsub.FileExtension) { + files = append(files, entry.Name()) + } + } + slices.Sort(files) + return files +} diff --git a/internal/protoschema/protoschema.go b/internal/protoschema/protoschema.go new file mode 100644 index 0000000..c8660e6 --- /dev/null +++ b/internal/protoschema/protoschema.go @@ -0,0 +1,20 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 protoschema + +const ( + // Version is the current version of protoschema which is shared by all plugins. + Version = "0.0.1-dev" +) diff --git a/internal/protoschema/pubsub/pubsub.go b/internal/protoschema/pubsub/pubsub.go new file mode 100644 index 0000000..217fd08 --- /dev/null +++ b/internal/protoschema/pubsub/pubsub.go @@ -0,0 +1,54 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pubsub + +import ( + "github.com/bufbuild/protoschema-plugins/internal/protoschema/normalize" + "github.com/jhump/protoreflect/desc" + "github.com/jhump/protoreflect/desc/protoprint" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/types/descriptorpb" +) + +const ( + // FileExtension is the file extension for the PubSub schema files. + FileExtension = "pubsub.proto" +) + +// Generate generates a PubSub schema in the form of a single self-contained messaged normalized to +// proto2 for the given message descriptor. +func Generate(input protoreflect.MessageDescriptor) (string, error) { + normalizer := normalize.NewNormalizer() + rootMsg, err := normalizer.Normalize(input) + if err != nil { + return "", err + } + file := &descriptorpb.FileDescriptorProto{ + Name: proto.String(FileExtension), + Syntax: proto.String("proto2"), + MessageType: []*descriptorpb.DescriptorProto{ + rootMsg, + }, + } + fileDesc, err := desc.CreateFileDescriptor(file) + if err != nil { + return "", err + } + printer := &protoprint.Printer{ + Compact: true, + } + return printer.PrintProtoToString(fileDesc) +} diff --git a/internal/protoschema/pubsub/pubsub_test.go b/internal/protoschema/pubsub/pubsub_test.go new file mode 100644 index 0000000..306d52b --- /dev/null +++ b/internal/protoschema/pubsub/pubsub_test.go @@ -0,0 +1,36 @@ +// Copyright 2024 Buf Technologies, Inc. +// +// 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 pubsub + +import ( + "fmt" + "path/filepath" + "testing" + + "github.com/bufbuild/protoschema-plugins/internal/protoschema/golden" + "github.com/stretchr/testify/require" +) + +func TestPubSubGolden(t *testing.T) { + t.Parallel() + dirPath := filepath.FromSlash("../../testdata/pubsub") + for _, testDesc := range golden.GetTestDescriptors() { + filePath := filepath.Join(dirPath, string(testDesc.FullName())) + data, err := Generate(testDesc) + require.NoError(t, err) + err = golden.CheckGolden(fmt.Sprintf("%s.%s", filePath, FileExtension), data) + require.NoError(t, err) + } +} diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.TableSchema.json b/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.TableSchema.json new file mode 100644 index 0000000..c498f50 --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.TableSchema.json @@ -0,0 +1,6 @@ +[ + { + "name": "json_value", + "type": "JSON" + } +] \ No newline at end of file diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.bigquery.proto b/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.bigquery.proto new file mode 100644 index 0000000..d060a9a --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.BigQueryWellknownTypeTest.bigquery.proto @@ -0,0 +1,5 @@ +syntax = "proto2"; +import "google/protobuf/struct.proto"; +message BigQueryWellknownTypeTest { + optional google.protobuf.Value json_value = 1; +} diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.TableSchema.json b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.TableSchema.json new file mode 100644 index 0000000..96f7e0c --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.TableSchema.json @@ -0,0 +1,10 @@ +[ + { + "name": "create_time", + "type": "TIMESTAMP" + }, + { + "name": "stringField", + "type": "STRING" + } +] \ No newline at end of file diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.bigquery.proto b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.bigquery.proto new file mode 100644 index 0000000..e16da37 --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomBigQuery.bigquery.proto @@ -0,0 +1,299 @@ +syntax = "proto2"; +import "google/protobuf/struct.proto"; +message CustomBigQuery { + optional int32 create_time = 1; + optional string stringField = 2; + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes child = 1; + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional google.protobuf.Struct single_struct = 103; + optional google.protobuf.Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional google.protobuf.ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated google.protobuf.Struct repeated_struct = 123; + repeated google.protobuf.Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated google.protobuf.ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + } + message Inline_buf_protoschema_test_v1_NestedReference { + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes.NestedMessage nested_message = 1; + } +} diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.TableSchema.json b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.TableSchema.json new file mode 100644 index 0000000..3dac45c --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.TableSchema.json @@ -0,0 +1,11 @@ +[ + { + "mode": "REPEATED", + "name": "int32_field", + "type": "INTEGER" + }, + { + "name": "string_field", + "type": "STRING" + } +] \ No newline at end of file diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.bigquery.proto b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.bigquery.proto new file mode 100644 index 0000000..419ecb4 --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.CustomOptions.bigquery.proto @@ -0,0 +1,9 @@ +syntax = "proto2"; +import "google/protobuf/struct.proto"; +message CustomOptions { + option no_standard_descriptor_accessor = true; + repeated int32 int32_field = 1 [packed = true]; + oneof kind { + string string_field = 2; + } +} diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.TableSchema.json b/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.TableSchema.json new file mode 100644 index 0000000..502c240 --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.TableSchema.json @@ -0,0 +1,12 @@ +[ + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "nested_message", + "type": "RECORD" + } +] \ No newline at end of file diff --git a/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.bigquery.proto b/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.bigquery.proto new file mode 100644 index 0000000..c01dadb --- /dev/null +++ b/internal/testdata/bigquery/buf.protoschema.test.v1.NestedReference.bigquery.proto @@ -0,0 +1,295 @@ +syntax = "proto2"; +import "google/protobuf/struct.proto"; +message NestedReference { + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes.NestedMessage nested_message = 1; + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes child = 1; + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional google.protobuf.Struct single_struct = 103; + optional google.protobuf.Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional google.protobuf.ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated google.protobuf.Struct repeated_struct = 123; + repeated google.protobuf.Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated google.protobuf.ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + } +} diff --git a/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.TableSchema.json b/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.TableSchema.json new file mode 100644 index 0000000..f57716a --- /dev/null +++ b/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.TableSchema.json @@ -0,0 +1,2955 @@ +[ + { + "name": "single_int32", + "type": "INTEGER" + }, + { + "name": "single_int64", + "type": "INTEGER" + }, + { + "name": "single_uint32", + "type": "INTEGER" + }, + { + "name": "single_uint64", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "single_sint32", + "type": "INTEGER" + }, + { + "name": "single_sint64", + "type": "INTEGER" + }, + { + "name": "single_fixed32", + "type": "INTEGER" + }, + { + "name": "single_fixed64", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "single_sfixed32", + "type": "INTEGER" + }, + { + "name": "single_sfixed64", + "type": "INTEGER" + }, + { + "name": "single_float", + "type": "FLOAT" + }, + { + "name": "single_double", + "type": "FLOAT" + }, + { + "name": "single_bool", + "type": "BOOLEAN" + }, + { + "name": "single_string", + "type": "STRING" + }, + { + "name": "single_bytes", + "type": "BYTES" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "single_any", + "type": "RECORD" + }, + { + "name": "single_duration", + "type": "INTERVAL" + }, + { + "name": "single_timestamp", + "type": "TIMESTAMP" + }, + { + "name": "single_struct", + "type": "JSON" + }, + { + "name": "single_value", + "type": "JSON" + }, + { + "name": "single_int64_wrapper", + "type": "INTEGER" + }, + { + "name": "single_int32_wrapper", + "type": "INTEGER" + }, + { + "name": "single_double_wrapper", + "type": "FLOAT" + }, + { + "name": "single_float_wrapper", + "type": "FLOAT" + }, + { + "name": "single_uint64_wrapper", + "type": "BIGNUMERIC" + }, + { + "name": "single_uint32_wrapper", + "type": "INTEGER" + }, + { + "name": "single_string_wrapper", + "type": "STRING" + }, + { + "name": "single_bool_wrapper", + "type": "BOOLEAN" + }, + { + "name": "single_bytes_wrapper", + "type": "BYTES" + }, + { + "name": "list_value", + "type": "JSON" + }, + { + "name": "null_value", + "type": "INTEGER" + }, + { + "name": "optional_null_value", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "single_nested_message", + "type": "RECORD" + }, + { + "name": "single_nested_enum", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "standalone_message", + "type": "RECORD" + }, + { + "name": "standalone_enum", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_int32", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_int64", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_uint32", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_uint64", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "mode": "REPEATED", + "name": "repeated_sint32", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_sint64", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_fixed32", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_fixed64", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "mode": "REPEATED", + "name": "repeated_sfixed32", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_sfixed64", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_float", + "type": "FLOAT" + }, + { + "mode": "REPEATED", + "name": "repeated_double", + "type": "FLOAT" + }, + { + "mode": "REPEATED", + "name": "repeated_bool", + "type": "BOOLEAN" + }, + { + "mode": "REPEATED", + "name": "repeated_string", + "type": "STRING" + }, + { + "mode": "REPEATED", + "name": "repeated_bytes", + "type": "BYTES" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "repeated_nested_message", + "type": "RECORD" + }, + { + "mode": "REPEATED", + "name": "repeated_nested_enum", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_string_piece", + "type": "STRING" + }, + { + "mode": "REPEATED", + "name": "repeated_cord", + "type": "STRING" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "repeated_lazy_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "repeated_any", + "type": "RECORD" + }, + { + "mode": "REPEATED", + "name": "repeated_duration", + "type": "INTERVAL" + }, + { + "mode": "REPEATED", + "name": "repeated_timestamp", + "type": "TIMESTAMP" + }, + { + "mode": "REPEATED", + "name": "repeated_struct", + "type": "JSON" + }, + { + "mode": "REPEATED", + "name": "repeated_value", + "type": "JSON" + }, + { + "mode": "REPEATED", + "name": "repeated_int64_wrapper", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_int32_wrapper", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_double_wrapper", + "type": "FLOAT" + }, + { + "mode": "REPEATED", + "name": "repeated_float_wrapper", + "type": "FLOAT" + }, + { + "mode": "REPEATED", + "name": "repeated_uint64_wrapper", + "type": "BIGNUMERIC" + }, + { + "mode": "REPEATED", + "name": "repeated_uint32_wrapper", + "type": "INTEGER" + }, + { + "mode": "REPEATED", + "name": "repeated_string_wrapper", + "type": "STRING" + }, + { + "mode": "REPEATED", + "name": "repeated_bool_wrapper", + "type": "BOOLEAN" + }, + { + "mode": "REPEATED", + "name": "repeated_bytes_wrapper", + "type": "BYTES" + }, + { + "mode": "REPEATED", + "name": "repeated_list_value", + "type": "JSON" + }, + { + "mode": "REPEATED", + "name": "repeated_null_value", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_bool_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_bool_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_bool_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_bool_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_bool_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_bool_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_bool_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_bool_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_bool_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_bool_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_bool_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_bool_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_bool_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_bool_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_bool_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_bool_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_bool_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_bool_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "BOOLEAN" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_bool_bytes_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_int32_bool", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_int32_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_int32_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_int32_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int32_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int32_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_int32_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_int32_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_int32_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_int32_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int32_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int32_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int32_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int32_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int32_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_int32_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int32_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_int32_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_int32_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_int32_bytes_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_int64_bool", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_int64_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_int64_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_int64_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int64_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int64_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_int64_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_int64_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_int64_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_int64_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int64_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int64_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_int64_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int64_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_int64_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_int64_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_int64_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_int64_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_int64_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_int64_bytes_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_uint32_bool", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_uint32_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_uint32_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_uint32_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint32_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint32_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_uint32_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_uint32_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_uint32_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_uint32_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint32_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint32_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint32_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint32_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint32_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_uint32_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint32_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_uint32_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_uint32_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "INTEGER" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_uint32_bytes_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_uint64_bool", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_uint64_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_uint64_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_uint64_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint64_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint64_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_uint64_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_uint64_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_uint64_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_uint64_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint64_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint64_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_uint64_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint64_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_uint64_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_uint64_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_uint64_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_uint64_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_uint64_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_uint64_bytes_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_string_bool", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_string_string", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_string_bytes", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_int32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_int64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_uint32", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "precision": "21", + "scale": "20", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_string_uint64", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_string_float", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_string_double", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_enum", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "fields": [ + { + "name": "bb", + "type": "INTEGER" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_string_message", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTERVAL" + } + ], + "mode": "REPEATED", + "name": "map_string_duration", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "TIMESTAMP" + } + ], + "mode": "REPEATED", + "name": "map_string_timestamp", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_null_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "fields": [ + { + "name": "type_url", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "name": "value", + "type": "RECORD" + } + ], + "mode": "REPEATED", + "name": "map_string_any", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_string_struct", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_string_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "JSON" + } + ], + "mode": "REPEATED", + "name": "map_string_list_value", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_int64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_int32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_string_double_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "FLOAT" + } + ], + "mode": "REPEATED", + "name": "map_string_float_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "BIGNUMERIC" + } + ], + "mode": "REPEATED", + "name": "map_string_uint64_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "INTEGER" + } + ], + "mode": "REPEATED", + "name": "map_string_uint32_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "STRING" + } + ], + "mode": "REPEATED", + "name": "map_string_string_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "BOOLEAN" + } + ], + "mode": "REPEATED", + "name": "map_string_bool_wrapper", + "type": "RECORD" + }, + { + "fields": [ + { + "name": "key", + "type": "STRING" + }, + { + "name": "value", + "type": "BYTES" + } + ], + "mode": "REPEATED", + "name": "map_string_bytes_wrapper", + "type": "RECORD" + } +] \ No newline at end of file diff --git a/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.bigquery.proto b/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.bigquery.proto new file mode 100644 index 0000000..58b368d --- /dev/null +++ b/internal/testdata/bigquery/bufext.cel.expr.conformance.proto3.TestAllTypes.bigquery.proto @@ -0,0 +1,294 @@ +syntax = "proto2"; +import "google/protobuf/struct.proto"; +message TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional google.protobuf.Struct single_struct = 103; + optional google.protobuf.Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional google.protobuf.ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated google.protobuf.Struct repeated_struct = 123; + repeated google.protobuf.Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated google.protobuf.ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + message MapInt64NestedTypeEntry { + option map_entry = true; + optional int64 key = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } +} diff --git a/internal/testdata/codegenrequest/input.json b/internal/testdata/codegenrequest/input.json new file mode 100644 index 0000000..7789d72 --- /dev/null +++ b/internal/testdata/codegenrequest/input.json @@ -0,0 +1 @@ +{"file":[{"name":"google/protobuf/struct.proto","package":"google.protobuf","messageType":[{"name":"Struct","field":[{"name":"fields","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct.FieldsEntry","jsonName":"fields"}],"nestedType":[{"name":"FieldsEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}}]},{"name":"Value","field":[{"name":"null_value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","oneofIndex":0,"jsonName":"nullValue"},{"name":"number_value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":0,"jsonName":"numberValue"},{"name":"string_value","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"stringValue"},{"name":"bool_value","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"boolValue"},{"name":"struct_value","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","oneofIndex":0,"jsonName":"structValue"},{"name":"list_value","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","oneofIndex":0,"jsonName":"listValue"}],"oneofDecl":[{"name":"kind"}]},{"name":"ListValue","field":[{"name":"values","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"values"}]}],"enumType":[{"name":"NullValue","value":[{"name":"NULL_VALUE","number":0}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"StructProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/structpb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"buf/protoschema/test/v1/bq_wkt_test.proto","package":"buf.protoschema.test.v1","dependency":["google/protobuf/struct.proto"],"messageType":[{"name":"BigQueryWellknownTypeTest","field":[{"name":"json_value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"jsonValue"}]}],"bufExtension":{"isImport":false,"isSyntaxUnspecified":false}},{"name":"buf/validate/expression.proto","package":"buf.validate","messageType":[{"name":"Constraint","field":[{"name":"id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"id"},{"name":"message","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"message"},{"name":"expression","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"expression"}]},{"name":"Violations","field":[{"name":"violations","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".buf.validate.Violation","jsonName":"violations"}]},{"name":"Violation","field":[{"name":"field_path","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"fieldPath"},{"name":"constraint_id","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"constraintId"},{"name":"message","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"message"},{"name":"for_key","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"forKey"}]}],"options":{"javaPackage":"build.buf.validate","javaOuterClassname":"ExpressionProto","javaMultipleFiles":true,"goPackage":"buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"},"syntax":"proto3","bufExtension":{"isImport":true,"moduleInfo":{"name":{"remote":"buf.build","owner":"bufbuild","repository":"protovalidate"},"commit":"f05a6f4403ce4327bae4f50f281c3ed0"},"isSyntaxUnspecified":false}},{"name":"google/protobuf/descriptor.proto","package":"google.protobuf","messageType":[{"name":"FileDescriptorSet","field":[{"name":"file","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FileDescriptorProto","jsonName":"file"}]},{"name":"FileDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"package","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"package"},{"name":"dependency","number":3,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"dependency"},{"name":"public_dependency","number":10,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"publicDependency"},{"name":"weak_dependency","number":11,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"weakDependency"},{"name":"message_type","number":4,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.DescriptorProto","jsonName":"messageType"},{"name":"enum_type","number":5,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumDescriptorProto","jsonName":"enumType"},{"name":"service","number":6,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.ServiceDescriptorProto","jsonName":"service"},{"name":"extension","number":7,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FieldDescriptorProto","jsonName":"extension"},{"name":"options","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FileOptions","jsonName":"options"},{"name":"source_code_info","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.SourceCodeInfo","jsonName":"sourceCodeInfo"},{"name":"syntax","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"syntax"},{"name":"edition","number":14,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.Edition","jsonName":"edition"}]},{"name":"DescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"field","number":2,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FieldDescriptorProto","jsonName":"field"},{"name":"extension","number":6,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FieldDescriptorProto","jsonName":"extension"},{"name":"nested_type","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.DescriptorProto","jsonName":"nestedType"},{"name":"enum_type","number":4,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumDescriptorProto","jsonName":"enumType"},{"name":"extension_range","number":5,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.DescriptorProto.ExtensionRange","jsonName":"extensionRange"},{"name":"oneof_decl","number":8,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.OneofDescriptorProto","jsonName":"oneofDecl"},{"name":"options","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.MessageOptions","jsonName":"options"},{"name":"reserved_range","number":9,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.DescriptorProto.ReservedRange","jsonName":"reservedRange"},{"name":"reserved_name","number":10,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"reservedName"}],"nestedType":[{"name":"ExtensionRange","field":[{"name":"start","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"start"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"end"},{"name":"options","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ExtensionRangeOptions","jsonName":"options"}]},{"name":"ReservedRange","field":[{"name":"start","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"start"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"end"}]}]},{"name":"ExtensionRangeOptions","field":[{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"},{"name":"declaration","number":2,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.ExtensionRangeOptions.Declaration","jsonName":"declaration","options":{"retention":"RETENTION_SOURCE"}},{"name":"features","number":50,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"verification","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.ExtensionRangeOptions.VerificationState","defaultValue":"UNVERIFIED","jsonName":"verification"}],"nestedType":[{"name":"Declaration","field":[{"name":"number","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"number"},{"name":"full_name","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"fullName"},{"name":"type","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"type"},{"name":"reserved","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"reserved"},{"name":"repeated","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"repeated"}],"reservedRange":[{"start":4,"end":5}]}],"enumType":[{"name":"VerificationState","value":[{"name":"DECLARATION","number":0},{"name":"UNVERIFIED","number":1}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"FieldDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"number","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"number"},{"name":"label","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FieldDescriptorProto.Label","jsonName":"label"},{"name":"type","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FieldDescriptorProto.Type","jsonName":"type"},{"name":"type_name","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"typeName"},{"name":"extendee","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"extendee"},{"name":"default_value","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"defaultValue"},{"name":"oneof_index","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"oneofIndex"},{"name":"json_name","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"jsonName"},{"name":"options","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FieldOptions","jsonName":"options"},{"name":"proto3_optional","number":17,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"proto3Optional"}],"enumType":[{"name":"Type","value":[{"name":"TYPE_DOUBLE","number":1},{"name":"TYPE_FLOAT","number":2},{"name":"TYPE_INT64","number":3},{"name":"TYPE_UINT64","number":4},{"name":"TYPE_INT32","number":5},{"name":"TYPE_FIXED64","number":6},{"name":"TYPE_FIXED32","number":7},{"name":"TYPE_BOOL","number":8},{"name":"TYPE_STRING","number":9},{"name":"TYPE_GROUP","number":10},{"name":"TYPE_MESSAGE","number":11},{"name":"TYPE_BYTES","number":12},{"name":"TYPE_UINT32","number":13},{"name":"TYPE_ENUM","number":14},{"name":"TYPE_SFIXED32","number":15},{"name":"TYPE_SFIXED64","number":16},{"name":"TYPE_SINT32","number":17},{"name":"TYPE_SINT64","number":18}]},{"name":"Label","value":[{"name":"LABEL_OPTIONAL","number":1},{"name":"LABEL_REPEATED","number":3},{"name":"LABEL_REQUIRED","number":2}]}]},{"name":"OneofDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"options","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.OneofOptions","jsonName":"options"}]},{"name":"EnumDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"value","number":2,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumValueDescriptorProto","jsonName":"value"},{"name":"options","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumOptions","jsonName":"options"},{"name":"reserved_range","number":4,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumDescriptorProto.EnumReservedRange","jsonName":"reservedRange"},{"name":"reserved_name","number":5,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"reservedName"}],"nestedType":[{"name":"EnumReservedRange","field":[{"name":"start","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"start"},{"name":"end","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"end"}]}]},{"name":"EnumValueDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"number","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"number"},{"name":"options","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.EnumValueOptions","jsonName":"options"}]},{"name":"ServiceDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"method","number":2,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.MethodDescriptorProto","jsonName":"method"},{"name":"options","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ServiceOptions","jsonName":"options"}]},{"name":"MethodDescriptorProto","field":[{"name":"name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"},{"name":"input_type","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"inputType"},{"name":"output_type","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"outputType"},{"name":"options","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.MethodOptions","jsonName":"options"},{"name":"client_streaming","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"clientStreaming"},{"name":"server_streaming","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"serverStreaming"}]},{"name":"FileOptions","field":[{"name":"java_package","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"javaPackage"},{"name":"java_outer_classname","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"javaOuterClassname"},{"name":"java_multiple_files","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"javaMultipleFiles"},{"name":"java_generate_equals_and_hash","number":20,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"javaGenerateEqualsAndHash","options":{"deprecated":true}},{"name":"java_string_check_utf8","number":27,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"javaStringCheckUtf8"},{"name":"optimize_for","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FileOptions.OptimizeMode","defaultValue":"SPEED","jsonName":"optimizeFor"},{"name":"go_package","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"goPackage"},{"name":"cc_generic_services","number":16,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"ccGenericServices"},{"name":"java_generic_services","number":17,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"javaGenericServices"},{"name":"py_generic_services","number":18,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"pyGenericServices"},{"name":"php_generic_services","number":42,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"phpGenericServices"},{"name":"deprecated","number":23,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"cc_enable_arenas","number":31,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"true","jsonName":"ccEnableArenas"},{"name":"objc_class_prefix","number":36,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"objcClassPrefix"},{"name":"csharp_namespace","number":37,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"csharpNamespace"},{"name":"swift_prefix","number":39,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"swiftPrefix"},{"name":"php_class_prefix","number":40,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"phpClassPrefix"},{"name":"php_namespace","number":41,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"phpNamespace"},{"name":"php_metadata_namespace","number":44,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"phpMetadataNamespace"},{"name":"ruby_package","number":45,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"rubyPackage"},{"name":"features","number":50,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"enumType":[{"name":"OptimizeMode","value":[{"name":"SPEED","number":1},{"name":"CODE_SIZE","number":2},{"name":"LITE_RUNTIME","number":3}]}],"extensionRange":[{"start":1000,"end":536870912}],"reservedRange":[{"start":38,"end":39}]},{"name":"MessageOptions","field":[{"name":"message_set_wire_format","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"messageSetWireFormat"},{"name":"no_standard_descriptor_accessor","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"noStandardDescriptorAccessor"},{"name":"deprecated","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"map_entry","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"mapEntry"},{"name":"deprecated_legacy_json_field_conflicts","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"deprecatedLegacyJsonFieldConflicts","options":{"deprecated":true}},{"name":"features","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}],"reservedRange":[{"start":4,"end":5},{"start":5,"end":6},{"start":6,"end":7},{"start":8,"end":9},{"start":9,"end":10}]},{"name":"FieldOptions","field":[{"name":"ctype","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FieldOptions.CType","defaultValue":"STRING","jsonName":"ctype"},{"name":"packed","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"packed"},{"name":"jstype","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FieldOptions.JSType","defaultValue":"JS_NORMAL","jsonName":"jstype"},{"name":"lazy","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"lazy"},{"name":"unverified_lazy","number":15,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"unverifiedLazy"},{"name":"deprecated","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"weak","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"weak"},{"name":"debug_redact","number":16,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"debugRedact"},{"name":"retention","number":17,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FieldOptions.OptionRetention","jsonName":"retention"},{"name":"targets","number":19,"label":"LABEL_REPEATED","type":"TYPE_ENUM","typeName":".google.protobuf.FieldOptions.OptionTargetType","jsonName":"targets"},{"name":"edition_defaults","number":20,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FieldOptions.EditionDefault","jsonName":"editionDefaults"},{"name":"features","number":21,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"nestedType":[{"name":"EditionDefault","field":[{"name":"edition","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.Edition","jsonName":"edition"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}]}],"enumType":[{"name":"CType","value":[{"name":"STRING","number":0},{"name":"CORD","number":1},{"name":"STRING_PIECE","number":2}]},{"name":"JSType","value":[{"name":"JS_NORMAL","number":0},{"name":"JS_STRING","number":1},{"name":"JS_NUMBER","number":2}]},{"name":"OptionRetention","value":[{"name":"RETENTION_UNKNOWN","number":0},{"name":"RETENTION_RUNTIME","number":1},{"name":"RETENTION_SOURCE","number":2}]},{"name":"OptionTargetType","value":[{"name":"TARGET_TYPE_UNKNOWN","number":0},{"name":"TARGET_TYPE_FILE","number":1},{"name":"TARGET_TYPE_EXTENSION_RANGE","number":2},{"name":"TARGET_TYPE_MESSAGE","number":3},{"name":"TARGET_TYPE_FIELD","number":4},{"name":"TARGET_TYPE_ONEOF","number":5},{"name":"TARGET_TYPE_ENUM","number":6},{"name":"TARGET_TYPE_ENUM_ENTRY","number":7},{"name":"TARGET_TYPE_SERVICE","number":8},{"name":"TARGET_TYPE_METHOD","number":9}]}],"extensionRange":[{"start":1000,"end":536870912}],"reservedRange":[{"start":4,"end":5},{"start":18,"end":19}]},{"name":"OneofOptions","field":[{"name":"features","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"EnumOptions","field":[{"name":"allow_alias","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"allowAlias"},{"name":"deprecated","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"deprecated_legacy_json_field_conflicts","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"deprecatedLegacyJsonFieldConflicts","options":{"deprecated":true}},{"name":"features","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}],"reservedRange":[{"start":5,"end":6}]},{"name":"EnumValueOptions","field":[{"name":"deprecated","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"features","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"debug_redact","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"debugRedact"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"ServiceOptions","field":[{"name":"features","number":34,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"deprecated","number":33,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"MethodOptions","field":[{"name":"deprecated","number":33,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","defaultValue":"false","jsonName":"deprecated"},{"name":"idempotency_level","number":34,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.MethodOptions.IdempotencyLevel","defaultValue":"IDEMPOTENCY_UNKNOWN","jsonName":"idempotencyLevel"},{"name":"features","number":35,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"},{"name":"uninterpreted_option","number":999,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption","jsonName":"uninterpretedOption"}],"enumType":[{"name":"IdempotencyLevel","value":[{"name":"IDEMPOTENCY_UNKNOWN","number":0},{"name":"NO_SIDE_EFFECTS","number":1},{"name":"IDEMPOTENT","number":2}]}],"extensionRange":[{"start":1000,"end":536870912}]},{"name":"UninterpretedOption","field":[{"name":"name","number":2,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UninterpretedOption.NamePart","jsonName":"name"},{"name":"identifier_value","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"identifierValue"},{"name":"positive_int_value","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"positiveIntValue"},{"name":"negative_int_value","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"negativeIntValue"},{"name":"double_value","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"doubleValue"},{"name":"string_value","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"stringValue"},{"name":"aggregate_value","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"aggregateValue"}],"nestedType":[{"name":"NamePart","field":[{"name":"name_part","number":1,"label":"LABEL_REQUIRED","type":"TYPE_STRING","jsonName":"namePart"},{"name":"is_extension","number":2,"label":"LABEL_REQUIRED","type":"TYPE_BOOL","jsonName":"isExtension"}]}]},{"name":"FeatureSet","field":[{"name":"field_presence","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.FieldPresence","jsonName":"fieldPresence","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_FIELD","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"EXPLICIT"},{"edition":"EDITION_PROTO3","value":"IMPLICIT"},{"edition":"EDITION_2023","value":"EXPLICIT"}]}},{"name":"enum_type","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.EnumType","jsonName":"enumType","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_ENUM","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"CLOSED"},{"edition":"EDITION_PROTO3","value":"OPEN"}]}},{"name":"repeated_field_encoding","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.RepeatedFieldEncoding","jsonName":"repeatedFieldEncoding","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_FIELD","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"EXPANDED"},{"edition":"EDITION_PROTO3","value":"PACKED"}]}},{"name":"utf8_validation","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.Utf8Validation","jsonName":"utf8Validation","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_FIELD","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"NONE"},{"edition":"EDITION_PROTO3","value":"VERIFY"}]}},{"name":"message_encoding","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.MessageEncoding","jsonName":"messageEncoding","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_FIELD","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"LENGTH_PREFIXED"}]}},{"name":"json_format","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.FeatureSet.JsonFormat","jsonName":"jsonFormat","options":{"retention":"RETENTION_RUNTIME","targets":["TARGET_TYPE_MESSAGE","TARGET_TYPE_ENUM","TARGET_TYPE_FILE"],"editionDefaults":[{"edition":"EDITION_PROTO2","value":"LEGACY_BEST_EFFORT"},{"edition":"EDITION_PROTO3","value":"ALLOW"}]}}],"enumType":[{"name":"FieldPresence","value":[{"name":"FIELD_PRESENCE_UNKNOWN","number":0},{"name":"EXPLICIT","number":1},{"name":"IMPLICIT","number":2},{"name":"LEGACY_REQUIRED","number":3}]},{"name":"EnumType","value":[{"name":"ENUM_TYPE_UNKNOWN","number":0},{"name":"OPEN","number":1},{"name":"CLOSED","number":2}]},{"name":"RepeatedFieldEncoding","value":[{"name":"REPEATED_FIELD_ENCODING_UNKNOWN","number":0},{"name":"PACKED","number":1},{"name":"EXPANDED","number":2}]},{"name":"Utf8Validation","value":[{"name":"UTF8_VALIDATION_UNKNOWN","number":0},{"name":"NONE","number":1},{"name":"VERIFY","number":2}]},{"name":"MessageEncoding","value":[{"name":"MESSAGE_ENCODING_UNKNOWN","number":0},{"name":"LENGTH_PREFIXED","number":1},{"name":"DELIMITED","number":2}]},{"name":"JsonFormat","value":[{"name":"JSON_FORMAT_UNKNOWN","number":0},{"name":"ALLOW","number":1},{"name":"LEGACY_BEST_EFFORT","number":2}]}],"extensionRange":[{"start":1000,"end":1001},{"start":1001,"end":1002},{"start":9995,"end":10000}],"reservedRange":[{"start":999,"end":1000}]},{"name":"FeatureSetDefaults","field":[{"name":"defaults","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault","jsonName":"defaults"},{"name":"minimum_edition","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.Edition","jsonName":"minimumEdition"},{"name":"maximum_edition","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.Edition","jsonName":"maximumEdition"}],"nestedType":[{"name":"FeatureSetEditionDefault","field":[{"name":"edition","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.Edition","jsonName":"edition"},{"name":"features","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FeatureSet","jsonName":"features"}]}]},{"name":"SourceCodeInfo","field":[{"name":"location","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.SourceCodeInfo.Location","jsonName":"location"}],"nestedType":[{"name":"Location","field":[{"name":"path","number":1,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"path","options":{"packed":true}},{"name":"span","number":2,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"span","options":{"packed":true}},{"name":"leading_comments","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"leadingComments"},{"name":"trailing_comments","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"trailingComments"},{"name":"leading_detached_comments","number":6,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"leadingDetachedComments"}]}]},{"name":"GeneratedCodeInfo","field":[{"name":"annotation","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.GeneratedCodeInfo.Annotation","jsonName":"annotation"}],"nestedType":[{"name":"Annotation","field":[{"name":"path","number":1,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"path","options":{"packed":true}},{"name":"source_file","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"sourceFile"},{"name":"begin","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"begin"},{"name":"end","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"end"},{"name":"semantic","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.GeneratedCodeInfo.Annotation.Semantic","jsonName":"semantic"}],"enumType":[{"name":"Semantic","value":[{"name":"NONE","number":0},{"name":"SET","number":1},{"name":"ALIAS","number":2}]}]}]}],"enumType":[{"name":"Edition","value":[{"name":"EDITION_UNKNOWN","number":0},{"name":"EDITION_PROTO2","number":998},{"name":"EDITION_PROTO3","number":999},{"name":"EDITION_2023","number":1000},{"name":"EDITION_1_TEST_ONLY","number":1},{"name":"EDITION_2_TEST_ONLY","number":2},{"name":"EDITION_99997_TEST_ONLY","number":99997},{"name":"EDITION_99998_TEST_ONLY","number":99998},{"name":"EDITION_99999_TEST_ONLY","number":99999}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"DescriptorProtos","optimizeFor":"SPEED","goPackage":"google.golang.org/protobuf/types/descriptorpb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.Reflection"},"bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"buf/validate/priv/private.proto","package":"buf.validate.priv","dependency":["google/protobuf/descriptor.proto"],"messageType":[{"name":"FieldConstraints","field":[{"name":"cel","number":1,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".buf.validate.priv.Constraint","jsonName":"cel"}]},{"name":"Constraint","field":[{"name":"id","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"id"},{"name":"message","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"message"},{"name":"expression","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"expression"}]}],"extension":[{"name":"field","number":1160,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.priv.FieldConstraints","extendee":".google.protobuf.FieldOptions","jsonName":"field","proto3Optional":true}],"options":{"javaPackage":"build.buf.validate.priv","javaOuterClassname":"PrivateProto","javaMultipleFiles":true,"goPackage":"buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate/priv"},"syntax":"proto3","bufExtension":{"isImport":true,"moduleInfo":{"name":{"remote":"buf.build","owner":"bufbuild","repository":"protovalidate"},"commit":"f05a6f4403ce4327bae4f50f281c3ed0"},"isSyntaxUnspecified":false}},{"name":"google/protobuf/duration.proto","package":"google.protobuf","messageType":[{"name":"Duration","field":[{"name":"seconds","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"seconds"},{"name":"nanos","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"nanos"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"DurationProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/durationpb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"google/protobuf/timestamp.proto","package":"google.protobuf","messageType":[{"name":"Timestamp","field":[{"name":"seconds","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"seconds"},{"name":"nanos","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"nanos"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"TimestampProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/timestamppb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"buf/validate/validate.proto","package":"buf.validate","dependency":["buf/validate/expression.proto","buf/validate/priv/private.proto","google/protobuf/descriptor.proto","google/protobuf/duration.proto","google/protobuf/timestamp.proto"],"messageType":[{"name":"MessageConstraints","field":[{"name":"disabled","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"disabled","proto3Optional":true},{"name":"cel","number":3,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".buf.validate.Constraint","jsonName":"cel"}],"oneofDecl":[{"name":"_disabled"}]},{"name":"OneofConstraints","field":[{"name":"required","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"required","proto3Optional":true}],"oneofDecl":[{"name":"_required"}]},{"name":"FieldConstraints","field":[{"name":"cel","number":23,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".buf.validate.Constraint","jsonName":"cel"},{"name":"required","number":25,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"required"},{"name":"ignore","number":27,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".buf.validate.Ignore","jsonName":"ignore"},{"name":"float","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.FloatRules","oneofIndex":0,"jsonName":"float"},{"name":"double","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.DoubleRules","oneofIndex":0,"jsonName":"double"},{"name":"int32","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.Int32Rules","oneofIndex":0,"jsonName":"int32"},{"name":"int64","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.Int64Rules","oneofIndex":0,"jsonName":"int64"},{"name":"uint32","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.UInt32Rules","oneofIndex":0,"jsonName":"uint32"},{"name":"uint64","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.UInt64Rules","oneofIndex":0,"jsonName":"uint64"},{"name":"sint32","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.SInt32Rules","oneofIndex":0,"jsonName":"sint32"},{"name":"sint64","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.SInt64Rules","oneofIndex":0,"jsonName":"sint64"},{"name":"fixed32","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.Fixed32Rules","oneofIndex":0,"jsonName":"fixed32"},{"name":"fixed64","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.Fixed64Rules","oneofIndex":0,"jsonName":"fixed64"},{"name":"sfixed32","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.SFixed32Rules","oneofIndex":0,"jsonName":"sfixed32"},{"name":"sfixed64","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.SFixed64Rules","oneofIndex":0,"jsonName":"sfixed64"},{"name":"bool","number":13,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.BoolRules","oneofIndex":0,"jsonName":"bool"},{"name":"string","number":14,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.StringRules","oneofIndex":0,"jsonName":"string"},{"name":"bytes","number":15,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.BytesRules","oneofIndex":0,"jsonName":"bytes"},{"name":"enum","number":16,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.EnumRules","oneofIndex":0,"jsonName":"enum"},{"name":"repeated","number":18,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.RepeatedRules","oneofIndex":0,"jsonName":"repeated"},{"name":"map","number":19,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.MapRules","oneofIndex":0,"jsonName":"map"},{"name":"any","number":20,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.AnyRules","oneofIndex":0,"jsonName":"any"},{"name":"duration","number":21,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.DurationRules","oneofIndex":0,"jsonName":"duration"},{"name":"timestamp","number":22,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.TimestampRules","oneofIndex":0,"jsonName":"timestamp"},{"name":"skipped","number":24,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"skipped","options":{"deprecated":true}},{"name":"ignore_empty","number":26,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"ignoreEmpty","options":{"deprecated":true}}],"oneofDecl":[{"name":"type"}]},{"name":"FloatRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.lt","expression":"!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.lte","expression":"!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.gt","expression":"!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"float.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"float.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"float.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"float.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.gte","expression":"!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"float.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"float.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"float.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"float.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_FLOAT","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_FLOAT","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}},{"name":"finite","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"finite","options":{"[buf.validate.priv.field]":{"cel":[{"id":"float.finite","expression":"this.isNan() || this.isInf() ? 'value must be finite' : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"DoubleRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.lt","expression":"!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.lte","expression":"!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.gt","expression":"!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"double.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"double.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"double.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"double.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.gte","expression":"!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"double.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"double.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"double.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"double.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_DOUBLE","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_DOUBLE","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}},{"name":"finite","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"finite","options":{"[buf.validate.priv.field]":{"cel":[{"id":"double.finite","expression":"this.isNan() || this.isInf() ? 'value must be finite' : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"Int32Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"int32.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"int32.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"int32.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"int32.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"int32.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"int32.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"int32.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"int32.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int32.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"Int64Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"int64.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"int64.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"int64.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"int64.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"int64.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"int64.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"int64.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"int64.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_INT64","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_INT64","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"int64.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"UInt32Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"uint32.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"uint32.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"uint32.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"uint32.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"uint32.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"uint32.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"uint32.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"uint32.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_UINT32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_UINT32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint32.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"UInt64Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"uint64.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"uint64.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"uint64.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"uint64.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"uint64.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"uint64.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"uint64.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"uint64.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_UINT64","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_UINT64","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"uint64.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"SInt32Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"sint32.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sint32.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sint32.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"sint32.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"sint32.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sint32.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sint32.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"sint32.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_SINT32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_SINT32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint32.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"SInt64Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"sint64.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sint64.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sint64.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"sint64.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"sint64.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sint64.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sint64.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"sint64.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_SINT64","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_SINT64","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sint64.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"Fixed32Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"fixed32.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"fixed32.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"fixed32.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"fixed32.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"fixed32.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"fixed32.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"fixed32.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"fixed32.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_FIXED32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_FIXED32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed32.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"Fixed64Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"fixed64.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"fixed64.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"fixed64.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"fixed64.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"fixed64.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"fixed64.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"fixed64.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"fixed64.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_FIXED64","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_FIXED64","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"fixed64.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"SFixed32Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"sfixed32.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sfixed32.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sfixed32.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"sfixed32.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"sfixed32.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sfixed32.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sfixed32.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"sfixed32.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_SFIXED32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_SFIXED32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed32.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"SFixed64Rules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"sfixed64.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sfixed64.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"sfixed64.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"sfixed64.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"sfixed64.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sfixed64.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"sfixed64.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"sfixed64.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":6,"label":"LABEL_REPEATED","type":"TYPE_SFIXED64","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":7,"label":"LABEL_REPEATED","type":"TYPE_SFIXED64","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"sfixed64.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"BoolRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bool.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true}],"oneofDecl":[{"name":"_const"}]},{"name":"StringRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":1,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.const","expression":"this != rules.const ? 'value must equal `%s`'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"len","number":19,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":2,"jsonName":"len","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.len","expression":"uint(this.size()) != rules.len ? 'value length must be %s characters'.format([rules.len]) : ''"}]}},"proto3Optional":true},{"name":"min_len","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":3,"jsonName":"minLen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.min_len","expression":"uint(this.size()) < rules.min_len ? 'value length must be at least %s characters'.format([rules.min_len]) : ''"}]}},"proto3Optional":true},{"name":"max_len","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":4,"jsonName":"maxLen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.max_len","expression":"uint(this.size()) > rules.max_len ? 'value length must be at most %s characters'.format([rules.max_len]) : ''"}]}},"proto3Optional":true},{"name":"len_bytes","number":20,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":5,"jsonName":"lenBytes","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.len_bytes","expression":"uint(bytes(this).size()) != rules.len_bytes ? 'value length must be %s bytes'.format([rules.len_bytes]) : ''"}]}},"proto3Optional":true},{"name":"min_bytes","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":6,"jsonName":"minBytes","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.min_bytes","expression":"uint(bytes(this).size()) < rules.min_bytes ? 'value length must be at least %s bytes'.format([rules.min_bytes]) : ''"}]}},"proto3Optional":true},{"name":"max_bytes","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":7,"jsonName":"maxBytes","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.max_bytes","expression":"uint(bytes(this).size()) > rules.max_bytes ? 'value length must be at most %s bytes'.format([rules.max_bytes]) : ''"}]}},"proto3Optional":true},{"name":"pattern","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":8,"jsonName":"pattern","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.pattern","expression":"!this.matches(rules.pattern) ? 'value does not match regex pattern `%s`'.format([rules.pattern]) : ''"}]}},"proto3Optional":true},{"name":"prefix","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":9,"jsonName":"prefix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.prefix","expression":"!this.startsWith(rules.prefix) ? 'value does not have prefix `%s`'.format([rules.prefix]) : ''"}]}},"proto3Optional":true},{"name":"suffix","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":10,"jsonName":"suffix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.suffix","expression":"!this.endsWith(rules.suffix) ? 'value does not have suffix `%s`'.format([rules.suffix]) : ''"}]}},"proto3Optional":true},{"name":"contains","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":11,"jsonName":"contains","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.contains","expression":"!this.contains(rules.contains) ? 'value does not contain substring `%s`'.format([rules.contains]) : ''"}]}},"proto3Optional":true},{"name":"not_contains","number":23,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":12,"jsonName":"notContains","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.not_contains","expression":"this.contains(rules.not_contains) ? 'value contains substring `%s`'.format([rules.not_contains]) : ''"}]}},"proto3Optional":true},{"name":"in","number":10,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":11,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}},{"name":"email","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"email","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.email","message":"value must be a valid email address","expression":"this == '' || this.isEmail()"},{"id":"string.email_empty","message":"value is empty, which is not a valid email address","expression":"this != ''"}]}}},{"name":"hostname","number":13,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"hostname","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.hostname","message":"value must be a valid hostname","expression":"this == '' || this.isHostname()"},{"id":"string.hostname_empty","message":"value is empty, which is not a valid hostname","expression":"this != ''"}]}}},{"name":"ip","number":14,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ip","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ip","message":"value must be a valid IP address","expression":"this == '' || this.isIp()"},{"id":"string.ip_empty","message":"value is empty, which is not a valid IP address","expression":"this != ''"}]}}},{"name":"ipv4","number":15,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv4","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv4","message":"value must be a valid IPv4 address","expression":"this == '' || this.isIp(4)"},{"id":"string.ipv4_empty","message":"value is empty, which is not a valid IPv4 address","expression":"this != ''"}]}}},{"name":"ipv6","number":16,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv6","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv6","message":"value must be a valid IPv6 address","expression":"this == '' || this.isIp(6)"},{"id":"string.ipv6_empty","message":"value is empty, which is not a valid IPv6 address","expression":"this != ''"}]}}},{"name":"uri","number":17,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"uri","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.uri","message":"value must be a valid URI","expression":"this == '' || this.isUri()"},{"id":"string.uri_empty","message":"value is empty, which is not a valid URI","expression":"this != ''"}]}}},{"name":"uri_ref","number":18,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"uriRef","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.uri_ref","message":"value must be a valid URI","expression":"this.isUriRef()"}]}}},{"name":"address","number":21,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"address","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.address","message":"value must be a valid hostname, or ip address","expression":"this == '' || this.isHostname() || this.isIp()"},{"id":"string.address_empty","message":"value is empty, which is not a valid hostname, or ip address","expression":"this != ''"}]}}},{"name":"uuid","number":22,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"uuid","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.uuid","message":"value must be a valid UUID","expression":"this == '' || this.matches('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$')"},{"id":"string.uuid_empty","message":"value is empty, which is not a valid UUID","expression":"this != ''"}]}}},{"name":"ip_with_prefixlen","number":26,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipWithPrefixlen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ip_with_prefixlen","message":"value must be a valid IP prefix","expression":"this == '' || this.isIpPrefix()"},{"id":"string.ip_with_prefixlen_empty","message":"value is empty, which is not a valid IP prefix","expression":"this != ''"}]}}},{"name":"ipv4_with_prefixlen","number":27,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv4WithPrefixlen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv4_with_prefixlen","message":"value must be a valid IPv4 address with prefix length","expression":"this == '' || this.isIpPrefix(4)"},{"id":"string.ipv4_with_prefixlen_empty","message":"value is empty, which is not a valid IPv4 address with prefix length","expression":"this != ''"}]}}},{"name":"ipv6_with_prefixlen","number":28,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv6WithPrefixlen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv6_with_prefixlen","message":"value must be a valid IPv6 address with prefix length","expression":"this == '' || this.isIpPrefix(6)"},{"id":"string.ipv6_with_prefixlen_empty","message":"value is empty, which is not a valid IPv6 address with prefix length","expression":"this != ''"}]}}},{"name":"ip_prefix","number":29,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipPrefix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ip_prefix","message":"value must be a valid IP prefix","expression":"this == '' || this.isIpPrefix(true)"},{"id":"string.ip_prefix_empty","message":"value is empty, which is not a valid IP prefix","expression":"this != ''"}]}}},{"name":"ipv4_prefix","number":30,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv4Prefix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv4_prefix","message":"value must be a valid IPv4 prefix","expression":"this == '' || this.isIpPrefix(4, true)"},{"id":"string.ipv4_prefix_empty","message":"value is empty, which is not a valid IPv4 prefix","expression":"this != ''"}]}}},{"name":"ipv6_prefix","number":31,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv6Prefix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.ipv6_prefix","message":"value must be a valid IPv6 prefix","expression":"this == '' || this.isIpPrefix(6, true)"},{"id":"string.ipv6_prefix_empty","message":"value is empty, which is not a valid IPv6 prefix","expression":"this != ''"}]}}},{"name":"host_and_port","number":32,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"hostAndPort","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.host_and_port","message":"value must be a valid host (hostname or IP address) and port pair","expression":"this == '' || this.isHostAndPort(true)"},{"id":"string.host_and_port_empty","message":"value is empty, which is not a valid host and port pair","expression":"this != ''"}]}}},{"name":"well_known_regex","number":24,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".buf.validate.KnownRegex","oneofIndex":0,"jsonName":"wellKnownRegex","options":{"[buf.validate.priv.field]":{"cel":[{"id":"string.well_known_regex.header_name","message":"value must be a valid HTTP header name","expression":"rules.well_known_regex != 1 || this == '' || this.matches(!has(rules.strict) || rules.strict ?'^:?[0-9a-zA-Z!#$%&\\'*+-.^_|~\\x60]+$' :'^[^\\u0000\\u000A\\u000D]+$')"},{"id":"string.well_known_regex.header_name_empty","message":"value is empty, which is not a valid HTTP header name","expression":"rules.well_known_regex != 1 || this != ''"},{"id":"string.well_known_regex.header_value","message":"value must be a valid HTTP header value","expression":"rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$' :'^[^\\u0000\\u000A\\u000D]*$')"}]}}},{"name":"strict","number":25,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":13,"jsonName":"strict","proto3Optional":true}],"oneofDecl":[{"name":"well_known"},{"name":"_const"},{"name":"_len"},{"name":"_min_len"},{"name":"_max_len"},{"name":"_len_bytes"},{"name":"_min_bytes"},{"name":"_max_bytes"},{"name":"_pattern"},{"name":"_prefix"},{"name":"_suffix"},{"name":"_contains"},{"name":"_not_contains"},{"name":"_strict"}]},{"name":"BytesRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","oneofIndex":1,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.const","expression":"this != rules.const ? 'value must be %x'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"len","number":13,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":2,"jsonName":"len","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.len","expression":"uint(this.size()) != rules.len ? 'value length must be %s bytes'.format([rules.len]) : ''"}]}},"proto3Optional":true},{"name":"min_len","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":3,"jsonName":"minLen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.min_len","expression":"uint(this.size()) < rules.min_len ? 'value length must be at least %s bytes'.format([rules.min_len]) : ''"}]}},"proto3Optional":true},{"name":"max_len","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":4,"jsonName":"maxLen","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.max_len","expression":"uint(this.size()) > rules.max_len ? 'value must be at most %s bytes'.format([rules.max_len]) : ''"}]}},"proto3Optional":true},{"name":"pattern","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":5,"jsonName":"pattern","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.pattern","expression":"!string(this).matches(rules.pattern) ? 'value must match regex pattern `%s`'.format([rules.pattern]) : ''"}]}},"proto3Optional":true},{"name":"prefix","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","oneofIndex":6,"jsonName":"prefix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.prefix","expression":"!this.startsWith(rules.prefix) ? 'value does not have prefix %x'.format([rules.prefix]) : ''"}]}},"proto3Optional":true},{"name":"suffix","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","oneofIndex":7,"jsonName":"suffix","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.suffix","expression":"!this.endsWith(rules.suffix) ? 'value does not have suffix %x'.format([rules.suffix]) : ''"}]}},"proto3Optional":true},{"name":"contains","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","oneofIndex":8,"jsonName":"contains","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.contains","expression":"!this.contains(rules.contains) ? 'value does not contain %x'.format([rules.contains]) : ''"}]}},"proto3Optional":true},{"name":"in","number":8,"label":"LABEL_REPEATED","type":"TYPE_BYTES","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.in","expression":"dyn(rules)['in'].size() > 0 && !(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":9,"label":"LABEL_REPEATED","type":"TYPE_BYTES","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}},{"name":"ip","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ip","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.ip","message":"value must be a valid IP address","expression":"this.size() == 0 || this.size() == 4 || this.size() == 16"},{"id":"bytes.ip_empty","message":"value is empty, which is not a valid IP address","expression":"this.size() != 0"}]}}},{"name":"ipv4","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv4","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.ipv4","message":"value must be a valid IPv4 address","expression":"this.size() == 0 || this.size() == 4"},{"id":"bytes.ipv4_empty","message":"value is empty, which is not a valid IPv4 address","expression":"this.size() != 0"}]}}},{"name":"ipv6","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ipv6","options":{"[buf.validate.priv.field]":{"cel":[{"id":"bytes.ipv6","message":"value must be a valid IPv6 address","expression":"this.size() == 0 || this.size() == 16"},{"id":"bytes.ipv6_empty","message":"value is empty, which is not a valid IPv6 address","expression":"this.size() != 0"}]}}}],"oneofDecl":[{"name":"well_known"},{"name":"_const"},{"name":"_len"},{"name":"_min_len"},{"name":"_max_len"},{"name":"_pattern"},{"name":"_prefix"},{"name":"_suffix"},{"name":"_contains"}]},{"name":"EnumRules","field":[{"name":"const","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","oneofIndex":0,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"enum.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"defined_only","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":1,"jsonName":"definedOnly","proto3Optional":true},{"name":"in","number":3,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"enum.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":4,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"enum.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"_const"},{"name":"_defined_only"}]},{"name":"RepeatedRules","field":[{"name":"min_items","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":0,"jsonName":"minItems","options":{"[buf.validate.priv.field]":{"cel":[{"id":"repeated.min_items","expression":"uint(this.size()) < rules.min_items ? 'value must contain at least %d item(s)'.format([rules.min_items]) : ''"}]}},"proto3Optional":true},{"name":"max_items","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":1,"jsonName":"maxItems","options":{"[buf.validate.priv.field]":{"cel":[{"id":"repeated.max_items","expression":"uint(this.size()) > rules.max_items ? 'value must contain no more than %s item(s)'.format([rules.max_items]) : ''"}]}},"proto3Optional":true},{"name":"unique","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":2,"jsonName":"unique","options":{"[buf.validate.priv.field]":{"cel":[{"id":"repeated.unique","message":"repeated value must contain unique items","expression":"this.unique()"}]}},"proto3Optional":true},{"name":"items","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.FieldConstraints","oneofIndex":3,"jsonName":"items","proto3Optional":true}],"oneofDecl":[{"name":"_min_items"},{"name":"_max_items"},{"name":"_unique"},{"name":"_items"}]},{"name":"MapRules","field":[{"name":"min_pairs","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":0,"jsonName":"minPairs","options":{"[buf.validate.priv.field]":{"cel":[{"id":"map.min_pairs","expression":"uint(this.size()) < rules.min_pairs ? 'map must be at least %d entries'.format([rules.min_pairs]) : ''"}]}},"proto3Optional":true},{"name":"max_pairs","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","oneofIndex":1,"jsonName":"maxPairs","options":{"[buf.validate.priv.field]":{"cel":[{"id":"map.max_pairs","expression":"uint(this.size()) > rules.max_pairs ? 'map must be at most %d entries'.format([rules.max_pairs]) : ''"}]}},"proto3Optional":true},{"name":"keys","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.FieldConstraints","oneofIndex":2,"jsonName":"keys","proto3Optional":true},{"name":"values","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.FieldConstraints","oneofIndex":3,"jsonName":"values","proto3Optional":true}],"oneofDecl":[{"name":"_min_pairs"},{"name":"_max_pairs"},{"name":"_keys"},{"name":"_values"}]},{"name":"AnyRules","field":[{"name":"in","number":2,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"in"},{"name":"not_in","number":3,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"notIn"}]},{"name":"DurationRules","field":[{"name":"const","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"gt","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"duration.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"duration.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"duration.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"duration.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"duration.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"duration.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"duration.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"duration.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"in","number":7,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"in","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.in","expression":"!(this in dyn(rules)['in']) ? 'value must be in list %s'.format([dyn(rules)['in']]) : ''"}]}}},{"name":"not_in","number":8,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"notIn","options":{"[buf.validate.priv.field]":{"cel":[{"id":"duration.not_in","expression":"this in rules.not_in ? 'value must not be in list %s'.format([rules.not_in]) : ''"}]}}}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"}]},{"name":"TimestampRules","field":[{"name":"const","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","oneofIndex":2,"jsonName":"const","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.const","expression":"this != rules.const ? 'value must equal %s'.format([rules.const]) : ''"}]}},"proto3Optional":true},{"name":"lt","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","oneofIndex":0,"jsonName":"lt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.lt","expression":"!has(rules.gte) && !has(rules.gt) && this >= rules.lt? 'value must be less than %s'.format([rules.lt]) : ''"}]}}},{"name":"lte","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","oneofIndex":0,"jsonName":"lte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.lte","expression":"!has(rules.gte) && !has(rules.gt) && this > rules.lte? 'value must be less than or equal to %s'.format([rules.lte]) : ''"}]}}},{"name":"lt_now","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":0,"jsonName":"ltNow","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.lt_now","expression":"this > now ? 'value must be less than now' : ''"}]}}},{"name":"gt","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","oneofIndex":1,"jsonName":"gt","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.gt","expression":"!has(rules.lt) && !has(rules.lte) && this <= rules.gt? 'value must be greater than %s'.format([rules.gt]) : ''"},{"id":"timestamp.gt_lt","expression":"has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? 'value must be greater than %s and less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"timestamp.gt_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? 'value must be greater than %s or less than %s'.format([rules.gt, rules.lt]) : ''"},{"id":"timestamp.gt_lte","expression":"has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? 'value must be greater than %s and less than or equal to %s'.format([rules.gt, rules.lte]) : ''"},{"id":"timestamp.gt_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? 'value must be greater than %s or less than or equal to %s'.format([rules.gt, rules.lte]) : ''"}]}}},{"name":"gte","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","oneofIndex":1,"jsonName":"gte","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.gte","expression":"!has(rules.lt) && !has(rules.lte) && this < rules.gte? 'value must be greater than or equal to %s'.format([rules.gte]) : ''"},{"id":"timestamp.gte_lt","expression":"has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? 'value must be greater than or equal to %s and less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"timestamp.gte_lt_exclusive","expression":"has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? 'value must be greater than or equal to %s or less than %s'.format([rules.gte, rules.lt]) : ''"},{"id":"timestamp.gte_lte","expression":"has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? 'value must be greater than or equal to %s and less than or equal to %s'.format([rules.gte, rules.lte]) : ''"},{"id":"timestamp.gte_lte_exclusive","expression":"has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? 'value must be greater than or equal to %s or less than or equal to %s'.format([rules.gte, rules.lte]) : ''"}]}}},{"name":"gt_now","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","oneofIndex":1,"jsonName":"gtNow","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.gt_now","expression":"this < now ? 'value must be greater than now' : ''"}]}}},{"name":"within","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","oneofIndex":3,"jsonName":"within","options":{"[buf.validate.priv.field]":{"cel":[{"id":"timestamp.within","expression":"this < now-rules.within || this > now+rules.within ? 'value must be within %s of now'.format([rules.within]) : ''"}]}},"proto3Optional":true}],"oneofDecl":[{"name":"less_than"},{"name":"greater_than"},{"name":"_const"},{"name":"_within"}]}],"enumType":[{"name":"Ignore","value":[{"name":"IGNORE_UNSPECIFIED","number":0},{"name":"IGNORE_IF_UNPOPULATED","number":1},{"name":"IGNORE_IF_DEFAULT_VALUE","number":2},{"name":"IGNORE_ALWAYS","number":3},{"name":"IGNORE_EMPTY","number":1,"options":{"deprecated":true}},{"name":"IGNORE_DEFAULT","number":2,"options":{"deprecated":true}}],"options":{"allowAlias":true}},{"name":"KnownRegex","value":[{"name":"KNOWN_REGEX_UNSPECIFIED","number":0},{"name":"KNOWN_REGEX_HTTP_HEADER_NAME","number":1},{"name":"KNOWN_REGEX_HTTP_HEADER_VALUE","number":2}]}],"extension":[{"name":"message","number":1159,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.MessageConstraints","extendee":".google.protobuf.MessageOptions","jsonName":"message","proto3Optional":true},{"name":"oneof","number":1159,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.OneofConstraints","extendee":".google.protobuf.OneofOptions","jsonName":"oneof","proto3Optional":true},{"name":"field","number":1159,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.validate.FieldConstraints","extendee":".google.protobuf.FieldOptions","jsonName":"field","proto3Optional":true}],"options":{"javaPackage":"build.buf.validate","javaOuterClassname":"ValidateProto","javaMultipleFiles":true,"goPackage":"buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"},"syntax":"proto3","bufExtension":{"isImport":true,"moduleInfo":{"name":{"remote":"buf.build","owner":"bufbuild","repository":"protovalidate"},"commit":"f05a6f4403ce4327bae4f50f281c3ed0"},"isSyntaxUnspecified":false}},{"name":"google/protobuf/any.proto","package":"google.protobuf","messageType":[{"name":"Any","field":[{"name":"type_url","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"typeUrl"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"AnyProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/anypb","objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"google/protobuf/wrappers.proto","package":"google.protobuf","messageType":[{"name":"DoubleValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}]},{"name":"FloatValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}]},{"name":"Int64Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}]},{"name":"UInt64Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}]},{"name":"Int32Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}]},{"name":"UInt32Value","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}]},{"name":"BoolValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}]},{"name":"StringValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}]},{"name":"BytesValue","field":[{"name":"value","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}]}],"options":{"javaPackage":"com.google.protobuf","javaOuterClassname":"WrappersProto","javaMultipleFiles":true,"goPackage":"google.golang.org/protobuf/types/known/wrapperspb","ccEnableArenas":true,"objcClassPrefix":"GPB","csharpNamespace":"Google.Protobuf.WellKnownTypes"},"syntax":"proto3","bufExtension":{"isImport":true,"isSyntaxUnspecified":false}},{"name":"bufext/cel/expr/conformance/proto3/test_all_types.proto","package":"bufext.cel.expr.conformance.proto3","dependency":["google/protobuf/any.proto","google/protobuf/duration.proto","google/protobuf/struct.proto","google/protobuf/timestamp.proto","google/protobuf/wrappers.proto"],"messageType":[{"name":"TestAllTypes","field":[{"name":"single_int32","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"singleInt32"},{"name":"single_int64","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"singleInt64"},{"name":"single_uint32","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"singleUint32"},{"name":"single_uint64","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"singleUint64"},{"name":"single_sint32","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_SINT32","jsonName":"singleSint32"},{"name":"single_sint64","number":6,"label":"LABEL_OPTIONAL","type":"TYPE_SINT64","jsonName":"singleSint64"},{"name":"single_fixed32","number":7,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED32","jsonName":"singleFixed32"},{"name":"single_fixed64","number":8,"label":"LABEL_OPTIONAL","type":"TYPE_FIXED64","jsonName":"singleFixed64"},{"name":"single_sfixed32","number":9,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED32","jsonName":"singleSfixed32"},{"name":"single_sfixed64","number":10,"label":"LABEL_OPTIONAL","type":"TYPE_SFIXED64","jsonName":"singleSfixed64"},{"name":"single_float","number":11,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"singleFloat"},{"name":"single_double","number":12,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"singleDouble"},{"name":"single_bool","number":13,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"singleBool"},{"name":"single_string","number":14,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"singleString"},{"name":"single_bytes","number":15,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"singleBytes"},{"name":"single_any","number":100,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"singleAny"},{"name":"single_duration","number":101,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"singleDuration"},{"name":"single_timestamp","number":102,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"singleTimestamp"},{"name":"single_struct","number":103,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"singleStruct"},{"name":"single_value","number":104,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"singleValue"},{"name":"single_int64_wrapper","number":105,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"singleInt64Wrapper"},{"name":"single_int32_wrapper","number":106,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"singleInt32Wrapper"},{"name":"single_double_wrapper","number":107,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"singleDoubleWrapper"},{"name":"single_float_wrapper","number":108,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"singleFloatWrapper"},{"name":"single_uint64_wrapper","number":109,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"singleUint64Wrapper"},{"name":"single_uint32_wrapper","number":110,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"singleUint32Wrapper"},{"name":"single_string_wrapper","number":111,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"singleStringWrapper"},{"name":"single_bool_wrapper","number":112,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"singleBoolWrapper"},{"name":"single_bytes_wrapper","number":113,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"singleBytesWrapper"},{"name":"list_value","number":114,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"listValue"},{"name":"null_value","number":115,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"nullValue"},{"name":"optional_null_value","number":116,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","oneofIndex":1,"jsonName":"optionalNullValue","proto3Optional":true},{"name":"single_nested_message","number":21,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","oneofIndex":0,"jsonName":"singleNestedMessage"},{"name":"single_nested_enum","number":22,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","oneofIndex":0,"jsonName":"singleNestedEnum"},{"name":"standalone_message","number":23,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"standaloneMessage"},{"name":"standalone_enum","number":24,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"standaloneEnum"},{"name":"repeated_int32","number":31,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"repeatedInt32"},{"name":"repeated_int64","number":32,"label":"LABEL_REPEATED","type":"TYPE_INT64","jsonName":"repeatedInt64"},{"name":"repeated_uint32","number":33,"label":"LABEL_REPEATED","type":"TYPE_UINT32","jsonName":"repeatedUint32"},{"name":"repeated_uint64","number":34,"label":"LABEL_REPEATED","type":"TYPE_UINT64","jsonName":"repeatedUint64"},{"name":"repeated_sint32","number":35,"label":"LABEL_REPEATED","type":"TYPE_SINT32","jsonName":"repeatedSint32"},{"name":"repeated_sint64","number":36,"label":"LABEL_REPEATED","type":"TYPE_SINT64","jsonName":"repeatedSint64"},{"name":"repeated_fixed32","number":37,"label":"LABEL_REPEATED","type":"TYPE_FIXED32","jsonName":"repeatedFixed32"},{"name":"repeated_fixed64","number":38,"label":"LABEL_REPEATED","type":"TYPE_FIXED64","jsonName":"repeatedFixed64"},{"name":"repeated_sfixed32","number":39,"label":"LABEL_REPEATED","type":"TYPE_SFIXED32","jsonName":"repeatedSfixed32"},{"name":"repeated_sfixed64","number":40,"label":"LABEL_REPEATED","type":"TYPE_SFIXED64","jsonName":"repeatedSfixed64"},{"name":"repeated_float","number":41,"label":"LABEL_REPEATED","type":"TYPE_FLOAT","jsonName":"repeatedFloat"},{"name":"repeated_double","number":42,"label":"LABEL_REPEATED","type":"TYPE_DOUBLE","jsonName":"repeatedDouble"},{"name":"repeated_bool","number":43,"label":"LABEL_REPEATED","type":"TYPE_BOOL","jsonName":"repeatedBool"},{"name":"repeated_string","number":44,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"repeatedString"},{"name":"repeated_bytes","number":45,"label":"LABEL_REPEATED","type":"TYPE_BYTES","jsonName":"repeatedBytes"},{"name":"repeated_nested_message","number":51,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"repeatedNestedMessage"},{"name":"repeated_nested_enum","number":52,"label":"LABEL_REPEATED","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"repeatedNestedEnum"},{"name":"repeated_string_piece","number":53,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"repeatedStringPiece","options":{"ctype":"STRING_PIECE"}},{"name":"repeated_cord","number":54,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"repeatedCord","options":{"ctype":"CORD"}},{"name":"repeated_lazy_message","number":55,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"repeatedLazyMessage","options":{"lazy":true}},{"name":"repeated_any","number":120,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"repeatedAny"},{"name":"repeated_duration","number":121,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"repeatedDuration"},{"name":"repeated_timestamp","number":122,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"repeatedTimestamp"},{"name":"repeated_struct","number":123,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"repeatedStruct"},{"name":"repeated_value","number":124,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"repeatedValue"},{"name":"repeated_int64_wrapper","number":125,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"repeatedInt64Wrapper"},{"name":"repeated_int32_wrapper","number":126,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"repeatedInt32Wrapper"},{"name":"repeated_double_wrapper","number":127,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"repeatedDoubleWrapper"},{"name":"repeated_float_wrapper","number":128,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"repeatedFloatWrapper"},{"name":"repeated_uint64_wrapper","number":129,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"repeatedUint64Wrapper"},{"name":"repeated_uint32_wrapper","number":130,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"repeatedUint32Wrapper"},{"name":"repeated_string_wrapper","number":131,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"repeatedStringWrapper"},{"name":"repeated_bool_wrapper","number":132,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"repeatedBoolWrapper"},{"name":"repeated_bytes_wrapper","number":133,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"repeatedBytesWrapper"},{"name":"repeated_list_value","number":134,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"repeatedListValue"},{"name":"repeated_null_value","number":135,"label":"LABEL_REPEATED","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"repeatedNullValue"},{"name":"map_int64_nested_type","number":62,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NestedTypeEntry","jsonName":"mapInt64NestedType"},{"name":"map_bool_bool","number":63,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolEntry","jsonName":"mapBoolBool"},{"name":"map_bool_string","number":64,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringEntry","jsonName":"mapBoolString"},{"name":"map_bool_bytes","number":65,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesEntry","jsonName":"mapBoolBytes"},{"name":"map_bool_int32","number":66,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32Entry","jsonName":"mapBoolInt32"},{"name":"map_bool_int64","number":67,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64Entry","jsonName":"mapBoolInt64"},{"name":"map_bool_uint32","number":68,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32Entry","jsonName":"mapBoolUint32"},{"name":"map_bool_uint64","number":69,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64Entry","jsonName":"mapBoolUint64"},{"name":"map_bool_float","number":70,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatEntry","jsonName":"mapBoolFloat"},{"name":"map_bool_double","number":71,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleEntry","jsonName":"mapBoolDouble"},{"name":"map_bool_enum","number":72,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolEnumEntry","jsonName":"mapBoolEnum"},{"name":"map_bool_message","number":73,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolMessageEntry","jsonName":"mapBoolMessage"},{"name":"map_bool_duration","number":228,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDurationEntry","jsonName":"mapBoolDuration"},{"name":"map_bool_timestamp","number":229,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolTimestampEntry","jsonName":"mapBoolTimestamp"},{"name":"map_bool_null_value","number":230,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolNullValueEntry","jsonName":"mapBoolNullValue"},{"name":"map_bool_any","number":246,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolAnyEntry","jsonName":"mapBoolAny"},{"name":"map_bool_struct","number":247,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStructEntry","jsonName":"mapBoolStruct"},{"name":"map_bool_value","number":248,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolValueEntry","jsonName":"mapBoolValue"},{"name":"map_bool_list_value","number":249,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolListValueEntry","jsonName":"mapBoolListValue"},{"name":"map_bool_int64_wrapper","number":250,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt64WrapperEntry","jsonName":"mapBoolInt64Wrapper"},{"name":"map_bool_int32_wrapper","number":251,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolInt32WrapperEntry","jsonName":"mapBoolInt32Wrapper"},{"name":"map_bool_double_wrapper","number":252,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolDoubleWrapperEntry","jsonName":"mapBoolDoubleWrapper"},{"name":"map_bool_float_wrapper","number":253,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolFloatWrapperEntry","jsonName":"mapBoolFloatWrapper"},{"name":"map_bool_uint64_wrapper","number":254,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint64WrapperEntry","jsonName":"mapBoolUint64Wrapper"},{"name":"map_bool_uint32_wrapper","number":255,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolUint32WrapperEntry","jsonName":"mapBoolUint32Wrapper"},{"name":"map_bool_string_wrapper","number":256,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolStringWrapperEntry","jsonName":"mapBoolStringWrapper"},{"name":"map_bool_bool_wrapper","number":257,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBoolWrapperEntry","jsonName":"mapBoolBoolWrapper"},{"name":"map_bool_bytes_wrapper","number":258,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapBoolBytesWrapperEntry","jsonName":"mapBoolBytesWrapper"},{"name":"map_int32_bool","number":74,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolEntry","jsonName":"mapInt32Bool"},{"name":"map_int32_string","number":75,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringEntry","jsonName":"mapInt32String"},{"name":"map_int32_bytes","number":76,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesEntry","jsonName":"mapInt32Bytes"},{"name":"map_int32_int32","number":77,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32Entry","jsonName":"mapInt32Int32"},{"name":"map_int32_int64","number":78,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64Entry","jsonName":"mapInt32Int64"},{"name":"map_int32_uint32","number":79,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32Entry","jsonName":"mapInt32Uint32"},{"name":"map_int32_uint64","number":80,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64Entry","jsonName":"mapInt32Uint64"},{"name":"map_int32_float","number":81,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatEntry","jsonName":"mapInt32Float"},{"name":"map_int32_double","number":82,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleEntry","jsonName":"mapInt32Double"},{"name":"map_int32_enum","number":83,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32EnumEntry","jsonName":"mapInt32Enum"},{"name":"map_int32_message","number":84,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32MessageEntry","jsonName":"mapInt32Message"},{"name":"map_int32_duration","number":231,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DurationEntry","jsonName":"mapInt32Duration"},{"name":"map_int32_timestamp","number":232,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32TimestampEntry","jsonName":"mapInt32Timestamp"},{"name":"map_int32_null_value","number":233,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32NullValueEntry","jsonName":"mapInt32NullValue"},{"name":"map_int32_any","number":259,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32AnyEntry","jsonName":"mapInt32Any"},{"name":"map_int32_struct","number":260,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StructEntry","jsonName":"mapInt32Struct"},{"name":"map_int32_value","number":261,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ValueEntry","jsonName":"mapInt32Value"},{"name":"map_int32_list_value","number":262,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32ListValueEntry","jsonName":"mapInt32ListValue"},{"name":"map_int32_int64_wrapper","number":263,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int64WrapperEntry","jsonName":"mapInt32Int64Wrapper"},{"name":"map_int32_int32_wrapper","number":264,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Int32WrapperEntry","jsonName":"mapInt32Int32Wrapper"},{"name":"map_int32_double_wrapper","number":265,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32DoubleWrapperEntry","jsonName":"mapInt32DoubleWrapper"},{"name":"map_int32_float_wrapper","number":266,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32FloatWrapperEntry","jsonName":"mapInt32FloatWrapper"},{"name":"map_int32_uint64_wrapper","number":267,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint64WrapperEntry","jsonName":"mapInt32Uint64Wrapper"},{"name":"map_int32_uint32_wrapper","number":268,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32Uint32WrapperEntry","jsonName":"mapInt32Uint32Wrapper"},{"name":"map_int32_string_wrapper","number":269,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32StringWrapperEntry","jsonName":"mapInt32StringWrapper"},{"name":"map_int32_bool_wrapper","number":270,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BoolWrapperEntry","jsonName":"mapInt32BoolWrapper"},{"name":"map_int32_bytes_wrapper","number":271,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt32BytesWrapperEntry","jsonName":"mapInt32BytesWrapper"},{"name":"map_int64_bool","number":85,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolEntry","jsonName":"mapInt64Bool"},{"name":"map_int64_string","number":86,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringEntry","jsonName":"mapInt64String"},{"name":"map_int64_bytes","number":87,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesEntry","jsonName":"mapInt64Bytes"},{"name":"map_int64_int32","number":88,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32Entry","jsonName":"mapInt64Int32"},{"name":"map_int64_int64","number":89,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64Entry","jsonName":"mapInt64Int64"},{"name":"map_int64_uint32","number":90,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32Entry","jsonName":"mapInt64Uint32"},{"name":"map_int64_uint64","number":91,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64Entry","jsonName":"mapInt64Uint64"},{"name":"map_int64_float","number":92,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatEntry","jsonName":"mapInt64Float"},{"name":"map_int64_double","number":93,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleEntry","jsonName":"mapInt64Double"},{"name":"map_int64_enum","number":94,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64EnumEntry","jsonName":"mapInt64Enum"},{"name":"map_int64_message","number":95,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64MessageEntry","jsonName":"mapInt64Message"},{"name":"map_int64_duration","number":234,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DurationEntry","jsonName":"mapInt64Duration"},{"name":"map_int64_timestamp","number":235,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64TimestampEntry","jsonName":"mapInt64Timestamp"},{"name":"map_int64_null_value","number":236,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64NullValueEntry","jsonName":"mapInt64NullValue"},{"name":"map_int64_any","number":272,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64AnyEntry","jsonName":"mapInt64Any"},{"name":"map_int64_struct","number":273,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StructEntry","jsonName":"mapInt64Struct"},{"name":"map_int64_value","number":274,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ValueEntry","jsonName":"mapInt64Value"},{"name":"map_int64_list_value","number":275,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64ListValueEntry","jsonName":"mapInt64ListValue"},{"name":"map_int64_int64_wrapper","number":276,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int64WrapperEntry","jsonName":"mapInt64Int64Wrapper"},{"name":"map_int64_int32_wrapper","number":277,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Int32WrapperEntry","jsonName":"mapInt64Int32Wrapper"},{"name":"map_int64_double_wrapper","number":278,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64DoubleWrapperEntry","jsonName":"mapInt64DoubleWrapper"},{"name":"map_int64_float_wrapper","number":279,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64FloatWrapperEntry","jsonName":"mapInt64FloatWrapper"},{"name":"map_int64_uint64_wrapper","number":280,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint64WrapperEntry","jsonName":"mapInt64Uint64Wrapper"},{"name":"map_int64_uint32_wrapper","number":281,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64Uint32WrapperEntry","jsonName":"mapInt64Uint32Wrapper"},{"name":"map_int64_string_wrapper","number":282,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64StringWrapperEntry","jsonName":"mapInt64StringWrapper"},{"name":"map_int64_bool_wrapper","number":283,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BoolWrapperEntry","jsonName":"mapInt64BoolWrapper"},{"name":"map_int64_bytes_wrapper","number":284,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapInt64BytesWrapperEntry","jsonName":"mapInt64BytesWrapper"},{"name":"map_uint32_bool","number":96,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolEntry","jsonName":"mapUint32Bool"},{"name":"map_uint32_string","number":97,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringEntry","jsonName":"mapUint32String"},{"name":"map_uint32_bytes","number":98,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesEntry","jsonName":"mapUint32Bytes"},{"name":"map_uint32_int32","number":99,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32Entry","jsonName":"mapUint32Int32"},{"name":"map_uint32_int64","number":200,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64Entry","jsonName":"mapUint32Int64"},{"name":"map_uint32_uint32","number":201,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32Entry","jsonName":"mapUint32Uint32"},{"name":"map_uint32_uint64","number":202,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64Entry","jsonName":"mapUint32Uint64"},{"name":"map_uint32_float","number":203,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatEntry","jsonName":"mapUint32Float"},{"name":"map_uint32_double","number":204,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleEntry","jsonName":"mapUint32Double"},{"name":"map_uint32_enum","number":205,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32EnumEntry","jsonName":"mapUint32Enum"},{"name":"map_uint32_message","number":206,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32MessageEntry","jsonName":"mapUint32Message"},{"name":"map_uint32_duration","number":237,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DurationEntry","jsonName":"mapUint32Duration"},{"name":"map_uint32_timestamp","number":238,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32TimestampEntry","jsonName":"mapUint32Timestamp"},{"name":"map_uint32_null_value","number":239,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32NullValueEntry","jsonName":"mapUint32NullValue"},{"name":"map_uint32_any","number":285,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32AnyEntry","jsonName":"mapUint32Any"},{"name":"map_uint32_struct","number":286,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StructEntry","jsonName":"mapUint32Struct"},{"name":"map_uint32_value","number":287,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ValueEntry","jsonName":"mapUint32Value"},{"name":"map_uint32_list_value","number":288,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32ListValueEntry","jsonName":"mapUint32ListValue"},{"name":"map_uint32_int64_wrapper","number":289,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int64WrapperEntry","jsonName":"mapUint32Int64Wrapper"},{"name":"map_uint32_int32_wrapper","number":290,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Int32WrapperEntry","jsonName":"mapUint32Int32Wrapper"},{"name":"map_uint32_double_wrapper","number":291,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32DoubleWrapperEntry","jsonName":"mapUint32DoubleWrapper"},{"name":"map_uint32_float_wrapper","number":292,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32FloatWrapperEntry","jsonName":"mapUint32FloatWrapper"},{"name":"map_uint32_uint64_wrapper","number":293,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint64WrapperEntry","jsonName":"mapUint32Uint64Wrapper"},{"name":"map_uint32_uint32_wrapper","number":294,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32Uint32WrapperEntry","jsonName":"mapUint32Uint32Wrapper"},{"name":"map_uint32_string_wrapper","number":295,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32StringWrapperEntry","jsonName":"mapUint32StringWrapper"},{"name":"map_uint32_bool_wrapper","number":296,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BoolWrapperEntry","jsonName":"mapUint32BoolWrapper"},{"name":"map_uint32_bytes_wrapper","number":297,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint32BytesWrapperEntry","jsonName":"mapUint32BytesWrapper"},{"name":"map_uint64_bool","number":207,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolEntry","jsonName":"mapUint64Bool"},{"name":"map_uint64_string","number":208,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringEntry","jsonName":"mapUint64String"},{"name":"map_uint64_bytes","number":209,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesEntry","jsonName":"mapUint64Bytes"},{"name":"map_uint64_int32","number":210,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32Entry","jsonName":"mapUint64Int32"},{"name":"map_uint64_int64","number":211,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64Entry","jsonName":"mapUint64Int64"},{"name":"map_uint64_uint32","number":212,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32Entry","jsonName":"mapUint64Uint32"},{"name":"map_uint64_uint64","number":213,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64Entry","jsonName":"mapUint64Uint64"},{"name":"map_uint64_float","number":214,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatEntry","jsonName":"mapUint64Float"},{"name":"map_uint64_double","number":215,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleEntry","jsonName":"mapUint64Double"},{"name":"map_uint64_enum","number":216,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64EnumEntry","jsonName":"mapUint64Enum"},{"name":"map_uint64_message","number":217,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64MessageEntry","jsonName":"mapUint64Message"},{"name":"map_uint64_duration","number":240,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DurationEntry","jsonName":"mapUint64Duration"},{"name":"map_uint64_timestamp","number":241,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64TimestampEntry","jsonName":"mapUint64Timestamp"},{"name":"map_uint64_null_value","number":242,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64NullValueEntry","jsonName":"mapUint64NullValue"},{"name":"map_uint64_any","number":298,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64AnyEntry","jsonName":"mapUint64Any"},{"name":"map_uint64_struct","number":299,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StructEntry","jsonName":"mapUint64Struct"},{"name":"map_uint64_value","number":300,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ValueEntry","jsonName":"mapUint64Value"},{"name":"map_uint64_list_value","number":301,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64ListValueEntry","jsonName":"mapUint64ListValue"},{"name":"map_uint64_int64_wrapper","number":302,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int64WrapperEntry","jsonName":"mapUint64Int64Wrapper"},{"name":"map_uint64_int32_wrapper","number":303,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Int32WrapperEntry","jsonName":"mapUint64Int32Wrapper"},{"name":"map_uint64_double_wrapper","number":304,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64DoubleWrapperEntry","jsonName":"mapUint64DoubleWrapper"},{"name":"map_uint64_float_wrapper","number":305,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64FloatWrapperEntry","jsonName":"mapUint64FloatWrapper"},{"name":"map_uint64_uint64_wrapper","number":306,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint64WrapperEntry","jsonName":"mapUint64Uint64Wrapper"},{"name":"map_uint64_uint32_wrapper","number":307,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64Uint32WrapperEntry","jsonName":"mapUint64Uint32Wrapper"},{"name":"map_uint64_string_wrapper","number":308,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64StringWrapperEntry","jsonName":"mapUint64StringWrapper"},{"name":"map_uint64_bool_wrapper","number":309,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BoolWrapperEntry","jsonName":"mapUint64BoolWrapper"},{"name":"map_uint64_bytes_wrapper","number":310,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapUint64BytesWrapperEntry","jsonName":"mapUint64BytesWrapper"},{"name":"map_string_bool","number":218,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolEntry","jsonName":"mapStringBool"},{"name":"map_string_string","number":61,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringEntry","jsonName":"mapStringString"},{"name":"map_string_bytes","number":219,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesEntry","jsonName":"mapStringBytes"},{"name":"map_string_int32","number":220,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32Entry","jsonName":"mapStringInt32"},{"name":"map_string_int64","number":221,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64Entry","jsonName":"mapStringInt64"},{"name":"map_string_uint32","number":222,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32Entry","jsonName":"mapStringUint32"},{"name":"map_string_uint64","number":223,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64Entry","jsonName":"mapStringUint64"},{"name":"map_string_float","number":224,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatEntry","jsonName":"mapStringFloat"},{"name":"map_string_double","number":225,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleEntry","jsonName":"mapStringDouble"},{"name":"map_string_enum","number":226,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringEnumEntry","jsonName":"mapStringEnum"},{"name":"map_string_message","number":227,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringMessageEntry","jsonName":"mapStringMessage"},{"name":"map_string_duration","number":243,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDurationEntry","jsonName":"mapStringDuration"},{"name":"map_string_timestamp","number":244,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringTimestampEntry","jsonName":"mapStringTimestamp"},{"name":"map_string_null_value","number":245,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringNullValueEntry","jsonName":"mapStringNullValue"},{"name":"map_string_any","number":311,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringAnyEntry","jsonName":"mapStringAny"},{"name":"map_string_struct","number":312,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStructEntry","jsonName":"mapStringStruct"},{"name":"map_string_value","number":313,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringValueEntry","jsonName":"mapStringValue"},{"name":"map_string_list_value","number":314,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringListValueEntry","jsonName":"mapStringListValue"},{"name":"map_string_int64_wrapper","number":315,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt64WrapperEntry","jsonName":"mapStringInt64Wrapper"},{"name":"map_string_int32_wrapper","number":316,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringInt32WrapperEntry","jsonName":"mapStringInt32Wrapper"},{"name":"map_string_double_wrapper","number":317,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringDoubleWrapperEntry","jsonName":"mapStringDoubleWrapper"},{"name":"map_string_float_wrapper","number":318,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringFloatWrapperEntry","jsonName":"mapStringFloatWrapper"},{"name":"map_string_uint64_wrapper","number":319,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint64WrapperEntry","jsonName":"mapStringUint64Wrapper"},{"name":"map_string_uint32_wrapper","number":320,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringUint32WrapperEntry","jsonName":"mapStringUint32Wrapper"},{"name":"map_string_string_wrapper","number":321,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringStringWrapperEntry","jsonName":"mapStringStringWrapper"},{"name":"map_string_bool_wrapper","number":322,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBoolWrapperEntry","jsonName":"mapStringBoolWrapper"},{"name":"map_string_bytes_wrapper","number":323,"label":"LABEL_REPEATED","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.MapStringBytesWrapperEntry","jsonName":"mapStringBytesWrapper"}],"nestedType":[{"name":"NestedMessage","field":[{"name":"bb","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"bb"}]},{"name":"MapInt64NestedTypeEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.NestedTestAllTypes","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolBoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolStringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolBytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolInt32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolInt64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolUint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolUint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolFloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolDoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolEnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolMessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolDurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolTimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolNullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolAnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolStructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolInt64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolInt32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolDoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolFloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolUint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolUint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolStringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolBoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapBoolBytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32BoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32StringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32BytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Int32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Int64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Uint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Uint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32FloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32DoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32EnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32MessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32DurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32TimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32NullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32AnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32StructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32ValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32ListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Int64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Int32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32DoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32FloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Uint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32Uint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32StringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32BoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt32BytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64BoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64StringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64BytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Int32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Int64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Uint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Uint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64FloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64DoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64EnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64MessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64DurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64TimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64NullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64AnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64StructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64ValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64ListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Int64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Int32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64DoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64FloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Uint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64Uint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64StringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64BoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapInt64BytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32BoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32StringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32BytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Int32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Int64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Uint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Uint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32FloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32DoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32EnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32MessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32DurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32TimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32NullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32AnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32StructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32ValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32ListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Int64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Int32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32DoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32FloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Uint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32Uint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32StringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32BoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint32BytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64BoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64StringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64BytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Int32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Int64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Uint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Uint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64FloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64DoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64EnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64MessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64DurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64TimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64NullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64AnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64StructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64ValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64ListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Int64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Int32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64DoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64FloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Uint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64Uint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64StringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64BoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapUint64BytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringBoolEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringStringEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringBytesEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BYTES","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringInt32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringInt64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_INT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringUint32Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT32","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringUint64Entry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_UINT64","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringFloatEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_FLOAT","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringDoubleEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_DOUBLE","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringEnumEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedEnum","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringMessageEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringDurationEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Duration","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringTimestampEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Timestamp","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringNullValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_ENUM","typeName":".google.protobuf.NullValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringAnyEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Any","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringStructEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Struct","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringListValueEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.ListValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringInt64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringInt32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.Int32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringDoubleWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.DoubleValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringFloatWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.FloatValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringUint64WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt64Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringUint32WrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.UInt32Value","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringStringWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.StringValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringBoolWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BoolValue","jsonName":"value"}],"options":{"mapEntry":true}},{"name":"MapStringBytesWrapperEntry","field":[{"name":"key","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"key"},{"name":"value","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".google.protobuf.BytesValue","jsonName":"value"}],"options":{"mapEntry":true}}],"enumType":[{"name":"NestedEnum","value":[{"name":"FOO","number":0},{"name":"BAR","number":1},{"name":"BAZ","number":2}]}],"oneofDecl":[{"name":"nested_type"},{"name":"_optional_null_value"}]},{"name":"NestedTestAllTypes","field":[{"name":"child","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.NestedTestAllTypes","jsonName":"child"},{"name":"payload","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes","jsonName":"payload"}]}],"enumType":[{"name":"GlobalEnum","value":[{"name":"GOO","number":0},{"name":"GAR","number":1},{"name":"GAZ","number":2}]}],"options":{"javaPackage":"dev.cel.expr.conformance.proto3","javaOuterClassname":"TestAllTypesProto","javaMultipleFiles":true,"goPackage":"cel.dev/expr/conformance/proto3","ccEnableArenas":true},"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}},{"name":"protoc-gen-bq-schema/bq_field.proto","package":"gen_bq_schema","dependency":["google/protobuf/descriptor.proto"],"messageType":[{"name":"BigQueryFieldOptions","field":[{"name":"require","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"require"},{"name":"type_override","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"typeOverride"},{"name":"ignore","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"ignore"},{"name":"description","number":4,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"description"},{"name":"name","number":5,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"name"}]}],"extension":[{"name":"bigquery","number":1021,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".gen_bq_schema.BigQueryFieldOptions","extendee":".google.protobuf.FieldOptions","jsonName":"bigquery"}],"options":{"goPackage":"github.com/GoogleCloudPlatform/protoc-gen-bq-schema/protos"},"syntax":"proto3","bufExtension":{"isImport":true,"moduleInfo":{"name":{"remote":"buf.build","owner":"liberetech","repository":"protoc-gen-bq-schema"},"commit":"30f1288484d442c78a00ec5992a20c22"},"isSyntaxUnspecified":false}},{"name":"protoc-gen-bq-schema/bq_table.proto","package":"gen_bq_schema","dependency":["google/protobuf/descriptor.proto"],"messageType":[{"name":"BigQueryMessageOptions","field":[{"name":"table_name","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"tableName"},{"name":"use_json_names","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_BOOL","jsonName":"useJsonNames"},{"name":"extra_fields","number":3,"label":"LABEL_REPEATED","type":"TYPE_STRING","jsonName":"extraFields"}]}],"extension":[{"name":"bigquery_opts","number":1021,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".gen_bq_schema.BigQueryMessageOptions","extendee":".google.protobuf.MessageOptions","jsonName":"bigqueryOpts"}],"options":{"goPackage":"github.com/GoogleCloudPlatform/protoc-gen-bq-schema/protos"},"syntax":"proto3","bufExtension":{"isImport":true,"moduleInfo":{"name":{"remote":"buf.build","owner":"liberetech","repository":"protoc-gen-bq-schema"},"commit":"30f1288484d442c78a00ec5992a20c22"},"isSyntaxUnspecified":false}},{"name":"buf/protoschema/test/v1/test_cases.proto","package":"buf.protoschema.test.v1","dependency":["buf/validate/validate.proto","bufext/cel/expr/conformance/proto3/test_all_types.proto","protoc-gen-bq-schema/bq_field.proto","protoc-gen-bq-schema/bq_table.proto"],"messageType":[{"name":"NestedReference","field":[{"name":"nested_message","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage","jsonName":"nestedMessage"}]},{"name":"CustomOptions","field":[{"name":"int32_field","number":1,"label":"LABEL_REPEATED","type":"TYPE_INT32","jsonName":"int32Field","options":{"packed":true,"[buf.validate.field]":{"cel":[{"id":"int32_field_id","message":"must be true","expression":"1 == 1"}]}}},{"name":"string_field","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","oneofIndex":0,"jsonName":"stringField","options":{"[buf.validate.field]":{"cel":[{"id":"string_field_id","message":"must be true","expression":"1 == 1"}]}}}],"oneofDecl":[{"name":"kind","options":{"[buf.validate.oneof]":{"required":true}}}],"options":{"noStandardDescriptorAccessor":true,"[buf.validate.message]":{"cel":[{"id":"custom_option_id","message":"must be true","expression":"1 == 1"}]}}},{"name":"CustomBigQuery","field":[{"name":"int32_field","number":1,"label":"LABEL_OPTIONAL","type":"TYPE_INT32","jsonName":"int32Field","options":{"[gen_bq_schema.bigquery]":{"typeOverride":"TIMESTAMP","name":"create_time"}}},{"name":"string_field","number":2,"label":"LABEL_OPTIONAL","type":"TYPE_STRING","jsonName":"stringField"},{"name":"nested_reference","number":3,"label":"LABEL_OPTIONAL","type":"TYPE_MESSAGE","typeName":".buf.protoschema.test.v1.NestedReference","jsonName":"nestedReference","options":{"[gen_bq_schema.bigquery]":{"ignore":true}}}],"options":{"[gen_bq_schema.bigquery_opts]":{"tableName":"CustomName","useJsonNames":true}}}],"syntax":"proto3","bufExtension":{"isImport":false,"isSyntaxUnspecified":false}}]} \ No newline at end of file diff --git a/internal/testdata/jsonschema-doc/test.TestAllTypes.yaml b/internal/testdata/jsonschema-doc/test.TestAllTypes.yaml new file mode 100644 index 0000000..aeef9f0 --- /dev/null +++ b/internal/testdata/jsonschema-doc/test.TestAllTypes.yaml @@ -0,0 +1,21 @@ +# yaml-language-server: $schema=../jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json +single_nested_enum: BAZ +repeated_string: + - foo + - bar +single_float_wrapper: + value: 1.23 +single_int32: 0 +single_timestamp: "1970-01-01T00:00:00Z" +list_value: + - foo + - 1.23 +repeated_bool_wrapper: + - value: true + - false +repeated_float_wrapper: + - 1.22 + - value: 1.23 + - -Infinity + - value: NaN +single_duration: 1h2m3s diff --git a/internal/testdata/jsonschema/buf.protoschema.test.v1.BigQueryWellknownTypeTest.schema.json b/internal/testdata/jsonschema/buf.protoschema.test.v1.BigQueryWellknownTypeTest.schema.json new file mode 100644 index 0000000..9fe4372 --- /dev/null +++ b/internal/testdata/jsonschema/buf.protoschema.test.v1.BigQueryWellknownTypeTest.schema.json @@ -0,0 +1,11 @@ +{ + "$id": "buf.protoschema.test.v1.BigQueryWellknownTypeTest.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "json_value": { + "$ref": "google.protobuf.Value.schema.json" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomBigQuery.schema.json b/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomBigQuery.schema.json new file mode 100644 index 0000000..4f2c8c4 --- /dev/null +++ b/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomBigQuery.schema.json @@ -0,0 +1,19 @@ +{ + "$id": "buf.protoschema.test.v1.CustomBigQuery.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "int32_field": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "nested_reference": { + "$ref": "buf.protoschema.test.v1.NestedReference.schema.json" + }, + "string_field": { + "type": "string" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomOptions.schema.json b/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomOptions.schema.json new file mode 100644 index 0000000..673d68a --- /dev/null +++ b/internal/testdata/jsonschema/buf.protoschema.test.v1.CustomOptions.schema.json @@ -0,0 +1,19 @@ +{ + "$id": "buf.protoschema.test.v1.CustomOptions.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "int32_field": { + "items": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "array" + }, + "string_field": { + "type": "string" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/buf.protoschema.test.v1.NestedReference.schema.json b/internal/testdata/jsonschema/buf.protoschema.test.v1.NestedReference.schema.json new file mode 100644 index 0000000..8356fa3 --- /dev/null +++ b/internal/testdata/jsonschema/buf.protoschema.test.v1.NestedReference.schema.json @@ -0,0 +1,11 @@ +{ + "$id": "buf.protoschema.test.v1.NestedReference.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "nested_message": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json new file mode 100644 index 0000000..5cf887c --- /dev/null +++ b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json @@ -0,0 +1,14 @@ +{ + "$id": "bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "child": { + "$ref": "bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json" + }, + "payload": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json new file mode 100644 index 0000000..86a15f4 --- /dev/null +++ b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json @@ -0,0 +1,13 @@ +{ + "$id": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "bb": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json new file mode 100644 index 0000000..c811ce7 --- /dev/null +++ b/internal/testdata/jsonschema/bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json @@ -0,0 +1,2587 @@ +{ + "$id": "bufext.cel.expr.conformance.proto3.TestAllTypes.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "additionalProperties": false, + "properties": { + "list_value": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "map_bool_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_bool_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "type": "boolean" + }, + "type": "object" + }, + "map_int32_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int32_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "object" + }, + "map_int64_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_nested_type": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.NestedTestAllTypes.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_int64_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "object" + }, + "map_string_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_string_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "type": "string" + }, + "type": "object" + }, + "map_uint32_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint32_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_any": { + "additionalProperties": { + "$ref": "google.protobuf.Any.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_bool": { + "additionalProperties": { + "type": "boolean" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_bool_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_bytes": { + "additionalProperties": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_bytes_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_double": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_double_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_duration": { + "additionalProperties": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_enum": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_float": { + "additionalProperties": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_float_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_int32": { + "additionalProperties": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_int32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_int64": { + "additionalProperties": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_int64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_list_value": { + "additionalProperties": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_message": { + "additionalProperties": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_null_value": { + "additionalProperties": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_string": { + "additionalProperties": { + "type": "string" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_string_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_struct": { + "additionalProperties": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_timestamp": { + "additionalProperties": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_uint32": { + "additionalProperties": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_uint32_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_uint64": { + "additionalProperties": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_uint64_wrapper": { + "additionalProperties": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "map_uint64_value": { + "additionalProperties": { + "$ref": "google.protobuf.Value.schema.json" + }, + "propertyNames": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "object" + }, + "null_value": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "optional_null_value": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "repeated_any": { + "items": { + "$ref": "google.protobuf.Any.schema.json" + }, + "type": "array" + }, + "repeated_bool": { + "items": { + "type": "boolean" + }, + "type": "array" + }, + "repeated_bool_wrapper": { + "items": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "type": "array" + }, + "repeated_bytes": { + "items": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "type": "array" + }, + "repeated_bytes_wrapper": { + "items": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "type": "array" + }, + "repeated_cord": { + "items": { + "type": "string" + }, + "type": "array" + }, + "repeated_double": { + "items": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "type": "array" + }, + "repeated_double_wrapper": { + "items": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "type": "array" + }, + "repeated_duration": { + "items": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "type": "array" + }, + "repeated_fixed32": { + "items": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "array" + }, + "repeated_fixed64": { + "items": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "array" + }, + "repeated_float": { + "items": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "type": "array" + }, + "repeated_float_wrapper": { + "items": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "type": "array" + }, + "repeated_int32": { + "items": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "array" + }, + "repeated_int32_wrapper": { + "items": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "type": "array" + }, + "repeated_int64": { + "items": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "array" + }, + "repeated_int64_wrapper": { + "items": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "type": "array" + }, + "repeated_lazy_message": { + "items": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "type": "array" + }, + "repeated_list_value": { + "items": { + "$ref": "google.protobuf.ListValue.schema.json" + }, + "type": "array" + }, + "repeated_nested_enum": { + "items": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "type": "array" + }, + "repeated_nested_message": { + "items": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "type": "array" + }, + "repeated_null_value": { + "items": { + "anyOf": [ + { + "enum": [ + "NULL_VALUE" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "type": "array" + }, + "repeated_sfixed32": { + "items": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "array" + }, + "repeated_sfixed64": { + "items": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "array" + }, + "repeated_sint32": { + "items": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "type": "array" + }, + "repeated_sint64": { + "items": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "type": "array" + }, + "repeated_string": { + "items": { + "type": "string" + }, + "type": "array" + }, + "repeated_string_piece": { + "items": { + "type": "string" + }, + "type": "array" + }, + "repeated_string_wrapper": { + "items": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "type": "array" + }, + "repeated_struct": { + "items": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "type": "array" + }, + "repeated_timestamp": { + "items": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "type": "array" + }, + "repeated_uint32": { + "items": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "type": "array" + }, + "repeated_uint32_wrapper": { + "items": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "type": "array" + }, + "repeated_uint64": { + "items": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "type": "array" + }, + "repeated_uint64_wrapper": { + "items": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "type": "array" + }, + "repeated_value": { + "items": { + "$ref": "google.protobuf.Value.schema.json" + }, + "type": "array" + }, + "single_any": { + "$ref": "google.protobuf.Any.schema.json" + }, + "single_bool": { + "type": "boolean" + }, + "single_bool_wrapper": { + "$ref": "google.protobuf.BoolValue.schema.json" + }, + "single_bytes": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + }, + "single_bytes_wrapper": { + "$ref": "google.protobuf.BytesValue.schema.json" + }, + "single_double": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "single_double_wrapper": { + "$ref": "google.protobuf.DoubleValue.schema.json" + }, + "single_duration": { + "$ref": "google.protobuf.Duration.schema.json" + }, + "single_fixed32": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "single_fixed64": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "single_float": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + }, + "single_float_wrapper": { + "$ref": "google.protobuf.FloatValue.schema.json" + }, + "single_int32": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "single_int32_wrapper": { + "$ref": "google.protobuf.Int32Value.schema.json" + }, + "single_int64": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "single_int64_wrapper": { + "$ref": "google.protobuf.Int64Value.schema.json" + }, + "single_nested_enum": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "single_nested_message": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + }, + "single_sfixed32": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "single_sfixed64": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "single_sint32": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "single_sint64": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + }, + "single_string": { + "type": "string" + }, + "single_string_wrapper": { + "$ref": "google.protobuf.StringValue.schema.json" + }, + "single_struct": { + "$ref": "google.protobuf.Struct.schema.json" + }, + "single_timestamp": { + "$ref": "google.protobuf.Timestamp.schema.json" + }, + "single_uint32": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + }, + "single_uint32_wrapper": { + "$ref": "google.protobuf.UInt32Value.schema.json" + }, + "single_uint64": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + }, + "single_uint64_wrapper": { + "$ref": "google.protobuf.UInt64Value.schema.json" + }, + "single_value": { + "$ref": "google.protobuf.Value.schema.json" + }, + "standalone_enum": { + "anyOf": [ + { + "enum": [ + "FOO", + "BAR", + "BAZ" + ], + "type": "string" + }, + { + "maximum": 2147483647, + "minimum": -2147483648, + "type": "integer" + } + ] + }, + "standalone_message": { + "$ref": "bufext.cel.expr.conformance.proto3.TestAllTypes.NestedMessage.schema.json" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Any.schema.json b/internal/testdata/jsonschema/google.protobuf.Any.schema.json new file mode 100644 index 0000000..6ec1523 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Any.schema.json @@ -0,0 +1,10 @@ +{ + "$id": "google.protobuf.Any.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "properties": { + "@type": { + "type": "string" + } + }, + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.BoolValue.schema.json b/internal/testdata/jsonschema/google.protobuf.BoolValue.schema.json new file mode 100644 index 0000000..196ba08 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.BoolValue.schema.json @@ -0,0 +1,18 @@ +{ + "$id": "google.protobuf.BoolValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "type": "boolean" + } + }, + "type": "object" + }, + { + "type": "boolean" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.BytesValue.schema.json b/internal/testdata/jsonschema/google.protobuf.BytesValue.schema.json new file mode 100644 index 0000000..3222cbe --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.BytesValue.schema.json @@ -0,0 +1,20 @@ +{ + "$id": "google.protobuf.BytesValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + } + }, + "type": "object" + }, + { + "pattern": "^[A-Za-z0-9+/]*={0,2}$", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.DoubleValue.schema.json b/internal/testdata/jsonschema/google.protobuf.DoubleValue.schema.json new file mode 100644 index 0000000..2877541 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.DoubleValue.schema.json @@ -0,0 +1,48 @@ +{ + "$id": "google.protobuf.DoubleValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + } + }, + "type": "object" + }, + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Duration.schema.json b/internal/testdata/jsonschema/google.protobuf.Duration.schema.json new file mode 100644 index 0000000..0dac4d8 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Duration.schema.json @@ -0,0 +1,26 @@ +{ + "$id": "google.protobuf.Duration.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "nanos": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "seconds": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + } + }, + "type": "object" + }, + { + "format": "duration", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.FloatValue.schema.json b/internal/testdata/jsonschema/google.protobuf.FloatValue.schema.json new file mode 100644 index 0000000..a099f71 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.FloatValue.schema.json @@ -0,0 +1,48 @@ +{ + "$id": "google.protobuf.FloatValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + } + }, + "type": "object" + }, + { + "anyOf": [ + { + "type": "number" + }, + { + "type": "string" + }, + { + "enum": [ + "NaN", + "Infinity", + "-Infinity" + ], + "type": "string" + } + ] + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Int32Value.schema.json b/internal/testdata/jsonschema/google.protobuf.Int32Value.schema.json new file mode 100644 index 0000000..b95bddc --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Int32Value.schema.json @@ -0,0 +1,22 @@ +{ + "$id": "google.protobuf.Int32Value.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + } + }, + "type": "object" + }, + { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Int64Value.schema.json b/internal/testdata/jsonschema/google.protobuf.Int64Value.schema.json new file mode 100644 index 0000000..463d582 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Int64Value.schema.json @@ -0,0 +1,22 @@ +{ + "$id": "google.protobuf.Int64Value.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + } + }, + "type": "object" + }, + { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.ListValue.schema.json b/internal/testdata/jsonschema/google.protobuf.ListValue.schema.json new file mode 100644 index 0000000..db512a4 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.ListValue.schema.json @@ -0,0 +1,5 @@ +{ + "$id": "google.protobuf.ListValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "array" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.StringValue.schema.json b/internal/testdata/jsonschema/google.protobuf.StringValue.schema.json new file mode 100644 index 0000000..b90d959 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.StringValue.schema.json @@ -0,0 +1,18 @@ +{ + "$id": "google.protobuf.StringValue.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "type": "string" + } + }, + "type": "object" + }, + { + "type": "string" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Struct.schema.json b/internal/testdata/jsonschema/google.protobuf.Struct.schema.json new file mode 100644 index 0000000..c000176 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Struct.schema.json @@ -0,0 +1,5 @@ +{ + "$id": "google.protobuf.Struct.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "type": "object" +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Timestamp.schema.json b/internal/testdata/jsonschema/google.protobuf.Timestamp.schema.json new file mode 100644 index 0000000..1027588 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Timestamp.schema.json @@ -0,0 +1,26 @@ +{ + "$id": "google.protobuf.Timestamp.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "nanos": { + "exclusiveMaximum": 2147483648, + "minimum": -2147483648, + "type": "integer" + }, + "seconds": { + "exclusiveMaximum": 9223372036854776000, + "minimum": -9223372036854776000, + "type": "integer" + } + }, + "type": "object" + }, + { + "format": "date-time", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.UInt32Value.schema.json b/internal/testdata/jsonschema/google.protobuf.UInt32Value.schema.json new file mode 100644 index 0000000..acaf7e1 --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.UInt32Value.schema.json @@ -0,0 +1,22 @@ +{ + "$id": "google.protobuf.UInt32Value.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + { + "exclusiveMaximum": 4294967296, + "minimum": 0, + "type": "integer" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.UInt64Value.schema.json b/internal/testdata/jsonschema/google.protobuf.UInt64Value.schema.json new file mode 100644 index 0000000..13776ec --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.UInt64Value.schema.json @@ -0,0 +1,22 @@ +{ + "$id": "google.protobuf.UInt64Value.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "value": { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + } + }, + "type": "object" + }, + { + "exclusiveMaximum": 18446744073709552000, + "minimum": 0, + "type": "integer" + } + ] +} \ No newline at end of file diff --git a/internal/testdata/jsonschema/google.protobuf.Value.schema.json b/internal/testdata/jsonschema/google.protobuf.Value.schema.json new file mode 100644 index 0000000..cc6828c --- /dev/null +++ b/internal/testdata/jsonschema/google.protobuf.Value.schema.json @@ -0,0 +1,4 @@ +{ + "$id": "google.protobuf.Value.schema.json", + "$schema": "https://json-schema.org/draft/2020-12/schema" +} \ No newline at end of file diff --git a/internal/testdata/pubsub/buf.protoschema.test.v1.BigQueryWellknownTypeTest.pubsub.proto b/internal/testdata/pubsub/buf.protoschema.test.v1.BigQueryWellknownTypeTest.pubsub.proto new file mode 100644 index 0000000..4f5a4fe --- /dev/null +++ b/internal/testdata/pubsub/buf.protoschema.test.v1.BigQueryWellknownTypeTest.pubsub.proto @@ -0,0 +1,20 @@ +syntax = "proto2"; +message BigQueryWellknownTypeTest { + optional Inline_google_protobuf_Value json_value = 1; + message Inline_google_protobuf_Struct { + map fields = 1; + } + message Inline_google_protobuf_ListValue { + repeated Inline_google_protobuf_Value values = 1; + } + message Inline_google_protobuf_Value { + oneof kind { + int32 null_value = 1; + double number_value = 2; + string string_value = 3; + bool bool_value = 4; + Inline_google_protobuf_Struct struct_value = 5; + Inline_google_protobuf_ListValue list_value = 6; + } + } +} diff --git a/internal/testdata/pubsub/buf.protoschema.test.v1.CustomBigQuery.pubsub.proto b/internal/testdata/pubsub/buf.protoschema.test.v1.CustomBigQuery.pubsub.proto new file mode 100644 index 0000000..a39cc38 --- /dev/null +++ b/internal/testdata/pubsub/buf.protoschema.test.v1.CustomBigQuery.pubsub.proto @@ -0,0 +1,315 @@ +syntax = "proto2"; +message CustomBigQuery { + optional int32 int32_field = 1; + optional string string_field = 2; + optional Inline_buf_protoschema_test_v1_NestedReference nested_reference = 3; + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes child = 1; + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_ListValue { + repeated Inline_google_protobuf_Value values = 1; + } + message Inline_google_protobuf_Value { + oneof kind { + int32 null_value = 1; + double number_value = 2; + string string_value = 3; + bool bool_value = 4; + Inline_google_protobuf_Struct struct_value = 5; + Inline_google_protobuf_ListValue list_value = 6; + } + } + message Inline_google_protobuf_Struct { + map fields = 1; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional Inline_google_protobuf_Struct single_struct = 103; + optional Inline_google_protobuf_Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional Inline_google_protobuf_ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated Inline_google_protobuf_Struct repeated_struct = 123; + repeated Inline_google_protobuf_Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated Inline_google_protobuf_ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + } + message Inline_buf_protoschema_test_v1_NestedReference { + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes.NestedMessage nested_message = 1; + } +} diff --git a/internal/testdata/pubsub/buf.protoschema.test.v1.CustomOptions.pubsub.proto b/internal/testdata/pubsub/buf.protoschema.test.v1.CustomOptions.pubsub.proto new file mode 100644 index 0000000..154057d --- /dev/null +++ b/internal/testdata/pubsub/buf.protoschema.test.v1.CustomOptions.pubsub.proto @@ -0,0 +1,8 @@ +syntax = "proto2"; +message CustomOptions { + option no_standard_descriptor_accessor = true; + repeated int32 int32_field = 1 [packed = true]; + oneof kind { + string string_field = 2; + } +} diff --git a/internal/testdata/pubsub/buf.protoschema.test.v1.NestedReference.pubsub.proto b/internal/testdata/pubsub/buf.protoschema.test.v1.NestedReference.pubsub.proto new file mode 100644 index 0000000..753a6a5 --- /dev/null +++ b/internal/testdata/pubsub/buf.protoschema.test.v1.NestedReference.pubsub.proto @@ -0,0 +1,310 @@ +syntax = "proto2"; +message NestedReference { + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes.NestedMessage nested_message = 1; + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes child = 1; + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_ListValue { + repeated Inline_google_protobuf_Value values = 1; + } + message Inline_google_protobuf_Value { + oneof kind { + int32 null_value = 1; + double number_value = 2; + string string_value = 3; + bool bool_value = 4; + Inline_google_protobuf_Struct struct_value = 5; + Inline_google_protobuf_ListValue list_value = 6; + } + } + message Inline_google_protobuf_Struct { + map fields = 1; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional Inline_google_protobuf_Struct single_struct = 103; + optional Inline_google_protobuf_Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional Inline_google_protobuf_ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated Inline_google_protobuf_Struct repeated_struct = 123; + repeated Inline_google_protobuf_Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated Inline_google_protobuf_ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + } +} diff --git a/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.pubsub.proto b/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.pubsub.proto new file mode 100644 index 0000000..f7cf558 --- /dev/null +++ b/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.NestedTestAllTypes.pubsub.proto @@ -0,0 +1,307 @@ +syntax = "proto2"; +message NestedTestAllTypes { + optional NestedTestAllTypes child = 1; + optional Inline_bufext_cel_expr_conformance_proto3_TestAllTypes payload = 2; + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_ListValue { + repeated Inline_google_protobuf_Value values = 1; + } + message Inline_google_protobuf_Value { + oneof kind { + int32 null_value = 1; + double number_value = 2; + string string_value = 3; + bool bool_value = 4; + Inline_google_protobuf_Struct struct_value = 5; + Inline_google_protobuf_ListValue list_value = 6; + } + } + message Inline_google_protobuf_Struct { + map fields = 1; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional Inline_google_protobuf_Struct single_struct = 103; + optional Inline_google_protobuf_Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional Inline_google_protobuf_ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated Inline_google_protobuf_Struct repeated_struct = 123; + repeated Inline_google_protobuf_Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated Inline_google_protobuf_ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } + } +} diff --git a/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.TestAllTypes.pubsub.proto b/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.TestAllTypes.pubsub.proto new file mode 100644 index 0000000..53e6cea --- /dev/null +++ b/internal/testdata/pubsub/bufext.cel.expr.conformance.proto3.TestAllTypes.pubsub.proto @@ -0,0 +1,307 @@ +syntax = "proto2"; +message TestAllTypes { + optional int32 single_int32 = 1; + optional int64 single_int64 = 2; + optional uint32 single_uint32 = 3; + optional uint64 single_uint64 = 4; + optional sint32 single_sint32 = 5; + optional sint64 single_sint64 = 6; + optional fixed32 single_fixed32 = 7; + optional fixed64 single_fixed64 = 8; + optional sfixed32 single_sfixed32 = 9; + optional sfixed64 single_sfixed64 = 10; + optional float single_float = 11; + optional double single_double = 12; + optional bool single_bool = 13; + optional string single_string = 14; + optional bytes single_bytes = 15; + optional Inline_google_protobuf_Any single_any = 100; + optional Inline_google_protobuf_Duration single_duration = 101; + optional Inline_google_protobuf_Timestamp single_timestamp = 102; + optional Inline_google_protobuf_Struct single_struct = 103; + optional Inline_google_protobuf_Value single_value = 104; + optional Inline_google_protobuf_Int64Value single_int64_wrapper = 105; + optional Inline_google_protobuf_Int32Value single_int32_wrapper = 106; + optional Inline_google_protobuf_DoubleValue single_double_wrapper = 107; + optional Inline_google_protobuf_FloatValue single_float_wrapper = 108; + optional Inline_google_protobuf_UInt64Value single_uint64_wrapper = 109; + optional Inline_google_protobuf_UInt32Value single_uint32_wrapper = 110; + optional Inline_google_protobuf_StringValue single_string_wrapper = 111; + optional Inline_google_protobuf_BoolValue single_bool_wrapper = 112; + optional Inline_google_protobuf_BytesValue single_bytes_wrapper = 113; + optional Inline_google_protobuf_ListValue list_value = 114; + optional int32 null_value = 115; + optional int32 optional_null_value = 116; + oneof nested_type { + NestedMessage single_nested_message = 21; + int32 single_nested_enum = 22; + } + optional NestedMessage standalone_message = 23; + optional int32 standalone_enum = 24; + repeated int32 repeated_int32 = 31; + repeated int64 repeated_int64 = 32; + repeated uint32 repeated_uint32 = 33; + repeated uint64 repeated_uint64 = 34; + repeated sint32 repeated_sint32 = 35; + repeated sint64 repeated_sint64 = 36; + repeated fixed32 repeated_fixed32 = 37; + repeated fixed64 repeated_fixed64 = 38; + repeated sfixed32 repeated_sfixed32 = 39; + repeated sfixed64 repeated_sfixed64 = 40; + repeated float repeated_float = 41; + repeated double repeated_double = 42; + repeated bool repeated_bool = 43; + repeated string repeated_string = 44; + repeated bytes repeated_bytes = 45; + repeated NestedMessage repeated_nested_message = 51; + repeated int32 repeated_nested_enum = 52; + repeated string repeated_string_piece = 53 [ctype = STRING_PIECE]; + repeated string repeated_cord = 54 [ctype = CORD]; + repeated NestedMessage repeated_lazy_message = 55 [lazy = true]; + repeated Inline_google_protobuf_Any repeated_any = 120; + repeated Inline_google_protobuf_Duration repeated_duration = 121; + repeated Inline_google_protobuf_Timestamp repeated_timestamp = 122; + repeated Inline_google_protobuf_Struct repeated_struct = 123; + repeated Inline_google_protobuf_Value repeated_value = 124; + repeated Inline_google_protobuf_Int64Value repeated_int64_wrapper = 125; + repeated Inline_google_protobuf_Int32Value repeated_int32_wrapper = 126; + repeated Inline_google_protobuf_DoubleValue repeated_double_wrapper = 127; + repeated Inline_google_protobuf_FloatValue repeated_float_wrapper = 128; + repeated Inline_google_protobuf_UInt64Value repeated_uint64_wrapper = 129; + repeated Inline_google_protobuf_UInt32Value repeated_uint32_wrapper = 130; + repeated Inline_google_protobuf_StringValue repeated_string_wrapper = 131; + repeated Inline_google_protobuf_BoolValue repeated_bool_wrapper = 132; + repeated Inline_google_protobuf_BytesValue repeated_bytes_wrapper = 133; + repeated Inline_google_protobuf_ListValue repeated_list_value = 134; + repeated int32 repeated_null_value = 135; + map map_int64_nested_type = 62; + map map_bool_bool = 63; + map map_bool_string = 64; + map map_bool_bytes = 65; + map map_bool_int32 = 66; + map map_bool_int64 = 67; + map map_bool_uint32 = 68; + map map_bool_uint64 = 69; + map map_bool_float = 70; + map map_bool_double = 71; + map map_bool_enum = 72; + map map_bool_message = 73; + map map_bool_duration = 228; + map map_bool_timestamp = 229; + map map_bool_null_value = 230; + map map_bool_any = 246; + map map_bool_struct = 247; + map map_bool_value = 248; + map map_bool_list_value = 249; + map map_bool_int64_wrapper = 250; + map map_bool_int32_wrapper = 251; + map map_bool_double_wrapper = 252; + map map_bool_float_wrapper = 253; + map map_bool_uint64_wrapper = 254; + map map_bool_uint32_wrapper = 255; + map map_bool_string_wrapper = 256; + map map_bool_bool_wrapper = 257; + map map_bool_bytes_wrapper = 258; + map map_int32_bool = 74; + map map_int32_string = 75; + map map_int32_bytes = 76; + map map_int32_int32 = 77; + map map_int32_int64 = 78; + map map_int32_uint32 = 79; + map map_int32_uint64 = 80; + map map_int32_float = 81; + map map_int32_double = 82; + map map_int32_enum = 83; + map map_int32_message = 84; + map map_int32_duration = 231; + map map_int32_timestamp = 232; + map map_int32_null_value = 233; + map map_int32_any = 259; + map map_int32_struct = 260; + map map_int32_value = 261; + map map_int32_list_value = 262; + map map_int32_int64_wrapper = 263; + map map_int32_int32_wrapper = 264; + map map_int32_double_wrapper = 265; + map map_int32_float_wrapper = 266; + map map_int32_uint64_wrapper = 267; + map map_int32_uint32_wrapper = 268; + map map_int32_string_wrapper = 269; + map map_int32_bool_wrapper = 270; + map map_int32_bytes_wrapper = 271; + map map_int64_bool = 85; + map map_int64_string = 86; + map map_int64_bytes = 87; + map map_int64_int32 = 88; + map map_int64_int64 = 89; + map map_int64_uint32 = 90; + map map_int64_uint64 = 91; + map map_int64_float = 92; + map map_int64_double = 93; + map map_int64_enum = 94; + map map_int64_message = 95; + map map_int64_duration = 234; + map map_int64_timestamp = 235; + map map_int64_null_value = 236; + map map_int64_any = 272; + map map_int64_struct = 273; + map map_int64_value = 274; + map map_int64_list_value = 275; + map map_int64_int64_wrapper = 276; + map map_int64_int32_wrapper = 277; + map map_int64_double_wrapper = 278; + map map_int64_float_wrapper = 279; + map map_int64_uint64_wrapper = 280; + map map_int64_uint32_wrapper = 281; + map map_int64_string_wrapper = 282; + map map_int64_bool_wrapper = 283; + map map_int64_bytes_wrapper = 284; + map map_uint32_bool = 96; + map map_uint32_string = 97; + map map_uint32_bytes = 98; + map map_uint32_int32 = 99; + map map_uint32_int64 = 200; + map map_uint32_uint32 = 201; + map map_uint32_uint64 = 202; + map map_uint32_float = 203; + map map_uint32_double = 204; + map map_uint32_enum = 205; + map map_uint32_message = 206; + map map_uint32_duration = 237; + map map_uint32_timestamp = 238; + map map_uint32_null_value = 239; + map map_uint32_any = 285; + map map_uint32_struct = 286; + map map_uint32_value = 287; + map map_uint32_list_value = 288; + map map_uint32_int64_wrapper = 289; + map map_uint32_int32_wrapper = 290; + map map_uint32_double_wrapper = 291; + map map_uint32_float_wrapper = 292; + map map_uint32_uint64_wrapper = 293; + map map_uint32_uint32_wrapper = 294; + map map_uint32_string_wrapper = 295; + map map_uint32_bool_wrapper = 296; + map map_uint32_bytes_wrapper = 297; + map map_uint64_bool = 207; + map map_uint64_string = 208; + map map_uint64_bytes = 209; + map map_uint64_int32 = 210; + map map_uint64_int64 = 211; + map map_uint64_uint32 = 212; + map map_uint64_uint64 = 213; + map map_uint64_float = 214; + map map_uint64_double = 215; + map map_uint64_enum = 216; + map map_uint64_message = 217; + map map_uint64_duration = 240; + map map_uint64_timestamp = 241; + map map_uint64_null_value = 242; + map map_uint64_any = 298; + map map_uint64_struct = 299; + map map_uint64_value = 300; + map map_uint64_list_value = 301; + map map_uint64_int64_wrapper = 302; + map map_uint64_int32_wrapper = 303; + map map_uint64_double_wrapper = 304; + map map_uint64_float_wrapper = 305; + map map_uint64_uint64_wrapper = 306; + map map_uint64_uint32_wrapper = 307; + map map_uint64_string_wrapper = 308; + map map_uint64_bool_wrapper = 309; + map map_uint64_bytes_wrapper = 310; + map map_string_bool = 218; + map map_string_string = 61; + map map_string_bytes = 219; + map map_string_int32 = 220; + map map_string_int64 = 221; + map map_string_uint32 = 222; + map map_string_uint64 = 223; + map map_string_float = 224; + map map_string_double = 225; + map map_string_enum = 226; + map map_string_message = 227; + map map_string_duration = 243; + map map_string_timestamp = 244; + map map_string_null_value = 245; + map map_string_any = 311; + map map_string_struct = 312; + map map_string_value = 313; + map map_string_list_value = 314; + map map_string_int64_wrapper = 315; + map map_string_int32_wrapper = 316; + map map_string_double_wrapper = 317; + map map_string_float_wrapper = 318; + map map_string_uint64_wrapper = 319; + map map_string_uint32_wrapper = 320; + map map_string_string_wrapper = 321; + map map_string_bool_wrapper = 322; + map map_string_bytes_wrapper = 323; + message NestedMessage { + optional int32 bb = 1; + } + message Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes { + optional Inline_bufext_cel_expr_conformance_proto3_NestedTestAllTypes child = 1; + optional TestAllTypes payload = 2; + } + message Inline_google_protobuf_Duration { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Timestamp { + optional int64 seconds = 1; + optional int32 nanos = 2; + } + message Inline_google_protobuf_Any { + optional string type_url = 1; + optional bytes value = 2; + } + message Inline_google_protobuf_ListValue { + repeated Inline_google_protobuf_Value values = 1; + } + message Inline_google_protobuf_Value { + oneof kind { + int32 null_value = 1; + double number_value = 2; + string string_value = 3; + bool bool_value = 4; + Inline_google_protobuf_Struct struct_value = 5; + Inline_google_protobuf_ListValue list_value = 6; + } + } + message Inline_google_protobuf_Struct { + map fields = 1; + } + message Inline_google_protobuf_Int64Value { + optional int64 value = 1; + } + message Inline_google_protobuf_Int32Value { + optional int32 value = 1; + } + message Inline_google_protobuf_DoubleValue { + optional double value = 1; + } + message Inline_google_protobuf_FloatValue { + optional float value = 1; + } + message Inline_google_protobuf_UInt64Value { + optional uint64 value = 1; + } + message Inline_google_protobuf_UInt32Value { + optional uint32 value = 1; + } + message Inline_google_protobuf_StringValue { + optional string value = 1; + } + message Inline_google_protobuf_BoolValue { + optional bool value = 1; + } + message Inline_google_protobuf_BytesValue { + optional bytes value = 1; + } + enum NestedEnum { + FOO = 0; + BAR = 1; + BAZ = 2; + } +}