From bcf2c8076b20c19fe08a650e18153bbbd25feb0a Mon Sep 17 00:00:00 2001 From: Ganesh Putta Date: Thu, 5 Dec 2024 17:06:43 -0600 Subject: [PATCH] Update cloud_controller_manager_tag --- .../containernetworking/plugins/1-28/GIT_TAG | 2 +- .../plugins/1-28/GOLANG_VERSION | 2 +- ...ix-CVE-2023-44487-and-CVE-2023-39325.patch | 71952 ---------------- .../0002-Bump-gPRC-version-to-v1.56.3.patch | 3159 - ...3-Bump-containerd-verison-to-v1.7.11.patch | 6610 -- ...-to-1.33.0-to-resolve-CVE-2024-24786.patch | 7533 -- ...-to-0.23.0-to-resolve-CVE-2023-45288.patch | 7679 -- .../plugins/1-29/GOLANG_VERSION | 2 +- ...verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch | 3157 - ...-to-1.33.0-to-resolve-CVE-2024-24786.patch | 7533 -- ...-to-0.23.0-to-resolve-CVE-2023-45288.patch | 2408 - .../plugins/1-30/GOLANG_VERSION | 2 +- ...verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch | 3157 - ...-to-1.33.0-to-resolve-CVE-2024-24786.patch | 7533 -- ...-to-0.23.0-to-resolve-CVE-2023-45288.patch | 2408 - .../plugins/1-31/GOLANG_VERSION | 2 +- ...verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch | 3157 - ...-to-1.33.0-to-resolve-CVE-2024-24786.patch | 7533 -- ...-to-0.23.0-to-resolve-CVE-2023-45288.patch | 2408 - 19 files changed, 5 insertions(+), 136232 deletions(-) delete mode 100644 projects/containernetworking/plugins/1-28/patches/0001-Bump-x-net-to-patch-version-to-fix-CVE-2023-44487-and-CVE-2023-39325.patch delete mode 100644 projects/containernetworking/plugins/1-28/patches/0002-Bump-gPRC-version-to-v1.56.3.patch delete mode 100644 projects/containernetworking/plugins/1-28/patches/0003-Bump-containerd-verison-to-v1.7.11.patch delete mode 100644 projects/containernetworking/plugins/1-28/patches/0004-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch delete mode 100644 projects/containernetworking/plugins/1-28/patches/0004-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch delete mode 100644 projects/containernetworking/plugins/1-29/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch delete mode 100644 projects/containernetworking/plugins/1-29/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch delete mode 100644 projects/containernetworking/plugins/1-29/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch delete mode 100644 projects/containernetworking/plugins/1-30/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch delete mode 100644 projects/containernetworking/plugins/1-30/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch delete mode 100644 projects/containernetworking/plugins/1-30/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch delete mode 100644 projects/containernetworking/plugins/1-31/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch delete mode 100644 projects/containernetworking/plugins/1-31/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch delete mode 100644 projects/containernetworking/plugins/1-31/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch diff --git a/projects/containernetworking/plugins/1-28/GIT_TAG b/projects/containernetworking/plugins/1-28/GIT_TAG index 18fa8e74f9..0d0c52f84d 100644 --- a/projects/containernetworking/plugins/1-28/GIT_TAG +++ b/projects/containernetworking/plugins/1-28/GIT_TAG @@ -1 +1 @@ -v1.3.0 +v1.4.0 diff --git a/projects/containernetworking/plugins/1-28/GOLANG_VERSION b/projects/containernetworking/plugins/1-28/GOLANG_VERSION index 5fb5a6b4f5..71f7f51df9 100644 --- a/projects/containernetworking/plugins/1-28/GOLANG_VERSION +++ b/projects/containernetworking/plugins/1-28/GOLANG_VERSION @@ -1 +1 @@ -1.20 +1.22 diff --git a/projects/containernetworking/plugins/1-28/patches/0001-Bump-x-net-to-patch-version-to-fix-CVE-2023-44487-and-CVE-2023-39325.patch b/projects/containernetworking/plugins/1-28/patches/0001-Bump-x-net-to-patch-version-to-fix-CVE-2023-44487-and-CVE-2023-39325.patch deleted file mode 100644 index 57308a28b2..0000000000 --- a/projects/containernetworking/plugins/1-28/patches/0001-Bump-x-net-to-patch-version-to-fix-CVE-2023-44487-and-CVE-2023-39325.patch +++ /dev/null @@ -1,71952 +0,0 @@ -From 023455f3e5175ef4cd3edbc437568b02ecc50f0c Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 2 Nov 2023 14:22:49 -0700 -Subject: [PATCH] Bump-x-net-to-patch-version-to-fix-CVE-2023-44487-and-CVE-2023-39325 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 16 +- - go.sum | 867 +-- - .../Microsoft/go-winio/.golangci.yml | 27 +- - .../github.com/Microsoft/go-winio/hvsock.go | 6 +- - .../Microsoft/go-winio/internal/fs/doc.go | 2 + - .../Microsoft/go-winio/internal/fs/fs.go | 202 + - .../go-winio/internal/fs/security.go | 12 + - .../go-winio/internal/fs/zsyscall_windows.go | 64 + - .../go-winio/internal/socket/socket.go | 4 +- - .../go-winio/internal/stringbuffer/wstring.go | 132 + - vendor/github.com/Microsoft/go-winio/pipe.go | 22 +- - .../Microsoft/go-winio/zsyscall_windows.go | 19 - - .../Microsoft/hcsshim/.gitattributes | 4 +- - .../github.com/Microsoft/hcsshim/.gitignore | 19 +- - .../Microsoft/hcsshim/.golangci.yml | 67 +- - vendor/github.com/Microsoft/hcsshim/Makefile | 86 +- - .../Microsoft/hcsshim/Protobuild.toml | 15 +- - vendor/github.com/Microsoft/hcsshim/README.md | 20 +- - .../github.com/Microsoft/hcsshim/SECURITY.md | 41 + - .../hcsshim/computestorage/attach.go | 6 +- - .../hcsshim/computestorage/destroy.go | 6 +- - .../hcsshim/computestorage/detach.go | 6 +- - .../hcsshim/computestorage/export.go | 12 +- - .../hcsshim/computestorage/format.go | 12 +- - .../hcsshim/computestorage/helpers.go | 14 +- - .../hcsshim/computestorage/import.go | 6 +- - .../hcsshim/computestorage/initialize.go | 6 +- - .../Microsoft/hcsshim/computestorage/mount.go | 7 +- - .../Microsoft/hcsshim/computestorage/setup.go | 14 +- - .../hcsshim/computestorage/storage.go | 9 +- - .../computestorage/zsyscall_windows.go | 187 +- - .../github.com/Microsoft/hcsshim/container.go | 4 +- - vendor/github.com/Microsoft/hcsshim/errors.go | 5 + - .../Microsoft/hcsshim/functional_tests.ps1 | 12 - - .../github.com/Microsoft/hcsshim/hcn/doc.go | 3 + - .../github.com/Microsoft/hcsshim/hcn/hcn.go | 10 +- - .../Microsoft/hcsshim/hcn/hcnendpoint.go | 66 +- - .../Microsoft/hcsshim/hcn/hcnerrors.go | 21 +- - .../Microsoft/hcsshim/hcn/hcnglobals.go | 2 + - .../Microsoft/hcsshim/hcn/hcnloadbalancer.go | 34 +- - .../Microsoft/hcsshim/hcn/hcnnamespace.go | 84 +- - .../Microsoft/hcsshim/hcn/hcnnetwork.go | 38 +- - .../Microsoft/hcsshim/hcn/hcnpolicy.go | 40 +- - .../Microsoft/hcsshim/hcn/hcnroute.go | 2 + - .../Microsoft/hcsshim/hcn/hcnsupport.go | 11 +- - .../Microsoft/hcsshim/hcn/zsyscall_windows.go | 521 +- - .../github.com/Microsoft/hcsshim/hcsshim.go | 12 +- - .../Microsoft/hcsshim/hnsendpoint.go | 4 +- - .../Microsoft/hcsshim/hnsglobals.go | 2 + - .../Microsoft/hcsshim/hnsnetwork.go | 6 +- - .../Microsoft/hcsshim/hnspolicylist.go | 2 + - .../Microsoft/hcsshim/hnssupport.go | 2 + - .../github.com/Microsoft/hcsshim/interface.go | 2 + - .../Microsoft/hcsshim/internal/cni/doc.go | 1 + - .../hcsshim/internal/cni/registry.go | 4 +- - .../Microsoft/hcsshim/internal/cow/cow.go | 2 + - .../hcsshim/internal/hcs/callback.go | 2 + - .../Microsoft/hcsshim/internal/hcs/doc.go | 1 + - .../Microsoft/hcsshim/internal/hcs/errors.go | 159 +- - .../Microsoft/hcsshim/internal/hcs/process.go | 104 +- - .../hcsshim/internal/hcs/schema1/schema1.go | 4 +- - .../hcs/schema2/cpu_group_property.go | 8 + - .../internal/hcs/schema2/debug_options.go | 22 + - .../internal/hcs/schema2/guest_state.go | 3 + - .../hcs/schema2/isolation_settings.go | 21 + - .../hcs/schema2/modify_setting_request.go | 4 +- - .../internal/hcs/schema2/security_settings.go | 16 + - .../internal/hcs/schema2/system_time.go | 28 + - .../hcs/schema2/time_zone_information.go | 26 + - .../hcsshim/internal/hcs/schema2/uefi.go | 2 + - .../internal/hcs/schema2/virtual_machine.go | 4 + - .../Microsoft/hcsshim/internal/hcs/service.go | 2 + - .../Microsoft/hcsshim/internal/hcs/system.go | 92 +- - .../Microsoft/hcsshim/internal/hcs/utils.go | 2 + - .../hcsshim/internal/hcs/waithelper.go | 18 +- - .../hcsshim/internal/hcserror/doc.go | 1 + - .../hcsshim/internal/hcserror/hcserror.go | 19 +- - .../Microsoft/hcsshim/internal/hns/doc.go | 1 + - .../Microsoft/hcsshim/internal/hns/hns.go | 2 +- - .../hcsshim/internal/hns/hnsendpoint.go | 6 +- - .../hcsshim/internal/hns/hnsfuncs.go | 2 + - .../hcsshim/internal/hns/hnsglobals.go | 2 + - .../hcsshim/internal/hns/hnsnetwork.go | 9 +- - .../hcsshim/internal/hns/hnspolicy.go | 18 +- - .../hcsshim/internal/hns/hnspolicylist.go | 2 + - .../hcsshim/internal/hns/hnssupport.go | 2 + - .../hcsshim/internal/hns/namespace.go | 2 + - .../hcsshim/internal/hns/zsyscall_windows.go | 10 +- - .../Microsoft/hcsshim/internal/interop/doc.go | 1 + - .../hcsshim/internal/interop/interop.go | 4 +- - .../internal/interop/zsyscall_windows.go | 7 +- - .../hcsshim/internal/jobobject/doc.go | 8 + - .../hcsshim/internal/jobobject/iocp.go | 2 + - .../hcsshim/internal/jobobject/jobobject.go | 155 +- - .../hcsshim/internal/jobobject/limits.go | 2 + - .../Microsoft/hcsshim/internal/log/context.go | 118 + - .../Microsoft/hcsshim/internal/log/format.go | 87 + - .../Microsoft/hcsshim/internal/log/g.go | 23 - - .../Microsoft/hcsshim/internal/log/hook.go | 173 + - .../Microsoft/hcsshim/internal/log/scrub.go | 184 + - .../hcsshim/internal/logfields/fields.go | 35 +- - .../Microsoft/hcsshim/internal/memory/pool.go | 316 + - .../hcsshim/internal/memory/types.go | 28 + - .../Microsoft/hcsshim/internal/oc/errors.go | 69 + - .../Microsoft/hcsshim/internal/oc/exporter.go | 77 +- - .../Microsoft/hcsshim/internal/oc/span.go | 45 +- - .../internal/protocol/guestrequest/types.go | 56 + - .../hcsshim/internal/regstate/doc.go | 1 + - .../hcsshim/internal/regstate/regstate.go | 4 +- - .../internal/regstate/zsyscall_windows.go | 7 +- - .../hcsshim/internal/runhcs/container.go | 5 +- - .../Microsoft/hcsshim/internal/runhcs/vm.go | 2 + - .../Microsoft/hcsshim/internal/safefile/do.go | 1 + - .../hcsshim/internal/safefile/safeopen.go | 30 +- - .../internal}/security/grantvmgroupaccess.go | 89 +- - .../internal}/security/syscall_windows.go | 0 - .../internal}/security/zsyscall_windows.go | 0 - .../hcsshim/internal/vmcompute/doc.go | 1 + - .../hcsshim/internal/vmcompute/vmcompute.go | 91 +- - .../internal/vmcompute/zsyscall_windows.go | 355 +- - .../hcsshim/internal/wclayer/activatelayer.go | 4 +- - .../internal/wclayer/baselayerreader.go | 216 + - .../{baselayer.go => baselayerwriter.go} | 3 +- - .../internal/wclayer/converttobaselayer.go | 158 + - .../hcsshim/internal/wclayer/createlayer.go | 4 +- - .../internal/wclayer/createscratchlayer.go | 4 +- - .../internal/wclayer/deactivatelayer.go | 4 +- - .../hcsshim/internal/wclayer/destroylayer.go | 4 +- - .../Microsoft/hcsshim/internal/wclayer/doc.go | 4 + - .../internal/wclayer/expandscratchsize.go | 4 +- - .../hcsshim/internal/wclayer/exportlayer.go | 21 +- - .../internal/wclayer/getlayermountpath.go | 4 +- - .../internal/wclayer/getsharedbaseimages.go | 4 +- - .../hcsshim/internal/wclayer/grantvmaccess.go | 4 +- - .../hcsshim/internal/wclayer/importlayer.go | 9 +- - .../hcsshim/internal/wclayer/layerexists.go | 4 +- - .../hcsshim/internal/wclayer/layerid.go | 4 +- - .../hcsshim/internal/wclayer/layerutils.go | 46 +- - .../hcsshim/internal/wclayer/legacy.go | 26 +- - .../hcsshim/internal/wclayer/nametoguid.go | 4 +- - .../hcsshim/internal/wclayer/preparelayer.go | 4 +- - .../hcsshim/internal/wclayer/processimage.go | 6 +- - .../internal/wclayer/unpreparelayer.go | 4 +- - .../hcsshim/internal/wclayer/wclayer.go | 7 +- - .../internal/wclayer/zsyscall_windows.go | 285 +- - .../hcsshim/internal/winapi/bindflt.go | 19 + - .../hcsshim/internal/winapi/console.go | 2 + - .../hcsshim/internal/winapi/devices.go | 2 + - .../Microsoft/hcsshim/internal/winapi/doc.go | 3 + - .../hcsshim/internal/winapi/elevation.go | 11 + - .../hcsshim/internal/winapi/errors.go | 2 + - .../hcsshim/internal/winapi/filesystem.go | 69 +- - .../hcsshim/internal/winapi/jobobject.go | 44 +- - .../hcsshim/internal/winapi/ofreg.go | 5 + - .../Microsoft/hcsshim/internal/winapi/path.go | 1 + - .../hcsshim/internal/winapi/process.go | 42 +- - .../hcsshim/internal/winapi/system.go | 2 + - .../hcsshim/internal/winapi/thread.go | 1 + - .../Microsoft/hcsshim/internal/winapi/user.go | 194 + - .../hcsshim/internal/winapi/utils.go | 4 +- - .../hcsshim/internal/winapi/winapi.go | 4 +- - .../internal/winapi/zsyscall_windows.go | 391 +- - vendor/github.com/Microsoft/hcsshim/layer.go | 5 + - .../hcsshim/osversion/osversion_windows.go | 11 +- - .../osversion/platform_compat_windows.go | 35 + - .../hcsshim/osversion/windowsbuilds.go | 40 +- - .../github.com/Microsoft/hcsshim/process.go | 2 + - .../Microsoft/hcsshim/zsyscall_windows.go | 7 +- - .../github.com/containerd/containerd/LICENSE | 191 + - .../github.com/containerd/containerd/NOTICE | 16 + - .../containerd/containerd/errdefs/errors.go | 92 + - .../containerd/containerd/errdefs/grpc.go | 147 + - vendor/github.com/golang/protobuf/AUTHORS | 3 + - .../github.com/golang/protobuf/CONTRIBUTORS | 3 + - vendor/github.com/golang/protobuf/LICENSE | 28 + - .../golang/protobuf/proto/buffer.go | 324 + - .../golang/protobuf/proto/defaults.go | 63 + - .../golang/protobuf/proto/deprecated.go | 113 + - .../golang/protobuf/proto/discard.go | 58 + - .../golang/protobuf/proto/extensions.go | 356 ++ - .../golang/protobuf/proto/properties.go | 306 + - .../github.com/golang/protobuf/proto/proto.go | 167 + - .../golang/protobuf/proto/registry.go | 317 + - .../golang/protobuf/proto/text_decode.go | 801 +++ - .../golang/protobuf/proto/text_encode.go | 560 ++ - .../github.com/golang/protobuf/proto/wire.go | 78 + - .../golang/protobuf/proto/wrappers.go | 34 + - .../github.com/golang/protobuf/ptypes/any.go | 179 + - .../golang/protobuf/ptypes/any/any.pb.go | 62 + - .../github.com/golang/protobuf/ptypes/doc.go | 10 + - .../golang/protobuf/ptypes/duration.go | 76 + - .../protobuf/ptypes/duration/duration.pb.go | 63 + - .../golang/protobuf/ptypes/timestamp.go | 112 + - .../protobuf/ptypes/timestamp/timestamp.pb.go | 64 + - vendor/golang.org/x/net/html/doc.go | 22 +- - vendor/golang.org/x/net/html/render.go | 28 +- - vendor/golang.org/x/net/html/token.go | 9 +- - .../sys/internal/unsafeheader/unsafeheader.go | 30 - - vendor/golang.org/x/sys/unix/mkall.sh | 2 +- - vendor/golang.org/x/sys/unix/mkerrors.sh | 12 +- - vendor/golang.org/x/sys/unix/mmap_nomremap.go | 14 + - vendor/golang.org/x/sys/unix/mremap.go | 53 + - vendor/golang.org/x/sys/unix/ptrace_darwin.go | 6 - - vendor/golang.org/x/sys/unix/ptrace_ios.go | 6 - - vendor/golang.org/x/sys/unix/syscall_aix.go | 17 - - vendor/golang.org/x/sys/unix/syscall_bsd.go | 14 - - .../golang.org/x/sys/unix/syscall_darwin.go | 236 +- - .../x/sys/unix/syscall_darwin_amd64.go | 1 - - .../x/sys/unix/syscall_darwin_arm64.go | 1 - - .../x/sys/unix/syscall_dragonfly.go | 198 - - .../golang.org/x/sys/unix/syscall_freebsd.go | 192 - - vendor/golang.org/x/sys/unix/syscall_linux.go | 224 +- - .../x/sys/unix/syscall_linux_amd64.go | 2 +- - .../x/sys/unix/syscall_linux_arm64.go | 2 +- - .../x/sys/unix/syscall_linux_loong64.go | 2 +- - .../x/sys/unix/syscall_linux_mips64x.go | 2 +- - .../x/sys/unix/syscall_linux_riscv64.go | 13 +- - .../golang.org/x/sys/unix/syscall_netbsd.go | 272 +- - .../golang.org/x/sys/unix/syscall_openbsd.go | 91 +- - .../golang.org/x/sys/unix/syscall_solaris.go | 32 - - vendor/golang.org/x/sys/unix/syscall_unix.go | 11 + - .../x/sys/unix/syscall_zos_s390x.go | 15 - - vendor/golang.org/x/sys/unix/zerrors_linux.go | 66 +- - .../x/sys/unix/zerrors_linux_386.go | 11 + - .../x/sys/unix/zerrors_linux_amd64.go | 11 + - .../x/sys/unix/zerrors_linux_arm.go | 11 + - .../x/sys/unix/zerrors_linux_arm64.go | 13 + - .../x/sys/unix/zerrors_linux_loong64.go | 13 + - .../x/sys/unix/zerrors_linux_mips.go | 11 + - .../x/sys/unix/zerrors_linux_mips64.go | 11 + - .../x/sys/unix/zerrors_linux_mips64le.go | 11 + - .../x/sys/unix/zerrors_linux_mipsle.go | 11 + - .../x/sys/unix/zerrors_linux_ppc.go | 11 + - .../x/sys/unix/zerrors_linux_ppc64.go | 11 + - .../x/sys/unix/zerrors_linux_ppc64le.go | 11 + - .../x/sys/unix/zerrors_linux_riscv64.go | 11 + - .../x/sys/unix/zerrors_linux_s390x.go | 11 + - .../x/sys/unix/zerrors_linux_sparc64.go | 59 + - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 22 - - .../x/sys/unix/zsyscall_aix_ppc64.go | 22 - - .../x/sys/unix/zsyscall_darwin_amd64.go | 40 +- - .../x/sys/unix/zsyscall_darwin_amd64.s | 149 - - .../x/sys/unix/zsyscall_darwin_arm64.go | 40 +- - .../x/sys/unix/zsyscall_darwin_arm64.s | 149 - - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 22 - - .../x/sys/unix/zsyscall_freebsd_386.go | 22 - - .../x/sys/unix/zsyscall_freebsd_amd64.go | 22 - - .../x/sys/unix/zsyscall_freebsd_arm.go | 22 - - .../x/sys/unix/zsyscall_freebsd_arm64.go | 22 - - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 22 - - .../x/sys/unix/zsyscall_illumos_amd64.go | 10 +- - .../golang.org/x/sys/unix/zsyscall_linux.go | 69 +- - .../x/sys/unix/zsyscall_linux_riscv64.go | 16 + - .../x/sys/unix/zsyscall_netbsd_386.go | 29 +- - .../x/sys/unix/zsyscall_netbsd_amd64.go | 29 +- - .../x/sys/unix/zsyscall_netbsd_arm.go | 29 +- - .../x/sys/unix/zsyscall_netbsd_arm64.go | 29 +- - .../x/sys/unix/zsyscall_openbsd_386.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_386.s | 10 + - .../x/sys/unix/zsyscall_openbsd_amd64.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_amd64.s | 10 + - .../x/sys/unix/zsyscall_openbsd_arm.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_arm.s | 10 + - .../x/sys/unix/zsyscall_openbsd_arm64.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_arm64.s | 10 + - .../x/sys/unix/zsyscall_openbsd_mips64.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_mips64.s | 10 + - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_ppc64.s | 12 + - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 54 +- - .../x/sys/unix/zsyscall_openbsd_riscv64.s | 10 + - .../x/sys/unix/zsyscall_solaris_amd64.go | 256 +- - .../x/sys/unix/zsyscall_zos_s390x.go | 11 - - .../x/sys/unix/zsysnum_linux_386.go | 1 + - .../x/sys/unix/zsysnum_linux_amd64.go | 1 + - .../x/sys/unix/zsysnum_linux_arm.go | 1 + - .../x/sys/unix/zsysnum_linux_arm64.go | 1 + - .../x/sys/unix/zsysnum_linux_loong64.go | 1 + - .../x/sys/unix/zsysnum_linux_mips.go | 1 + - .../x/sys/unix/zsysnum_linux_mips64.go | 1 + - .../x/sys/unix/zsysnum_linux_mips64le.go | 1 + - .../x/sys/unix/zsysnum_linux_mipsle.go | 1 + - .../x/sys/unix/zsysnum_linux_ppc.go | 1 + - .../x/sys/unix/zsysnum_linux_ppc64.go | 1 + - .../x/sys/unix/zsysnum_linux_ppc64le.go | 1 + - .../x/sys/unix/zsysnum_linux_riscv64.go | 3 + - .../x/sys/unix/zsysnum_linux_s390x.go | 2 + - .../x/sys/unix/zsysnum_linux_sparc64.go | 1 + - vendor/golang.org/x/sys/unix/ztypes_linux.go | 103 +- - .../golang.org/x/sys/unix/ztypes_linux_386.go | 2 + - .../x/sys/unix/ztypes_linux_amd64.go | 2 + - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 2 + - .../x/sys/unix/ztypes_linux_arm64.go | 2 + - .../x/sys/unix/ztypes_linux_loong64.go | 2 + - .../x/sys/unix/ztypes_linux_mips.go | 2 + - .../x/sys/unix/ztypes_linux_mips64.go | 2 + - .../x/sys/unix/ztypes_linux_mips64le.go | 2 + - .../x/sys/unix/ztypes_linux_mipsle.go | 2 + - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 2 + - .../x/sys/unix/ztypes_linux_ppc64.go | 2 + - .../x/sys/unix/ztypes_linux_ppc64le.go | 2 + - .../x/sys/unix/ztypes_linux_riscv64.go | 29 + - .../x/sys/unix/ztypes_linux_s390x.go | 2 + - .../x/sys/unix/ztypes_linux_sparc64.go | 2 + - .../golang.org/x/sys/windows/env_windows.go | 6 +- - .../golang.org/x/sys/windows/exec_windows.go | 92 +- - .../x/sys/windows/security_windows.go | 21 +- - vendor/golang.org/x/sys/windows/service.go | 11 + - .../x/sys/windows/syscall_windows.go | 70 +- - .../golang.org/x/sys/windows/types_windows.go | 13 +- - .../x/sys/windows/zsyscall_windows.go | 71 +- - .../text/internal/language/compact/tables.go | 356 +- - .../x/text/internal/language/tables.go | 4686 +++++++------- - vendor/golang.org/x/text/language/match.go | 2 +- - vendor/golang.org/x/text/language/tables.go | 138 +- - vendor/google.golang.org/genproto/LICENSE | 202 + - .../googleapis/rpc/status/status.pb.go | 201 + - vendor/google.golang.org/grpc/AUTHORS | 1 + - vendor/google.golang.org/grpc/LICENSE | 202 + - vendor/google.golang.org/grpc/NOTICE.txt | 13 + - .../grpc/codes/code_string.go | 62 + - vendor/google.golang.org/grpc/codes/codes.go | 244 + - .../grpc/internal/status/status.go | 166 + - .../google.golang.org/grpc/status/status.go | 135 + - vendor/google.golang.org/protobuf/LICENSE | 27 + - vendor/google.golang.org/protobuf/PATENTS | 22 + - .../protobuf/encoding/prototext/decode.go | 770 +++ - .../protobuf/encoding/prototext/doc.go | 7 + - .../protobuf/encoding/prototext/encode.go | 370 ++ - .../protobuf/encoding/protowire/wire.go | 547 ++ - .../protobuf/internal/descfmt/stringer.go | 318 + - .../protobuf/internal/descopts/options.go | 29 + - .../protobuf/internal/detrand/rand.go | 69 + - .../internal/encoding/defval/default.go | 213 + - .../encoding/messageset/messageset.go | 242 + - .../protobuf/internal/encoding/tag/tag.go | 207 + - .../protobuf/internal/encoding/text/decode.go | 686 ++ - .../internal/encoding/text/decode_number.go | 211 + - .../internal/encoding/text/decode_string.go | 161 + - .../internal/encoding/text/decode_token.go | 373 ++ - .../protobuf/internal/encoding/text/doc.go | 29 + - .../protobuf/internal/encoding/text/encode.go | 270 + - .../protobuf/internal/errors/errors.go | 89 + - .../protobuf/internal/errors/is_go112.go | 40 + - .../protobuf/internal/errors/is_go113.go | 13 + - .../protobuf/internal/filedesc/build.go | 157 + - .../protobuf/internal/filedesc/desc.go | 633 ++ - .../protobuf/internal/filedesc/desc_init.go | 471 ++ - .../protobuf/internal/filedesc/desc_lazy.go | 704 ++ - .../protobuf/internal/filedesc/desc_list.go | 457 ++ - .../internal/filedesc/desc_list_gen.go | 356 ++ - .../protobuf/internal/filedesc/placeholder.go | 109 + - .../protobuf/internal/filetype/build.go | 296 + - .../protobuf/internal/flags/flags.go | 24 + - .../internal/flags/proto_legacy_disable.go | 10 + - .../internal/flags/proto_legacy_enable.go | 10 + - .../protobuf/internal/genid/any_gen.go | 34 + - .../protobuf/internal/genid/api_gen.go | 106 + - .../protobuf/internal/genid/descriptor_gen.go | 871 +++ - .../protobuf/internal/genid/doc.go | 11 + - .../protobuf/internal/genid/duration_gen.go | 34 + - .../protobuf/internal/genid/empty_gen.go | 19 + - .../protobuf/internal/genid/field_mask_gen.go | 31 + - .../protobuf/internal/genid/goname.go | 25 + - .../protobuf/internal/genid/map_entry.go | 16 + - .../internal/genid/source_context_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 116 + - .../protobuf/internal/genid/timestamp_gen.go | 34 + - .../protobuf/internal/genid/type_gen.go | 184 + - .../protobuf/internal/genid/wrappers.go | 13 + - .../protobuf/internal/genid/wrappers_gen.go | 175 + - .../protobuf/internal/impl/api_export.go | 177 + - .../protobuf/internal/impl/checkinit.go | 141 + - .../protobuf/internal/impl/codec_extension.go | 223 + - .../protobuf/internal/impl/codec_field.go | 830 +++ - .../protobuf/internal/impl/codec_gen.go | 5637 +++++++++++++++++ - .../protobuf/internal/impl/codec_map.go | 388 ++ - .../protobuf/internal/impl/codec_map_go111.go | 38 + - .../protobuf/internal/impl/codec_map_go112.go | 12 + - .../protobuf/internal/impl/codec_message.go | 217 + - .../internal/impl/codec_messageset.go | 123 + - .../protobuf/internal/impl/codec_reflect.go | 210 + - .../protobuf/internal/impl/codec_tables.go | 557 ++ - .../protobuf/internal/impl/codec_unsafe.go | 18 + - .../protobuf/internal/impl/convert.go | 495 ++ - .../protobuf/internal/impl/convert_list.go | 141 + - .../protobuf/internal/impl/convert_map.go | 121 + - .../protobuf/internal/impl/decode.go | 285 + - .../protobuf/internal/impl/encode.go | 201 + - .../protobuf/internal/impl/enum.go | 21 + - .../protobuf/internal/impl/extension.go | 156 + - .../protobuf/internal/impl/legacy_enum.go | 218 + - .../protobuf/internal/impl/legacy_export.go | 92 + - .../internal/impl/legacy_extension.go | 176 + - .../protobuf/internal/impl/legacy_file.go | 81 + - .../protobuf/internal/impl/legacy_message.go | 563 ++ - .../protobuf/internal/impl/merge.go | 176 + - .../protobuf/internal/impl/merge_gen.go | 209 + - .../protobuf/internal/impl/message.go | 279 + - .../protobuf/internal/impl/message_reflect.go | 463 ++ - .../internal/impl/message_reflect_field.go | 543 ++ - .../internal/impl/message_reflect_gen.go | 249 + - .../protobuf/internal/impl/pointer_reflect.go | 179 + - .../protobuf/internal/impl/pointer_unsafe.go | 175 + - .../protobuf/internal/impl/validate.go | 576 ++ - .../protobuf/internal/impl/weak.go | 74 + - .../protobuf/internal/order/order.go | 89 + - .../protobuf/internal/order/range.go | 115 + - .../protobuf/internal/pragma/pragma.go | 29 + - .../protobuf/internal/set/ints.go | 58 + - .../protobuf/internal/strs/strings.go | 196 + - .../protobuf/internal/strs/strings_pure.go | 28 + - .../protobuf/internal/strs/strings_unsafe.go | 95 + - .../protobuf/internal/version/version.go | 79 + - .../protobuf/proto/checkinit.go | 71 + - .../protobuf/proto/decode.go | 294 + - .../protobuf/proto/decode_gen.go | 603 ++ - .../google.golang.org/protobuf/proto/doc.go | 86 + - .../protobuf/proto/encode.go | 322 + - .../protobuf/proto/encode_gen.go | 97 + - .../google.golang.org/protobuf/proto/equal.go | 57 + - .../protobuf/proto/extension.go | 92 + - .../google.golang.org/protobuf/proto/merge.go | 139 + - .../protobuf/proto/messageset.go | 93 + - .../google.golang.org/protobuf/proto/proto.go | 43 + - .../protobuf/proto/proto_methods.go | 20 + - .../protobuf/proto/proto_reflect.go | 20 + - .../google.golang.org/protobuf/proto/reset.go | 43 + - .../google.golang.org/protobuf/proto/size.go | 97 + - .../protobuf/proto/size_gen.go | 55 + - .../protobuf/proto/wrappers.go | 29 + - .../protobuf/reflect/protodesc/desc.go | 276 + - .../protobuf/reflect/protodesc/desc_init.go | 248 + - .../reflect/protodesc/desc_resolve.go | 286 + - .../reflect/protodesc/desc_validate.go | 374 ++ - .../protobuf/reflect/protodesc/proto.go | 252 + - .../protobuf/reflect/protoreflect/methods.go | 78 + - .../protobuf/reflect/protoreflect/proto.go | 508 ++ - .../protobuf/reflect/protoreflect/source.go | 129 + - .../reflect/protoreflect/source_gen.go | 475 ++ - .../protobuf/reflect/protoreflect/type.go | 666 ++ - .../protobuf/reflect/protoreflect/value.go | 285 + - .../reflect/protoreflect/value_equal.go | 168 + - .../reflect/protoreflect/value_pure.go | 60 + - .../reflect/protoreflect/value_union.go | 438 ++ - .../reflect/protoreflect/value_unsafe.go | 99 + - .../reflect/protoregistry/registry.go | 882 +++ - .../protobuf/runtime/protoiface/legacy.go | 15 + - .../protobuf/runtime/protoiface/methods.go | 168 + - .../protobuf/runtime/protoimpl/impl.go | 44 + - .../protobuf/runtime/protoimpl/version.go | 60 + - .../types/descriptorpb/descriptor.pb.go | 4350 +++++++++++++ - .../protobuf/types/known/anypb/any.pb.go | 495 ++ - .../types/known/durationpb/duration.pb.go | 374 ++ - .../types/known/timestamppb/timestamp.pb.go | 383 ++ - vendor/modules.txt | 71 +- - 456 files changed, 51909 insertions(+), 7257 deletions(-) - create mode 100644 vendor/github.com/Microsoft/go-winio/internal/fs/doc.go - create mode 100644 vendor/github.com/Microsoft/go-winio/internal/fs/fs.go - create mode 100644 vendor/github.com/Microsoft/go-winio/internal/fs/security.go - create mode 100644 vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go - create mode 100644 vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/SECURITY.md - delete mode 100644 vendor/github.com/Microsoft/hcsshim/functional_tests.ps1 - create mode 100644 vendor/github.com/Microsoft/hcsshim/hcn/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/cni/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/log/context.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/log/format.go - delete mode 100644 vendor/github.com/Microsoft/hcsshim/internal/log/g.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/log/hook.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/memory/types.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/oc/errors.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/regstate/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go - rename vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/grantvmgroupaccess.go (64%) - rename vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/syscall_windows.go (100%) - rename vendor/github.com/Microsoft/{go-winio/pkg => hcsshim/internal}/security/zsyscall_windows.go (100%) - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go - rename vendor/github.com/Microsoft/hcsshim/internal/wclayer/{baselayer.go => baselayerwriter.go} (99%) - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go - create mode 100644 vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go - create mode 100644 vendor/github.com/containerd/containerd/LICENSE - create mode 100644 vendor/github.com/containerd/containerd/NOTICE - create mode 100644 vendor/github.com/containerd/containerd/errdefs/errors.go - create mode 100644 vendor/github.com/containerd/containerd/errdefs/grpc.go - create mode 100644 vendor/github.com/golang/protobuf/AUTHORS - create mode 100644 vendor/github.com/golang/protobuf/CONTRIBUTORS - create mode 100644 vendor/github.com/golang/protobuf/LICENSE - create mode 100644 vendor/github.com/golang/protobuf/proto/buffer.go - create mode 100644 vendor/github.com/golang/protobuf/proto/defaults.go - create mode 100644 vendor/github.com/golang/protobuf/proto/deprecated.go - create mode 100644 vendor/github.com/golang/protobuf/proto/discard.go - create mode 100644 vendor/github.com/golang/protobuf/proto/extensions.go - create mode 100644 vendor/github.com/golang/protobuf/proto/properties.go - create mode 100644 vendor/github.com/golang/protobuf/proto/proto.go - create mode 100644 vendor/github.com/golang/protobuf/proto/registry.go - create mode 100644 vendor/github.com/golang/protobuf/proto/text_decode.go - create mode 100644 vendor/github.com/golang/protobuf/proto/text_encode.go - create mode 100644 vendor/github.com/golang/protobuf/proto/wire.go - create mode 100644 vendor/github.com/golang/protobuf/proto/wrappers.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/any.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/any/any.pb.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/doc.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp.go - create mode 100644 vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go - delete mode 100644 vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go - create mode 100644 vendor/golang.org/x/sys/unix/mmap_nomremap.go - create mode 100644 vendor/golang.org/x/sys/unix/mremap.go - create mode 100644 vendor/google.golang.org/genproto/LICENSE - create mode 100644 vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go - create mode 100644 vendor/google.golang.org/grpc/AUTHORS - create mode 100644 vendor/google.golang.org/grpc/LICENSE - create mode 100644 vendor/google.golang.org/grpc/NOTICE.txt - create mode 100644 vendor/google.golang.org/grpc/codes/code_string.go - create mode 100644 vendor/google.golang.org/grpc/codes/codes.go - create mode 100644 vendor/google.golang.org/grpc/internal/status/status.go - create mode 100644 vendor/google.golang.org/grpc/status/status.go - create mode 100644 vendor/google.golang.org/protobuf/LICENSE - create mode 100644 vendor/google.golang.org/protobuf/PATENTS - create mode 100644 vendor/google.golang.org/protobuf/encoding/prototext/decode.go - create mode 100644 vendor/google.golang.org/protobuf/encoding/prototext/doc.go - create mode 100644 vendor/google.golang.org/protobuf/encoding/prototext/encode.go - create mode 100644 vendor/google.golang.org/protobuf/encoding/protowire/wire.go - create mode 100644 vendor/google.golang.org/protobuf/internal/descfmt/stringer.go - create mode 100644 vendor/google.golang.org/protobuf/internal/descopts/options.go - create mode 100644 vendor/google.golang.org/protobuf/internal/detrand/rand.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/defval/default.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/decode.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/doc.go - create mode 100644 vendor/google.golang.org/protobuf/internal/encoding/text/encode.go - create mode 100644 vendor/google.golang.org/protobuf/internal/errors/errors.go - create mode 100644 vendor/google.golang.org/protobuf/internal/errors/is_go112.go - create mode 100644 vendor/google.golang.org/protobuf/internal/errors/is_go113.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/build.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/desc.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go - create mode 100644 vendor/google.golang.org/protobuf/internal/filetype/build.go - create mode 100644 vendor/google.golang.org/protobuf/internal/flags/flags.go - create mode 100644 vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go - create mode 100644 vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/any_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/api_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/doc.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/duration_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/empty_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/goname.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/map_entry.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/struct_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/type_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/wrappers.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/api_export.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/checkinit.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_extension.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_field.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_map.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_message.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_tables.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/convert.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/convert_list.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/convert_map.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/decode.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/encode.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/enum.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/extension.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/legacy_export.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/legacy_file.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/legacy_message.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/merge.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/merge_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/message.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/message_reflect.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/validate.go - create mode 100644 vendor/google.golang.org/protobuf/internal/impl/weak.go - create mode 100644 vendor/google.golang.org/protobuf/internal/order/order.go - create mode 100644 vendor/google.golang.org/protobuf/internal/order/range.go - create mode 100644 vendor/google.golang.org/protobuf/internal/pragma/pragma.go - create mode 100644 vendor/google.golang.org/protobuf/internal/set/ints.go - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings.go - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_pure.go - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go - create mode 100644 vendor/google.golang.org/protobuf/internal/version/version.go - create mode 100644 vendor/google.golang.org/protobuf/proto/checkinit.go - create mode 100644 vendor/google.golang.org/protobuf/proto/decode.go - create mode 100644 vendor/google.golang.org/protobuf/proto/decode_gen.go - create mode 100644 vendor/google.golang.org/protobuf/proto/doc.go - create mode 100644 vendor/google.golang.org/protobuf/proto/encode.go - create mode 100644 vendor/google.golang.org/protobuf/proto/encode_gen.go - create mode 100644 vendor/google.golang.org/protobuf/proto/equal.go - create mode 100644 vendor/google.golang.org/protobuf/proto/extension.go - create mode 100644 vendor/google.golang.org/protobuf/proto/merge.go - create mode 100644 vendor/google.golang.org/protobuf/proto/messageset.go - create mode 100644 vendor/google.golang.org/protobuf/proto/proto.go - create mode 100644 vendor/google.golang.org/protobuf/proto/proto_methods.go - create mode 100644 vendor/google.golang.org/protobuf/proto/proto_reflect.go - create mode 100644 vendor/google.golang.org/protobuf/proto/reset.go - create mode 100644 vendor/google.golang.org/protobuf/proto/size.go - create mode 100644 vendor/google.golang.org/protobuf/proto/size_gen.go - create mode 100644 vendor/google.golang.org/protobuf/proto/wrappers.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/proto.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/source.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/type.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go - create mode 100644 vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go - create mode 100644 vendor/google.golang.org/protobuf/runtime/protoiface/methods.go - create mode 100644 vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go - create mode 100644 vendor/google.golang.org/protobuf/runtime/protoimpl/version.go - create mode 100644 vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go - -diff --git a/go.mod b/go.mod -index 9ded6e9d..9a51ae4e 100644 ---- a/go.mod -+++ b/go.mod -@@ -3,7 +3,7 @@ module github.com/containernetworking/plugins - go 1.20 - - require ( -- github.com/Microsoft/hcsshim v0.9.9 -+ github.com/Microsoft/hcsshim v0.11.4 - github.com/alexflint/go-filemutex v1.2.0 - github.com/buger/jsonparser v1.1.1 - github.com/containernetworking/cni v1.1.2 -@@ -20,16 +20,19 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.7.0 -+ golang.org/x/sys v0.13.0 - ) - - require ( -- github.com/Microsoft/go-winio v0.6.0 // indirect -+ github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -+ github.com/containerd/containerd v1.6.23 // indirect -+ github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.2.4 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect -+ github.com/golang/protobuf v1.5.3 // indirect - github.com/google/go-cmp v0.5.9 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -@@ -37,8 +40,11 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.9.0 // indirect -- golang.org/x/net v0.8.0 // indirect -- golang.org/x/text v0.8.0 // indirect -+ golang.org/x/net v0.17.0 // indirect -+ golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.7.0 // indirect -+ google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect -+ google.golang.org/grpc v1.50.1 // indirect -+ google.golang.org/protobuf v1.29.1 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index bbba7ba8..91d39933 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,230 +1,37 @@ --bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= - cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= - cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= --cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= --cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= --cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= --cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= --cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= --cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= --cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= --cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= --cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= --cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= --cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= --cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= --cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= --cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= --cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= --cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= --cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= --cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= --cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= --cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= --cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= --dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= --github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= --github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= --github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= --github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= --github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= --github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= --github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= --github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= --github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= --github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= --github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= --github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= --github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= --github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= --github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= --github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= --github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= --github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= --github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= --github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= --github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= --github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= --github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= --github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= --github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= --github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= --github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= --github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= --github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= --github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= --github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= --github.com/Microsoft/hcsshim v0.9.9 h1:FYrTiCNOc8ZddNBVkJBxWZYm22rgxHFmxMoGK66sDF0= --github.com/Microsoft/hcsshim v0.9.9/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= --github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= --github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= --github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= --github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= --github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= --github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= --github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= --github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= --github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= --github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= --github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= --github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= --github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= --github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= -+github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -+github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -+github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= -+github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= - github.com/alexflint/go-filemutex v1.2.0 h1:1v0TJPDtlhgpW4nJ+GvxCLSlUDC3+gW0CQQvlmfDR/s= - github.com/alexflint/go-filemutex v1.2.0/go.mod h1:mYyQSWvw9Tx2/H2n9qXPb52tTYfE0pZAWcBq5mK025c= - github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= --github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= --github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= --github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= --github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= --github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= --github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= --github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= --github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= --github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= --github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= --github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= --github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= --github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= --github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= --github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= - github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= - github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= --github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= --github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= --github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= --github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= - github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= --github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= - github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= --github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= --github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= - github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= - github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= - github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= --github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= --github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= --github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= --github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= --github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= - github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= --github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= --github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= --github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= --github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= --github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= --github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= --github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= --github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= --github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= --github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= --github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= --github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= --github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= --github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= --github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= --github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= -+github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -+github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -+github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -+github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= --github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= --github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= --github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= --github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= --github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= --github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= --github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= --github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= --github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= --github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= --github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= --github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= --github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= --github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= --github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= --github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= --github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= --github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= --github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= --github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= --github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= --github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= --github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= --github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= --github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= --github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= --github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= --github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= --github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= --github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= --github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= --github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= --github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= --github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= --github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= --github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= --github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= --github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= --github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= --github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= --github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= --github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= --github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= --github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= --github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= --github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= --github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= --github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= --github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= --github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= --github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= --github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= --github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= --github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= --github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= --github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= --github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= -+github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= -+github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= --github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= --github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= --github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= --github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= --github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= --github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= --github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= --github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= --github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= - github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= - github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= --github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= --github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= --github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= --github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= --github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= --github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= --github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= --github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= --github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= - github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= - github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= --github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= --github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= --github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= --github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= --github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= --github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= --github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= - github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c h1:Xo2rK1pzOm0jO6abTPIQwbAmqBIOj132otexc1mmzFc= - github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= - github.com/d2g/dhcp4client v1.0.0 h1:suYBsYZIkSlUMEz4TAYCczKf62IA2UWC+O8+KtdOhCo= -@@ -236,111 +43,33 @@ github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjI - 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/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= --github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= --github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= --github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= --github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= --github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= --github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= --github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= --github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= --github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= --github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= --github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= --github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= --github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= --github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= --github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= --github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= --github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= --github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= --github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= --github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= --github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= --github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= --github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= --github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= - github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= - github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= - github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= - github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= --github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= -+github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= - github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= --github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= --github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= --github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= --github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= - github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= - github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= --github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= --github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= --github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= - github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= --github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= --github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= --github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= --github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= --github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= --github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= --github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= --github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= --github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= --github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= - github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= - github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= --github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= --github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= --github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= --github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= --github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= --github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= --github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= --github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= --github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= --github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= --github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= --github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= --github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= --github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= --github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= --github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= - github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= - github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= - github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= --github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= --github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= --github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= --github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= --github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= --github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= --github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= - github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= - github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= --github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= --github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= --github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= --github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= - github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= - github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= --github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= --github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= --github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= --github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= --github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= --github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= - github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= --github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= - github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= - github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= --github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= --github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= - github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= - github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= - github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -@@ -352,285 +81,58 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw - 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.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= --github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= --github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -+github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= - 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.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= --github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= - github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= --github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= - github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= - github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= - github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= - github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= --github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= --github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= --github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= --github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= --github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= --github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= --github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= --github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= --github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= --github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= - github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd h1:r8yyd+DJDmsUhGrRBxH5Pj7KeFK5l+Y3FsgT8keqKtk= - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= --github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= --github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= --github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= - github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= --github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= --github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= --github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= --github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= --github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= --github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= --github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= --github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= --github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= --github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= --github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= --github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= --github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= --github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= --github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= --github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= --github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= - github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= --github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= --github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= --github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= --github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= --github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= --github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= --github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= - github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= --github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= - github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= --github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= --github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= --github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= --github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= --github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= --github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= --github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= --github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= --github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= --github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= --github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= --github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= --github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= --github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= --github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= --github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= --github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= --github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= --github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= --github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= - github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= - github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= --github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= --github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= --github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= --github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= --github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= --github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= --github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= --github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= --github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= --github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= --github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= --github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= --github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= --github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= --github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= --github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= --github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= --github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= --github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= --github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= --github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= --github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= --github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= --github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= --github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= --github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= - github.com/mattn/go-shellwords v1.0.12 h1:M2zGm7EW6UQJvDeQxo4T51eKPurbeFbe8WtebGE2xrk= - github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= --github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= --github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= --github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= --github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= --github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= --github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= --github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= --github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= --github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= --github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= --github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= --github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= --github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= --github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= --github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= --github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= --github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= --github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= --github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= --github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= --github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= --github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= --github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= --github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= - github.com/networkplumbing/go-nft v0.3.0 h1:IIc6yHjN85KyJx21p3ZEsO0iBMYHNXux22rc9Q8TfFw= - github.com/networkplumbing/go-nft v0.3.0/go.mod h1:HnnM+tYvlGAsMU7yoYwXEVLLiDW9gdMmb5HoGcwpuQs= --github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= --github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= - github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= - github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= --github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= --github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= --github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= - github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= --github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= - github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= - github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= - github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= - github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= - github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= --github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= --github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= --github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= --github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= - github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= --github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= - github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= --github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= - github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= - github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= - github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+qQlhg= --github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= --github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= --github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= --github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= --github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= --github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= --github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= --github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= --github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= --github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= --github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= --github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= --github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= --github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= --github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= --github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= --github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= --github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= - github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= - github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= --github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= --github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= --github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= --github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= --github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= --github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= - github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= - github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= - github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= - github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= --github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= --github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= --github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= --github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= --github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= --github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= --github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= --github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= --github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= --github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= --github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= --github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= --github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= --github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= --github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= --github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= --github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= --github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= --github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= --github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= --github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= --github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= --github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= --github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= --github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= --github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= --github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= --github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= --github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= --github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= - github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= --github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= --github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= --github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= --github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= --github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= --github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= --github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= --github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= --github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= --github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= --github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= --github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= --github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= --github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= - github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= - github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= --github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= --github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= --github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= --github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= --github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= --github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= --github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= --github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= --github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= --github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= --github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= --github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= --github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= --github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= --github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= --github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= --github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= --github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= --github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= - github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= --github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= --github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= - 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 v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= --github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= --github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= - github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= - github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= - github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -@@ -639,98 +141,24 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= - github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= --github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= --github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= --github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= --github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= --github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= --github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= --github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= --github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= --github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= --github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= --github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= --github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= --github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= --github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= --github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= --github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= - github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= - github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= --github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= --github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= --github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= --github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= --github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= --github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= --github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= - github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= - github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= - github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= --github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= --github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= --github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= --go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= --go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= --go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= --go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= --go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= --go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= --go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= --go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= --go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= --go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= - go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= - go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= - go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= --go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= --go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= --go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= --go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= --golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= --golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= --golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= --golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= --golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= --golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= --golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= - golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= --golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= --golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= --golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= - golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= --golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= --golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= --golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= --golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= --golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= --golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= --golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= --golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= --golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= --golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= --golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= - golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= - golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= --golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= - golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= --golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= --golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= --golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= --golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= --golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= --golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= --golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= --golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= --golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= --golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= --golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= --golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= - golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= - golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= - golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -@@ -739,197 +167,69 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= - golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= --golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= --golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= --golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= - golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= --golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= --golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= --golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= --golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= --golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= - golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= - golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= --golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= --golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= - golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= --golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= - golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= --golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= --golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= --golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= --golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= --golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -+golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -+golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= --golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= --golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= --golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= - golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= - golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= - golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= --golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= --golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= --golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= --golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -+golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= --golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= --golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= - golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= --golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= --golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= - golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -+golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= - golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= --golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= --golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= --golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -+golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= - golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= --golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= --golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= - golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= - golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= - golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= --golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= --golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= --golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= --golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= --golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= - golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= --golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= --golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= --golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= --golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= --golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= --golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= --golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= - golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= --golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= --golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= --golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= --golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= --golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= - golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= --golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= - golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= - golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= --golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= - golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= - golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= - golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -@@ -937,68 +237,24 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T - golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= - golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= --google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= --google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= --google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= --google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= --google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= --google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= --google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= --google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= --google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= --google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= --google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= --google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= - google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= - google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= --google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= --google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= --google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= --google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= --google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= - google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= --google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= --google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= --google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= --google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= --google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= --google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= - google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= --google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= --google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= --google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= --google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= --google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= --google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= --google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= - google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= --google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= --google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= --google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= -+google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= -+google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= - google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= --google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= --google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= --google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= - google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= --google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= --google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= - google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= --google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= - google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= --google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= --google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= --google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= - google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= - google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= - google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= --google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -+google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -+google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= -+google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= - 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= -@@ -1007,89 +263,24 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi - google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= - google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= - google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= --google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= - google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= - google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= - google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= - google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= --gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= --gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= -+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= -+google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= --gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= --gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= --gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= --gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= --gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= --gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= --gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= --gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= --gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= --gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= --gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= --gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= --gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= --gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= - gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= --gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= --gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= --gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= --gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= - gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= - gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= - gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= --gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= --gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= --gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= - honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= --honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= --honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= - honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= --honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= --honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= --k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= --k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= --k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= --k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= --k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= --k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= --k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= --k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= --k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= --k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= --k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= --k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= --k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= --k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= --k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= --k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= --k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= --k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= --k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= --k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= --k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= --k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= --k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= --k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= --k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= --k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= --k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= --k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= --k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= --k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= --rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= --rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= --rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= --sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= --sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= --sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= --sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= --sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= --sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= --sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -diff --git a/vendor/github.com/Microsoft/go-winio/.golangci.yml b/vendor/github.com/Microsoft/go-winio/.golangci.yml -index af403bb1..7b503d26 100644 ---- a/vendor/github.com/Microsoft/go-winio/.golangci.yml -+++ b/vendor/github.com/Microsoft/go-winio/.golangci.yml -@@ -8,12 +8,8 @@ linters: - - containedctx # struct contains a context - - dupl # duplicate code - - errname # erorrs are named correctly -- - goconst # strings that should be constants -- - godot # comments end in a period -- - misspell - - nolintlint # "//nolint" directives are properly explained - - revive # golint replacement -- - stylecheck # golint replacement, less configurable than revive - - unconvert # unnecessary conversions - - wastedassign - -@@ -23,10 +19,7 @@ linters: - - exhaustive # check exhaustiveness of enum switch statements - - gofmt # files are gofmt'ed - - gosec # security -- - nestif # deeply nested ifs - - nilerr # returns nil even with non-nil error -- - prealloc # slices that can be pre-allocated -- - structcheck # unused struct fields - - unparam # unused function params - - issues: -@@ -42,6 +35,18 @@ issues: - text: "^line-length-limit: " - source: "^//(go:generate|sys) " - -+ #TODO: remove after upgrading to go1.18 -+ # ignore comment spacing for nolint and sys directives -+ - linters: -+ - revive -+ text: "^comment-spacings: no space between comment delimiter and comment text" -+ source: "//(cspell:|nolint:|sys |todo)" -+ -+ # not on go 1.18 yet, so no any -+ - linters: -+ - revive -+ text: "^use-any: since GO 1.18 'interface{}' can be replaced by 'any'" -+ - # allow unjustified ignores of error checks in defer statements - - linters: - - nolintlint -@@ -56,6 +61,8 @@ issues: - - - linters-settings: -+ exhaustive: -+ default-signifies-exhaustive: true - govet: - enable-all: true - disable: -@@ -98,6 +105,8 @@ linters-settings: - disabled: true - - name: flag-parameter # excessive, and a common idiom we use - disabled: true -+ - name: unhandled-error # warns over common fmt.Print* and io.Close; rely on errcheck instead -+ disabled: true - # general config - - name: line-length-limit - arguments: -@@ -138,7 +147,3 @@ linters-settings: - - VPCI - - WCOW - - WIM -- stylecheck: -- checks: -- - "all" -- - "-ST1003" # use revive's var naming -diff --git a/vendor/github.com/Microsoft/go-winio/hvsock.go b/vendor/github.com/Microsoft/go-winio/hvsock.go -index 52f1c280..c8819165 100644 ---- a/vendor/github.com/Microsoft/go-winio/hvsock.go -+++ b/vendor/github.com/Microsoft/go-winio/hvsock.go -@@ -23,7 +23,7 @@ import ( - const afHVSock = 34 // AF_HYPERV - - // Well known Service and VM IDs --//https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards -+// https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards - - // HvsockGUIDWildcard is the wildcard VmId for accepting connections from all partitions. - func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000 -@@ -31,7 +31,7 @@ func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000 - } - - // HvsockGUIDBroadcast is the wildcard VmId for broadcasting sends to all partitions. --func HvsockGUIDBroadcast() guid.GUID { //ffffffff-ffff-ffff-ffff-ffffffffffff -+func HvsockGUIDBroadcast() guid.GUID { // ffffffff-ffff-ffff-ffff-ffffffffffff - return guid.GUID{ - Data1: 0xffffffff, - Data2: 0xffff, -@@ -246,7 +246,7 @@ func (l *HvsockListener) Accept() (_ net.Conn, err error) { - var addrbuf [addrlen * 2]byte - - var bytes uint32 -- err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /*rxdatalen*/, addrlen, addrlen, &bytes, &c.o) -+ err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /* rxdatalen */, addrlen, addrlen, &bytes, &c.o) - if _, err = l.sock.asyncIO(c, nil, bytes, err); err != nil { - return nil, l.opErr("accept", os.NewSyscallError("acceptex", err)) - } -diff --git a/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go b/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go -new file mode 100644 -index 00000000..1f653881 ---- /dev/null -+++ b/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go -@@ -0,0 +1,2 @@ -+// This package contains Win32 filesystem functionality. -+package fs -diff --git a/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go b/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go -new file mode 100644 -index 00000000..509b3ec6 ---- /dev/null -+++ b/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go -@@ -0,0 +1,202 @@ -+//go:build windows -+ -+package fs -+ -+import ( -+ "golang.org/x/sys/windows" -+ -+ "github.com/Microsoft/go-winio/internal/stringbuffer" -+) -+ -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go fs.go -+ -+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew -+//sys CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) [failretval==windows.InvalidHandle] = CreateFileW -+ -+const NullHandle windows.Handle = 0 -+ -+// AccessMask defines standard, specific, and generic rights. -+// -+// Bitmask: -+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -+// +---------------+---------------+-------------------------------+ -+// |G|G|G|G|Resvd|A| StandardRights| SpecificRights | -+// |R|W|E|A| |S| | | -+// +-+-------------+---------------+-------------------------------+ -+// -+// GR Generic Read -+// GW Generic Write -+// GE Generic Exectue -+// GA Generic All -+// Resvd Reserved -+// AS Access Security System -+// -+// https://learn.microsoft.com/en-us/windows/win32/secauthz/access-mask -+// -+// https://learn.microsoft.com/en-us/windows/win32/secauthz/generic-access-rights -+// -+// https://learn.microsoft.com/en-us/windows/win32/fileio/file-access-rights-constants -+type AccessMask = windows.ACCESS_MASK -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( -+ // Not actually any. -+ // -+ // For CreateFile: "query certain metadata such as file, directory, or device attributes without accessing that file or device" -+ // https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#parameters -+ FILE_ANY_ACCESS AccessMask = 0 -+ -+ // Specific Object Access -+ // from ntioapi.h -+ -+ FILE_READ_DATA AccessMask = (0x0001) // file & pipe -+ FILE_LIST_DIRECTORY AccessMask = (0x0001) // directory -+ -+ FILE_WRITE_DATA AccessMask = (0x0002) // file & pipe -+ FILE_ADD_FILE AccessMask = (0x0002) // directory -+ -+ FILE_APPEND_DATA AccessMask = (0x0004) // file -+ FILE_ADD_SUBDIRECTORY AccessMask = (0x0004) // directory -+ FILE_CREATE_PIPE_INSTANCE AccessMask = (0x0004) // named pipe -+ -+ FILE_READ_EA AccessMask = (0x0008) // file & directory -+ FILE_READ_PROPERTIES AccessMask = FILE_READ_EA -+ -+ FILE_WRITE_EA AccessMask = (0x0010) // file & directory -+ FILE_WRITE_PROPERTIES AccessMask = FILE_WRITE_EA -+ -+ FILE_EXECUTE AccessMask = (0x0020) // file -+ FILE_TRAVERSE AccessMask = (0x0020) // directory -+ -+ FILE_DELETE_CHILD AccessMask = (0x0040) // directory -+ -+ FILE_READ_ATTRIBUTES AccessMask = (0x0080) // all -+ -+ FILE_WRITE_ATTRIBUTES AccessMask = (0x0100) // all -+ -+ FILE_ALL_ACCESS AccessMask = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) -+ FILE_GENERIC_READ AccessMask = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) -+ FILE_GENERIC_WRITE AccessMask = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) -+ FILE_GENERIC_EXECUTE AccessMask = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) -+ -+ SPECIFIC_RIGHTS_ALL AccessMask = 0x0000FFFF -+ -+ // Standard Access -+ // from ntseapi.h -+ -+ DELETE AccessMask = 0x0001_0000 -+ READ_CONTROL AccessMask = 0x0002_0000 -+ WRITE_DAC AccessMask = 0x0004_0000 -+ WRITE_OWNER AccessMask = 0x0008_0000 -+ SYNCHRONIZE AccessMask = 0x0010_0000 -+ -+ STANDARD_RIGHTS_REQUIRED AccessMask = 0x000F_0000 -+ -+ STANDARD_RIGHTS_READ AccessMask = READ_CONTROL -+ STANDARD_RIGHTS_WRITE AccessMask = READ_CONTROL -+ STANDARD_RIGHTS_EXECUTE AccessMask = READ_CONTROL -+ -+ STANDARD_RIGHTS_ALL AccessMask = 0x001F_0000 -+) -+ -+type FileShareMode uint32 -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( -+ FILE_SHARE_NONE FileShareMode = 0x00 -+ FILE_SHARE_READ FileShareMode = 0x01 -+ FILE_SHARE_WRITE FileShareMode = 0x02 -+ FILE_SHARE_DELETE FileShareMode = 0x04 -+ FILE_SHARE_VALID_FLAGS FileShareMode = 0x07 -+) -+ -+type FileCreationDisposition uint32 -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( -+ // from winbase.h -+ -+ CREATE_NEW FileCreationDisposition = 0x01 -+ CREATE_ALWAYS FileCreationDisposition = 0x02 -+ OPEN_EXISTING FileCreationDisposition = 0x03 -+ OPEN_ALWAYS FileCreationDisposition = 0x04 -+ TRUNCATE_EXISTING FileCreationDisposition = 0x05 -+) -+ -+// CreateFile and co. take flags or attributes together as one parameter. -+// Define alias until we can use generics to allow both -+ -+// https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants -+type FileFlagOrAttribute uint32 -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( // from winnt.h -+ FILE_FLAG_WRITE_THROUGH FileFlagOrAttribute = 0x8000_0000 -+ FILE_FLAG_OVERLAPPED FileFlagOrAttribute = 0x4000_0000 -+ FILE_FLAG_NO_BUFFERING FileFlagOrAttribute = 0x2000_0000 -+ FILE_FLAG_RANDOM_ACCESS FileFlagOrAttribute = 0x1000_0000 -+ FILE_FLAG_SEQUENTIAL_SCAN FileFlagOrAttribute = 0x0800_0000 -+ FILE_FLAG_DELETE_ON_CLOSE FileFlagOrAttribute = 0x0400_0000 -+ FILE_FLAG_BACKUP_SEMANTICS FileFlagOrAttribute = 0x0200_0000 -+ FILE_FLAG_POSIX_SEMANTICS FileFlagOrAttribute = 0x0100_0000 -+ FILE_FLAG_OPEN_REPARSE_POINT FileFlagOrAttribute = 0x0020_0000 -+ FILE_FLAG_OPEN_NO_RECALL FileFlagOrAttribute = 0x0010_0000 -+ FILE_FLAG_FIRST_PIPE_INSTANCE FileFlagOrAttribute = 0x0008_0000 -+) -+ -+type FileSQSFlag = FileFlagOrAttribute -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( // from winbase.h -+ SECURITY_ANONYMOUS FileSQSFlag = FileSQSFlag(SecurityAnonymous << 16) -+ SECURITY_IDENTIFICATION FileSQSFlag = FileSQSFlag(SecurityIdentification << 16) -+ SECURITY_IMPERSONATION FileSQSFlag = FileSQSFlag(SecurityImpersonation << 16) -+ SECURITY_DELEGATION FileSQSFlag = FileSQSFlag(SecurityDelegation << 16) -+ -+ SECURITY_SQOS_PRESENT FileSQSFlag = 0x00100000 -+ SECURITY_VALID_SQOS_FLAGS FileSQSFlag = 0x001F0000 -+) -+ -+// GetFinalPathNameByHandle flags -+// -+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew#parameters -+type GetFinalPathFlag uint32 -+ -+//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -+const ( -+ GetFinalPathDefaultFlag GetFinalPathFlag = 0x0 -+ -+ FILE_NAME_NORMALIZED GetFinalPathFlag = 0x0 -+ FILE_NAME_OPENED GetFinalPathFlag = 0x8 -+ -+ VOLUME_NAME_DOS GetFinalPathFlag = 0x0 -+ VOLUME_NAME_GUID GetFinalPathFlag = 0x1 -+ VOLUME_NAME_NT GetFinalPathFlag = 0x2 -+ VOLUME_NAME_NONE GetFinalPathFlag = 0x4 -+) -+ -+// getFinalPathNameByHandle facilitates calling the Windows API GetFinalPathNameByHandle -+// with the given handle and flags. It transparently takes care of creating a buffer of the -+// correct size for the call. -+// -+// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew -+func GetFinalPathNameByHandle(h windows.Handle, flags GetFinalPathFlag) (string, error) { -+ b := stringbuffer.NewWString() -+ //TODO: can loop infinitely if Win32 keeps returning the same (or a larger) n? -+ for { -+ n, err := windows.GetFinalPathNameByHandle(h, b.Pointer(), b.Cap(), uint32(flags)) -+ if err != nil { -+ return "", err -+ } -+ // If the buffer wasn't large enough, n will be the total size needed (including null terminator). -+ // Resize and try again. -+ if n > b.Cap() { -+ b.ResizeTo(n) -+ continue -+ } -+ // If the buffer is large enough, n will be the size not including the null terminator. -+ // Convert to a Go string and return. -+ return b.String(), nil -+ } -+} -diff --git a/vendor/github.com/Microsoft/go-winio/internal/fs/security.go b/vendor/github.com/Microsoft/go-winio/internal/fs/security.go -new file mode 100644 -index 00000000..81760ac6 ---- /dev/null -+++ b/vendor/github.com/Microsoft/go-winio/internal/fs/security.go -@@ -0,0 +1,12 @@ -+package fs -+ -+// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level -+type SecurityImpersonationLevel int32 // C default enums underlying type is `int`, which is Go `int32` -+ -+// Impersonation levels -+const ( -+ SecurityAnonymous SecurityImpersonationLevel = 0 -+ SecurityIdentification SecurityImpersonationLevel = 1 -+ SecurityImpersonation SecurityImpersonationLevel = 2 -+ SecurityDelegation SecurityImpersonationLevel = 3 -+) -diff --git a/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go b/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go -new file mode 100644 -index 00000000..e2f7bb24 ---- /dev/null -+++ b/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go -@@ -0,0 +1,64 @@ -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. -+ -+package fs -+ -+import ( -+ "syscall" -+ "unsafe" -+ -+ "golang.org/x/sys/windows" -+) -+ -+var _ unsafe.Pointer -+ -+// Do the interface allocations only once for common -+// Errno values. -+const ( -+ errnoERROR_IO_PENDING = 997 -+) -+ -+var ( -+ errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL -+) -+ -+// errnoErr returns common boxed Errno values, to prevent -+// allocations at runtime. -+func errnoErr(e syscall.Errno) error { -+ switch e { -+ case 0: -+ return errERROR_EINVAL -+ case errnoERROR_IO_PENDING: -+ return errERROR_IO_PENDING -+ } -+ // TODO: add more here, after collecting data on the common -+ // error values see on Windows. (perhaps when running -+ // all.bat?) -+ return e -+} -+ -+var ( -+ modkernel32 = windows.NewLazySystemDLL("kernel32.dll") -+ -+ procCreateFileW = modkernel32.NewProc("CreateFileW") -+) -+ -+func CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { -+ var _p0 *uint16 -+ _p0, err = syscall.UTF16PtrFromString(name) -+ if err != nil { -+ return -+ } -+ return _CreateFile(_p0, access, mode, sa, createmode, attrs, templatefile) -+} -+ -+func _CreateFile(name *uint16, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { -+ r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) -+ handle = windows.Handle(r0) -+ if handle == windows.InvalidHandle { -+ err = errnoErr(e1) -+ } -+ return -+} -diff --git a/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go b/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go -index 39e8c05f..aeb7b725 100644 ---- a/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go -+++ b/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go -@@ -100,8 +100,8 @@ func (f *runtimeFunc) Load() error { - (*byte)(unsafe.Pointer(&f.addr)), - uint32(unsafe.Sizeof(f.addr)), - &n, -- nil, //overlapped -- 0, //completionRoutine -+ nil, // overlapped -+ 0, // completionRoutine - ) - }) - return f.err -diff --git a/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go b/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go -new file mode 100644 -index 00000000..7ad50570 ---- /dev/null -+++ b/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go -@@ -0,0 +1,132 @@ -+package stringbuffer -+ -+import ( -+ "sync" -+ "unicode/utf16" -+) -+ -+// TODO: worth exporting and using in mkwinsyscall? -+ -+// Uint16BufferSize is the buffer size in the pool, chosen somewhat arbitrarily to accommodate -+// large path strings: -+// MAX_PATH (260) + size of volume GUID prefix (49) + null terminator = 310. -+const MinWStringCap = 310 -+ -+// use *[]uint16 since []uint16 creates an extra allocation where the slice header -+// is copied to heap and then referenced via pointer in the interface header that sync.Pool -+// stores. -+var pathPool = sync.Pool{ // if go1.18+ adds Pool[T], use that to store []uint16 directly -+ New: func() interface{} { -+ b := make([]uint16, MinWStringCap) -+ return &b -+ }, -+} -+ -+func newBuffer() []uint16 { return *(pathPool.Get().(*[]uint16)) } -+ -+// freeBuffer copies the slice header data, and puts a pointer to that in the pool. -+// This avoids taking a pointer to the slice header in WString, which can be set to nil. -+func freeBuffer(b []uint16) { pathPool.Put(&b) } -+ -+// WString is a wide string buffer ([]uint16) meant for storing UTF-16 encoded strings -+// for interacting with Win32 APIs. -+// Sizes are specified as uint32 and not int. -+// -+// It is not thread safe. -+type WString struct { -+ // type-def allows casting to []uint16 directly, use struct to prevent that and allow adding fields in the future. -+ -+ // raw buffer -+ b []uint16 -+} -+ -+// NewWString returns a [WString] allocated from a shared pool with an -+// initial capacity of at least [MinWStringCap]. -+// Since the buffer may have been previously used, its contents are not guaranteed to be empty. -+// -+// The buffer should be freed via [WString.Free] -+func NewWString() *WString { -+ return &WString{ -+ b: newBuffer(), -+ } -+} -+ -+func (b *WString) Free() { -+ if b.empty() { -+ return -+ } -+ freeBuffer(b.b) -+ b.b = nil -+} -+ -+// ResizeTo grows the buffer to at least c and returns the new capacity, freeing the -+// previous buffer back into pool. -+func (b *WString) ResizeTo(c uint32) uint32 { -+ // allready sufficient (or n is 0) -+ if c <= b.Cap() { -+ return b.Cap() -+ } -+ -+ if c <= MinWStringCap { -+ c = MinWStringCap -+ } -+ // allocate at-least double buffer size, as is done in [bytes.Buffer] and other places -+ if c <= 2*b.Cap() { -+ c = 2 * b.Cap() -+ } -+ -+ b2 := make([]uint16, c) -+ if !b.empty() { -+ copy(b2, b.b) -+ freeBuffer(b.b) -+ } -+ b.b = b2 -+ return c -+} -+ -+// Buffer returns the underlying []uint16 buffer. -+func (b *WString) Buffer() []uint16 { -+ if b.empty() { -+ return nil -+ } -+ return b.b -+} -+ -+// Pointer returns a pointer to the first uint16 in the buffer. -+// If the [WString.Free] has already been called, the pointer will be nil. -+func (b *WString) Pointer() *uint16 { -+ if b.empty() { -+ return nil -+ } -+ return &b.b[0] -+} -+ -+// String returns the returns the UTF-8 encoding of the UTF-16 string in the buffer. -+// -+// It assumes that the data is null-terminated. -+func (b *WString) String() string { -+ // Using [windows.UTF16ToString] would require importing "golang.org/x/sys/windows" -+ // and would make this code Windows-only, which makes no sense. -+ // So copy UTF16ToString code into here. -+ // If other windows-specific code is added, switch to [windows.UTF16ToString] -+ -+ s := b.b -+ for i, v := range s { -+ if v == 0 { -+ s = s[:i] -+ break -+ } -+ } -+ return string(utf16.Decode(s)) -+} -+ -+// Cap returns the underlying buffer capacity. -+func (b *WString) Cap() uint32 { -+ if b.empty() { -+ return 0 -+ } -+ return b.cap() -+} -+ -+func (b *WString) cap() uint32 { return uint32(cap(b.b)) } -+func (b *WString) empty() bool { return b == nil || b.cap() == 0 } -diff --git a/vendor/github.com/Microsoft/go-winio/pipe.go b/vendor/github.com/Microsoft/go-winio/pipe.go -index ca6e38fc..25cc8110 100644 ---- a/vendor/github.com/Microsoft/go-winio/pipe.go -+++ b/vendor/github.com/Microsoft/go-winio/pipe.go -@@ -16,11 +16,12 @@ import ( - "unsafe" - - "golang.org/x/sys/windows" -+ -+ "github.com/Microsoft/go-winio/internal/fs" - ) - - //sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe - //sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW --//sys createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateFileW - //sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo - //sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW - //sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc -@@ -163,19 +164,21 @@ func (s pipeAddress) String() string { - } - - // tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout. --func tryDialPipe(ctx context.Context, path *string, access uint32) (syscall.Handle, error) { -+func tryDialPipe(ctx context.Context, path *string, access fs.AccessMask) (syscall.Handle, error) { - for { - select { - case <-ctx.Done(): - return syscall.Handle(0), ctx.Err() - default: -- h, err := createFile(*path, -+ wh, err := fs.CreateFile(*path, - access, -- 0, -- nil, -- syscall.OPEN_EXISTING, -- windows.FILE_FLAG_OVERLAPPED|windows.SECURITY_SQOS_PRESENT|windows.SECURITY_ANONYMOUS, -- 0) -+ 0, // mode -+ nil, // security attributes -+ fs.OPEN_EXISTING, -+ fs.FILE_FLAG_OVERLAPPED|fs.SECURITY_SQOS_PRESENT|fs.SECURITY_ANONYMOUS, -+ 0, // template file handle -+ ) -+ h := syscall.Handle(wh) - if err == nil { - return h, nil - } -@@ -219,7 +222,7 @@ func DialPipeContext(ctx context.Context, path string) (net.Conn, error) { - func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) { - var err error - var h syscall.Handle -- h, err = tryDialPipe(ctx, &path, access) -+ h, err = tryDialPipe(ctx, &path, fs.AccessMask(access)) - if err != nil { - return nil, err - } -@@ -279,6 +282,7 @@ func makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (sy - } - defer localFree(ntPath.Buffer) - oa.ObjectName = &ntPath -+ oa.Attributes = windows.OBJ_CASE_INSENSITIVE - - // The security descriptor is only needed for the first pipe. - if first { -diff --git a/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go b/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go -index 83f45a13..469b16f6 100644 ---- a/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go -@@ -63,7 +63,6 @@ var ( - procBackupWrite = modkernel32.NewProc("BackupWrite") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") -- procCreateFileW = modkernel32.NewProc("CreateFileW") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") - procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") -@@ -305,24 +304,6 @@ func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) { - return - } - --func createFile(name string, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) { -- var _p0 *uint16 -- _p0, err = syscall.UTF16PtrFromString(name) -- if err != nil { -- return -- } -- return _createFile(_p0, access, mode, sa, createmode, attrs, templatefile) --} -- --func _createFile(name *uint16, access uint32, mode uint32, sa *syscall.SecurityAttributes, createmode uint32, attrs uint32, templatefile syscall.Handle) (handle syscall.Handle, err error) { -- r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) -- handle = syscall.Handle(r0) -- if handle == syscall.InvalidHandle { -- err = errnoErr(e1) -- } -- return --} -- - func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0) - newport = syscall.Handle(r0) -diff --git a/vendor/github.com/Microsoft/hcsshim/.gitattributes b/vendor/github.com/Microsoft/hcsshim/.gitattributes -index 94f480de..dd0d09fa 100644 ---- a/vendor/github.com/Microsoft/hcsshim/.gitattributes -+++ b/vendor/github.com/Microsoft/hcsshim/.gitattributes -@@ -1 +1,3 @@ --* text=auto eol=lf -\ No newline at end of file -+* text=auto eol=lf -+vendor/** -text -+test/vendor/** -text -\ No newline at end of file -diff --git a/vendor/github.com/Microsoft/hcsshim/.gitignore b/vendor/github.com/Microsoft/hcsshim/.gitignore -index 54ed6f06..74b68f0a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/.gitignore -+++ b/vendor/github.com/Microsoft/hcsshim/.gitignore -@@ -6,6 +6,7 @@ - - # Ignore vscode setting files - .vscode/ -+.idea/ - - # Test binary, build with `go test -c` - *.test -@@ -23,16 +24,30 @@ service/pkg/ - *.img - *.vhd - *.tar.gz -+*.tar - - # Make stuff - .rootfs-done - bin/* - rootfs/* -+rootfs-conv/* - *.o - /build/ - - deps/* - out/* - --.idea/ --.vscode/ -\ No newline at end of file -+# protobuf files -+# only files at root of the repo, otherwise this will cause issues with vendoring -+/protobuf/* -+ -+# test results -+test/results -+ -+# go workspace files -+go.work -+go.work.sum -+ -+# keys and related artifacts -+*.pem -+*.cose -diff --git a/vendor/github.com/Microsoft/hcsshim/.golangci.yml b/vendor/github.com/Microsoft/hcsshim/.golangci.yml -index 2400e7f1..a795dbaf 100644 ---- a/vendor/github.com/Microsoft/hcsshim/.golangci.yml -+++ b/vendor/github.com/Microsoft/hcsshim/.golangci.yml -@@ -1,23 +1,51 @@ - run: - timeout: 8m -+ tests: true -+ build-tags: -+ - admin -+ - functional -+ - integration -+ skip-dirs: -+ # paths are relative to module root -+ - cri-containerd/test-images - - linters: - enable: -- - stylecheck -+ # defaults: -+ # - errcheck -+ # - gosimple -+ # - govet -+ # - ineffassign -+ # - staticcheck -+ # - typecheck -+ # - unused -+ -+ - gofmt # whether code was gofmt-ed -+ - nolintlint # ill-formed or insufficient nolint directives -+ - stylecheck # golint replacement -+ - thelper # test helpers without t.Helper() - - linters-settings: - stylecheck: - # https://staticcheck.io/docs/checks - checks: ["all"] - -- - issues: -- # This repo has a LOT of generated schema files, operating system bindings, and other things that ST1003 from stylecheck won't like -- # (screaming case Windows api constants for example). There's also some structs that we *could* change the initialisms to be Go -- # friendly (Id -> ID) but they're exported and it would be a breaking change. This makes it so that most new code, code that isn't -- # supposed to be a pretty faithful mapping to an OS call/constants, or non-generated code still checks if we're following idioms, -- # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change. - exclude-rules: -+ # path is relative to module root, which is ./test/ -+ - path: cri-containerd -+ linters: -+ - stylecheck -+ text: "^ST1003: should not use underscores in package names$" -+ source: "^package cri_containerd$" -+ -+ # This repo has a LOT of generated schema files, operating system bindings, and other -+ # things that ST1003 from stylecheck won't like (screaming case Windows api constants for example). -+ # There's also some structs that we *could* change the initialisms to be Go friendly -+ # (Id -> ID) but they're exported and it would be a breaking change. -+ # This makes it so that most new code, code that isn't supposed to be a pretty faithful -+ # mapping to an OS call/constants, or non-generated code still checks if we're following idioms, -+ # while ignoring the things that are just noise or would be more of a hassle than it'd be worth to change. - - path: layer.go - linters: - - stylecheck -@@ -28,11 +56,21 @@ issues: - - stylecheck - Text: "ST1003:" - -- - path: internal\\hcs\\schema2\\ -+ - path: cmd\\ncproxy\\nodenetsvc\\ -+ linters: -+ - stylecheck -+ Text: "ST1003:" -+ -+ - path: cmd\\ncproxy_mock\\ - linters: - - stylecheck - Text: "ST1003:" - -+ - path: internal\\hcs\\schema2\\ -+ linters: -+ - stylecheck -+ - gofmt -+ - - path: internal\\wclayer\\ - linters: - - stylecheck -@@ -96,4 +134,15 @@ issues: - - path: internal\\hcserror\\ - linters: - - stylecheck -- Text: "ST1003:" -\ No newline at end of file -+ Text: "ST1003:" -+ -+ # v0 APIs are deprecated, but still retained for backwards compatability -+ - path: cmd\\ncproxy\\ -+ linters: -+ - staticcheck -+ text: "^SA1019: .*(ncproxygrpc|nodenetsvc)[/]?v0" -+ -+ - path: internal\\tools\\networkagent -+ linters: -+ - staticcheck -+ text: "^SA1019: .*nodenetsvc[/]?v0" -diff --git a/vendor/github.com/Microsoft/hcsshim/Makefile b/vendor/github.com/Microsoft/hcsshim/Makefile -index a8f5516c..d8eb30b8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/Makefile -+++ b/vendor/github.com/Microsoft/hcsshim/Makefile -@@ -1,4 +1,5 @@ - BASE:=base.tar.gz -+DEV_BUILD:=0 - - GO:=go - GO_FLAGS:=-ldflags "-s -w" # strip Go binaries -@@ -12,16 +13,31 @@ GO_FLAGS_EXTRA:= - ifeq "$(GOMODVENDOR)" "1" - GO_FLAGS_EXTRA += -mod=vendor - endif -+GO_BUILD_TAGS:= -+ifneq ($(strip $(GO_BUILD_TAGS)),) -+GO_FLAGS_EXTRA += -tags="$(GO_BUILD_TAGS)" -+endif - GO_BUILD:=CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(GO_FLAGS) $(GO_FLAGS_EXTRA) - - SRCROOT=$(dir $(abspath $(firstword $(MAKEFILE_LIST)))) -+# additional directories to search for rule prerequisites and targets -+VPATH=$(SRCROOT) -+ -+DELTA_TARGET=out/delta.tar.gz -+ -+ifeq "$(DEV_BUILD)" "1" -+DELTA_TARGET=out/delta-dev.tar.gz -+endif - - # The link aliases for gcstools - GCS_TOOLS=\ -- generichook -+ generichook \ -+ install-drivers - - .PHONY: all always rootfs test - -+.DEFAULT_GOAL := all -+ - all: out/initrd.img out/rootfs.tar.gz - - clean: -@@ -29,21 +45,13 @@ clean: - rm -rf bin deps rootfs out - - test: -- cd $(SRCROOT) && go test -v ./internal/guest/... -+ cd $(SRCROOT) && $(GO) test -v ./internal/guest/... - --out/delta.tar.gz: bin/init bin/vsockexec bin/cmd/gcs bin/cmd/gcstools Makefile -- @mkdir -p out -- rm -rf rootfs -- mkdir -p rootfs/bin/ -- cp bin/init rootfs/ -- cp bin/vsockexec rootfs/bin/ -- cp bin/cmd/gcs rootfs/bin/ -- cp bin/cmd/gcstools rootfs/bin/ -- for tool in $(GCS_TOOLS); do ln -s gcstools rootfs/bin/$$tool; done -- git -C $(SRCROOT) rev-parse HEAD > rootfs/gcs.commit && \ -- git -C $(SRCROOT) rev-parse --abbrev-ref HEAD > rootfs/gcs.branch -- tar -zcf $@ -C rootfs . -- rm -rf rootfs -+rootfs: out/rootfs.vhd -+ -+out/rootfs.vhd: out/rootfs.tar.gz bin/cmd/tar2ext4 -+ gzip -f -d ./out/rootfs.tar.gz -+ bin/cmd/tar2ext4 -vhd -i ./out/rootfs.tar -o $@ - - out/rootfs.tar.gz: out/initrd.img - rm -rf rootfs-conv -@@ -52,27 +60,43 @@ out/rootfs.tar.gz: out/initrd.img - tar -zcf $@ -C rootfs-conv . - rm -rf rootfs-conv - --out/initrd.img: $(BASE) out/delta.tar.gz $(SRCROOT)/hack/catcpio.sh -- $(SRCROOT)/hack/catcpio.sh "$(BASE)" out/delta.tar.gz > out/initrd.img.uncompressed -+out/initrd.img: $(BASE) $(DELTA_TARGET) $(SRCROOT)/hack/catcpio.sh -+ $(SRCROOT)/hack/catcpio.sh "$(BASE)" $(DELTA_TARGET) > out/initrd.img.uncompressed - gzip -c out/initrd.img.uncompressed > $@ - rm out/initrd.img.uncompressed - ---include deps/cmd/gcs.gomake ---include deps/cmd/gcstools.gomake -+# This target includes utilities which may be useful for testing purposes. -+out/delta-dev.tar.gz: out/delta.tar.gz bin/internal/tools/snp-report -+ rm -rf rootfs-dev -+ mkdir rootfs-dev -+ tar -xzf out/delta.tar.gz -C rootfs-dev -+ cp bin/internal/tools/snp-report rootfs-dev/bin/ -+ tar -zcf $@ -C rootfs-dev . -+ rm -rf rootfs-dev - --# Implicit rule for includes that define Go targets. --%.gomake: $(SRCROOT)/Makefile -- @mkdir -p $(dir $@) -- @/bin/echo $(@:deps/%.gomake=bin/%): $(SRCROOT)/hack/gomakedeps.sh > $@.new -- @/bin/echo -e '\t@mkdir -p $$(dir $$@) $(dir $@)' >> $@.new -- @/bin/echo -e '\t$$(GO_BUILD) -o $$@.new $$(SRCROOT)/$$(@:bin/%=%)' >> $@.new -- @/bin/echo -e '\tGO="$(GO)" $$(SRCROOT)/hack/gomakedeps.sh $$@ $$(SRCROOT)/$$(@:bin/%=%) $$(GO_FLAGS) $$(GO_FLAGS_EXTRA) > $(@:%.gomake=%.godeps).new' >> $@.new -- @/bin/echo -e '\tmv $(@:%.gomake=%.godeps).new $(@:%.gomake=%.godeps)' >> $@.new -- @/bin/echo -e '\tmv $$@.new $$@' >> $@.new -- @/bin/echo -e '-include $(@:%.gomake=%.godeps)' >> $@.new -- mv $@.new $@ -+out/delta.tar.gz: bin/init bin/vsockexec bin/cmd/gcs bin/cmd/gcstools bin/cmd/hooks/wait-paths Makefile -+ @mkdir -p out -+ rm -rf rootfs -+ mkdir -p rootfs/bin/ -+ mkdir -p rootfs/info/ -+ cp bin/init rootfs/ -+ cp bin/vsockexec rootfs/bin/ -+ cp bin/cmd/gcs rootfs/bin/ -+ cp bin/cmd/gcstools rootfs/bin/ -+ cp bin/cmd/hooks/wait-paths rootfs/bin/ -+ for tool in $(GCS_TOOLS); do ln -s gcstools rootfs/bin/$$tool; done -+ git -C $(SRCROOT) rev-parse HEAD > rootfs/info/gcs.commit && \ -+ git -C $(SRCROOT) rev-parse --abbrev-ref HEAD > rootfs/info/gcs.branch && \ -+ date --iso-8601=minute --utc > rootfs/info/tar.date -+ $(if $(and $(realpath $(subst .tar,.testdata.json,$(BASE))), $(shell which jq)), \ -+ jq -r '.IMAGE_NAME' $(subst .tar,.testdata.json,$(BASE)) 2>/dev/null > rootfs/info/image.name && \ -+ jq -r '.DATETIME' $(subst .tar,.testdata.json,$(BASE)) 2>/dev/null > rootfs/info/build.date) -+ tar -zcf $@ -C rootfs . -+ rm -rf rootfs - --VPATH=$(SRCROOT) -+bin/cmd/gcs bin/cmd/gcstools bin/cmd/hooks/wait-paths bin/cmd/tar2ext4 bin/internal/tools/snp-report: -+ @mkdir -p $(dir $@) -+ GOOS=linux $(GO_BUILD) -o $@ $(SRCROOT)/$(@:bin/%=%) - - bin/vsockexec: vsockexec/vsockexec.o vsockexec/vsock.o - @mkdir -p bin -diff --git a/vendor/github.com/Microsoft/hcsshim/Protobuild.toml b/vendor/github.com/Microsoft/hcsshim/Protobuild.toml -index ee18671a..42ad2e18 100644 ---- a/vendor/github.com/Microsoft/hcsshim/Protobuild.toml -+++ b/vendor/github.com/Microsoft/hcsshim/Protobuild.toml -@@ -1,4 +1,4 @@ --version = "unstable" -+version = "1" - generator = "gogoctrd" - plugins = ["grpc", "fieldpath"] - -@@ -9,16 +9,15 @@ plugins = ["grpc", "fieldpath"] - # treat the root of the project as an include, but this may not be necessary. - before = ["./protobuf"] - -+ # defaults are "/usr/local/include" and "/usr/include", which don't exist on Windows. -+ # override defaults to supress errors about non-existant directories. -+ after = [] -+ - # Paths that should be treated as include roots in relation to the vendor - # directory. These will be calculated with the vendor directory nearest the - # target package. - packages = ["github.com/gogo/protobuf"] - -- # Paths that will be added untouched to the end of the includes. We use -- # `/usr/local/include` to pickup the common install location of protobuf. -- # This is the default. -- after = ["/usr/local/include"] -- - # This section maps protobuf imports to Go packages. These will become - # `-M` directives in the call to the go protobuf generator. - [packages] -@@ -36,6 +35,10 @@ plugins = ["grpc", "fieldpath"] - prefixes = ["github.com/Microsoft/hcsshim/internal/shimdiag"] - plugins = ["ttrpc"] - -+[[overrides]] -+prefixes = ["github.com/Microsoft/hcsshim/internal/extendedtask"] -+plugins = ["ttrpc"] -+ - [[overrides]] - prefixes = ["github.com/Microsoft/hcsshim/internal/computeagent"] - plugins = ["ttrpc"] -diff --git a/vendor/github.com/Microsoft/hcsshim/README.md b/vendor/github.com/Microsoft/hcsshim/README.md -index b8ca926a..5a136153 100644 ---- a/vendor/github.com/Microsoft/hcsshim/README.md -+++ b/vendor/github.com/Microsoft/hcsshim/README.md -@@ -75,24 +75,6 @@ certify they either authored the work themselves or otherwise have permission to - more info, as well as to make sure that you can attest to the rules listed. Our CI uses the [DCO Github app](https://github.com/apps/dco) to ensure - that all commits in a given PR are signed-off. - --### Test Directory (Important to note) -- --This project has tried to trim some dependencies from the root Go modules file that would be cumbersome to get transitively included if this --project is being vendored/used as a library. Some of these dependencies were only being used for tests, so the /test directory in this project also has --its own go.mod file where these are now included to get around this issue. Our tests rely on the code in this project to run, so the test Go modules file --has a relative path replace directive to pull in the latest hcsshim code that the tests actually touch from this project --(which is the repo itself on your disk). -- --``` --replace ( -- github.com/Microsoft/hcsshim => ../ --) --``` -- --Because of this, for most code changes you may need to run `go mod vendor` + `go mod tidy` in the /test directory in this repository, as the --CI in this project will check if the files are out of date and will fail if this is true. -- -- - ## Code of Conduct - - This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -@@ -101,7 +83,7 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio - - ## Dependencies - --This project requires Golang 1.9 or newer to build. -+This project requires Golang 1.17 or newer to build. - - For system requirements to run this project, see the Microsoft docs on [Windows Container requirements](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/system-requirements). - -diff --git a/vendor/github.com/Microsoft/hcsshim/SECURITY.md b/vendor/github.com/Microsoft/hcsshim/SECURITY.md -new file mode 100644 -index 00000000..869fdfe2 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/SECURITY.md -@@ -0,0 +1,41 @@ -+ -+ -+## Security -+ -+Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). -+ -+If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. -+ -+## Reporting Security Issues -+ -+**Please do not report security vulnerabilities through public GitHub issues.** -+ -+Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). -+ -+If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). -+ -+You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). -+ -+Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: -+ -+ * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) -+ * Full paths of source file(s) related to the manifestation of the issue -+ * The location of the affected source code (tag/branch/commit or direct URL) -+ * Any special configuration required to reproduce the issue -+ * Step-by-step instructions to reproduce the issue -+ * Proof-of-concept or exploit code (if possible) -+ * Impact of the issue, including how an attacker might exploit the issue -+ -+This information will help us triage your report more quickly. -+ -+If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. -+ -+## Preferred Languages -+ -+We prefer all communications to be in English. -+ -+## Policy -+ -+Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). -+ -+ -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go b/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go -index 7f1f2823..54c4b3bc 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/attach.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -17,8 +19,8 @@ import ( - // - // `layerData` is the parent read-only layer data. - func AttachLayerStorageFilter(ctx context.Context, layerPath string, layerData LayerData) (err error) { -- title := "hcsshim.AttachLayerStorageFilter" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::AttachLayerStorageFilter" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go b/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go -index 8e28e6c5..5058d3b5 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/destroy.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -12,8 +14,8 @@ import ( - // - // `layerPath` is a path to a directory containing the layer to export. - func DestroyLayer(ctx context.Context, layerPath string) (err error) { -- title := "hcsshim.DestroyLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::DestroyLayer" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("layerPath", layerPath)) -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go b/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go -index 43547325..daf1bfff 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/detach.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -12,8 +14,8 @@ import ( - // - // `layerPath` is a path to a directory containing the layer to export. - func DetachLayerStorageFilter(ctx context.Context, layerPath string) (err error) { -- title := "hcsshim.DetachLayerStorageFilter" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::DetachLayerStorageFilter" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("layerPath", layerPath)) -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/export.go b/vendor/github.com/Microsoft/hcsshim/computestorage/export.go -index a1b12dd1..c6370a5c 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/export.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/export.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -19,8 +21,8 @@ import ( - // - // `options` are the export options applied to the exported layer. - func ExportLayer(ctx context.Context, layerPath, exportFolderPath string, layerData LayerData, options ExportLayerOptions) (err error) { -- title := "hcsshim.ExportLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::ExportLayer" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -28,17 +30,17 @@ func ExportLayer(ctx context.Context, layerPath, exportFolderPath string, layerD - trace.StringAttribute("exportFolderPath", exportFolderPath), - ) - -- ldbytes, err := json.Marshal(layerData) -+ ldBytes, err := json.Marshal(layerData) - if err != nil { - return err - } - -- obytes, err := json.Marshal(options) -+ oBytes, err := json.Marshal(options) - if err != nil { - return err - } - -- err = hcsExportLayer(layerPath, exportFolderPath, string(ldbytes), string(obytes)) -+ err = hcsExportLayer(layerPath, exportFolderPath, string(ldBytes), string(oBytes)) - if err != nil { - return errors.Wrap(err, "failed to export layer") - } -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/format.go b/vendor/github.com/Microsoft/hcsshim/computestorage/format.go -index 83c0fa33..2140e5c9 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/format.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/format.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -5,16 +7,20 @@ import ( - - "github.com/Microsoft/hcsshim/internal/oc" - "github.com/pkg/errors" -- "go.opencensus.io/trace" - "golang.org/x/sys/windows" - ) - - // FormatWritableLayerVhd formats a virtual disk for use as a writable container layer. - // - // If the VHD is not mounted it will be temporarily mounted. -+// -+// NOTE: This API had a breaking change in the operating system after Windows Server 2019. -+// On ws2019 the API expects to get passed a file handle from CreateFile for the vhd that -+// the caller wants to format. On > ws2019, its expected that the caller passes a vhd handle -+// that can be obtained from the virtdisk APIs. - func FormatWritableLayerVhd(ctx context.Context, vhdHandle windows.Handle) (err error) { -- title := "hcsshim.FormatWritableLayerVhd" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::FormatWritableLayerVhd" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go b/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go -index 87fee452..c3608dce 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/helpers.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -6,10 +8,12 @@ import ( - "path/filepath" - "syscall" - -- "github.com/Microsoft/go-winio/pkg/security" - "github.com/Microsoft/go-winio/vhd" -+ "github.com/Microsoft/hcsshim/internal/memory" - "github.com/pkg/errors" - "golang.org/x/sys/windows" -+ -+ "github.com/Microsoft/hcsshim/internal/security" - ) - - const defaultVHDXBlockSizeInMB = 1 -@@ -59,8 +63,8 @@ func SetupContainerBaseLayer(ctx context.Context, layerPath, baseVhdPath, diffVh - createParams := &vhd.CreateVirtualDiskParameters{ - Version: 2, - Version2: vhd.CreateVersion2{ -- MaximumSize: sizeInGB * 1024 * 1024 * 1024, -- BlockSizeInBytes: defaultVHDXBlockSizeInMB * 1024 * 1024, -+ MaximumSize: sizeInGB * memory.GiB, -+ BlockSizeInBytes: defaultVHDXBlockSizeInMB * memory.MiB, - }, - } - handle, err := vhd.CreateVirtualDisk(baseVhdPath, vhd.VirtualDiskAccessNone, vhd.CreateVirtualDiskFlagNone, createParams) -@@ -135,8 +139,8 @@ func SetupUtilityVMBaseLayer(ctx context.Context, uvmPath, baseVhdPath, diffVhdP - createParams := &vhd.CreateVirtualDiskParameters{ - Version: 2, - Version2: vhd.CreateVersion2{ -- MaximumSize: sizeInGB * 1024 * 1024 * 1024, -- BlockSizeInBytes: defaultVHDXBlockSizeInMB * 1024 * 1024, -+ MaximumSize: sizeInGB * memory.GiB, -+ BlockSizeInBytes: defaultVHDXBlockSizeInMB * memory.MiB, - }, - } - handle, err := vhd.CreateVirtualDisk(baseVhdPath, vhd.VirtualDiskAccessNone, vhd.CreateVirtualDiskFlagNone, createParams) -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/import.go b/vendor/github.com/Microsoft/hcsshim/computestorage/import.go -index 0c61dab3..e1c87416 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/import.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/import.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -19,8 +21,8 @@ import ( - // - // `layerData` is the parent layer data. - func ImportLayer(ctx context.Context, layerPath, sourceFolderPath string, layerData LayerData) (err error) { -- title := "hcsshim.ImportLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::ImportLayer" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go b/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go -index 53ed8ea6..d0c62160 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/initialize.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -16,8 +18,8 @@ import ( - // - // `layerData` is the parent read-only layer data. - func InitializeWritableLayer(ctx context.Context, layerPath string, layerData LayerData) (err error) { -- title := "hcsshim.InitializeWritableLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::InitializeWritableLayer" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go b/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go -index fcdbbef8..4f4d8ebf 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/mount.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -6,14 +8,13 @@ import ( - "github.com/Microsoft/hcsshim/internal/interop" - "github.com/Microsoft/hcsshim/internal/oc" - "github.com/pkg/errors" -- "go.opencensus.io/trace" - "golang.org/x/sys/windows" - ) - - // GetLayerVhdMountPath returns the volume path for a virtual disk of a writable container layer. - func GetLayerVhdMountPath(ctx context.Context, vhdHandle windows.Handle) (path string, err error) { -- title := "hcsshim.GetLayerVhdMountPath" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::GetLayerVhdMountPath" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go b/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go -index 06aaf841..1c685aed 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/setup.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package computestorage - - import ( -@@ -21,8 +23,8 @@ import ( - // - // `options` are the options applied while processing the layer. - func SetupBaseOSLayer(ctx context.Context, layerPath string, vhdHandle windows.Handle, options OsLayerOptions) (err error) { -- title := "hcsshim.SetupBaseOSLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::SetupBaseOSLayer" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -48,12 +50,16 @@ func SetupBaseOSLayer(ctx context.Context, layerPath string, vhdHandle windows.H - // `volumePath` is the path to the volume to be used for setup. - // - // `options` are the options applied while processing the layer. -+// -+// NOTE: This API is only available on builds of Windows greater than 19645. Inside we -+// check if the hosts build has the API available by using 'GetVersion' which requires -+// the calling application to be manifested. https://docs.microsoft.com/en-us/windows/win32/sbscs/manifests - func SetupBaseOSVolume(ctx context.Context, layerPath, volumePath string, options OsLayerOptions) (err error) { - if osversion.Build() < 19645 { - return errors.New("SetupBaseOSVolume is not present on builds older than 19645") - } -- title := "hcsshim.SetupBaseOSVolume" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ title := "hcsshim::SetupBaseOSVolume" -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go b/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go -index 95aff9c1..82d68cb8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/storage.go -@@ -7,7 +7,7 @@ import ( - hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2" - ) - --//go:generate go run ../mksyscall_windows.go -output zsyscall_windows.go storage.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go storage.go - - //sys hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) = computestorage.HcsImportLayer? - //sys hcsExportLayer(layerPath string, exportFolderPath string, layerData string, options string) (hr error) = computestorage.HcsExportLayer? -@@ -20,10 +20,13 @@ import ( - //sys hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) = computestorage.HcsGetLayerVhdMountPath? - //sys hcsSetupBaseOSVolume(layerPath string, volumePath string, options string) (hr error) = computestorage.HcsSetupBaseOSVolume? - -+type Version = hcsschema.Version -+type Layer = hcsschema.Layer -+ - // LayerData is the data used to describe parent layer information. - type LayerData struct { -- SchemaVersion hcsschema.Version `json:"SchemaVersion,omitempty"` -- Layers []hcsschema.Layer `json:"Layers,omitempty"` -+ SchemaVersion Version `json:"SchemaVersion,omitempty"` -+ Layers []Layer `json:"Layers,omitempty"` - } - - // ExportLayerOptions are the set of options that are used with the `computestorage.HcsExportLayer` syscall. -diff --git a/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go -index 4f951806..9cf47918 100644 ---- a/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/computestorage/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package computestorage - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -39,42 +42,86 @@ func errnoErr(e syscall.Errno) error { - var ( - modcomputestorage = windows.NewLazySystemDLL("computestorage.dll") - -- procHcsImportLayer = modcomputestorage.NewProc("HcsImportLayer") -- procHcsExportLayer = modcomputestorage.NewProc("HcsExportLayer") -- procHcsDestoryLayer = modcomputestorage.NewProc("HcsDestoryLayer") -- procHcsSetupBaseOSLayer = modcomputestorage.NewProc("HcsSetupBaseOSLayer") -- procHcsInitializeWritableLayer = modcomputestorage.NewProc("HcsInitializeWritableLayer") - procHcsAttachLayerStorageFilter = modcomputestorage.NewProc("HcsAttachLayerStorageFilter") -+ procHcsDestoryLayer = modcomputestorage.NewProc("HcsDestoryLayer") - procHcsDetachLayerStorageFilter = modcomputestorage.NewProc("HcsDetachLayerStorageFilter") -+ procHcsExportLayer = modcomputestorage.NewProc("HcsExportLayer") - procHcsFormatWritableLayerVhd = modcomputestorage.NewProc("HcsFormatWritableLayerVhd") - procHcsGetLayerVhdMountPath = modcomputestorage.NewProc("HcsGetLayerVhdMountPath") -+ procHcsImportLayer = modcomputestorage.NewProc("HcsImportLayer") -+ procHcsInitializeWritableLayer = modcomputestorage.NewProc("HcsInitializeWritableLayer") -+ procHcsSetupBaseOSLayer = modcomputestorage.NewProc("HcsSetupBaseOSLayer") - procHcsSetupBaseOSVolume = modcomputestorage.NewProc("HcsSetupBaseOSVolume") - ) - --func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) { -+func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(layerPath) - if hr != nil { - return - } - var _p1 *uint16 -- _p1, hr = syscall.UTF16PtrFromString(sourceFolderPath) -+ _p1, hr = syscall.UTF16PtrFromString(layerData) - if hr != nil { - return - } -- var _p2 *uint16 -- _p2, hr = syscall.UTF16PtrFromString(layerData) -+ return _hcsAttachLayerStorageFilter(_p0, _p1) -+} -+ -+func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) { -+ hr = procHcsAttachLayerStorageFilter.Find() - if hr != nil { - return - } -- return _hcsImportLayer(_p0, _p1, _p2) -+ r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return - } - --func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) { -- if hr = procHcsImportLayer.Find(); hr != nil { -+func hcsDestroyLayer(layerPath string) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(layerPath) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData))) -+ return _hcsDestroyLayer(_p0) -+} -+ -+func _hcsDestroyLayer(layerPath *uint16) (hr error) { -+ hr = procHcsDestoryLayer.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return -+} -+ -+func hcsDetachLayerStorageFilter(layerPath string) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(layerPath) -+ if hr != nil { -+ return -+ } -+ return _hcsDetachLayerStorageFilter(_p0) -+} -+ -+func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) { -+ hr = procHcsDetachLayerStorageFilter.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -109,7 +156,8 @@ func hcsExportLayer(layerPath string, exportFolderPath string, layerData string, - } - - func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uint16, options *uint16) (hr error) { -- if hr = procHcsExportLayer.Find(); hr != nil { -+ hr = procHcsExportLayer.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall6(procHcsExportLayer.Addr(), 4, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(exportFolderPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options)), 0, 0) -@@ -122,20 +170,27 @@ func _hcsExportLayer(layerPath *uint16, exportFolderPath *uint16, layerData *uin - return - } - --func hcsDestroyLayer(layerPath string) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(layerPath) -+func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) { -+ hr = procHcsFormatWritableLayerVhd.Find() - if hr != nil { - return - } -- return _hcsDestroyLayer(_p0) -+ r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return - } - --func _hcsDestroyLayer(layerPath *uint16) (hr error) { -- if hr = procHcsDestoryLayer.Find(); hr != nil { -+func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) { -+ hr = procHcsGetLayerVhdMountPath.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsDestoryLayer.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -145,25 +200,31 @@ func _hcsDestroyLayer(layerPath *uint16) (hr error) { - return - } - --func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) { -+func hcsImportLayer(layerPath string, sourceFolderPath string, layerData string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(layerPath) - if hr != nil { - return - } - var _p1 *uint16 -- _p1, hr = syscall.UTF16PtrFromString(options) -+ _p1, hr = syscall.UTF16PtrFromString(sourceFolderPath) - if hr != nil { - return - } -- return _hcsSetupBaseOSLayer(_p0, handle, _p1) -+ var _p2 *uint16 -+ _p2, hr = syscall.UTF16PtrFromString(layerData) -+ if hr != nil { -+ return -+ } -+ return _hcsImportLayer(_p0, _p1, _p2) - } - --func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) { -- if hr = procHcsSetupBaseOSLayer.Find(); hr != nil { -+func _hcsImportLayer(layerPath *uint16, sourceFolderPath *uint16, layerData *uint16) (hr error) { -+ hr = procHcsImportLayer.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options))) -+ r0, _, _ := syscall.Syscall(procHcsImportLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(sourceFolderPath)), uintptr(unsafe.Pointer(layerData))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -193,7 +254,8 @@ func hcsInitializeWritableLayer(writableLayerPath string, layerData string, opti - } - - func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, options *uint16) (hr error) { -- if hr = procHcsInitializeWritableLayer.Find(); hr != nil { -+ hr = procHcsInitializeWritableLayer.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcsInitializeWritableLayer.Addr(), 3, uintptr(unsafe.Pointer(writableLayerPath)), uintptr(unsafe.Pointer(layerData)), uintptr(unsafe.Pointer(options))) -@@ -206,76 +268,26 @@ func _hcsInitializeWritableLayer(writableLayerPath *uint16, layerData *uint16, o - return - } - --func hcsAttachLayerStorageFilter(layerPath string, layerData string) (hr error) { -+func hcsSetupBaseOSLayer(layerPath string, handle windows.Handle, options string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(layerPath) - if hr != nil { - return - } - var _p1 *uint16 -- _p1, hr = syscall.UTF16PtrFromString(layerData) -+ _p1, hr = syscall.UTF16PtrFromString(options) - if hr != nil { - return - } -- return _hcsAttachLayerStorageFilter(_p0, _p1) --} -- --func _hcsAttachLayerStorageFilter(layerPath *uint16, layerData *uint16) (hr error) { -- if hr = procHcsAttachLayerStorageFilter.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsAttachLayerStorageFilter.Addr(), 2, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(layerData)), 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return -+ return _hcsSetupBaseOSLayer(_p0, handle, _p1) - } - --func hcsDetachLayerStorageFilter(layerPath string) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(layerPath) -+func _hcsSetupBaseOSLayer(layerPath *uint16, handle windows.Handle, options *uint16) (hr error) { -+ hr = procHcsSetupBaseOSLayer.Find() - if hr != nil { - return - } -- return _hcsDetachLayerStorageFilter(_p0) --} -- --func _hcsDetachLayerStorageFilter(layerPath *uint16) (hr error) { -- if hr = procHcsDetachLayerStorageFilter.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsDetachLayerStorageFilter.Addr(), 1, uintptr(unsafe.Pointer(layerPath)), 0, 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return --} -- --func hcsFormatWritableLayerVhd(handle windows.Handle) (hr error) { -- if hr = procHcsFormatWritableLayerVhd.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsFormatWritableLayerVhd.Addr(), 1, uintptr(handle), 0, 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return --} -- --func hcsGetLayerVhdMountPath(vhdHandle windows.Handle, mountPath **uint16) (hr error) { -- if hr = procHcsGetLayerVhdMountPath.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsGetLayerVhdMountPath.Addr(), 2, uintptr(vhdHandle), uintptr(unsafe.Pointer(mountPath)), 0) -+ r0, _, _ := syscall.Syscall(procHcsSetupBaseOSLayer.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(handle), uintptr(unsafe.Pointer(options))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -305,7 +317,8 @@ func hcsSetupBaseOSVolume(layerPath string, volumePath string, options string) ( - } - - func _hcsSetupBaseOSVolume(layerPath *uint16, volumePath *uint16, options *uint16) (hr error) { -- if hr = procHcsSetupBaseOSVolume.Find(); hr != nil { -+ hr = procHcsSetupBaseOSVolume.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcsSetupBaseOSVolume.Addr(), 3, uintptr(unsafe.Pointer(layerPath)), uintptr(unsafe.Pointer(volumePath)), uintptr(unsafe.Pointer(options))) -diff --git a/vendor/github.com/Microsoft/hcsshim/container.go b/vendor/github.com/Microsoft/hcsshim/container.go -index bfd72289..c8f09f88 100644 ---- a/vendor/github.com/Microsoft/hcsshim/container.go -+++ b/vendor/github.com/Microsoft/hcsshim/container.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -@@ -60,7 +62,7 @@ type container struct { - waitCh chan struct{} - } - --// createComputeSystemAdditionalJSON is read from the environment at initialisation -+// createContainerAdditionalJSON is read from the environment at initialization - // time. It allows an environment variable to define additional JSON which - // is merged in the CreateComputeSystem call to HCS. - var createContainerAdditionalJSON []byte -diff --git a/vendor/github.com/Microsoft/hcsshim/errors.go b/vendor/github.com/Microsoft/hcsshim/errors.go -index f367022e..594bbfb7 100644 ---- a/vendor/github.com/Microsoft/hcsshim/errors.go -+++ b/vendor/github.com/Microsoft/hcsshim/errors.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -@@ -50,6 +52,9 @@ var ( - // ErrUnexpectedValue is an error encountered when hcs returns an invalid value - ErrUnexpectedValue = hcs.ErrUnexpectedValue - -+ // ErrOperationDenied is an error when hcs attempts an operation that is explicitly denied -+ ErrOperationDenied = hcs.ErrOperationDenied -+ - // ErrVmcomputeAlreadyStopped is an error encountered when a shutdown or terminate request is made on a stopped container - ErrVmcomputeAlreadyStopped = hcs.ErrVmcomputeAlreadyStopped - -diff --git a/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1 b/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1 -deleted file mode 100644 -index ce6edbcf..00000000 ---- a/vendor/github.com/Microsoft/hcsshim/functional_tests.ps1 -+++ /dev/null -@@ -1,12 +0,0 @@ --# Requirements so far: --# dockerd running --# - image microsoft/nanoserver (matching host base image) docker load -i c:\baseimages\nanoserver.tar --# - image alpine (linux) docker pull --platform=linux alpine -- -- --# TODO: Add this a parameter for debugging. ie "functional-tests -debug=$true" --#$env:HCSSHIM_FUNCTIONAL_TESTS_DEBUG="yes please" -- --#pushd uvm --go test -v -tags "functional uvmcreate uvmscratch uvmscsi uvmvpmem uvmvsmb uvmp9" ./... --#popd -\ No newline at end of file -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/doc.go b/vendor/github.com/Microsoft/hcsshim/hcn/doc.go -new file mode 100644 -index 00000000..83b2fffb ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/doc.go -@@ -0,0 +1,3 @@ -+// Package hcn is a shim for the Host Compute Networking (HCN) service, which manages networking for Windows Server -+// containers and Hyper-V containers. Previous to RS5, HCN was referred to as Host Networking Service (HNS). -+package hcn -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcn.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcn.go -index df3a59a7..61bd5b57 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcn.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcn.go -@@ -1,5 +1,5 @@ --// Package hcn is a shim for the Host Compute Networking (HCN) service, which manages networking for Windows Server --// containers and Hyper-V containers. Previous to RS5, HCN was referred to as Host Networking Service (HNS). -+//go:build windows -+ - package hcn - - import ( -@@ -10,7 +10,7 @@ import ( - "github.com/Microsoft/go-winio/pkg/guid" - ) - --//go:generate go run ../mksyscall_windows.go -output zsyscall_windows.go hcn.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hcn.go - - /// HNS V1 API - -@@ -228,7 +228,7 @@ func IPv6DualStackSupported() error { - return platformDoesNotSupportError("IPv6 DualStack") - } - --//L4proxySupported returns an error if the HCN verison does not support L4Proxy -+// L4proxySupported returns an error if the HCN version does not support L4Proxy - func L4proxyPolicySupported() error { - supported, err := GetCachedSupportedFeatures() - if err != nil { -@@ -240,7 +240,7 @@ func L4proxyPolicySupported() error { - return platformDoesNotSupportError("L4ProxyPolicy") - } - --// L4WfpProxySupported returns an error if the HCN verison does not support L4WfpProxy -+// L4WfpProxySupported returns an error if the HCN version does not support L4WfpProxy - func L4WfpProxyPolicySupported() error { - supported, err := GetCachedSupportedFeatures() - if err != nil { -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go -index 545e8639..76f7c6f1 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnendpoint.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -@@ -9,7 +11,7 @@ import ( - "github.com/sirupsen/logrus" - ) - --// IpConfig is assoicated with an endpoint -+// IpConfig is associated with an endpoint - type IpConfig struct { - IpAddress string `json:",omitempty"` - PrefixLength uint8 `json:",omitempty"` -@@ -70,14 +72,14 @@ type PolicyEndpointRequest struct { - Policies []EndpointPolicy `json:",omitempty"` - } - --func getEndpoint(endpointGuid guid.GUID, query string) (*HostComputeEndpoint, error) { -+func getEndpoint(endpointGUID guid.GUID, query string) (*HostComputeEndpoint, error) { - // Open endpoint. - var ( - endpointHandle hcnEndpoint - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenEndpoint(&endpointGuid, &endpointHandle, &resultBuffer) -+ hr := hcnOpenEndpoint(&endpointGUID, &endpointHandle, &resultBuffer) - if err := checkForErrors("hcnOpenEndpoint", hr, resultBuffer); err != nil { - return nil, err - } -@@ -119,8 +121,8 @@ func enumerateEndpoints(query string) ([]HostComputeEndpoint, error) { - } - - var outputEndpoints []HostComputeEndpoint -- for _, endpointGuid := range endpointIds { -- endpoint, err := getEndpoint(endpointGuid, query) -+ for _, endpointGUID := range endpointIds { -+ endpoint, err := getEndpoint(endpointGUID, query) - if err != nil { - return nil, err - } -@@ -129,22 +131,22 @@ func enumerateEndpoints(query string) ([]HostComputeEndpoint, error) { - return outputEndpoints, nil - } - --func createEndpoint(networkId string, endpointSettings string) (*HostComputeEndpoint, error) { -- networkGuid, err := guid.FromString(networkId) -+func createEndpoint(networkID string, endpointSettings string) (*HostComputeEndpoint, error) { -+ networkGUID, err := guid.FromString(networkID) - if err != nil { - return nil, errInvalidNetworkID - } - // Open network. - var networkHandle hcnNetwork - var resultBuffer *uint16 -- hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer) -+ hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer) - if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil { - return nil, err - } - // Create endpoint. -- endpointId := guid.GUID{} -+ endpointID := guid.GUID{} - var endpointHandle hcnEndpoint -- hr = hcnCreateEndpoint(networkHandle, &endpointId, endpointSettings, &endpointHandle, &resultBuffer) -+ hr = hcnCreateEndpoint(networkHandle, &endpointID, endpointSettings, &endpointHandle, &resultBuffer) - if err := checkForErrors("hcnCreateEndpoint", hr, resultBuffer); err != nil { - return nil, err - } -@@ -178,8 +180,8 @@ func createEndpoint(networkId string, endpointSettings string) (*HostComputeEndp - return &outputEndpoint, nil - } - --func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, error) { -- endpointGuid, err := guid.FromString(endpointId) -+func modifyEndpoint(endpointID string, settings string) (*HostComputeEndpoint, error) { -+ endpointGUID, err := guid.FromString(endpointID) - if err != nil { - return nil, errInvalidEndpointID - } -@@ -189,7 +191,7 @@ func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, e - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenEndpoint(&endpointGuid, &endpointHandle, &resultBuffer) -+ hr := hcnOpenEndpoint(&endpointGUID, &endpointHandle, &resultBuffer) - if err := checkForErrors("hcnOpenEndpoint", hr, resultBuffer); err != nil { - return nil, err - } -@@ -222,13 +224,13 @@ func modifyEndpoint(endpointId string, settings string) (*HostComputeEndpoint, e - return &outputEndpoint, nil - } - --func deleteEndpoint(endpointId string) error { -- endpointGuid, err := guid.FromString(endpointId) -+func deleteEndpoint(endpointID string) error { -+ endpointGUID, err := guid.FromString(endpointID) - if err != nil { - return errInvalidEndpointID - } - var resultBuffer *uint16 -- hr := hcnDeleteEndpoint(&endpointGuid, &resultBuffer) -+ hr := hcnDeleteEndpoint(&endpointGUID, &resultBuffer) - if err := checkForErrors("hcnDeleteEndpoint", hr, resultBuffer); err != nil { - return err - } -@@ -247,12 +249,12 @@ func ListEndpoints() ([]HostComputeEndpoint, error) { - - // ListEndpointsQuery makes a call to query the list of available endpoints. - func ListEndpointsQuery(query HostComputeQuery) ([]HostComputeEndpoint, error) { -- queryJson, err := json.Marshal(query) -+ queryJSON, err := json.Marshal(query) - if err != nil { - return nil, err - } - -- endpoints, err := enumerateEndpoints(string(queryJson)) -+ endpoints, err := enumerateEndpoints(string(queryJSON)) - if err != nil { - return nil, err - } -@@ -260,10 +262,10 @@ func ListEndpointsQuery(query HostComputeQuery) ([]HostComputeEndpoint, error) { - } - - // ListEndpointsOfNetwork queries the list of endpoints on a network. --func ListEndpointsOfNetwork(networkId string) ([]HostComputeEndpoint, error) { -+func ListEndpointsOfNetwork(networkID string) ([]HostComputeEndpoint, error) { - hcnQuery := defaultQuery() - // TODO: Once query can convert schema, change to {HostComputeNetwork:networkId} -- mapA := map[string]string{"VirtualNetwork": networkId} -+ mapA := map[string]string{"VirtualNetwork": networkID} - filter, err := json.Marshal(mapA) - if err != nil { - return nil, err -@@ -274,9 +276,9 @@ func ListEndpointsOfNetwork(networkId string) ([]HostComputeEndpoint, error) { - } - - // GetEndpointByID returns an endpoint specified by Id --func GetEndpointByID(endpointId string) (*HostComputeEndpoint, error) { -+func GetEndpointByID(endpointID string) (*HostComputeEndpoint, error) { - hcnQuery := defaultQuery() -- mapA := map[string]string{"ID": endpointId} -+ mapA := map[string]string{"ID": endpointID} - filter, err := json.Marshal(mapA) - if err != nil { - return nil, err -@@ -288,7 +290,7 @@ func GetEndpointByID(endpointId string) (*HostComputeEndpoint, error) { - return nil, err - } - if len(endpoints) == 0 { -- return nil, EndpointNotFoundError{EndpointID: endpointId} -+ return nil, EndpointNotFoundError{EndpointID: endpointID} - } - return &endpoints[0], err - } -@@ -345,15 +347,15 @@ func (endpoint *HostComputeEndpoint) Delete() error { - } - - // ModifyEndpointSettings updates the Port/Policy of an Endpoint. --func ModifyEndpointSettings(endpointId string, request *ModifyEndpointSettingRequest) error { -- logrus.Debugf("hcn::HostComputeEndpoint::ModifyEndpointSettings id=%s", endpointId) -+func ModifyEndpointSettings(endpointID string, request *ModifyEndpointSettingRequest) error { -+ logrus.Debugf("hcn::HostComputeEndpoint::ModifyEndpointSettings id=%s", endpointID) - - endpointSettingsRequest, err := json.Marshal(request) - if err != nil { - return err - } - -- _, err = modifyEndpoint(endpointId, string(endpointSettingsRequest)) -+ _, err = modifyEndpoint(endpointID, string(endpointSettingsRequest)) - if err != nil { - return err - } -@@ -364,25 +366,25 @@ func ModifyEndpointSettings(endpointId string, request *ModifyEndpointSettingReq - func (endpoint *HostComputeEndpoint) ApplyPolicy(requestType RequestType, endpointPolicy PolicyEndpointRequest) error { - logrus.Debugf("hcn::HostComputeEndpoint::ApplyPolicy id=%s", endpoint.Id) - -- settingsJson, err := json.Marshal(endpointPolicy) -+ settingsJSON, err := json.Marshal(endpointPolicy) - if err != nil { - return err - } - requestMessage := &ModifyEndpointSettingRequest{ - ResourceType: EndpointResourceTypePolicy, - RequestType: requestType, -- Settings: settingsJson, -+ Settings: settingsJSON, - } - - return ModifyEndpointSettings(endpoint.Id, requestMessage) - } - - // NamespaceAttach modifies a Namespace to add an endpoint. --func (endpoint *HostComputeEndpoint) NamespaceAttach(namespaceId string) error { -- return AddNamespaceEndpoint(namespaceId, endpoint.Id) -+func (endpoint *HostComputeEndpoint) NamespaceAttach(namespaceID string) error { -+ return AddNamespaceEndpoint(namespaceID, endpoint.Id) - } - - // NamespaceDetach modifies a Namespace to remove an endpoint. --func (endpoint *HostComputeEndpoint) NamespaceDetach(namespaceId string) error { -- return RemoveNamespaceEndpoint(namespaceId, endpoint.Id) -+func (endpoint *HostComputeEndpoint) NamespaceDetach(namespaceID string) error { -+ return RemoveNamespaceEndpoint(namespaceID, endpoint.Id) - } -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go -index ad30d320..81b56b9f 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnerrors.go -@@ -1,5 +1,5 @@ --// Package hcn is a shim for the Host Compute Networking (HCN) service, which manages networking for Windows Server --// containers and Hyper-V containers. Previous to RS5, HCN was referred to as Host Networking Service (HNS). -+//go:build windows -+ - package hcn - - import ( -@@ -10,6 +10,7 @@ import ( - "github.com/Microsoft/hcsshim/internal/hcserror" - "github.com/Microsoft/hcsshim/internal/interop" - "github.com/sirupsen/logrus" -+ "golang.org/x/sys/windows" - ) - - var ( -@@ -48,8 +49,8 @@ type ErrorCode uint32 - - // For common errors, define the error as it is in windows, so we can quickly determine it later - const ( -- ERROR_NOT_FOUND = 0x490 -- HCN_E_PORT_ALREADY_EXISTS ErrorCode = 0x803b0013 -+ ERROR_NOT_FOUND = ErrorCode(windows.ERROR_NOT_FOUND) -+ HCN_E_PORT_ALREADY_EXISTS ErrorCode = ErrorCode(windows.HCN_E_PORT_ALREADY_EXISTS) - ) - - type HcnError struct { -@@ -87,10 +88,10 @@ func new(hr error, title string, rest string) error { - - // - // Note that the below errors are not errors returned by hcn itself --// we wish to seperate them as they are shim usage error -+// we wish to separate them as they are shim usage error - // - --// NetworkNotFoundError results from a failed seach for a network by Id or Name -+// NetworkNotFoundError results from a failed search for a network by Id or Name - type NetworkNotFoundError struct { - NetworkName string - NetworkID string -@@ -103,7 +104,7 @@ func (e NetworkNotFoundError) Error() string { - return fmt.Sprintf("Network ID %q not found", e.NetworkID) - } - --// EndpointNotFoundError results from a failed seach for an endpoint by Id or Name -+// EndpointNotFoundError results from a failed search for an endpoint by Id or Name - type EndpointNotFoundError struct { - EndpointName string - EndpointID string -@@ -116,7 +117,7 @@ func (e EndpointNotFoundError) Error() string { - return fmt.Sprintf("Endpoint ID %q not found", e.EndpointID) - } - --// NamespaceNotFoundError results from a failed seach for a namsepace by Id -+// NamespaceNotFoundError results from a failed search for a namsepace by Id - type NamespaceNotFoundError struct { - NamespaceID string - } -@@ -125,7 +126,7 @@ func (e NamespaceNotFoundError) Error() string { - return fmt.Sprintf("Namespace ID %q not found", e.NamespaceID) - } - --// LoadBalancerNotFoundError results from a failed seach for a loadbalancer by Id -+// LoadBalancerNotFoundError results from a failed search for a loadbalancer by Id - type LoadBalancerNotFoundError struct { - LoadBalancerId string - } -@@ -134,7 +135,7 @@ func (e LoadBalancerNotFoundError) Error() string { - return fmt.Sprintf("LoadBalancer %q not found", e.LoadBalancerId) - } - --// RouteNotFoundError results from a failed seach for a route by Id -+// RouteNotFoundError results from a failed search for a route by Id - type RouteNotFoundError struct { - RouteId string - } -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnglobals.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnglobals.go -index 14903bc5..25e368fc 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnglobals.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnglobals.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go -index 1b434b07..4add34f3 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnloadbalancer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -@@ -28,14 +30,14 @@ type HostComputeLoadBalancer struct { - Flags LoadBalancerFlags `json:",omitempty"` // 0: None, 1: EnableDirectServerReturn - } - --//LoadBalancerFlags modify settings for a loadbalancer. -+// LoadBalancerFlags modify settings for a loadbalancer. - type LoadBalancerFlags uint32 - - var ( - // LoadBalancerFlagsNone is the default. - LoadBalancerFlagsNone LoadBalancerFlags = 0 - // LoadBalancerFlagsDSR enables Direct Server Return (DSR) -- LoadBalancerFlagsDSR LoadBalancerFlags = 1 -+ LoadBalancerFlagsDSR LoadBalancerFlags = 1 - LoadBalancerFlagsIPv6 LoadBalancerFlags = 2 - ) - -@@ -67,14 +69,14 @@ var ( - LoadBalancerDistributionSourceIP LoadBalancerDistribution = 2 - ) - --func getLoadBalancer(loadBalancerGuid guid.GUID, query string) (*HostComputeLoadBalancer, error) { -+func getLoadBalancer(loadBalancerGUID guid.GUID, query string) (*HostComputeLoadBalancer, error) { - // Open loadBalancer. - var ( - loadBalancerHandle hcnLoadBalancer - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenLoadBalancer(&loadBalancerGuid, &loadBalancerHandle, &resultBuffer) -+ hr := hcnOpenLoadBalancer(&loadBalancerGUID, &loadBalancerHandle, &resultBuffer) - if err := checkForErrors("hcnOpenLoadBalancer", hr, resultBuffer); err != nil { - return nil, err - } -@@ -115,8 +117,8 @@ func enumerateLoadBalancers(query string) ([]HostComputeLoadBalancer, error) { - } - - var outputLoadBalancers []HostComputeLoadBalancer -- for _, loadBalancerGuid := range loadBalancerIds { -- loadBalancer, err := getLoadBalancer(loadBalancerGuid, query) -+ for _, loadBalancerGUID := range loadBalancerIds { -+ loadBalancer, err := getLoadBalancer(loadBalancerGUID, query) - if err != nil { - return nil, err - } -@@ -132,8 +134,8 @@ func createLoadBalancer(settings string) (*HostComputeLoadBalancer, error) { - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- loadBalancerGuid := guid.GUID{} -- hr := hcnCreateLoadBalancer(&loadBalancerGuid, settings, &loadBalancerHandle, &resultBuffer) -+ loadBalancerGUID := guid.GUID{} -+ hr := hcnCreateLoadBalancer(&loadBalancerGUID, settings, &loadBalancerHandle, &resultBuffer) - if err := checkForErrors("hcnCreateLoadBalancer", hr, resultBuffer); err != nil { - return nil, err - } -@@ -161,13 +163,13 @@ func createLoadBalancer(settings string) (*HostComputeLoadBalancer, error) { - return &outputLoadBalancer, nil - } - --func deleteLoadBalancer(loadBalancerId string) error { -- loadBalancerGuid, err := guid.FromString(loadBalancerId) -+func deleteLoadBalancer(loadBalancerID string) error { -+ loadBalancerGUID, err := guid.FromString(loadBalancerID) - if err != nil { - return errInvalidLoadBalancerID - } - var resultBuffer *uint16 -- hr := hcnDeleteLoadBalancer(&loadBalancerGuid, &resultBuffer) -+ hr := hcnDeleteLoadBalancer(&loadBalancerGUID, &resultBuffer) - if err := checkForErrors("hcnDeleteLoadBalancer", hr, resultBuffer); err != nil { - return err - } -@@ -186,12 +188,12 @@ func ListLoadBalancers() ([]HostComputeLoadBalancer, error) { - - // ListLoadBalancersQuery makes a call to query the list of available loadBalancers. - func ListLoadBalancersQuery(query HostComputeQuery) ([]HostComputeLoadBalancer, error) { -- queryJson, err := json.Marshal(query) -+ queryJSON, err := json.Marshal(query) - if err != nil { - return nil, err - } - -- loadBalancers, err := enumerateLoadBalancers(string(queryJson)) -+ loadBalancers, err := enumerateLoadBalancers(string(queryJSON)) - if err != nil { - return nil, err - } -@@ -199,9 +201,9 @@ func ListLoadBalancersQuery(query HostComputeQuery) ([]HostComputeLoadBalancer, - } - - // GetLoadBalancerByID returns the LoadBalancer specified by Id. --func GetLoadBalancerByID(loadBalancerId string) (*HostComputeLoadBalancer, error) { -+func GetLoadBalancerByID(loadBalancerID string) (*HostComputeLoadBalancer, error) { - hcnQuery := defaultQuery() -- mapA := map[string]string{"ID": loadBalancerId} -+ mapA := map[string]string{"ID": loadBalancerID} - filter, err := json.Marshal(mapA) - if err != nil { - return nil, err -@@ -213,7 +215,7 @@ func GetLoadBalancerByID(loadBalancerId string) (*HostComputeLoadBalancer, error - return nil, err - } - if len(loadBalancers) == 0 { -- return nil, LoadBalancerNotFoundError{LoadBalancerId: loadBalancerId} -+ return nil, LoadBalancerNotFoundError{LoadBalancerId: loadBalancerID} - } - return &loadBalancers[0], err - } -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go -index d2ef2296..5768eac1 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnnamespace.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -@@ -27,7 +29,7 @@ type NamespaceResourceContainer struct { - type NamespaceResourceType string - - var ( -- // NamespaceResourceTypeContainer are contianers associated with a Namespace. -+ // NamespaceResourceTypeContainer are containers associated with a Namespace. - NamespaceResourceTypeContainer NamespaceResourceType = "Container" - // NamespaceResourceTypeEndpoint are endpoints associated with a Namespace. - NamespaceResourceTypeEndpoint NamespaceResourceType = "Endpoint" -@@ -70,14 +72,14 @@ type ModifyNamespaceSettingRequest struct { - Settings json.RawMessage `json:",omitempty"` - } - --func getNamespace(namespaceGuid guid.GUID, query string) (*HostComputeNamespace, error) { -+func getNamespace(namespaceGUID guid.GUID, query string) (*HostComputeNamespace, error) { - // Open namespace. - var ( - namespaceHandle hcnNamespace - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenNamespace(&namespaceGuid, &namespaceHandle, &resultBuffer) -+ hr := hcnOpenNamespace(&namespaceGUID, &namespaceHandle, &resultBuffer) - if err := checkForErrors("hcnOpenNamespace", hr, resultBuffer); err != nil { - return nil, err - } -@@ -118,8 +120,8 @@ func enumerateNamespaces(query string) ([]HostComputeNamespace, error) { - } - - var outputNamespaces []HostComputeNamespace -- for _, namespaceGuid := range namespaceIds { -- namespace, err := getNamespace(namespaceGuid, query) -+ for _, namespaceGUID := range namespaceIds { -+ namespace, err := getNamespace(namespaceGUID, query) - if err != nil { - return nil, err - } -@@ -135,8 +137,8 @@ func createNamespace(settings string) (*HostComputeNamespace, error) { - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- namespaceGuid := guid.GUID{} -- hr := hcnCreateNamespace(&namespaceGuid, settings, &namespaceHandle, &resultBuffer) -+ namespaceGUID := guid.GUID{} -+ hr := hcnCreateNamespace(&namespaceGUID, settings, &namespaceHandle, &resultBuffer) - if err := checkForErrors("hcnCreateNamespace", hr, resultBuffer); err != nil { - return nil, err - } -@@ -164,8 +166,8 @@ func createNamespace(settings string) (*HostComputeNamespace, error) { - return &outputNamespace, nil - } - --func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace, error) { -- namespaceGuid, err := guid.FromString(namespaceId) -+func modifyNamespace(namespaceID string, settings string) (*HostComputeNamespace, error) { -+ namespaceGUID, err := guid.FromString(namespaceID) - if err != nil { - return nil, errInvalidNamespaceID - } -@@ -175,7 +177,7 @@ func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenNamespace(&namespaceGuid, &namespaceHandle, &resultBuffer) -+ hr := hcnOpenNamespace(&namespaceGUID, &namespaceHandle, &resultBuffer) - if err := checkForErrors("hcnOpenNamespace", hr, resultBuffer); err != nil { - return nil, err - } -@@ -208,13 +210,13 @@ func modifyNamespace(namespaceId string, settings string) (*HostComputeNamespace - return &outputNamespace, nil - } - --func deleteNamespace(namespaceId string) error { -- namespaceGuid, err := guid.FromString(namespaceId) -+func deleteNamespace(namespaceID string) error { -+ namespaceGUID, err := guid.FromString(namespaceID) - if err != nil { - return errInvalidNamespaceID - } - var resultBuffer *uint16 -- hr := hcnDeleteNamespace(&namespaceGuid, &resultBuffer) -+ hr := hcnDeleteNamespace(&namespaceGUID, &resultBuffer) - if err := checkForErrors("hcnDeleteNamespace", hr, resultBuffer); err != nil { - return err - } -@@ -233,12 +235,12 @@ func ListNamespaces() ([]HostComputeNamespace, error) { - - // ListNamespacesQuery makes a call to query the list of available namespaces. - func ListNamespacesQuery(query HostComputeQuery) ([]HostComputeNamespace, error) { -- queryJson, err := json.Marshal(query) -+ queryJSON, err := json.Marshal(query) - if err != nil { - return nil, err - } - -- namespaces, err := enumerateNamespaces(string(queryJson)) -+ namespaces, err := enumerateNamespaces(string(queryJSON)) - if err != nil { - return nil, err - } -@@ -246,9 +248,9 @@ func ListNamespacesQuery(query HostComputeQuery) ([]HostComputeNamespace, error) - } - - // GetNamespaceByID returns the Namespace specified by Id. --func GetNamespaceByID(namespaceId string) (*HostComputeNamespace, error) { -+func GetNamespaceByID(namespaceID string) (*HostComputeNamespace, error) { - hcnQuery := defaultQuery() -- mapA := map[string]string{"ID": namespaceId} -+ mapA := map[string]string{"ID": namespaceID} - filter, err := json.Marshal(mapA) - if err != nil { - return nil, err -@@ -260,15 +262,15 @@ func GetNamespaceByID(namespaceId string) (*HostComputeNamespace, error) { - return nil, err - } - if len(namespaces) == 0 { -- return nil, NamespaceNotFoundError{NamespaceID: namespaceId} -+ return nil, NamespaceNotFoundError{NamespaceID: namespaceID} - } - - return &namespaces[0], err - } - - // GetNamespaceEndpointIds returns the endpoints of the Namespace specified by Id. --func GetNamespaceEndpointIds(namespaceId string) ([]string, error) { -- namespace, err := GetNamespaceByID(namespaceId) -+func GetNamespaceEndpointIds(namespaceID string) ([]string, error) { -+ namespace, err := GetNamespaceByID(namespaceID) - if err != nil { - return nil, err - } -@@ -286,19 +288,19 @@ func GetNamespaceEndpointIds(namespaceId string) ([]string, error) { - } - - // GetNamespaceContainerIds returns the containers of the Namespace specified by Id. --func GetNamespaceContainerIds(namespaceId string) ([]string, error) { -- namespace, err := GetNamespaceByID(namespaceId) -+func GetNamespaceContainerIds(namespaceID string) ([]string, error) { -+ namespace, err := GetNamespaceByID(namespaceID) - if err != nil { - return nil, err - } - var containerIds []string - for _, resource := range namespace.Resources { - if resource.Type == "Container" { -- var contaienrResource NamespaceResourceContainer -- if err := json.Unmarshal([]byte(resource.Data), &contaienrResource); err != nil { -+ var containerResource NamespaceResourceContainer -+ if err := json.Unmarshal([]byte(resource.Data), &containerResource); err != nil { - return nil, err - } -- containerIds = append(containerIds, contaienrResource.Id) -+ containerIds = append(containerIds, containerResource.Id) - } - } - return containerIds, nil -@@ -375,7 +377,7 @@ func (namespace *HostComputeNamespace) Sync() error { - } - shimPath := runhcs.VMPipePath(cfg.HostUniqueID) - if err := runhcs.IssueVMRequest(shimPath, &req); err != nil { -- // The shim is likey gone. Simply ignore the sync as if it didn't exist. -+ // The shim is likely gone. Simply ignore the sync as if it didn't exist. - if perr, ok := err.(*os.PathError); ok && perr.Err == syscall.ERROR_FILE_NOT_FOUND { - // Remove the reg key there is no point to try again - _ = cfg.Remove() -@@ -394,15 +396,15 @@ func (namespace *HostComputeNamespace) Sync() error { - } - - // ModifyNamespaceSettings updates the Endpoints/Containers of a Namespace. --func ModifyNamespaceSettings(namespaceId string, request *ModifyNamespaceSettingRequest) error { -- logrus.Debugf("hcn::HostComputeNamespace::ModifyNamespaceSettings id=%s", namespaceId) -+func ModifyNamespaceSettings(namespaceID string, request *ModifyNamespaceSettingRequest) error { -+ logrus.Debugf("hcn::HostComputeNamespace::ModifyNamespaceSettings id=%s", namespaceID) - - namespaceSettings, err := json.Marshal(request) - if err != nil { - return err - } - -- _, err = modifyNamespace(namespaceId, string(namespaceSettings)) -+ _, err = modifyNamespace(namespaceID, string(namespaceSettings)) - if err != nil { - return err - } -@@ -410,37 +412,37 @@ func ModifyNamespaceSettings(namespaceId string, request *ModifyNamespaceSetting - } - - // AddNamespaceEndpoint adds an endpoint to a Namespace. --func AddNamespaceEndpoint(namespaceId string, endpointId string) error { -- logrus.Debugf("hcn::HostComputeEndpoint::AddNamespaceEndpoint id=%s", endpointId) -+func AddNamespaceEndpoint(namespaceID string, endpointID string) error { -+ logrus.Debugf("hcn::HostComputeEndpoint::AddNamespaceEndpoint id=%s", endpointID) - -- mapA := map[string]string{"EndpointId": endpointId} -- settingsJson, err := json.Marshal(mapA) -+ mapA := map[string]string{"EndpointId": endpointID} -+ settingsJSON, err := json.Marshal(mapA) - if err != nil { - return err - } - requestMessage := &ModifyNamespaceSettingRequest{ - ResourceType: NamespaceResourceTypeEndpoint, - RequestType: RequestTypeAdd, -- Settings: settingsJson, -+ Settings: settingsJSON, - } - -- return ModifyNamespaceSettings(namespaceId, requestMessage) -+ return ModifyNamespaceSettings(namespaceID, requestMessage) - } - - // RemoveNamespaceEndpoint removes an endpoint from a Namespace. --func RemoveNamespaceEndpoint(namespaceId string, endpointId string) error { -- logrus.Debugf("hcn::HostComputeNamespace::RemoveNamespaceEndpoint id=%s", endpointId) -+func RemoveNamespaceEndpoint(namespaceID string, endpointID string) error { -+ logrus.Debugf("hcn::HostComputeNamespace::RemoveNamespaceEndpoint id=%s", endpointID) - -- mapA := map[string]string{"EndpointId": endpointId} -- settingsJson, err := json.Marshal(mapA) -+ mapA := map[string]string{"EndpointId": endpointID} -+ settingsJSON, err := json.Marshal(mapA) - if err != nil { - return err - } - requestMessage := &ModifyNamespaceSettingRequest{ - ResourceType: NamespaceResourceTypeEndpoint, - RequestType: RequestTypeRemove, -- Settings: settingsJson, -+ Settings: settingsJSON, - } - -- return ModifyNamespaceSettings(namespaceId, requestMessage) -+ return ModifyNamespaceSettings(namespaceID, requestMessage) - } -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go -index c36b1363..1b8b0dd4 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnnetwork.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -@@ -110,14 +112,14 @@ type PolicyNetworkRequest struct { - Policies []NetworkPolicy `json:",omitempty"` - } - --func getNetwork(networkGuid guid.GUID, query string) (*HostComputeNetwork, error) { -+func getNetwork(networkGUID guid.GUID, query string) (*HostComputeNetwork, error) { - // Open network. - var ( - networkHandle hcnNetwork - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer) -+ hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer) - if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil { - return nil, err - } -@@ -164,8 +166,8 @@ func enumerateNetworks(query string) ([]HostComputeNetwork, error) { - } - - var outputNetworks []HostComputeNetwork -- for _, networkGuid := range networkIds { -- network, err := getNetwork(networkGuid, query) -+ for _, networkGUID := range networkIds { -+ network, err := getNetwork(networkGUID, query) - if err != nil { - return nil, err - } -@@ -181,8 +183,8 @@ func createNetwork(settings string) (*HostComputeNetwork, error) { - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- networkGuid := guid.GUID{} -- hr := hcnCreateNetwork(&networkGuid, settings, &networkHandle, &resultBuffer) -+ networkGUID := guid.GUID{} -+ hr := hcnCreateNetwork(&networkGUID, settings, &networkHandle, &resultBuffer) - if err := checkForErrors("hcnCreateNetwork", hr, resultBuffer); err != nil { - return nil, err - } -@@ -216,8 +218,8 @@ func createNetwork(settings string) (*HostComputeNetwork, error) { - return &outputNetwork, nil - } - --func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, error) { -- networkGuid, err := guid.FromString(networkId) -+func modifyNetwork(networkID string, settings string) (*HostComputeNetwork, error) { -+ networkGUID, err := guid.FromString(networkID) - if err != nil { - return nil, errInvalidNetworkID - } -@@ -227,7 +229,7 @@ func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, erro - resultBuffer *uint16 - propertiesBuffer *uint16 - ) -- hr := hcnOpenNetwork(&networkGuid, &networkHandle, &resultBuffer) -+ hr := hcnOpenNetwork(&networkGUID, &networkHandle, &resultBuffer) - if err := checkForErrors("hcnOpenNetwork", hr, resultBuffer); err != nil { - return nil, err - } -@@ -266,13 +268,13 @@ func modifyNetwork(networkId string, settings string) (*HostComputeNetwork, erro - return &outputNetwork, nil - } - --func deleteNetwork(networkId string) error { -- networkGuid, err := guid.FromString(networkId) -+func deleteNetwork(networkID string) error { -+ networkGUID, err := guid.FromString(networkID) - if err != nil { - return errInvalidNetworkID - } - var resultBuffer *uint16 -- hr := hcnDeleteNetwork(&networkGuid, &resultBuffer) -+ hr := hcnDeleteNetwork(&networkGUID, &resultBuffer) - if err := checkForErrors("hcnDeleteNetwork", hr, resultBuffer); err != nil { - return err - } -@@ -291,12 +293,12 @@ func ListNetworks() ([]HostComputeNetwork, error) { - - // ListNetworksQuery makes a call to query the list of available networks. - func ListNetworksQuery(query HostComputeQuery) ([]HostComputeNetwork, error) { -- queryJson, err := json.Marshal(query) -+ queryJSON, err := json.Marshal(query) - if err != nil { - return nil, err - } - -- networks, err := enumerateNetworks(string(queryJson)) -+ networks, err := enumerateNetworks(string(queryJSON)) - if err != nil { - return nil, err - } -@@ -408,14 +410,14 @@ func (network *HostComputeNetwork) ModifyNetworkSettings(request *ModifyNetworkS - func (network *HostComputeNetwork) AddPolicy(networkPolicy PolicyNetworkRequest) error { - logrus.Debugf("hcn::HostComputeNetwork::AddPolicy id=%s", network.Id) - -- settingsJson, err := json.Marshal(networkPolicy) -+ settingsJSON, err := json.Marshal(networkPolicy) - if err != nil { - return err - } - requestMessage := &ModifyNetworkSettingRequest{ - ResourceType: NetworkResourceTypePolicy, - RequestType: RequestTypeAdd, -- Settings: settingsJson, -+ Settings: settingsJSON, - } - - return network.ModifyNetworkSettings(requestMessage) -@@ -425,14 +427,14 @@ func (network *HostComputeNetwork) AddPolicy(networkPolicy PolicyNetworkRequest) - func (network *HostComputeNetwork) RemovePolicy(networkPolicy PolicyNetworkRequest) error { - logrus.Debugf("hcn::HostComputeNetwork::RemovePolicy id=%s", network.Id) - -- settingsJson, err := json.Marshal(networkPolicy) -+ settingsJSON, err := json.Marshal(networkPolicy) - if err != nil { - return err - } - requestMessage := &ModifyNetworkSettingRequest{ - ResourceType: NetworkResourceTypePolicy, - RequestType: RequestTypeRemove, -- Settings: settingsJson, -+ Settings: settingsJSON, - } - - return network.ModifyNetworkSettings(requestMessage) -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go -index c2aa599f..dd381aec 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnpolicy.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -@@ -23,7 +25,7 @@ const ( - // Endpoint and Network have InterfaceConstraint and ProviderAddress - NetworkProviderAddress EndpointPolicyType = "ProviderAddress" - NetworkInterfaceConstraint EndpointPolicyType = "InterfaceConstraint" -- TierAcl EndpointPolicyType = "TierAcl" -+ TierAcl EndpointPolicyType = "TierAcl" - ) - - // EndpointPolicy is a collection of Policy settings for an Endpoint. -@@ -133,7 +135,7 @@ type AclPolicySetting struct { - RemotePorts string `json:",omitempty"` - RuleType RuleType `json:",omitempty"` - Priority uint16 `json:",omitempty"` --} -+} - - // QosPolicySetting sets Quality of Service bandwidth caps on an Endpoint. - type QosPolicySetting struct { -@@ -166,7 +168,7 @@ type NetworkACLPolicySetting struct { - RemotePorts string `json:",omitempty"` - RuleType RuleType `json:",omitempty"` - Priority uint16 `json:",omitempty"` --} -+} - - // FiveTuple is nested in L4ProxyPolicySetting for WFP support. - type FiveTuple struct { -@@ -284,7 +286,7 @@ type RemoteSubnetRoutePolicySetting struct { - type SetPolicyType string - - const ( -- SetPolicyTypeIpSet SetPolicyType = "IPSET" -+ SetPolicyTypeIpSet SetPolicyType = "IPSET" - SetPolicyTypeNestedIpSet SetPolicyType = "NESTEDIPSET" - ) - -@@ -292,7 +294,7 @@ const ( - type SetPolicySetting struct { - Id string - Name string -- Type SetPolicyType -+ Type SetPolicyType `json:"PolicyType"` - Values string - } - -@@ -313,32 +315,32 @@ const ( - ProtocolTypeICMPv6 ProtocolType = 58 - ) - --//L4ProxyPolicySetting applies proxy policy on network/endpoint -+// L4ProxyPolicySetting applies proxy policy on network/endpoint - type L4ProxyPolicySetting struct { - IP string `json:",omitempty"` - Port string `json:",omitempty"` - Protocol ProtocolType `json:",omitempty"` - Exceptions []string `json:",omitempty"` - Destination string -- OutboundNAT bool `json:",omitempty"` -+ OutboundNAT bool `json:",omitempty"` - } - - // TierAclRule represents an ACL within TierAclPolicySetting - type TierAclRule struct { -- Id string `json:",omitempty"` -- Protocols string `json:",omitempty"` -- TierAclRuleAction ActionType `json:","` -- LocalAddresses string `json:",omitempty"` -- RemoteAddresses string `json:",omitempty"` -- LocalPorts string `json:",omitempty"` -- RemotePorts string `json:",omitempty"` -- Priority uint16 `json:",omitempty"` -+ Id string `json:",omitempty"` -+ Protocols string `json:",omitempty"` -+ TierAclRuleAction ActionType `json:","` -+ LocalAddresses string `json:",omitempty"` -+ RemoteAddresses string `json:",omitempty"` -+ LocalPorts string `json:",omitempty"` -+ RemotePorts string `json:",omitempty"` -+ Priority uint16 `json:",omitempty"` - } - - // TierAclPolicySetting represents a Tier containing ACLs - type TierAclPolicySetting struct { -- Name string `json:","` -- Direction DirectionType `json:","` -- Order uint16 `json:""` -- TierAclRules []TierAclRule `json:",omitempty"` -+ Name string `json:","` -+ Direction DirectionType `json:","` -+ Order uint16 `json:""` -+ TierAclRules []TierAclRule `json:",omitempty"` - } -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnroute.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnroute.go -index 52e24984..d0761d6b 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnroute.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnroute.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcn - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport.go b/vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport.go -index bacb91fe..1b4c2402 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/hcnsupport.go -@@ -1,11 +1,14 @@ -+//go:build windows -+ - package hcn - - import ( -- "fmt" - "sync" - - "github.com/pkg/errors" - "github.com/sirupsen/logrus" -+ -+ "github.com/Microsoft/hcsshim/internal/log" - ) - - var ( -@@ -112,9 +115,9 @@ func getSupportedFeatures() (SupportedFeatures, error) { - features.NetworkACL = isFeatureSupported(globals.Version, NetworkACLPolicyVersion) - features.NestedIpSet = isFeatureSupported(globals.Version, NestedIpSetVersion) - -- logrus.WithFields(logrus.Fields{ -- "version": fmt.Sprintf("%+v", globals.Version), -- "supportedFeatures": fmt.Sprintf("%+v", features), -+ log.L.WithFields(logrus.Fields{ -+ "version": globals.Version, -+ "supportedFeatures": features, - }).Info("HCN feature check") - - return features, nil -diff --git a/vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go -index 7ec5b58b..37902383 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcn/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package hcn - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -37,51 +40,55 @@ func errnoErr(e syscall.Errno) error { - } - - var ( -+ modcomputenetwork = windows.NewLazySystemDLL("computenetwork.dll") - modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll") - modvmcompute = windows.NewLazySystemDLL("vmcompute.dll") -- modcomputenetwork = windows.NewLazySystemDLL("computenetwork.dll") - -- procSetCurrentThreadCompartmentId = modiphlpapi.NewProc("SetCurrentThreadCompartmentId") -- procHNSCall = modvmcompute.NewProc("HNSCall") -- procHcnEnumerateNetworks = modcomputenetwork.NewProc("HcnEnumerateNetworks") -- procHcnCreateNetwork = modcomputenetwork.NewProc("HcnCreateNetwork") -- procHcnOpenNetwork = modcomputenetwork.NewProc("HcnOpenNetwork") -- procHcnModifyNetwork = modcomputenetwork.NewProc("HcnModifyNetwork") -- procHcnQueryNetworkProperties = modcomputenetwork.NewProc("HcnQueryNetworkProperties") -- procHcnDeleteNetwork = modcomputenetwork.NewProc("HcnDeleteNetwork") -+ procHcnCloseEndpoint = modcomputenetwork.NewProc("HcnCloseEndpoint") -+ procHcnCloseLoadBalancer = modcomputenetwork.NewProc("HcnCloseLoadBalancer") -+ procHcnCloseNamespace = modcomputenetwork.NewProc("HcnCloseNamespace") - procHcnCloseNetwork = modcomputenetwork.NewProc("HcnCloseNetwork") -- procHcnEnumerateEndpoints = modcomputenetwork.NewProc("HcnEnumerateEndpoints") -+ procHcnCloseSdnRoute = modcomputenetwork.NewProc("HcnCloseSdnRoute") - procHcnCreateEndpoint = modcomputenetwork.NewProc("HcnCreateEndpoint") -- procHcnOpenEndpoint = modcomputenetwork.NewProc("HcnOpenEndpoint") -- procHcnModifyEndpoint = modcomputenetwork.NewProc("HcnModifyEndpoint") -- procHcnQueryEndpointProperties = modcomputenetwork.NewProc("HcnQueryEndpointProperties") -- procHcnDeleteEndpoint = modcomputenetwork.NewProc("HcnDeleteEndpoint") -- procHcnCloseEndpoint = modcomputenetwork.NewProc("HcnCloseEndpoint") -- procHcnEnumerateNamespaces = modcomputenetwork.NewProc("HcnEnumerateNamespaces") -+ procHcnCreateLoadBalancer = modcomputenetwork.NewProc("HcnCreateLoadBalancer") - procHcnCreateNamespace = modcomputenetwork.NewProc("HcnCreateNamespace") -- procHcnOpenNamespace = modcomputenetwork.NewProc("HcnOpenNamespace") -- procHcnModifyNamespace = modcomputenetwork.NewProc("HcnModifyNamespace") -- procHcnQueryNamespaceProperties = modcomputenetwork.NewProc("HcnQueryNamespaceProperties") -+ procHcnCreateNetwork = modcomputenetwork.NewProc("HcnCreateNetwork") -+ procHcnCreateSdnRoute = modcomputenetwork.NewProc("HcnCreateSdnRoute") -+ procHcnDeleteEndpoint = modcomputenetwork.NewProc("HcnDeleteEndpoint") -+ procHcnDeleteLoadBalancer = modcomputenetwork.NewProc("HcnDeleteLoadBalancer") - procHcnDeleteNamespace = modcomputenetwork.NewProc("HcnDeleteNamespace") -- procHcnCloseNamespace = modcomputenetwork.NewProc("HcnCloseNamespace") -+ procHcnDeleteNetwork = modcomputenetwork.NewProc("HcnDeleteNetwork") -+ procHcnDeleteSdnRoute = modcomputenetwork.NewProc("HcnDeleteSdnRoute") -+ procHcnEnumerateEndpoints = modcomputenetwork.NewProc("HcnEnumerateEndpoints") - procHcnEnumerateLoadBalancers = modcomputenetwork.NewProc("HcnEnumerateLoadBalancers") -- procHcnCreateLoadBalancer = modcomputenetwork.NewProc("HcnCreateLoadBalancer") -- procHcnOpenLoadBalancer = modcomputenetwork.NewProc("HcnOpenLoadBalancer") -- procHcnModifyLoadBalancer = modcomputenetwork.NewProc("HcnModifyLoadBalancer") -- procHcnQueryLoadBalancerProperties = modcomputenetwork.NewProc("HcnQueryLoadBalancerProperties") -- procHcnDeleteLoadBalancer = modcomputenetwork.NewProc("HcnDeleteLoadBalancer") -- procHcnCloseLoadBalancer = modcomputenetwork.NewProc("HcnCloseLoadBalancer") -+ procHcnEnumerateNamespaces = modcomputenetwork.NewProc("HcnEnumerateNamespaces") -+ procHcnEnumerateNetworks = modcomputenetwork.NewProc("HcnEnumerateNetworks") - procHcnEnumerateSdnRoutes = modcomputenetwork.NewProc("HcnEnumerateSdnRoutes") -- procHcnCreateSdnRoute = modcomputenetwork.NewProc("HcnCreateSdnRoute") -- procHcnOpenSdnRoute = modcomputenetwork.NewProc("HcnOpenSdnRoute") -+ procHcnModifyEndpoint = modcomputenetwork.NewProc("HcnModifyEndpoint") -+ procHcnModifyLoadBalancer = modcomputenetwork.NewProc("HcnModifyLoadBalancer") -+ procHcnModifyNamespace = modcomputenetwork.NewProc("HcnModifyNamespace") -+ procHcnModifyNetwork = modcomputenetwork.NewProc("HcnModifyNetwork") - procHcnModifySdnRoute = modcomputenetwork.NewProc("HcnModifySdnRoute") -+ procHcnOpenEndpoint = modcomputenetwork.NewProc("HcnOpenEndpoint") -+ procHcnOpenLoadBalancer = modcomputenetwork.NewProc("HcnOpenLoadBalancer") -+ procHcnOpenNamespace = modcomputenetwork.NewProc("HcnOpenNamespace") -+ procHcnOpenNetwork = modcomputenetwork.NewProc("HcnOpenNetwork") -+ procHcnOpenSdnRoute = modcomputenetwork.NewProc("HcnOpenSdnRoute") -+ procHcnQueryEndpointProperties = modcomputenetwork.NewProc("HcnQueryEndpointProperties") -+ procHcnQueryLoadBalancerProperties = modcomputenetwork.NewProc("HcnQueryLoadBalancerProperties") -+ procHcnQueryNamespaceProperties = modcomputenetwork.NewProc("HcnQueryNamespaceProperties") -+ procHcnQueryNetworkProperties = modcomputenetwork.NewProc("HcnQueryNetworkProperties") - procHcnQuerySdnRouteProperties = modcomputenetwork.NewProc("HcnQuerySdnRouteProperties") -- procHcnDeleteSdnRoute = modcomputenetwork.NewProc("HcnDeleteSdnRoute") -- procHcnCloseSdnRoute = modcomputenetwork.NewProc("HcnCloseSdnRoute") -+ procSetCurrentThreadCompartmentId = modiphlpapi.NewProc("SetCurrentThreadCompartmentId") -+ procHNSCall = modvmcompute.NewProc("HNSCall") - ) - --func SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) { -- r0, _, _ := syscall.Syscall(procSetCurrentThreadCompartmentId.Addr(), 1, uintptr(compartmentId), 0, 0) -+func hcnCloseEndpoint(endpoint hcnEndpoint) (hr error) { -+ hr = procHcnCloseEndpoint.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcnCloseEndpoint.Addr(), 1, uintptr(endpoint), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -91,30 +98,27 @@ func SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) { - return - } - --func _hnsCall(method string, path string, object string, response **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(method) -- if hr != nil { -- return -- } -- var _p1 *uint16 -- _p1, hr = syscall.UTF16PtrFromString(path) -+func hcnCloseLoadBalancer(loadBalancer hcnLoadBalancer) (hr error) { -+ hr = procHcnCloseLoadBalancer.Find() - if hr != nil { - return - } -- var _p2 *uint16 -- _p2, hr = syscall.UTF16PtrFromString(object) -- if hr != nil { -- return -+ r0, _, _ := syscall.Syscall(procHcnCloseLoadBalancer.Addr(), 1, uintptr(loadBalancer), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) - } -- return __hnsCall(_p0, _p1, _p2, response) -+ return - } - --func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) (hr error) { -- if hr = procHNSCall.Find(); hr != nil { -+func hcnCloseNamespace(namespace hcnNamespace) (hr error) { -+ hr = procHcnCloseNamespace.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHNSCall.Addr(), 4, uintptr(unsafe.Pointer(method)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(object)), uintptr(unsafe.Pointer(response)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnCloseNamespace.Addr(), 1, uintptr(namespace), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -124,20 +128,27 @@ func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) - return - } - --func hcnEnumerateNetworks(query string, networks **uint16, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+func hcnCloseNetwork(network hcnNetwork) (hr error) { -+ hr = procHcnCloseNetwork.Find() - if hr != nil { - return - } -- return _hcnEnumerateNetworks(_p0, networks, result) -+ r0, _, _ := syscall.Syscall(procHcnCloseNetwork.Addr(), 1, uintptr(network), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return - } - --func _hcnEnumerateNetworks(query *uint16, networks **uint16, result **uint16) (hr error) { -- if hr = procHcnEnumerateNetworks.Find(); hr != nil { -+func hcnCloseRoute(route hcnRoute) (hr error) { -+ hr = procHcnCloseSdnRoute.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnEnumerateNetworks.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(networks)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnCloseSdnRoute.Addr(), 1, uintptr(route), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -147,20 +158,21 @@ func _hcnEnumerateNetworks(query *uint16, networks **uint16, result **uint16) (h - return - } - --func hcnCreateNetwork(id *_guid, settings string, network *hcnNetwork, result **uint16) (hr error) { -+func hcnCreateEndpoint(network hcnNetwork, id *_guid, settings string, endpoint *hcnEndpoint, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnCreateNetwork(id, _p0, network, result) -+ return _hcnCreateEndpoint(network, id, _p0, endpoint, result) - } - --func _hcnCreateNetwork(id *_guid, settings *uint16, network *hcnNetwork, result **uint16) (hr error) { -- if hr = procHcnCreateNetwork.Find(); hr != nil { -+func _hcnCreateEndpoint(network hcnNetwork, id *_guid, settings *uint16, endpoint *hcnEndpoint, result **uint16) (hr error) { -+ hr = procHcnCreateEndpoint.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnCreateNetwork.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(network)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall6(procHcnCreateEndpoint.Addr(), 5, uintptr(network), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(endpoint)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -170,11 +182,21 @@ func _hcnCreateNetwork(id *_guid, settings *uint16, network *hcnNetwork, result - return - } - --func hcnOpenNetwork(id *_guid, network *hcnNetwork, result **uint16) (hr error) { -- if hr = procHcnOpenNetwork.Find(); hr != nil { -+func hcnCreateLoadBalancer(id *_guid, settings string, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(settings) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnOpenNetwork.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(network)), uintptr(unsafe.Pointer(result))) -+ return _hcnCreateLoadBalancer(id, _p0, loadBalancer, result) -+} -+ -+func _hcnCreateLoadBalancer(id *_guid, settings *uint16, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -+ hr = procHcnCreateLoadBalancer.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall6(procHcnCreateLoadBalancer.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(loadBalancer)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -184,20 +206,21 @@ func hcnOpenNetwork(id *_guid, network *hcnNetwork, result **uint16) (hr error) - return - } - --func hcnModifyNetwork(network hcnNetwork, settings string, result **uint16) (hr error) { -+func hcnCreateNamespace(id *_guid, settings string, namespace *hcnNamespace, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnModifyNetwork(network, _p0, result) -+ return _hcnCreateNamespace(id, _p0, namespace, result) - } - --func _hcnModifyNetwork(network hcnNetwork, settings *uint16, result **uint16) (hr error) { -- if hr = procHcnModifyNetwork.Find(); hr != nil { -+func _hcnCreateNamespace(id *_guid, settings *uint16, namespace *hcnNamespace, result **uint16) (hr error) { -+ hr = procHcnCreateNamespace.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnModifyNetwork.Addr(), 3, uintptr(network), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall6(procHcnCreateNamespace.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(namespace)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -207,20 +230,21 @@ func _hcnModifyNetwork(network hcnNetwork, settings *uint16, result **uint16) (h - return - } - --func hcnQueryNetworkProperties(network hcnNetwork, query string, properties **uint16, result **uint16) (hr error) { -+func hcnCreateNetwork(id *_guid, settings string, network *hcnNetwork, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+ _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnQueryNetworkProperties(network, _p0, properties, result) -+ return _hcnCreateNetwork(id, _p0, network, result) - } - --func _hcnQueryNetworkProperties(network hcnNetwork, query *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcnQueryNetworkProperties.Find(); hr != nil { -+func _hcnCreateNetwork(id *_guid, settings *uint16, network *hcnNetwork, result **uint16) (hr error) { -+ hr = procHcnCreateNetwork.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnQueryNetworkProperties.Addr(), 4, uintptr(network), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall6(procHcnCreateNetwork.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(network)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -230,11 +254,21 @@ func _hcnQueryNetworkProperties(network hcnNetwork, query *uint16, properties ** - return - } - --func hcnDeleteNetwork(id *_guid, result **uint16) (hr error) { -- if hr = procHcnDeleteNetwork.Find(); hr != nil { -+func hcnCreateRoute(id *_guid, settings string, route *hcnRoute, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(settings) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnDeleteNetwork.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) -+ return _hcnCreateRoute(id, _p0, route, result) -+} -+ -+func _hcnCreateRoute(id *_guid, settings *uint16, route *hcnRoute, result **uint16) (hr error) { -+ hr = procHcnCreateSdnRoute.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall6(procHcnCreateSdnRoute.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(route)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -244,11 +278,12 @@ func hcnDeleteNetwork(id *_guid, result **uint16) (hr error) { - return - } - --func hcnCloseNetwork(network hcnNetwork) (hr error) { -- if hr = procHcnCloseNetwork.Find(); hr != nil { -+func hcnDeleteEndpoint(id *_guid, result **uint16) (hr error) { -+ hr = procHcnDeleteEndpoint.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnCloseNetwork.Addr(), 1, uintptr(network), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnDeleteEndpoint.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -258,20 +293,12 @@ func hcnCloseNetwork(network hcnNetwork) (hr error) { - return - } - --func hcnEnumerateEndpoints(query string, endpoints **uint16, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+func hcnDeleteLoadBalancer(id *_guid, result **uint16) (hr error) { -+ hr = procHcnDeleteLoadBalancer.Find() - if hr != nil { - return - } -- return _hcnEnumerateEndpoints(_p0, endpoints, result) --} -- --func _hcnEnumerateEndpoints(query *uint16, endpoints **uint16, result **uint16) (hr error) { -- if hr = procHcnEnumerateEndpoints.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcnEnumerateEndpoints.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(endpoints)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnDeleteLoadBalancer.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -281,20 +308,12 @@ func _hcnEnumerateEndpoints(query *uint16, endpoints **uint16, result **uint16) - return - } - --func hcnCreateEndpoint(network hcnNetwork, id *_guid, settings string, endpoint *hcnEndpoint, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+func hcnDeleteNamespace(id *_guid, result **uint16) (hr error) { -+ hr = procHcnDeleteNamespace.Find() - if hr != nil { - return - } -- return _hcnCreateEndpoint(network, id, _p0, endpoint, result) --} -- --func _hcnCreateEndpoint(network hcnNetwork, id *_guid, settings *uint16, endpoint *hcnEndpoint, result **uint16) (hr error) { -- if hr = procHcnCreateEndpoint.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall6(procHcnCreateEndpoint.Addr(), 5, uintptr(network), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(endpoint)), uintptr(unsafe.Pointer(result)), 0) -+ r0, _, _ := syscall.Syscall(procHcnDeleteNamespace.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -304,11 +323,12 @@ func _hcnCreateEndpoint(network hcnNetwork, id *_guid, settings *uint16, endpoin - return - } - --func hcnOpenEndpoint(id *_guid, endpoint *hcnEndpoint, result **uint16) (hr error) { -- if hr = procHcnOpenEndpoint.Find(); hr != nil { -+func hcnDeleteNetwork(id *_guid, result **uint16) (hr error) { -+ hr = procHcnDeleteNetwork.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnOpenEndpoint.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(endpoint)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnDeleteNetwork.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -318,20 +338,12 @@ func hcnOpenEndpoint(id *_guid, endpoint *hcnEndpoint, result **uint16) (hr erro - return - } - --func hcnModifyEndpoint(endpoint hcnEndpoint, settings string, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+func hcnDeleteRoute(id *_guid, result **uint16) (hr error) { -+ hr = procHcnDeleteSdnRoute.Find() - if hr != nil { - return - } -- return _hcnModifyEndpoint(endpoint, _p0, result) --} -- --func _hcnModifyEndpoint(endpoint hcnEndpoint, settings *uint16, result **uint16) (hr error) { -- if hr = procHcnModifyEndpoint.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcnModifyEndpoint.Addr(), 3, uintptr(endpoint), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnDeleteSdnRoute.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -341,20 +353,21 @@ func _hcnModifyEndpoint(endpoint hcnEndpoint, settings *uint16, result **uint16) - return - } - --func hcnQueryEndpointProperties(endpoint hcnEndpoint, query string, properties **uint16, result **uint16) (hr error) { -+func hcnEnumerateEndpoints(query string, endpoints **uint16, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcnQueryEndpointProperties(endpoint, _p0, properties, result) -+ return _hcnEnumerateEndpoints(_p0, endpoints, result) - } - --func _hcnQueryEndpointProperties(endpoint hcnEndpoint, query *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcnQueryEndpointProperties.Find(); hr != nil { -+func _hcnEnumerateEndpoints(query *uint16, endpoints **uint16, result **uint16) (hr error) { -+ hr = procHcnEnumerateEndpoints.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnQueryEndpointProperties.Addr(), 4, uintptr(endpoint), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnEnumerateEndpoints.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(endpoints)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -364,25 +377,21 @@ func _hcnQueryEndpointProperties(endpoint hcnEndpoint, query *uint16, properties - return - } - --func hcnDeleteEndpoint(id *_guid, result **uint16) (hr error) { -- if hr = procHcnDeleteEndpoint.Find(); hr != nil { -+func hcnEnumerateLoadBalancers(query string, loadBalancers **uint16, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(query) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnDeleteEndpoint.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return -+ return _hcnEnumerateLoadBalancers(_p0, loadBalancers, result) - } - --func hcnCloseEndpoint(endpoint hcnEndpoint) (hr error) { -- if hr = procHcnCloseEndpoint.Find(); hr != nil { -+func _hcnEnumerateLoadBalancers(query *uint16, loadBalancers **uint16, result **uint16) (hr error) { -+ hr = procHcnEnumerateLoadBalancers.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnCloseEndpoint.Addr(), 1, uintptr(endpoint), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnEnumerateLoadBalancers.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(loadBalancers)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -402,7 +411,8 @@ func hcnEnumerateNamespaces(query string, namespaces **uint16, result **uint16) - } - - func _hcnEnumerateNamespaces(query *uint16, namespaces **uint16, result **uint16) (hr error) { -- if hr = procHcnEnumerateNamespaces.Find(); hr != nil { -+ hr = procHcnEnumerateNamespaces.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcnEnumerateNamespaces.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(namespaces)), uintptr(unsafe.Pointer(result))) -@@ -415,20 +425,21 @@ func _hcnEnumerateNamespaces(query *uint16, namespaces **uint16, result **uint16 - return - } - --func hcnCreateNamespace(id *_guid, settings string, namespace *hcnNamespace, result **uint16) (hr error) { -+func hcnEnumerateNetworks(query string, networks **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+ _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcnCreateNamespace(id, _p0, namespace, result) -+ return _hcnEnumerateNetworks(_p0, networks, result) - } - --func _hcnCreateNamespace(id *_guid, settings *uint16, namespace *hcnNamespace, result **uint16) (hr error) { -- if hr = procHcnCreateNamespace.Find(); hr != nil { -+func _hcnEnumerateNetworks(query *uint16, networks **uint16, result **uint16) (hr error) { -+ hr = procHcnEnumerateNetworks.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnCreateNamespace.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(namespace)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnEnumerateNetworks.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(networks)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -438,11 +449,21 @@ func _hcnCreateNamespace(id *_guid, settings *uint16, namespace *hcnNamespace, r - return - } - --func hcnOpenNamespace(id *_guid, namespace *hcnNamespace, result **uint16) (hr error) { -- if hr = procHcnOpenNamespace.Find(); hr != nil { -+func hcnEnumerateRoutes(query string, routes **uint16, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(query) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnOpenNamespace.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(namespace)), uintptr(unsafe.Pointer(result))) -+ return _hcnEnumerateRoutes(_p0, routes, result) -+} -+ -+func _hcnEnumerateRoutes(query *uint16, routes **uint16, result **uint16) (hr error) { -+ hr = procHcnEnumerateSdnRoutes.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcnEnumerateSdnRoutes.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(routes)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -452,20 +473,21 @@ func hcnOpenNamespace(id *_guid, namespace *hcnNamespace, result **uint16) (hr e - return - } - --func hcnModifyNamespace(namespace hcnNamespace, settings string, result **uint16) (hr error) { -+func hcnModifyEndpoint(endpoint hcnEndpoint, settings string, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnModifyNamespace(namespace, _p0, result) -+ return _hcnModifyEndpoint(endpoint, _p0, result) - } - --func _hcnModifyNamespace(namespace hcnNamespace, settings *uint16, result **uint16) (hr error) { -- if hr = procHcnModifyNamespace.Find(); hr != nil { -+func _hcnModifyEndpoint(endpoint hcnEndpoint, settings *uint16, result **uint16) (hr error) { -+ hr = procHcnModifyEndpoint.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnModifyNamespace.Addr(), 3, uintptr(namespace), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnModifyEndpoint.Addr(), 3, uintptr(endpoint), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -475,20 +497,21 @@ func _hcnModifyNamespace(namespace hcnNamespace, settings *uint16, result **uint - return - } - --func hcnQueryNamespaceProperties(namespace hcnNamespace, query string, properties **uint16, result **uint16) (hr error) { -+func hcnModifyLoadBalancer(loadBalancer hcnLoadBalancer, settings string, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+ _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnQueryNamespaceProperties(namespace, _p0, properties, result) -+ return _hcnModifyLoadBalancer(loadBalancer, _p0, result) - } - --func _hcnQueryNamespaceProperties(namespace hcnNamespace, query *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcnQueryNamespaceProperties.Find(); hr != nil { -+func _hcnModifyLoadBalancer(loadBalancer hcnLoadBalancer, settings *uint16, result **uint16) (hr error) { -+ hr = procHcnModifyLoadBalancer.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnQueryNamespaceProperties.Addr(), 4, uintptr(namespace), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnModifyLoadBalancer.Addr(), 3, uintptr(loadBalancer), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -498,25 +521,21 @@ func _hcnQueryNamespaceProperties(namespace hcnNamespace, query *uint16, propert - return - } - --func hcnDeleteNamespace(id *_guid, result **uint16) (hr error) { -- if hr = procHcnDeleteNamespace.Find(); hr != nil { -+func hcnModifyNamespace(namespace hcnNamespace, settings string, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(settings) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnDeleteNamespace.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return -+ return _hcnModifyNamespace(namespace, _p0, result) - } - --func hcnCloseNamespace(namespace hcnNamespace) (hr error) { -- if hr = procHcnCloseNamespace.Find(); hr != nil { -+func _hcnModifyNamespace(namespace hcnNamespace, settings *uint16, result **uint16) (hr error) { -+ hr = procHcnModifyNamespace.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnCloseNamespace.Addr(), 1, uintptr(namespace), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnModifyNamespace.Addr(), 3, uintptr(namespace), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -526,20 +545,21 @@ func hcnCloseNamespace(namespace hcnNamespace) (hr error) { - return - } - --func hcnEnumerateLoadBalancers(query string, loadBalancers **uint16, result **uint16) (hr error) { -+func hcnModifyNetwork(network hcnNetwork, settings string, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+ _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnEnumerateLoadBalancers(_p0, loadBalancers, result) -+ return _hcnModifyNetwork(network, _p0, result) - } - --func _hcnEnumerateLoadBalancers(query *uint16, loadBalancers **uint16, result **uint16) (hr error) { -- if hr = procHcnEnumerateLoadBalancers.Find(); hr != nil { -+func _hcnModifyNetwork(network hcnNetwork, settings *uint16, result **uint16) (hr error) { -+ hr = procHcnModifyNetwork.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnEnumerateLoadBalancers.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(loadBalancers)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnModifyNetwork.Addr(), 3, uintptr(network), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -549,20 +569,21 @@ func _hcnEnumerateLoadBalancers(query *uint16, loadBalancers **uint16, result ** - return - } - --func hcnCreateLoadBalancer(id *_guid, settings string, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -+func hcnModifyRoute(route hcnRoute, settings string, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcnCreateLoadBalancer(id, _p0, loadBalancer, result) -+ return _hcnModifyRoute(route, _p0, result) - } - --func _hcnCreateLoadBalancer(id *_guid, settings *uint16, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -- if hr = procHcnCreateLoadBalancer.Find(); hr != nil { -+func _hcnModifyRoute(route hcnRoute, settings *uint16, result **uint16) (hr error) { -+ hr = procHcnModifySdnRoute.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnCreateLoadBalancer.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(loadBalancer)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnModifySdnRoute.Addr(), 3, uintptr(route), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -572,11 +593,12 @@ func _hcnCreateLoadBalancer(id *_guid, settings *uint16, loadBalancer *hcnLoadBa - return - } - --func hcnOpenLoadBalancer(id *_guid, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -- if hr = procHcnOpenLoadBalancer.Find(); hr != nil { -+func hcnOpenEndpoint(id *_guid, endpoint *hcnEndpoint, result **uint16) (hr error) { -+ hr = procHcnOpenEndpoint.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnOpenLoadBalancer.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(loadBalancer)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnOpenEndpoint.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(endpoint)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -586,20 +608,12 @@ func hcnOpenLoadBalancer(id *_guid, loadBalancer *hcnLoadBalancer, result **uint - return - } - --func hcnModifyLoadBalancer(loadBalancer hcnLoadBalancer, settings string, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+func hcnOpenLoadBalancer(id *_guid, loadBalancer *hcnLoadBalancer, result **uint16) (hr error) { -+ hr = procHcnOpenLoadBalancer.Find() - if hr != nil { - return - } -- return _hcnModifyLoadBalancer(loadBalancer, _p0, result) --} -- --func _hcnModifyLoadBalancer(loadBalancer hcnLoadBalancer, settings *uint16, result **uint16) (hr error) { -- if hr = procHcnModifyLoadBalancer.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcnModifyLoadBalancer.Addr(), 3, uintptr(loadBalancer), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcnOpenLoadBalancer.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(loadBalancer)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -609,20 +623,12 @@ func _hcnModifyLoadBalancer(loadBalancer hcnLoadBalancer, settings *uint16, resu - return - } - --func hcnQueryLoadBalancerProperties(loadBalancer hcnLoadBalancer, query string, properties **uint16, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+func hcnOpenNamespace(id *_guid, namespace *hcnNamespace, result **uint16) (hr error) { -+ hr = procHcnOpenNamespace.Find() - if hr != nil { - return - } -- return _hcnQueryLoadBalancerProperties(loadBalancer, _p0, properties, result) --} -- --func _hcnQueryLoadBalancerProperties(loadBalancer hcnLoadBalancer, query *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcnQueryLoadBalancerProperties.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall6(procHcnQueryLoadBalancerProperties.Addr(), 4, uintptr(loadBalancer), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnOpenNamespace.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(namespace)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -632,11 +638,12 @@ func _hcnQueryLoadBalancerProperties(loadBalancer hcnLoadBalancer, query *uint16 - return - } - --func hcnDeleteLoadBalancer(id *_guid, result **uint16) (hr error) { -- if hr = procHcnDeleteLoadBalancer.Find(); hr != nil { -+func hcnOpenNetwork(id *_guid, network *hcnNetwork, result **uint16) (hr error) { -+ hr = procHcnOpenNetwork.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnDeleteLoadBalancer.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) -+ r0, _, _ := syscall.Syscall(procHcnOpenNetwork.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(network)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -646,11 +653,12 @@ func hcnDeleteLoadBalancer(id *_guid, result **uint16) (hr error) { - return - } - --func hcnCloseLoadBalancer(loadBalancer hcnLoadBalancer) (hr error) { -- if hr = procHcnCloseLoadBalancer.Find(); hr != nil { -+func hcnOpenRoute(id *_guid, route *hcnRoute, result **uint16) (hr error) { -+ hr = procHcnOpenSdnRoute.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnCloseLoadBalancer.Addr(), 1, uintptr(loadBalancer), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcnOpenSdnRoute.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(route)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -660,20 +668,21 @@ func hcnCloseLoadBalancer(loadBalancer hcnLoadBalancer) (hr error) { - return - } - --func hcnEnumerateRoutes(query string, routes **uint16, result **uint16) (hr error) { -+func hcnQueryEndpointProperties(endpoint hcnEndpoint, query string, properties **uint16, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcnEnumerateRoutes(_p0, routes, result) -+ return _hcnQueryEndpointProperties(endpoint, _p0, properties, result) - } - --func _hcnEnumerateRoutes(query *uint16, routes **uint16, result **uint16) (hr error) { -- if hr = procHcnEnumerateSdnRoutes.Find(); hr != nil { -+func _hcnQueryEndpointProperties(endpoint hcnEndpoint, query *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcnQueryEndpointProperties.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnEnumerateSdnRoutes.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(routes)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall6(procHcnQueryEndpointProperties.Addr(), 4, uintptr(endpoint), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -683,20 +692,21 @@ func _hcnEnumerateRoutes(query *uint16, routes **uint16, result **uint16) (hr er - return - } - --func hcnCreateRoute(id *_guid, settings string, route *hcnRoute, result **uint16) (hr error) { -+func hcnQueryLoadBalancerProperties(loadBalancer hcnLoadBalancer, query string, properties **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+ _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcnCreateRoute(id, _p0, route, result) -+ return _hcnQueryLoadBalancerProperties(loadBalancer, _p0, properties, result) - } - --func _hcnCreateRoute(id *_guid, settings *uint16, route *hcnRoute, result **uint16) (hr error) { -- if hr = procHcnCreateSdnRoute.Find(); hr != nil { -+func _hcnQueryLoadBalancerProperties(loadBalancer hcnLoadBalancer, query *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcnQueryLoadBalancerProperties.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcnCreateSdnRoute.Addr(), 4, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(route)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall6(procHcnQueryLoadBalancerProperties.Addr(), 4, uintptr(loadBalancer), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -706,11 +716,21 @@ func _hcnCreateRoute(id *_guid, settings *uint16, route *hcnRoute, result **uint - return - } - --func hcnOpenRoute(id *_guid, route *hcnRoute, result **uint16) (hr error) { -- if hr = procHcnOpenSdnRoute.Find(); hr != nil { -+func hcnQueryNamespaceProperties(namespace hcnNamespace, query string, properties **uint16, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(query) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnOpenSdnRoute.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(route)), uintptr(unsafe.Pointer(result))) -+ return _hcnQueryNamespaceProperties(namespace, _p0, properties, result) -+} -+ -+func _hcnQueryNamespaceProperties(namespace hcnNamespace, query *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcnQueryNamespaceProperties.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall6(procHcnQueryNamespaceProperties.Addr(), 4, uintptr(namespace), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -720,20 +740,21 @@ func hcnOpenRoute(id *_guid, route *hcnRoute, result **uint16) (hr error) { - return - } - --func hcnModifyRoute(route hcnRoute, settings string, result **uint16) (hr error) { -+func hcnQueryNetworkProperties(network hcnNetwork, query string, properties **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+ _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcnModifyRoute(route, _p0, result) -+ return _hcnQueryNetworkProperties(network, _p0, properties, result) - } - --func _hcnModifyRoute(route hcnRoute, settings *uint16, result **uint16) (hr error) { -- if hr = procHcnModifySdnRoute.Find(); hr != nil { -+func _hcnQueryNetworkProperties(network hcnNetwork, query *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcnQueryNetworkProperties.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnModifySdnRoute.Addr(), 3, uintptr(route), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall6(procHcnQueryNetworkProperties.Addr(), 4, uintptr(network), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -753,7 +774,8 @@ func hcnQueryRouteProperties(route hcnRoute, query string, properties **uint16, - } - - func _hcnQueryRouteProperties(route hcnRoute, query *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcnQuerySdnRouteProperties.Find(); hr != nil { -+ hr = procHcnQuerySdnRouteProperties.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall6(procHcnQuerySdnRouteProperties.Addr(), 4, uintptr(route), uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -@@ -766,11 +788,8 @@ func _hcnQueryRouteProperties(route hcnRoute, query *uint16, properties **uint16 - return - } - --func hcnDeleteRoute(id *_guid, result **uint16) (hr error) { -- if hr = procHcnDeleteSdnRoute.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcnDeleteSdnRoute.Addr(), 2, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(result)), 0) -+func SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) { -+ r0, _, _ := syscall.Syscall(procSetCurrentThreadCompartmentId.Addr(), 1, uintptr(compartmentId), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -780,11 +799,31 @@ func hcnDeleteRoute(id *_guid, result **uint16) (hr error) { - return - } - --func hcnCloseRoute(route hcnRoute) (hr error) { -- if hr = procHcnCloseSdnRoute.Find(); hr != nil { -+func _hnsCall(method string, path string, object string, response **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(method) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcnCloseSdnRoute.Addr(), 1, uintptr(route), 0, 0) -+ var _p1 *uint16 -+ _p1, hr = syscall.UTF16PtrFromString(path) -+ if hr != nil { -+ return -+ } -+ var _p2 *uint16 -+ _p2, hr = syscall.UTF16PtrFromString(object) -+ if hr != nil { -+ return -+ } -+ return __hnsCall(_p0, _p1, _p2, response) -+} -+ -+func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) (hr error) { -+ hr = procHNSCall.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall6(procHNSCall.Addr(), 4, uintptr(unsafe.Pointer(method)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(object)), uintptr(unsafe.Pointer(response)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -diff --git a/vendor/github.com/Microsoft/hcsshim/hcsshim.go b/vendor/github.com/Microsoft/hcsshim/hcsshim.go -index ceb3ac85..13f80e4a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hcsshim.go -+++ b/vendor/github.com/Microsoft/hcsshim/hcsshim.go -@@ -1,15 +1,17 @@ -+//go:build windows -+ - // Shim for the Host Compute Service (HCS) to manage Windows Server - // containers and Hyper-V containers. - - package hcsshim - - import ( -- "syscall" -+ "golang.org/x/sys/windows" - - "github.com/Microsoft/hcsshim/internal/hcserror" - ) - --//go:generate go run mksyscall_windows.go -output zsyscall_windows.go hcsshim.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hcsshim.go - - //sys SetCurrentThreadCompartmentId(compartmentId uint32) (hr error) = iphlpapi.SetCurrentThreadCompartmentId - -@@ -17,9 +19,9 @@ const ( - // Specific user-visible exit codes - WaitErrExecFailed = 32767 - -- ERROR_GEN_FAILURE = hcserror.ERROR_GEN_FAILURE -- ERROR_SHUTDOWN_IN_PROGRESS = syscall.Errno(1115) -- WSAEINVAL = syscall.Errno(10022) -+ ERROR_GEN_FAILURE = windows.ERROR_GEN_FAILURE -+ ERROR_SHUTDOWN_IN_PROGRESS = windows.ERROR_SHUTDOWN_IN_PROGRESS -+ WSAEINVAL = windows.WSAEINVAL - - // Timeout on wait calls - TimeoutInfinite = 0xFFFFFFFF -diff --git a/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go b/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go -index 9e005944..d8a73de9 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go -+++ b/vendor/github.com/Microsoft/hcsshim/hnsendpoint.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -@@ -13,7 +15,7 @@ type HNSEndpointStats = hns.EndpointStats - // Namespace represents a Compartment. - type Namespace = hns.Namespace - --//SystemType represents the type of the system on which actions are done -+// SystemType represents the type of the system on which actions are done - type SystemType string - - // SystemType const -diff --git a/vendor/github.com/Microsoft/hcsshim/hnsglobals.go b/vendor/github.com/Microsoft/hcsshim/hnsglobals.go -index 2b538190..c564bf4a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hnsglobals.go -+++ b/vendor/github.com/Microsoft/hcsshim/hnsglobals.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go b/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go -index f775fa1d..925c2124 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go -+++ b/vendor/github.com/Microsoft/hcsshim/hnsnetwork.go -@@ -1,14 +1,16 @@ -+//go:build windows -+ - package hcsshim - - import ( - "github.com/Microsoft/hcsshim/internal/hns" - ) - --// Subnet is assoicated with a network and represents a list -+// Subnet is associated with a network and represents a list - // of subnets available to the network - type Subnet = hns.Subnet - --// MacPool is assoicated with a network and represents a list -+// MacPool is associated with a network and represents a list - // of macaddresses available to the network - type MacPool = hns.MacPool - -diff --git a/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go b/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go -index 55aaa4a5..9bfe61ee 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go -+++ b/vendor/github.com/Microsoft/hcsshim/hnspolicylist.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/hnssupport.go b/vendor/github.com/Microsoft/hcsshim/hnssupport.go -index 69405244..d97681e0 100644 ---- a/vendor/github.com/Microsoft/hcsshim/hnssupport.go -+++ b/vendor/github.com/Microsoft/hcsshim/hnssupport.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/interface.go b/vendor/github.com/Microsoft/hcsshim/interface.go -index 300eb599..81a28195 100644 ---- a/vendor/github.com/Microsoft/hcsshim/interface.go -+++ b/vendor/github.com/Microsoft/hcsshim/interface.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/cni/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/cni/doc.go -new file mode 100644 -index 00000000..b94015b5 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/cni/doc.go -@@ -0,0 +1 @@ -+package cni -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/cni/registry.go b/vendor/github.com/Microsoft/hcsshim/internal/cni/registry.go -index 4a4fcea8..3543a590 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/cni/registry.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/cni/registry.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package cni - - import ( -@@ -84,7 +86,7 @@ func (pnc *PersistedNamespaceConfig) Store() error { - } - - // Remove removes any persisted state associated with this config. If the config --// is not found in the registery `Remove` returns no error. -+// is not found in the registry `Remove` returns no error. - func (pnc *PersistedNamespaceConfig) Remove() error { - if pnc.stored { - sk, err := regstate.Open(cniRoot, false) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go b/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go -index f46af33b..b60cd383 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/cow/cow.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package cow - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go -index d13772b0..7b27173c 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/callback.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go -new file mode 100644 -index 00000000..d792dda9 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/doc.go -@@ -0,0 +1 @@ -+package hcs -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go -index 295d4b84..3e10f5c7 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/errors.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -@@ -51,6 +53,9 @@ var ( - // ErrUnexpectedValue is an error encountered when hcs returns an invalid value - ErrUnexpectedValue = errors.New("unexpected value returned from hcs") - -+ // ErrOperationDenied is an error when hcs attempts an operation that is explicitly denied -+ ErrOperationDenied = errors.New("operation denied") -+ - // ErrVmcomputeAlreadyStopped is an error encountered when a shutdown or terminate request is made on a stopped container - ErrVmcomputeAlreadyStopped = syscall.Errno(0xc0370110) - -@@ -82,7 +87,7 @@ var ( - // ErrProcessAlreadyStopped is returned by hcs if the process we're trying to kill has already been stopped. - ErrProcessAlreadyStopped = syscall.Errno(0x8037011f) - -- // ErrInvalidHandle is an error that can be encountrered when querying the properties of a compute system when the handle to that -+ // ErrInvalidHandle is an error that can be encountered when querying the properties of a compute system when the handle to that - // compute system has already been closed. - ErrInvalidHandle = syscall.Errno(0x6) - ) -@@ -152,33 +157,38 @@ func (e *HcsError) Error() string { - return s - } - -+func (e *HcsError) Is(target error) bool { -+ return errors.Is(e.Err, target) -+} -+ -+// unwrap isnt really needed, but helpful convince function -+ -+func (e *HcsError) Unwrap() error { -+ return e.Err -+} -+ -+// Deprecated: net.Error.Temporary is deprecated. - func (e *HcsError) Temporary() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Temporary() //nolint:staticcheck -+ err := e.netError() -+ return (err != nil) && err.Temporary() - } - - func (e *HcsError) Timeout() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Timeout() -+ err := e.netError() -+ return (err != nil) && err.Timeout() - } - --// ProcessError is an error encountered in HCS during an operation on a Process object --type ProcessError struct { -- SystemID string -- Pid int -- Op string -- Err error -- Events []ErrorEvent -+func (e *HcsError) netError() (err net.Error) { -+ if errors.As(e.Unwrap(), &err) { -+ return err -+ } -+ return nil - } - --var _ net.Error = &ProcessError{} -- - // SystemError is an error encountered in HCS during an operation on a Container object - type SystemError struct { -- ID string -- Op string -- Err error -- Events []ErrorEvent -+ HcsError -+ ID string - } - - var _ net.Error = &SystemError{} -@@ -191,29 +201,32 @@ func (e *SystemError) Error() string { - return s - } - --func (e *SystemError) Temporary() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Temporary() //nolint:staticcheck --} -- --func (e *SystemError) Timeout() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Timeout() --} -- - func makeSystemError(system *System, op string, err error, events []ErrorEvent) error { - // Don't double wrap errors -- if _, ok := err.(*SystemError); ok { -+ var e *SystemError -+ if errors.As(err, &e) { - return err - } -+ - return &SystemError{ -- ID: system.ID(), -- Op: op, -- Err: err, -- Events: events, -+ ID: system.ID(), -+ HcsError: HcsError{ -+ Op: op, -+ Err: err, -+ Events: events, -+ }, - } - } - -+// ProcessError is an error encountered in HCS during an operation on a Process object -+type ProcessError struct { -+ HcsError -+ SystemID string -+ Pid int -+} -+ -+var _ net.Error = &ProcessError{} -+ - func (e *ProcessError) Error() string { - s := fmt.Sprintf("%s %s:%d: %s", e.Op, e.SystemID, e.Pid, e.Err.Error()) - for _, ev := range e.Events { -@@ -222,27 +235,20 @@ func (e *ProcessError) Error() string { - return s - } - --func (e *ProcessError) Temporary() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Temporary() //nolint:staticcheck --} -- --func (e *ProcessError) Timeout() bool { -- err, ok := e.Err.(net.Error) -- return ok && err.Timeout() --} -- - func makeProcessError(process *Process, op string, err error, events []ErrorEvent) error { - // Don't double wrap errors -- if _, ok := err.(*ProcessError); ok { -+ var e *ProcessError -+ if errors.As(err, &e) { - return err - } - return &ProcessError{ - Pid: process.Pid(), - SystemID: process.SystemID(), -- Op: op, -- Err: err, -- Events: events, -+ HcsError: HcsError{ -+ Op: op, -+ Err: err, -+ Events: events, -+ }, - } - } - -@@ -251,41 +257,41 @@ func makeProcessError(process *Process, op string, err error, events []ErrorEven - // already exited, or does not exist. Both IsAlreadyStopped and IsNotExist - // will currently return true when the error is ErrElementNotFound. - func IsNotExist(err error) bool { -- err = getInnerError(err) -- return err == ErrComputeSystemDoesNotExist || -- err == ErrElementNotFound -+ return IsAny(err, ErrComputeSystemDoesNotExist, ErrElementNotFound) - } - - // IsErrorInvalidHandle checks whether the error is the result of an operation carried - // out on a handle that is invalid/closed. This error popped up while trying to query - // stats on a container in the process of being stopped. - func IsErrorInvalidHandle(err error) bool { -- err = getInnerError(err) -- return err == ErrInvalidHandle -+ return errors.Is(err, ErrInvalidHandle) - } - - // IsAlreadyClosed checks if an error is caused by the Container or Process having been - // already closed by a call to the Close() method. - func IsAlreadyClosed(err error) bool { -- err = getInnerError(err) -- return err == ErrAlreadyClosed -+ return errors.Is(err, ErrAlreadyClosed) - } - - // IsPending returns a boolean indicating whether the error is that - // the requested operation is being completed in the background. - func IsPending(err error) bool { -- err = getInnerError(err) -- return err == ErrVmcomputeOperationPending -+ return errors.Is(err, ErrVmcomputeOperationPending) - } - - // IsTimeout returns a boolean indicating whether the error is caused by - // a timeout waiting for the operation to complete. - func IsTimeout(err error) bool { -- if err, ok := err.(net.Error); ok && err.Timeout() { -+ // HcsError and co. implement Timeout regardless of whether the errors they wrap do, -+ // so `errors.As(err, net.Error)`` will always be true. -+ // Using `errors.As(err.Unwrap(), net.Err)` wont work for general errors. -+ // So first check if there an `ErrTimeout` in the chain, then convert to a net error. -+ if errors.Is(err, ErrTimeout) { - return true - } -- err = getInnerError(err) -- return err == ErrTimeout -+ -+ var nerr net.Error -+ return errors.As(err, &nerr) && nerr.Timeout() - } - - // IsAlreadyStopped returns a boolean indicating whether the error is caused by -@@ -294,10 +300,7 @@ func IsTimeout(err error) bool { - // already exited, or does not exist. Both IsAlreadyStopped and IsNotExist - // will currently return true when the error is ErrElementNotFound. - func IsAlreadyStopped(err error) bool { -- err = getInnerError(err) -- return err == ErrVmcomputeAlreadyStopped || -- err == ErrProcessAlreadyStopped || -- err == ErrElementNotFound -+ return IsAny(err, ErrVmcomputeAlreadyStopped, ErrProcessAlreadyStopped, ErrElementNotFound) - } - - // IsNotSupported returns a boolean indicating whether the error is caused by -@@ -306,38 +309,28 @@ func IsAlreadyStopped(err error) bool { - // ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported or ErrVmcomputeUnknownMessage - // is thrown from the Platform - func IsNotSupported(err error) bool { -- err = getInnerError(err) - // If Platform doesn't recognize or support the request sent, below errors are seen -- return err == ErrVmcomputeInvalidJSON || -- err == ErrInvalidData || -- err == ErrNotSupported || -- err == ErrVmcomputeUnknownMessage -+ return IsAny(err, ErrVmcomputeInvalidJSON, ErrInvalidData, ErrNotSupported, ErrVmcomputeUnknownMessage) - } - - // IsOperationInvalidState returns true when err is caused by - // `ErrVmcomputeOperationInvalidState`. - func IsOperationInvalidState(err error) bool { -- err = getInnerError(err) -- return err == ErrVmcomputeOperationInvalidState -+ return errors.Is(err, ErrVmcomputeOperationInvalidState) - } - - // IsAccessIsDenied returns true when err is caused by - // `ErrVmcomputeOperationAccessIsDenied`. - func IsAccessIsDenied(err error) bool { -- err = getInnerError(err) -- return err == ErrVmcomputeOperationAccessIsDenied -+ return errors.Is(err, ErrVmcomputeOperationAccessIsDenied) - } - --func getInnerError(err error) error { -- switch pe := err.(type) { -- case nil: -- return nil -- case *HcsError: -- err = pe.Err -- case *SystemError: -- err = pe.Err -- case *ProcessError: -- err = pe.Err -+// IsAny is a vectorized version of [errors.Is], it returns true if err is one of targets. -+func IsAny(err error, targets ...error) bool { -+ for _, e := range targets { -+ if errors.Is(err, e) { -+ return true -+ } - } -- return err -+ return false - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go -index 78490d6c..65025f3f 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/process.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -@@ -10,6 +12,7 @@ import ( - "syscall" - "time" - -+ "github.com/Microsoft/hcsshim/internal/cow" - "github.com/Microsoft/hcsshim/internal/log" - "github.com/Microsoft/hcsshim/internal/oc" - "github.com/Microsoft/hcsshim/internal/vmcompute" -@@ -36,6 +39,8 @@ type Process struct { - waitError error - } - -+var _ cow.Process = &Process{} -+ - func newProcess(process vmcompute.HcsProcess, processID int, computeSystem *System) *Process { - return &Process{ - handle: process, -@@ -89,10 +94,7 @@ func (process *Process) processSignalResult(ctx context.Context, err error) (boo - case nil: - return true, nil - case ErrVmcomputeOperationInvalidState, ErrComputeSystemDoesNotExist, ErrElementNotFound: -- select { -- case <-process.waitBlock: -- // The process exit notification has already arrived. -- default: -+ if !process.stopped() { - // The process should be gone, but we have not received the notification. - // After a second, force unblock the process wait to work around a possible - // deadlock in the HCS. -@@ -114,9 +116,9 @@ func (process *Process) processSignalResult(ctx context.Context, err error) (boo - - // Signal signals the process with `options`. - // --// For LCOW `guestrequest.SignalProcessOptionsLCOW`. -+// For LCOW `guestresource.SignalProcessOptionsLCOW`. - // --// For WCOW `guestrequest.SignalProcessOptionsWCOW`. -+// For WCOW `guestresource.SignalProcessOptionsWCOW`. - func (process *Process) Signal(ctx context.Context, options interface{}) (bool, error) { - process.handleLock.RLock() - defer process.handleLock.RUnlock() -@@ -152,6 +154,10 @@ func (process *Process) Kill(ctx context.Context) (bool, error) { - return false, makeProcessError(process, operation, ErrAlreadyClosed, nil) - } - -+ if process.stopped() { -+ return false, makeProcessError(process, operation, ErrProcessAlreadyStopped, nil) -+ } -+ - if process.killSignalDelivered { - // A kill signal has already been sent to this process. Sending a second - // one offers no real benefit, as processes cannot stop themselves from -@@ -233,7 +239,7 @@ func (process *Process) Kill(ctx context.Context) (bool, error) { - // call multiple times. - func (process *Process) waitBackground() { - operation := "hcs::Process::waitBackground" -- ctx, span := trace.StartSpan(context.Background(), operation) -+ ctx, span := oc.StartSpan(context.Background(), operation) - defer span.End() - span.AddAttributes( - trace.StringAttribute("cid", process.SystemID()), -@@ -259,12 +265,12 @@ func (process *Process) waitBackground() { - propertiesJSON, resultJSON, err = vmcompute.HcsGetProcessProperties(ctx, process.handle) - events := processHcsResult(ctx, resultJSON) - if err != nil { -- err = makeProcessError(process, operation, err, events) //nolint:ineffassign -+ err = makeProcessError(process, operation, err, events) - } else { - properties := &processStatus{} - err = json.Unmarshal([]byte(propertiesJSON), properties) - if err != nil { -- err = makeProcessError(process, operation, err, nil) //nolint:ineffassign -+ err = makeProcessError(process, operation, err, nil) - } else { - if properties.LastWaitResult != 0 { - log.G(ctx).WithField("wait-result", properties.LastWaitResult).Warning("non-zero last wait result") -@@ -286,12 +292,22 @@ func (process *Process) waitBackground() { - } - - // Wait waits for the process to exit. If the process has already exited returns --// the pervious error (if any). -+// the previous error (if any). - func (process *Process) Wait() error { - <-process.waitBlock - return process.waitError - } - -+// Exited returns if the process has stopped -+func (process *Process) stopped() bool { -+ select { -+ case <-process.waitBlock: -+ return true -+ default: -+ return false -+ } -+} -+ - // ResizeConsole resizes the console of the process. - func (process *Process) ResizeConsole(ctx context.Context, width, height uint16) error { - process.handleLock.RLock() -@@ -328,15 +344,13 @@ func (process *Process) ResizeConsole(ctx context.Context, width, height uint16) - // ExitCode returns the exit code of the process. The process must have - // already terminated. - func (process *Process) ExitCode() (int, error) { -- select { -- case <-process.waitBlock: -- if process.waitError != nil { -- return -1, process.waitError -- } -- return process.exitCode, nil -- default: -+ if !process.stopped() { - return -1, makeProcessError(process, "hcs::Process::ExitCode", ErrInvalidProcessState, nil) - } -+ if process.waitError != nil { -+ return -1, process.waitError -+ } -+ return process.exitCode, nil - } - - // StdioLegacy returns the stdin, stdout, and stderr pipes, respectively. Closing -@@ -344,7 +358,7 @@ func (process *Process) ExitCode() (int, error) { - // are the responsibility of the caller to close. - func (process *Process) StdioLegacy() (_ io.WriteCloser, _ io.ReadCloser, _ io.ReadCloser, err error) { - operation := "hcs::Process::StdioLegacy" -- ctx, span := trace.StartSpan(context.Background(), operation) -+ ctx, span := oc.StartSpan(context.Background(), operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -382,7 +396,7 @@ func (process *Process) StdioLegacy() (_ io.WriteCloser, _ io.ReadCloser, _ io.R - } - - // Stdio returns the stdin, stdout, and stderr pipes, respectively. --// To close them, close the process handle. -+// To close them, close the process handle, or use the `CloseStd*` functions. - func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) { - process.stdioLock.Lock() - defer process.stdioLock.Unlock() -@@ -391,46 +405,55 @@ func (process *Process) Stdio() (stdin io.Writer, stdout, stderr io.Reader) { - - // CloseStdin closes the write side of the stdin pipe so that the process is - // notified on the read side that there is no more data in stdin. --func (process *Process) CloseStdin(ctx context.Context) error { -+func (process *Process) CloseStdin(ctx context.Context) (err error) { -+ operation := "hcs::Process::CloseStdin" -+ ctx, span := trace.StartSpan(ctx, operation) -+ defer span.End() -+ defer func() { oc.SetSpanStatus(span, err) }() -+ span.AddAttributes( -+ trace.StringAttribute("cid", process.SystemID()), -+ trace.Int64Attribute("pid", int64(process.processID))) -+ - process.handleLock.RLock() - defer process.handleLock.RUnlock() - -- operation := "hcs::Process::CloseStdin" -- - if process.handle == 0 { - return makeProcessError(process, operation, ErrAlreadyClosed, nil) - } - -- modifyRequest := processModifyRequest{ -- Operation: modifyCloseHandle, -- CloseHandle: &closeHandle{ -- Handle: stdIn, -- }, -- } -+ //HcsModifyProcess request to close stdin will fail if the process has already exited -+ if !process.stopped() { -+ modifyRequest := processModifyRequest{ -+ Operation: modifyCloseHandle, -+ CloseHandle: &closeHandle{ -+ Handle: stdIn, -+ }, -+ } - -- modifyRequestb, err := json.Marshal(modifyRequest) -- if err != nil { -- return err -- } -+ modifyRequestb, err := json.Marshal(modifyRequest) -+ if err != nil { -+ return err -+ } - -- resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb)) -- events := processHcsResult(ctx, resultJSON) -- if err != nil { -- return makeProcessError(process, operation, err, events) -+ resultJSON, err := vmcompute.HcsModifyProcess(ctx, process.handle, string(modifyRequestb)) -+ events := processHcsResult(ctx, resultJSON) -+ if err != nil { -+ return makeProcessError(process, operation, err, events) -+ } - } - - process.stdioLock.Lock() -+ defer process.stdioLock.Unlock() - if process.stdin != nil { - process.stdin.Close() - process.stdin = nil - } -- process.stdioLock.Unlock() - - return nil - } - - func (process *Process) CloseStdout(ctx context.Context) (err error) { -- ctx, span := trace.StartSpan(ctx, "hcs::Process::CloseStdout") //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, "hcs::Process::CloseStdout") //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -454,7 +477,7 @@ func (process *Process) CloseStdout(ctx context.Context) (err error) { - } - - func (process *Process) CloseStderr(ctx context.Context) (err error) { -- ctx, span := trace.StartSpan(ctx, "hcs::Process::CloseStderr") //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, "hcs::Process::CloseStderr") //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -473,7 +496,6 @@ func (process *Process) CloseStderr(ctx context.Context) (err error) { - if process.stderr != nil { - process.stderr.Close() - process.stderr = nil -- - } - return nil - } -@@ -482,7 +504,7 @@ func (process *Process) CloseStderr(ctx context.Context) (err error) { - // or wait on it. - func (process *Process) Close() (err error) { - operation := "hcs::Process::Close" -- ctx, span := trace.StartSpan(context.Background(), operation) -+ ctx, span := oc.StartSpan(context.Background(), operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go -index b621c559..d1f219cf 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema1/schema1.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package schema1 - - import ( -@@ -101,7 +103,7 @@ type ContainerConfig struct { - HvRuntime *HvRuntime `json:",omitempty"` // Hyper-V container settings. Used by Hyper-V containers only. Format ImagePath=%root%\BaseLayerID\UtilityVM - Servicing bool `json:",omitempty"` // True if this container is for servicing - AllowUnqualifiedDNSQuery bool `json:",omitempty"` // True to allow unqualified DNS name resolution -- DNSSearchList string `json:",omitempty"` // Comma seperated list of DNS suffixes to use for name resolution -+ DNSSearchList string `json:",omitempty"` // Comma separated list of DNS suffixes to use for name resolution - ContainerType string `json:",omitempty"` // "Linux" for Linux containers on Windows. Omitted otherwise. - TerminateOnLastHandleClosed bool `json:",omitempty"` // Should HCS terminate the container once all handles have been closed - MappedVirtualDisks []MappedVirtualDisk `json:",omitempty"` // Array of virtual disks to mount at start -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go -index bbad6a2c..31fe07c3 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/cpu_group_property.go -@@ -9,6 +9,14 @@ - - package hcsschema - -+type CPUGroupPropertyCode uint32 -+ -+const ( -+ CPUCapacityProperty = 0x00010000 -+ CPUSchedulingPriorityProperty = 0x00020000 -+ IdleLPReserveProperty = 0x00030000 -+) -+ - type CpuGroupProperty struct { - PropertyCode uint32 `json:"PropertyCode,omitempty"` - PropertyValue uint32 `json:"PropertyValue,omitempty"` -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go -new file mode 100644 -index 00000000..5385850f ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/debug_options.go -@@ -0,0 +1,22 @@ -+/* -+ * HCS API -+ * -+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) -+ * -+ * API version: 2.1 -+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -+ */ -+ -+package hcsschema -+ -+type DebugOptions struct { -+ // BugcheckSavedStateFileName is the path for the file in which the guest VM state will be saved when -+ // the guest crashes. -+ BugcheckSavedStateFileName string `json:"BugcheckSavedStateFileName,omitempty"` -+ // BugcheckNoCrashdumpSavedStateFileName is the path of the file in which the guest VM state will be -+ // saved when the guest crashes but the guest isn't able to generate the crash dump. This usually -+ // happens in early boot failures. -+ BugcheckNoCrashdumpSavedStateFileName string `json:"BugcheckNoCrashdumpSavedStateFileName,omitempty"` -+ TripleFaultSavedStateFileName string `json:"TripleFaultSavedStateFileName,omitempty"` -+ FirmwareDumpFileName string `json:"FirmwareDumpFileName,omitempty"` -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go -index ef1eec88..a48a6539 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/guest_state.go -@@ -14,6 +14,9 @@ type GuestState struct { - // The path to an existing file uses for persistent guest state storage. An empty string indicates the system should initialize new transient, in-memory guest state. - GuestStateFilePath string `json:"GuestStateFilePath,omitempty"` - -+ // The guest state file type affected by different guest isolation modes - whether a file or block storage. -+ GuestStateFileType string `json:"GuestStateFileType,omitempty"` -+ - // The path to an existing file for persistent runtime state storage. An empty string indicates the system should initialize new transient, in-memory runtime state. - RuntimeStateFilePath string `json:"RuntimeStateFilePath,omitempty"` - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go -new file mode 100644 -index 00000000..3726a297 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/isolation_settings.go -@@ -0,0 +1,21 @@ -+/* -+ * HCS API -+ * -+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) -+ * -+ * API version: 2.4 -+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -+ */ -+ -+package hcsschema -+ -+type IsolationSettings struct { -+ // Guest isolation type options to decide virtual trust levels of virtual machine -+ IsolationType string `json:"IsolationType,omitempty"` -+ // Configuration to debug HCL layer for HCS VM TODO: Task 31102306: Miss the way to prevent the exposure of private debug configuration in HCS TODO: Think about the secret configurations which are private in VMMS VM (only edit by hvsedit) -+ DebugHost string `json:"DebugHost,omitempty"` -+ DebugPort int64 `json:"DebugPort,omitempty"` -+ // Optional data passed by host on isolated virtual machine start -+ LaunchData string `json:"LaunchData,omitempty"` -+ HclEnabled bool `json:"HclEnabled,omitempty"` -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go -index d29455a3..6364da8e 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/modify_setting_request.go -@@ -9,10 +9,12 @@ - - package hcsschema - -+import "github.com/Microsoft/hcsshim/internal/protocol/guestrequest" -+ - type ModifySettingRequest struct { - ResourcePath string `json:"ResourcePath,omitempty"` - -- RequestType string `json:"RequestType,omitempty"` -+ RequestType guestrequest.RequestType `json:"RequestType,omitempty"` // NOTE: Swagger generated as string. Locally updated. - - Settings interface{} `json:"Settings,omitempty"` // NOTE: Swagger generated as *interface{}. Locally updated - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go -new file mode 100644 -index 00000000..14f0299e ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/security_settings.go -@@ -0,0 +1,16 @@ -+/* -+ * HCS API -+ * -+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) -+ * -+ * API version: 2.4 -+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -+ */ -+ -+package hcsschema -+ -+type SecuritySettings struct { -+ // Enablement of Trusted Platform Module on the computer system -+ EnableTpm bool `json:"EnableTpm,omitempty"` -+ Isolation *IsolationSettings `json:"Isolation,omitempty"` -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go -new file mode 100644 -index 00000000..72de8014 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/system_time.go -@@ -0,0 +1,28 @@ -+/* -+ * HCS API -+ * -+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) -+ * -+ * API version: 2.1 -+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -+ */ -+ -+package hcsschema -+ -+type SystemTime struct { -+ Year int32 `json:"Year,omitempty"` -+ -+ Month int32 `json:"Month,omitempty"` -+ -+ DayOfWeek int32 `json:"DayOfWeek,omitempty"` -+ -+ Day int32 `json:"Day,omitempty"` -+ -+ Hour int32 `json:"Hour,omitempty"` -+ -+ Minute int32 `json:"Minute,omitempty"` -+ -+ Second int32 `json:"Second,omitempty"` -+ -+ Milliseconds int32 `json:"Milliseconds,omitempty"` -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go -new file mode 100644 -index 00000000..529743d7 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/time_zone_information.go -@@ -0,0 +1,26 @@ -+/* -+ * HCS API -+ * -+ * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) -+ * -+ * API version: 2.1 -+ * Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git) -+ */ -+ -+package hcsschema -+ -+type TimeZoneInformation struct { -+ Bias int32 `json:"Bias,omitempty"` -+ -+ StandardName string `json:"StandardName,omitempty"` -+ -+ StandardDate *SystemTime `json:"StandardDate,omitempty"` -+ -+ StandardBias int32 `json:"StandardBias,omitempty"` -+ -+ DaylightName string `json:"DaylightName,omitempty"` -+ -+ DaylightDate *SystemTime `json:"DaylightDate,omitempty"` -+ -+ DaylightBias int32 `json:"DaylightBias,omitempty"` -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go -index 0e48ece5..9228923f 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/uefi.go -@@ -12,6 +12,8 @@ package hcsschema - type Uefi struct { - EnableDebugger bool `json:"EnableDebugger,omitempty"` - -+ ApplySecureBootTemplate string `json:"ApplySecureBootTemplate,omitempty"` -+ - SecureBootTemplateId string `json:"SecureBootTemplateId,omitempty"` - - BootThis *UefiBootEntry `json:"BootThis,omitempty"` -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go -index 2d22b1bc..1e0fab28 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/schema2/virtual_machine.go -@@ -29,4 +29,8 @@ type VirtualMachine struct { - StorageQoS *StorageQoS `json:"StorageQoS,omitempty"` - - GuestConnection *GuestConnection `json:"GuestConnection,omitempty"` -+ -+ SecuritySettings *SecuritySettings `json:"SecuritySettings,omitempty"` -+ -+ DebugOptions *DebugOptions `json:"DebugOptions,omitempty"` - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go -index a634dfc1..a46b0051 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/service.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go -index a76f6b25..cf20adef 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/system.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -@@ -37,6 +39,9 @@ type System struct { - startTime time.Time - } - -+var _ cow.Container = &System{} -+var _ cow.ProcessHost = &System{} -+ - func newSystem(id string) *System { - return &System{ - id: id, -@@ -55,7 +60,7 @@ func CreateComputeSystem(ctx context.Context, id string, hcsDocumentInterface in - - // hcsCreateComputeSystemContext is an async operation. Start the outer span - // here to measure the full create time. -- ctx, span := trace.StartSpan(ctx, operation) -+ ctx, span := oc.StartSpan(ctx, operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", id)) -@@ -89,7 +94,8 @@ func CreateComputeSystem(ctx context.Context, id string, hcsDocumentInterface in - } - } - -- events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemCreateCompleted, &timeout.SystemCreate) -+ events, err := processAsyncHcsResult(ctx, createError, resultJSON, computeSystem.callbackNumber, -+ hcsNotificationSystemCreateCompleted, &timeout.SystemCreate) - if err != nil { - if err == ErrTimeout { - // Terminate the compute system if it still exists. We're okay to -@@ -190,7 +196,7 @@ func (computeSystem *System) Start(ctx context.Context) (err error) { - - // hcsStartComputeSystemContext is an async operation. Start the outer span - // here to measure the full start time. -- ctx, span := trace.StartSpan(ctx, operation) -+ ctx, span := oc.StartSpan(ctx, operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) -@@ -198,12 +204,15 @@ func (computeSystem *System) Start(ctx context.Context) (err error) { - computeSystem.handleLock.RLock() - defer computeSystem.handleLock.RUnlock() - -+ // prevent starting an exited system because waitblock we do not recreate waitBlock -+ // or rerun waitBackground, so we have no way to be notified of it closing again - if computeSystem.handle == 0 { - return makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil) - } - - resultJSON, err := vmcompute.HcsStartComputeSystem(ctx, computeSystem.handle, "") -- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemStartCompleted, &timeout.SystemStart) -+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, -+ hcsNotificationSystemStartCompleted, &timeout.SystemStart) - if err != nil { - return makeSystemError(computeSystem, operation, err, events) - } -@@ -223,7 +232,7 @@ func (computeSystem *System) Shutdown(ctx context.Context) error { - - operation := "hcs::System::Shutdown" - -- if computeSystem.handle == 0 { -+ if computeSystem.handle == 0 || computeSystem.stopped() { - return nil - } - -@@ -244,7 +253,7 @@ func (computeSystem *System) Terminate(ctx context.Context) error { - - operation := "hcs::System::Terminate" - -- if computeSystem.handle == 0 { -+ if computeSystem.handle == 0 || computeSystem.stopped() { - return nil - } - -@@ -265,7 +274,7 @@ func (computeSystem *System) Terminate(ctx context.Context) error { - // safe to call multiple times. - func (computeSystem *System) waitBackground() { - operation := "hcs::System::waitBackground" -- ctx, span := trace.StartSpan(context.Background(), operation) -+ ctx, span := oc.StartSpan(context.Background(), operation) - defer span.End() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) - -@@ -302,17 +311,25 @@ func (computeSystem *System) Wait() error { - return computeSystem.WaitError() - } - --// ExitError returns an error describing the reason the compute system terminated. --func (computeSystem *System) ExitError() error { -+// stopped returns true if the compute system stopped. -+func (computeSystem *System) stopped() bool { - select { - case <-computeSystem.waitBlock: -- if computeSystem.waitError != nil { -- return computeSystem.waitError -- } -- return computeSystem.exitError -+ return true - default: -+ } -+ return false -+} -+ -+// ExitError returns an error describing the reason the compute system terminated. -+func (computeSystem *System) ExitError() error { -+ if !computeSystem.stopped() { - return errors.New("container not exited") - } -+ if computeSystem.waitError != nil { -+ return computeSystem.waitError -+ } -+ return computeSystem.exitError - } - - // Properties returns the requested container properties targeting a V1 schema container. -@@ -322,6 +339,10 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr - - operation := "hcs::System::Properties" - -+ if computeSystem.handle == 0 { -+ return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil) -+ } -+ - queryBytes, err := json.Marshal(schema1.PropertyQuery{PropertyTypes: types}) - if err != nil { - return nil, makeSystemError(computeSystem, operation, err, nil) -@@ -349,7 +370,11 @@ func (computeSystem *System) Properties(ctx context.Context, types ...schema1.Pr - // failed to be queried they will be tallied up and returned in as the first return value. Failures on - // query are NOT considered errors; the only failure case for this method is if the containers job object - // cannot be opened. --func (computeSystem *System) queryInProc(ctx context.Context, props *hcsschema.Properties, types []hcsschema.PropertyType) ([]hcsschema.PropertyType, error) { -+func (computeSystem *System) queryInProc( -+ ctx context.Context, -+ props *hcsschema.Properties, -+ types []hcsschema.PropertyType, -+) ([]hcsschema.PropertyType, error) { - // In the future we can make use of some new functionality in the HCS that allows you - // to pass a job object for HCS to use for the container. Currently, the only way we'll - // be able to open the job/silo is if we're running as SYSTEM. -@@ -415,7 +440,7 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch - // as well which isn't great and is wasted work to fetch. - // - // HCS only let's you grab statistics in an all or nothing fashion, so we can't just grab the private -- // working set ourselves and ask for everything else seperately. The optimization we can make here is -+ // working set ourselves and ask for everything else separately. The optimization we can make here is - // to open the silo ourselves and do the same queries for the rest of the info, as well as calculating - // the private working set in a more efficient manner by: - // -@@ -455,6 +480,10 @@ func (computeSystem *System) statisticsInProc(job *jobobject.JobObject) (*hcssch - func (computeSystem *System) hcsPropertiesV2Query(ctx context.Context, types []hcsschema.PropertyType) (*hcsschema.Properties, error) { - operation := "hcs::System::PropertiesV2" - -+ if computeSystem.handle == 0 { -+ return nil, makeSystemError(computeSystem, operation, ErrAlreadyClosed, nil) -+ } -+ - queryBytes, err := json.Marshal(hcsschema.PropertyQuery{PropertyTypes: types}) - if err != nil { - return nil, makeSystemError(computeSystem, operation, err, nil) -@@ -503,7 +532,7 @@ func (computeSystem *System) PropertiesV2(ctx context.Context, types ...hcsschem - if err == nil && len(fallbackTypes) == 0 { - return properties, nil - } else if err != nil { -- logEntry.WithError(fmt.Errorf("failed to query compute system properties in-proc: %w", err)) -+ logEntry = logEntry.WithError(fmt.Errorf("failed to query compute system properties in-proc: %w", err)) - fallbackTypes = types - } - -@@ -535,9 +564,9 @@ func (computeSystem *System) PropertiesV2(ctx context.Context, types ...hcsschem - func (computeSystem *System) Pause(ctx context.Context) (err error) { - operation := "hcs::System::Pause" - -- // hcsPauseComputeSystemContext is an async peration. Start the outer span -+ // hcsPauseComputeSystemContext is an async operation. Start the outer span - // here to measure the full pause time. -- ctx, span := trace.StartSpan(ctx, operation) -+ ctx, span := oc.StartSpan(ctx, operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) -@@ -550,7 +579,8 @@ func (computeSystem *System) Pause(ctx context.Context) (err error) { - } - - resultJSON, err := vmcompute.HcsPauseComputeSystem(ctx, computeSystem.handle, "") -- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemPauseCompleted, &timeout.SystemPause) -+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, -+ hcsNotificationSystemPauseCompleted, &timeout.SystemPause) - if err != nil { - return makeSystemError(computeSystem, operation, err, events) - } -@@ -564,7 +594,7 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) { - - // hcsResumeComputeSystemContext is an async operation. Start the outer span - // here to measure the full restore time. -- ctx, span := trace.StartSpan(ctx, operation) -+ ctx, span := oc.StartSpan(ctx, operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) -@@ -577,7 +607,8 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) { - } - - resultJSON, err := vmcompute.HcsResumeComputeSystem(ctx, computeSystem.handle, "") -- events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, hcsNotificationSystemResumeCompleted, &timeout.SystemResume) -+ events, err := processAsyncHcsResult(ctx, err, resultJSON, computeSystem.callbackNumber, -+ hcsNotificationSystemResumeCompleted, &timeout.SystemResume) - if err != nil { - return makeSystemError(computeSystem, operation, err, events) - } -@@ -589,9 +620,9 @@ func (computeSystem *System) Resume(ctx context.Context) (err error) { - func (computeSystem *System) Save(ctx context.Context, options interface{}) (err error) { - operation := "hcs::System::Save" - -- // hcsSaveComputeSystemContext is an async peration. Start the outer span -+ // hcsSaveComputeSystemContext is an async operation. Start the outer span - // here to measure the full save time. -- ctx, span := trace.StartSpan(ctx, operation) -+ ctx, span := oc.StartSpan(ctx, operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) -@@ -609,7 +640,8 @@ func (computeSystem *System) Save(ctx context.Context, options interface{}) (err - } - - result, err := vmcompute.HcsSaveComputeSystem(ctx, computeSystem.handle, string(saveOptions)) -- events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber, hcsNotificationSystemSaveCompleted, &timeout.SystemSave) -+ events, err := processAsyncHcsResult(ctx, err, result, computeSystem.callbackNumber, -+ hcsNotificationSystemSaveCompleted, &timeout.SystemSave) - if err != nil { - return makeSystemError(computeSystem, operation, err, events) - } -@@ -634,6 +666,11 @@ func (computeSystem *System) createProcess(ctx context.Context, operation string - processInfo, processHandle, resultJSON, err := vmcompute.HcsCreateProcess(ctx, computeSystem.handle, configuration) - events := processHcsResult(ctx, resultJSON) - if err != nil { -+ if v2, ok := c.(*hcsschema.ProcessParameters); ok { -+ operation += ": " + v2.CommandLine -+ } else if v1, ok := c.(*schema1.ProcessConfig); ok { -+ operation += ": " + v1.CommandLine -+ } - return nil, nil, makeSystemError(computeSystem, operation, err, events) - } - -@@ -700,7 +737,7 @@ func (computeSystem *System) OpenProcess(ctx context.Context, pid int) (*Process - // Close cleans up any state associated with the compute system but does not terminate or wait for it. - func (computeSystem *System) Close() (err error) { - operation := "hcs::System::Close" -- ctx, span := trace.StartSpan(context.Background(), operation) -+ ctx, span := oc.StartSpan(context.Background(), operation) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("cid", computeSystem.id)) -@@ -743,7 +780,8 @@ func (computeSystem *System) registerCallback(ctx context.Context) error { - callbackMap[callbackNumber] = callbackContext - callbackMapLock.Unlock() - -- callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle, notificationWatcherCallback, callbackNumber) -+ callbackHandle, err := vmcompute.HcsRegisterComputeSystemCallback(ctx, computeSystem.handle, -+ notificationWatcherCallback, callbackNumber) - if err != nil { - return err - } -@@ -770,7 +808,7 @@ func (computeSystem *System) unregisterCallback(ctx context.Context) error { - return nil - } - -- // hcsUnregisterComputeSystemCallback has its own syncronization -+ // hcsUnregisterComputeSystemCallback has its own synchronization - // to wait for all callbacks to complete. We must NOT hold the callbackMapLock. - err := vmcompute.HcsUnregisterComputeSystemCallback(ctx, handle) - if err != nil { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go -index 3342e5bb..5dcb97eb 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/utils.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go b/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go -index db4e14fd..3a51ed19 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcs/waithelper.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcs - - import ( -@@ -7,7 +9,14 @@ import ( - "github.com/Microsoft/hcsshim/internal/log" - ) - --func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) ([]ErrorEvent, error) { -+func processAsyncHcsResult( -+ ctx context.Context, -+ err error, -+ resultJSON string, -+ callbackNumber uintptr, -+ expectedNotification hcsNotification, -+ timeout *time.Duration, -+) ([]ErrorEvent, error) { - events := processHcsResult(ctx, resultJSON) - if IsPending(err) { - return nil, waitForNotification(ctx, callbackNumber, expectedNotification, timeout) -@@ -16,7 +25,12 @@ func processAsyncHcsResult(ctx context.Context, err error, resultJSON string, ca - return events, err - } - --func waitForNotification(ctx context.Context, callbackNumber uintptr, expectedNotification hcsNotification, timeout *time.Duration) error { -+func waitForNotification( -+ ctx context.Context, -+ callbackNumber uintptr, -+ expectedNotification hcsNotification, -+ timeout *time.Duration, -+) error { - callbackMapLock.RLock() - if _, ok := callbackMap[callbackNumber]; !ok { - callbackMapLock.RUnlock() -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go -new file mode 100644 -index 00000000..ce706767 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/doc.go -@@ -0,0 +1 @@ -+package hcserror -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go -index 921c2c85..a70d80da 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hcserror/hcserror.go -@@ -1,11 +1,13 @@ -+//go:build windows -+ - package hcserror - - import ( -+ "errors" - "fmt" -- "syscall" --) - --const ERROR_GEN_FAILURE = syscall.Errno(31) -+ "golang.org/x/sys/windows" -+) - - type HcsError struct { - title string -@@ -30,18 +32,21 @@ func (e *HcsError) Error() string { - - func New(err error, title, rest string) error { - // Pass through DLL errors directly since they do not originate from HCS. -- if _, ok := err.(*syscall.DLLError); ok { -+ var e *windows.DLLError -+ if errors.As(err, &e) { - return err - } - return &HcsError{title, rest, err} - } - - func Win32FromError(err error) uint32 { -- if herr, ok := err.(*HcsError); ok { -+ var herr *HcsError -+ if errors.As(err, &herr) { - return Win32FromError(herr.Err) - } -- if code, ok := err.(syscall.Errno); ok { -+ var code windows.Errno -+ if errors.As(err, &code) { - return uint32(code) - } -- return uint32(ERROR_GEN_FAILURE) -+ return uint32(windows.ERROR_GEN_FAILURE) - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go -new file mode 100644 -index 00000000..f6d35df0 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/doc.go -@@ -0,0 +1 @@ -+package hns -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go -index b2e475f5..ec4c907d 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hns.go -@@ -2,7 +2,7 @@ package hns - - import "fmt" - --//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go hns.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go hns.go - - //sys _hnsCall(method string, path string, object string, response **uint16) (hr error) = vmcompute.HNSCall? - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go -index 7cf954c7..59366441 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsendpoint.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - import ( -@@ -34,7 +36,7 @@ type HNSEndpoint struct { - SharedContainers []string `json:",omitempty"` - } - --//SystemType represents the type of the system on which actions are done -+// SystemType represents the type of the system on which actions are done - type SystemType string - - // SystemType const -@@ -146,7 +148,6 @@ func (endpoint *HNSEndpoint) IsAttached(vID string) (bool, error) { - } - - return false, nil -- - } - - // Create Endpoint by sending EndpointRequest to HNS. TODO: Create a separate HNS interface to place all these methods -@@ -281,7 +282,6 @@ func (endpoint *HNSEndpoint) HostAttach(compartmentID uint16) error { - return err - } - return hnsCall("POST", "/endpoints/"+endpoint.Id+"/attach", string(jsonString), &response) -- - } - - // HostDetach detaches a nic on the host -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go -index 2df4a57f..0a8f36d8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsfuncs.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go -index a8d8cc56..464bb895 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsglobals.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - type HNSGlobals struct { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go -index f12d3ab0..8861faee 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnsnetwork.go -@@ -1,13 +1,16 @@ -+//go:build windows -+ - package hns - - import ( - "encoding/json" - "errors" -- "github.com/sirupsen/logrus" - "net" -+ -+ "github.com/sirupsen/logrus" - ) - --// Subnet is assoicated with a network and represents a list -+// Subnet is associated with a network and represents a list - // of subnets available to the network - type Subnet struct { - AddressPrefix string `json:",omitempty"` -@@ -15,7 +18,7 @@ type Subnet struct { - Policies []json.RawMessage `json:",omitempty"` - } - --// MacPool is assoicated with a network and represents a list -+// MacPool is associated with a network and represents a list - // of macaddresses available to the network - type MacPool struct { - StartMacAddress string `json:",omitempty"` -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go -index 84b36821..082c018a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicy.go -@@ -94,15 +94,15 @@ type ACLPolicy struct { - InternalPort uint16 `json:",omitempty"` - Action ActionType - Direction DirectionType -- LocalAddresses string `json:",omitempty"` -- RemoteAddresses string `json:",omitempty"` -- LocalPorts string `json:"LocalPorts,omitempty"` -- LocalPort uint16 `json:",omitempty"` -- RemotePorts string `json:"RemotePorts,omitempty"` -- RemotePort uint16 `json:",omitempty"` -- RuleType RuleType `json:"RuleType,omitempty"` -- Priority uint16 `json:",omitempty"` -- ServiceName string `json:",omitempty"` -+ LocalAddresses string `json:",omitempty"` -+ RemoteAddresses string `json:",omitempty"` -+ LocalPorts string `json:"LocalPorts,omitempty"` -+ LocalPort uint16 `json:",omitempty"` -+ RemotePorts string `json:"RemotePorts,omitempty"` -+ RemotePort uint16 `json:",omitempty"` -+ RuleType RuleType `json:"RuleType,omitempty"` -+ Priority uint16 `json:",omitempty"` -+ ServiceName string `json:",omitempty"` - } - - type Policy struct { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go -index 31322a68..b98db40e 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnspolicylist.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go -index d5efba7f..b9c30b90 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/hnssupport.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go -index d3b04eef..749588ad 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/namespace.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hns - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go -index 204633a4..a35ee945 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/hns/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package hns - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -62,7 +65,8 @@ func _hnsCall(method string, path string, object string, response **uint16) (hr - } - - func __hnsCall(method *uint16, path *uint16, object *uint16, response **uint16) (hr error) { -- if hr = procHNSCall.Find(); hr != nil { -+ hr = procHNSCall.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall6(procHNSCall.Addr(), 4, uintptr(unsafe.Pointer(method)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(object)), uintptr(unsafe.Pointer(response)), 0, 0) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go -new file mode 100644 -index 00000000..cb554867 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/interop/doc.go -@@ -0,0 +1 @@ -+package interop -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go b/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go -index 922f7c67..a5646965 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/interop/interop.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package interop - - import ( -@@ -5,7 +7,7 @@ import ( - "unsafe" - ) - --//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go interop.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go interop.go - - //sys coTaskMemFree(buffer unsafe.Pointer) = api_ms_win_core_com_l1_1_0.CoTaskMemFree - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go -index 12b0c71c..a17a1125 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/interop/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package interop - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go -new file mode 100644 -index 00000000..34b53d6e ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/doc.go -@@ -0,0 +1,8 @@ -+// This package provides higher level constructs for the win32 job object API. -+// Most of the core creation and management functions are already present in "golang.org/x/sys/windows" -+// (CreateJobObject, AssignProcessToJobObject, etc.) as well as most of the limit information -+// structs and associated limit flags. Whatever is not present from the job object API -+// in golang.org/x/sys/windows is located in /internal/winapi. -+// -+// https://docs.microsoft.com/en-us/windows/win32/procthread/job-objects -+package jobobject -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go -index 5d6acd69..bcca84b0 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/iocp.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package jobobject - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go -index c9fdd921..64afd35d 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/jobobject.go -@@ -1,10 +1,15 @@ -+//go:build windows -+ - package jobobject - - import ( - "context" - "errors" - "fmt" -+ "os" -+ "path/filepath" - "sync" -+ "sync/atomic" - "unsafe" - - "github.com/Microsoft/hcsshim/internal/queue" -@@ -12,19 +17,14 @@ import ( - "golang.org/x/sys/windows" - ) - --// This file provides higher level constructs for the win32 job object API. --// Most of the core creation and management functions are already present in "golang.org/x/sys/windows" --// (CreateJobObject, AssignProcessToJobObject, etc.) as well as most of the limit information --// structs and associated limit flags. Whatever is not present from the job object API --// in golang.org/x/sys/windows is located in /internal/winapi. --// --// https://docs.microsoft.com/en-us/windows/win32/procthread/job-objects -- - // JobObject is a high level wrapper around a Windows job object. Holds a handle to - // the job, a queue to receive iocp notifications about the lifecycle - // of the job and a mutex for synchronized handle access. - type JobObject struct { -- handle windows.Handle -+ handle windows.Handle -+ // All accesses to this MUST be done atomically except in `Open` as the object -+ // is being created in the function. 1 signifies that this job is currently a silo. -+ silo uint32 - mq *queue.MessageQueue - handleLock sync.RWMutex - } -@@ -56,6 +56,7 @@ const ( - var ( - ErrAlreadyClosed = errors.New("the handle has already been closed") - ErrNotRegistered = errors.New("job is not registered to receive notifications") -+ ErrNotSilo = errors.New("job is not a silo") - ) - - // Options represents the set of configurable options when making or opening a job object. -@@ -68,6 +69,9 @@ type Options struct { - // `UseNTVariant` specifies if we should use the `Nt` variant of Open/CreateJobObject. - // Defaults to false. - UseNTVariant bool -+ // `Silo` specifies to promote the job to a silo. This additionally sets the flag -+ // JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE as it is required for the upgrade to complete. -+ Silo bool - // `IOTracking` enables tracking I/O statistics on the job object. More specifically this - // calls SetInformationJobObject with the JobObjectIoAttribution class. - EnableIOTracking bool -@@ -143,6 +147,16 @@ func Create(ctx context.Context, options *Options) (_ *JobObject, err error) { - } - } - -+ if options.Silo { -+ // This is a required setting for upgrading to a silo. -+ if err := job.SetTerminateOnLastHandleClose(); err != nil { -+ return nil, err -+ } -+ if err := job.PromoteToSilo(); err != nil { -+ return nil, err -+ } -+ } -+ - return job, nil - } - -@@ -163,7 +177,7 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) { - } - - var jobHandle windows.Handle -- if options != nil && options.UseNTVariant { -+ if options.UseNTVariant { - oa := winapi.ObjectAttributes{ - Length: unsafe.Sizeof(winapi.ObjectAttributes{}), - ObjectName: unicodeJobName, -@@ -174,7 +188,7 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) { - return nil, winapi.RtlNtStatusToDosError(status) - } - } else { -- jobHandle, err = winapi.OpenJobObject(winapi.JOB_OBJECT_ALL_ACCESS, false, unicodeJobName.Buffer) -+ jobHandle, err = winapi.OpenJobObject(winapi.JOB_OBJECT_ALL_ACCESS, 0, unicodeJobName.Buffer) - if err != nil { - return nil, err - } -@@ -190,9 +204,13 @@ func Open(ctx context.Context, options *Options) (_ *JobObject, err error) { - handle: jobHandle, - } - -+ if isJobSilo(jobHandle) { -+ job.silo = 1 -+ } -+ - // If the IOCP we'll be using to receive messages for all jobs hasn't been - // created, create it and start polling. -- if options != nil && options.Notifications { -+ if options.Notifications { - mq, err := setupNotifications(ctx, job) - if err != nil { - return nil, err -@@ -450,6 +468,119 @@ func (job *JobObject) QueryStorageStats() (*winapi.JOBOBJECT_IO_ATTRIBUTION_INFO - return &info, nil - } - -+// ApplyFileBinding makes a file binding using the Bind Filter from target to root. If the job has -+// not been upgraded to a silo this call will fail. The binding is only applied and visible for processes -+// running in the job, any processes on the host or in another job will not be able to see the binding. -+func (job *JobObject) ApplyFileBinding(root, target string, readOnly bool) error { -+ job.handleLock.RLock() -+ defer job.handleLock.RUnlock() -+ -+ if job.handle == 0 { -+ return ErrAlreadyClosed -+ } -+ -+ if !job.isSilo() { -+ return ErrNotSilo -+ } -+ -+ // The parent directory needs to exist for the bind to work. MkdirAll stats and -+ // returns nil if the directory exists internally so we should be fine to mkdirall -+ // every time. -+ if err := os.MkdirAll(filepath.Dir(root), 0); err != nil { -+ return err -+ } -+ -+ rootPtr, err := windows.UTF16PtrFromString(root) -+ if err != nil { -+ return err -+ } -+ -+ targetPtr, err := windows.UTF16PtrFromString(target) -+ if err != nil { -+ return err -+ } -+ -+ flags := winapi.BINDFLT_FLAG_USE_CURRENT_SILO_MAPPING -+ if readOnly { -+ flags |= winapi.BINDFLT_FLAG_READ_ONLY_MAPPING -+ } -+ -+ if err := winapi.BfSetupFilter( -+ job.handle, -+ flags, -+ rootPtr, -+ targetPtr, -+ nil, -+ 0, -+ ); err != nil { -+ return fmt.Errorf("failed to bind target %q to root %q for job object: %w", target, root, err) -+ } -+ return nil -+} -+ -+// isJobSilo is a helper to determine if a job object that was opened is a silo. This should ONLY be called -+// from `Open` and any callers in this package afterwards should use `job.isSilo()` -+func isJobSilo(h windows.Handle) bool { -+ // None of the information from the structure that this info class expects will be used, this is just used as -+ // the call will fail if the job hasn't been upgraded to a silo so we can use this to tell when we open a job -+ // if it's a silo or not. Because none of the info matters simply define a dummy struct with the size that the call -+ // expects which is 16 bytes. -+ type isSiloObj struct { -+ _ [16]byte -+ } -+ var siloInfo isSiloObj -+ err := winapi.QueryInformationJobObject( -+ h, -+ winapi.JobObjectSiloBasicInformation, -+ unsafe.Pointer(&siloInfo), -+ uint32(unsafe.Sizeof(siloInfo)), -+ nil, -+ ) -+ return err == nil -+} -+ -+// PromoteToSilo promotes a job object to a silo. There must be no running processess -+// in the job for this to succeed. If the job is already a silo this is a no-op. -+func (job *JobObject) PromoteToSilo() error { -+ job.handleLock.RLock() -+ defer job.handleLock.RUnlock() -+ -+ if job.handle == 0 { -+ return ErrAlreadyClosed -+ } -+ -+ if job.isSilo() { -+ return nil -+ } -+ -+ pids, err := job.Pids() -+ if err != nil { -+ return err -+ } -+ -+ if len(pids) != 0 { -+ return fmt.Errorf("job cannot have running processes to be promoted to a silo, found %d running processes", len(pids)) -+ } -+ -+ _, err = windows.SetInformationJobObject( -+ job.handle, -+ winapi.JobObjectCreateSilo, -+ 0, -+ 0, -+ ) -+ if err != nil { -+ return fmt.Errorf("failed to promote job to silo: %w", err) -+ } -+ -+ atomic.StoreUint32(&job.silo, 1) -+ return nil -+} -+ -+// isSilo returns if the job object is a silo. -+func (job *JobObject) isSilo() bool { -+ return atomic.LoadUint32(&job.silo) == 1 -+} -+ - // QueryPrivateWorkingSet returns the private working set size for the job. This is calculated by adding up the - // private working set for every process running in the job. - func (job *JobObject) QueryPrivateWorkingSet() (uint64, error) { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go -index 4efde292..03f71d9a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/jobobject/limits.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package jobobject - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/context.go b/vendor/github.com/Microsoft/hcsshim/internal/log/context.go -new file mode 100644 -index 00000000..d17d909d ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/log/context.go -@@ -0,0 +1,118 @@ -+package log -+ -+import ( -+ "context" -+ -+ "github.com/sirupsen/logrus" -+ "go.opencensus.io/trace" -+) -+ -+type entryContextKeyType int -+ -+const _entryContextKey entryContextKeyType = iota -+ -+var ( -+ // L is the default, blank logging entry. WithField and co. all return a copy -+ // of the original entry, so this will not leak fields between calls. -+ // -+ // Do NOT modify fields directly, as that will corrupt state for all users and -+ // is not thread safe. -+ // Instead, use `L.With*` or `L.Dup()`. Or `G(context.Background())`. -+ L = logrus.NewEntry(logrus.StandardLogger()) -+ -+ // G is an alias for GetEntry -+ G = GetEntry -+ -+ // S is an alias for SetEntry -+ S = SetEntry -+ -+ // U is an alias for UpdateContext -+ U = UpdateContext -+) -+ -+// GetEntry returns a `logrus.Entry` stored in the context, if one exists. -+// Otherwise, it returns a default entry that points to the current context. -+// -+// Note: if the a new entry is returned, it will reference the passed in context. -+// However, existing contexts may be stored in parent contexts and additionally reference -+// earlier contexts. -+// Use `UpdateContext` to update the entry and context. -+func GetEntry(ctx context.Context) *logrus.Entry { -+ entry := fromContext(ctx) -+ -+ if entry == nil { -+ entry = L.WithContext(ctx) -+ } -+ -+ return entry -+} -+ -+// SetEntry updates the log entry in the context with the provided fields, and -+// returns both. It is equivalent to: -+// -+// entry := GetEntry(ctx).WithFields(fields) -+// ctx = WithContext(ctx, entry) -+// -+// See WithContext for more information. -+func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logrus.Entry) { -+ e := GetEntry(ctx) -+ if len(fields) > 0 { -+ e = e.WithFields(fields) -+ } -+ return WithContext(ctx, e) -+} -+ -+// UpdateContext extracts the log entry from the context, and, if the entry's -+// context points to a parent's of the current context, ands the entry -+// to the most recent context. It is equivalent to: -+// -+// entry := GetEntry(ctx) -+// ctx = WithContext(ctx, entry) -+// -+// This allows the entry to reference the most recent context and any new -+// values (such as span contexts) added to it. -+// -+// See WithContext for more information. -+func UpdateContext(ctx context.Context) context.Context { -+ // there is no way to check its ctx (and not one of its parents) that contains `e` -+ // so, at a slight cost, force add `e` to the context -+ ctx, _ = WithContext(ctx, GetEntry(ctx)) -+ return ctx -+} -+ -+// WithContext returns a context that contains the provided log entry. -+// The entry can be extracted with `GetEntry` (`G`) -+// -+// The entry in the context is a copy of `entry` (generated by `entry.WithContext`) -+func WithContext(ctx context.Context, entry *logrus.Entry) (context.Context, *logrus.Entry) { -+ // regardless of the order, entry.Context != GetEntry(ctx) -+ // here, the returned entry will reference the supplied context -+ entry = entry.WithContext(ctx) -+ ctx = context.WithValue(ctx, _entryContextKey, entry) -+ -+ return ctx, entry -+} -+ -+// Copy extracts the tracing Span and logging entry from the src Context, if they -+// exist, and adds them to the dst Context. -+// -+// This is useful to share tracing and logging between contexts, but not the -+// cancellation. For example, if the src Context has been cancelled but cleanup -+// operations triggered by the cancellation require a non-cancelled context to -+// execute. -+func Copy(dst context.Context, src context.Context) context.Context { -+ if s := trace.FromContext(src); s != nil { -+ dst = trace.NewContext(dst, s) -+ } -+ -+ if e := fromContext(src); e != nil { -+ dst, _ = WithContext(dst, e) -+ } -+ -+ return dst -+} -+ -+func fromContext(ctx context.Context) *logrus.Entry { -+ e, _ := ctx.Value(_entryContextKey).(*logrus.Entry) -+ return e -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/format.go b/vendor/github.com/Microsoft/hcsshim/internal/log/format.go -new file mode 100644 -index 00000000..d9bc49d3 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/log/format.go -@@ -0,0 +1,87 @@ -+package log -+ -+import ( -+ "bytes" -+ "context" -+ "encoding/json" -+ "fmt" -+ "net" -+ "reflect" -+ "time" -+) -+ -+// TimeFormat is [time.RFC3339Nano] with nanoseconds padded using -+// zeros to ensure the formatted time is always the same number of -+// characters. -+// Based on RFC3339NanoFixed from github.com/containerd/log -+const TimeFormat = "2006-01-02T15:04:05.000000000Z07:00" -+ -+func FormatTime(t time.Time) string { -+ return t.Format(TimeFormat) -+} -+ -+// DurationFormat formats a [time.Duration] log entry. -+// -+// A nil value signals an error with the formatting. -+type DurationFormat func(time.Duration) interface{} -+ -+func DurationFormatString(d time.Duration) interface{} { return d.String() } -+func DurationFormatSeconds(d time.Duration) interface{} { return d.Seconds() } -+func DurationFormatMilliseconds(d time.Duration) interface{} { return d.Milliseconds() } -+ -+// FormatIO formats net.Conn and other types that have an `Addr()` or `Name()`. -+// -+// See FormatEnabled for more information. -+func FormatIO(ctx context.Context, v interface{}) string { -+ m := make(map[string]string) -+ m["type"] = reflect.TypeOf(v).String() -+ -+ switch t := v.(type) { -+ case net.Conn: -+ m["localAddress"] = formatAddr(t.LocalAddr()) -+ m["remoteAddress"] = formatAddr(t.RemoteAddr()) -+ case interface{ Addr() net.Addr }: -+ m["address"] = formatAddr(t.Addr()) -+ default: -+ return Format(ctx, t) -+ } -+ -+ return Format(ctx, m) -+} -+ -+func formatAddr(a net.Addr) string { -+ return a.Network() + "://" + a.String() -+} -+ -+// Format formats an object into a JSON string, without any indendtation or -+// HTML escapes. -+// Context is used to output a log waring if the conversion fails. -+// -+// This is intended primarily for `trace.StringAttribute()` -+func Format(ctx context.Context, v interface{}) string { -+ b, err := encode(v) -+ if err != nil { -+ G(ctx).WithError(err).Warning("could not format value") -+ return "" -+ } -+ -+ return string(b) -+} -+ -+func encode(v interface{}) ([]byte, error) { -+ return encodeBuffer(&bytes.Buffer{}, v) -+} -+ -+func encodeBuffer(buf *bytes.Buffer, v interface{}) ([]byte, error) { -+ enc := json.NewEncoder(buf) -+ enc.SetEscapeHTML(false) -+ enc.SetIndent("", "") -+ -+ if err := enc.Encode(v); err != nil { -+ err = fmt.Errorf("could not marshall %T to JSON for logging: %w", v, err) -+ return nil, err -+ } -+ -+ // encoder.Encode appends a newline to the end -+ return bytes.TrimSpace(buf.Bytes()), nil -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/g.go b/vendor/github.com/Microsoft/hcsshim/internal/log/g.go -deleted file mode 100644 -index ba6b1a4a..00000000 ---- a/vendor/github.com/Microsoft/hcsshim/internal/log/g.go -+++ /dev/null -@@ -1,23 +0,0 @@ --package log -- --import ( -- "context" -- -- "github.com/sirupsen/logrus" -- "go.opencensus.io/trace" --) -- --// G returns a `logrus.Entry` with the `TraceID, SpanID` from `ctx` if `ctx` --// contains an OpenCensus `trace.Span`. --func G(ctx context.Context) *logrus.Entry { -- span := trace.FromContext(ctx) -- if span != nil { -- sctx := span.SpanContext() -- return logrus.WithFields(logrus.Fields{ -- "traceID": sctx.TraceID.String(), -- "spanID": sctx.SpanID.String(), -- // "parentSpanID": TODO: JTERRY75 - Try to convince OC to export this? -- }) -- } -- return logrus.NewEntry(logrus.StandardLogger()) --} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go b/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go -new file mode 100644 -index 00000000..bb547a32 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/log/hook.go -@@ -0,0 +1,173 @@ -+package log -+ -+import ( -+ "bytes" -+ "reflect" -+ "time" -+ -+ "github.com/Microsoft/hcsshim/internal/logfields" -+ "github.com/sirupsen/logrus" -+ "go.opencensus.io/trace" -+) -+ -+const nullString = "null" -+ -+// Hook intercepts and formats a [logrus.Entry] before it logged. -+// -+// The shim either outputs the logs through an ETW hook, discarding the (formatted) output -+// or logs output to a pipe for logging binaries to consume. -+// The Linux GCS outputs logrus entries over stdout, which is then consumed and re-output -+// by the shim. -+type Hook struct { -+ // EncodeAsJSON formats structs, maps, arrays, slices, and [bytes.Buffer] as JSON. -+ // Variables of [bytes.Buffer] will be converted to []byte. -+ // -+ // Default is false. -+ EncodeAsJSON bool -+ -+ // FormatTime specifies the format for [time.Time] variables. -+ // An empty string disables formatting. -+ // When disabled, the fall back will the JSON encoding, if enabled. -+ // -+ // Default is [TimeFormat]. -+ TimeFormat string -+ -+ // Duration format converts a [time.Duration] fields to an appropriate encoding. -+ // nil disables formatting. -+ // When disabled, the fall back will the JSON encoding, if enabled. -+ // -+ // Default is [DurationFormatString], which appends a duration unit after the value. -+ DurationFormat DurationFormat -+ -+ // AddSpanContext adds [logfields.TraceID] and [logfields.SpanID] fields to -+ // the entry from the span context stored in [logrus.Entry.Context], if it exists. -+ AddSpanContext bool -+} -+ -+var _ logrus.Hook = &Hook{} -+ -+func NewHook() *Hook { -+ return &Hook{ -+ TimeFormat: TimeFormat, -+ DurationFormat: DurationFormatString, -+ AddSpanContext: true, -+ } -+} -+ -+func (h *Hook) Levels() []logrus.Level { -+ return logrus.AllLevels -+} -+ -+func (h *Hook) Fire(e *logrus.Entry) (err error) { -+ // JSON encode, if necessary, then add span information -+ h.encode(e) -+ h.addSpanContext(e) -+ -+ return nil -+} -+ -+// encode loops through all the fields in the [logrus.Entry] and encodes them according to -+// the settings in [Hook]. -+// If [Hook.TimeFormat] is non-empty, it will be passed to [time.Time.Format] for -+// fields of type [time.Time]. -+// -+// If [Hook.EncodeAsJSON] is true, then fields that are not numeric, boolean, strings, or -+// errors will be encoded via a [json.Marshal] (with HTML escaping disabled). -+// Chanel- and function-typed fields, as well as unsafe pointers are left alone and not encoded. -+// -+// If [Hook.TimeFormat] and [Hook.DurationFormat] are empty and [Hook.EncodeAsJSON] is false, -+// then this is a no-op. -+func (h *Hook) encode(e *logrus.Entry) { -+ d := e.Data -+ -+ formatTime := h.TimeFormat != "" -+ formatDuration := h.DurationFormat != nil -+ if !(h.EncodeAsJSON || formatTime || formatDuration) { -+ return -+ } -+ -+ for k, v := range d { -+ // encode types with dedicated formatting options first -+ -+ if vv, ok := v.(time.Time); formatTime && ok { -+ d[k] = vv.Format(h.TimeFormat) -+ continue -+ } -+ -+ if vv, ok := v.(time.Duration); formatDuration && ok { -+ d[k] = h.DurationFormat(vv) -+ continue -+ } -+ -+ // general case JSON encoding -+ -+ if !h.EncodeAsJSON { -+ continue -+ } -+ -+ switch vv := v.(type) { -+ // built in types -+ // "json" marshals errors as "{}", so leave alone here -+ case bool, string, error, uintptr, -+ int8, int16, int32, int64, int, -+ uint8, uint32, uint64, uint, -+ float32, float64: -+ continue -+ -+ // Rather than setting d[k] = vv.String(), JSON encode []byte value, since it -+ // may be a binary payload and not representable as a string. -+ // `case bytes.Buffer,*bytes.Buffer:` resolves `vv` to `interface{}`, -+ // so cannot use `vv.Bytes`. -+ // Could move to below the `reflect.Indirect()` call below, but -+ // that would require additional typematching and dereferencing. -+ // Easier to keep these duplicate branches here. -+ case bytes.Buffer: -+ v = vv.Bytes() -+ case *bytes.Buffer: -+ v = vv.Bytes() -+ } -+ -+ // dereference pointer or interface variables -+ rv := reflect.Indirect(reflect.ValueOf(v)) -+ // check if `v` is a null pointer -+ if !rv.IsValid() { -+ d[k] = nullString -+ continue -+ } -+ -+ switch rv.Kind() { -+ case reflect.Map, reflect.Struct, reflect.Array, reflect.Slice: -+ default: -+ // Bool, [U]?Int*, Float*, Complex*, Uintptr, String: encoded as normal -+ // Chan, Func: not supported by json -+ // Interface, Pointer: dereferenced above -+ // UnsafePointer: not supported by json, not safe to de-reference; leave alone -+ continue -+ } -+ -+ b, err := encode(v) -+ if err != nil { -+ // Errors are written to stderr (ie, to `panic.log`) and stops the remaining -+ // hooks (ie, exporting to ETW) from firing. So add encoding errors to -+ // the entry data to be written out, but keep on processing. -+ d[k+"-"+logrus.ErrorKey] = err.Error() -+ // keep the original `v` as the value, -+ continue -+ } -+ d[k] = string(b) -+ } -+} -+ -+func (h *Hook) addSpanContext(e *logrus.Entry) { -+ ctx := e.Context -+ if !h.AddSpanContext || ctx == nil { -+ return -+ } -+ span := trace.FromContext(ctx) -+ if span == nil { -+ return -+ } -+ sctx := span.SpanContext() -+ e.Data[logfields.TraceID] = sctx.TraceID.String() -+ e.Data[logfields.SpanID] = sctx.SpanID.String() -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go b/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go -new file mode 100644 -index 00000000..d1ef1509 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/log/scrub.go -@@ -0,0 +1,184 @@ -+package log -+ -+import ( -+ "bytes" -+ "encoding/json" -+ "errors" -+ "sync/atomic" -+ -+ hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2" -+) -+ -+// This package scrubs objects of potentially sensitive information to pass to logging -+ -+type genMap = map[string]interface{} -+type scrubberFunc func(genMap) error -+ -+const _scrubbedReplacement = "" -+ -+var ( -+ ErrUnknownType = errors.New("encoded object is of unknown type") -+ -+ // case sensitive keywords, so "env" is not a substring on "Environment" -+ _scrubKeywords = [][]byte{[]byte("env"), []byte("Environment")} -+ -+ _scrub int32 -+) -+ -+// SetScrubbing enables scrubbing -+func SetScrubbing(enable bool) { -+ v := int32(0) // cant convert from bool to int32 directly -+ if enable { -+ v = 1 -+ } -+ atomic.StoreInt32(&_scrub, v) -+} -+ -+// IsScrubbingEnabled checks if scrubbing is enabled -+func IsScrubbingEnabled() bool { -+ v := atomic.LoadInt32(&_scrub) -+ return v != 0 -+} -+ -+// ScrubProcessParameters scrubs HCS Create Process requests with config parameters of -+// type internal/hcs/schema2.ScrubProcessParameters (aka hcsshema.ScrubProcessParameters) -+func ScrubProcessParameters(s string) (string, error) { -+ // todo: deal with v1 ProcessConfig -+ b := []byte(s) -+ if !IsScrubbingEnabled() || !hasKeywords(b) || !json.Valid(b) { -+ return s, nil -+ } -+ -+ pp := hcsschema.ProcessParameters{} -+ if err := json.Unmarshal(b, &pp); err != nil { -+ return "", err -+ } -+ pp.Environment = map[string]string{_scrubbedReplacement: _scrubbedReplacement} -+ -+ b, err := encodeBuffer(bytes.NewBuffer(b[:0]), pp) -+ if err != nil { -+ return "", err -+ } -+ return string(b), nil -+} -+ -+// ScrubBridgeCreate scrubs requests sent over the bridge of type -+// internal/gcs/protocol.containerCreate wrapping an internal/hcsoci.linuxHostedSystem -+func ScrubBridgeCreate(b []byte) ([]byte, error) { -+ return scrubBytes(b, scrubBridgeCreate) -+} -+ -+func scrubBridgeCreate(m genMap) error { -+ if !isRequestBase(m) { -+ return ErrUnknownType -+ } -+ if ss, ok := m["ContainerConfig"]; ok { -+ // ContainerConfig is a json encoded struct passed as a regular string field -+ s, ok := ss.(string) -+ if !ok { -+ return ErrUnknownType -+ } -+ b, err := scrubBytes([]byte(s), scrubLinuxHostedSystem) -+ if err != nil { -+ return err -+ } -+ m["ContainerConfig"] = string(b) -+ return nil -+ } -+ return ErrUnknownType -+} -+ -+func scrubLinuxHostedSystem(m genMap) error { -+ if m, ok := index(m, "OciSpecification"); ok { -+ if _, ok := m["annotations"]; ok { -+ m["annotations"] = map[string]string{_scrubbedReplacement: _scrubbedReplacement} -+ } -+ if m, ok := index(m, "process"); ok { -+ if _, ok := m["env"]; ok { -+ m["env"] = []string{_scrubbedReplacement} -+ return nil -+ } -+ } -+ } -+ return ErrUnknownType -+} -+ -+// ScrubBridgeExecProcess scrubs requests sent over the bridge of type -+// internal/gcs/protocol.containerExecuteProcess -+func ScrubBridgeExecProcess(b []byte) ([]byte, error) { -+ return scrubBytes(b, scrubExecuteProcess) -+} -+ -+func scrubExecuteProcess(m genMap) error { -+ if !isRequestBase(m) { -+ return ErrUnknownType -+ } -+ if m, ok := index(m, "Settings"); ok { -+ if ss, ok := m["ProcessParameters"]; ok { -+ // ProcessParameters is a json encoded struct passed as a regular sting field -+ s, ok := ss.(string) -+ if !ok { -+ return ErrUnknownType -+ } -+ -+ s, err := ScrubProcessParameters(s) -+ if err != nil { -+ return err -+ } -+ -+ m["ProcessParameters"] = s -+ return nil -+ } -+ } -+ return ErrUnknownType -+} -+ -+func scrubBytes(b []byte, scrub scrubberFunc) ([]byte, error) { -+ if !IsScrubbingEnabled() || !hasKeywords(b) || !json.Valid(b) { -+ return b, nil -+ } -+ -+ m := make(genMap) -+ if err := json.Unmarshal(b, &m); err != nil { -+ return nil, err -+ } -+ -+ // could use regexp, but if the env strings contain braces, the regexp fails -+ // parsing into individual structs would require access to private structs -+ if err := scrub(m); err != nil { -+ return nil, err -+ } -+ -+ b, err := encode(m) -+ if err != nil { -+ return nil, err -+ } -+ -+ return b, nil -+} -+ -+func isRequestBase(m genMap) bool { -+ // neither of these are (currently) `omitempty` -+ _, a := m["ActivityId"] -+ _, c := m["ContainerId"] -+ return a && c -+} -+ -+// combination `m, ok := m[s]` and `m, ok := m.(genMap)` -+func index(m genMap, s string) (genMap, bool) { -+ if m, ok := m[s]; ok { -+ mm, ok := m.(genMap) -+ return mm, ok -+ } -+ -+ return m, false -+} -+ -+func hasKeywords(b []byte) bool { -+ for _, bb := range _scrubKeywords { -+ if bytes.Contains(b, bb) { -+ return true -+ } -+ } -+ return false -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go b/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go -index cf2c166d..3e175e52 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/logfields/fields.go -@@ -3,21 +3,44 @@ package logfields - const ( - // Identifiers - -+ Name = "name" -+ Namespace = "namespace" -+ Operation = "operation" -+ -+ ID = "id" -+ SandboxID = "sid" - ContainerID = "cid" -- UVMID = "uvm-id" -+ ExecID = "eid" - ProcessID = "pid" -+ TaskID = "tid" -+ UVMID = "uvm-id" -+ -+ // networking and IO -+ -+ File = "file" -+ Path = "path" -+ Bytes = "bytes" -+ Pipe = "pipe" - - // Common Misc - -- // Timeout represents an operation timeout. -- Timeout = "timeout" -+ Attempt = "attemptNo" - JSON = "json" - -+ // Time -+ -+ StartTime = "startTime" -+ EndTime = "endTime" -+ Duration = "duration" -+ Timeout = "timeout" -+ - // Keys/values - - Field = "field" -+ Key = "key" - OCIAnnotation = "oci-annotation" - Value = "value" -+ Options = "options" - - // Golang type's - -@@ -29,4 +52,10 @@ const ( - // runhcs - - VMShimOperation = "vmshim-op" -+ -+ // logging and tracing -+ -+ TraceID = "traceID" -+ SpanID = "spanID" -+ ParentSpanID = "parentSpanID" - ) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go b/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go -new file mode 100644 -index 00000000..1ef5814d ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/memory/pool.go -@@ -0,0 +1,316 @@ -+package memory -+ -+import ( -+ "github.com/pkg/errors" -+) -+ -+const ( -+ minimumClassSize = MiB -+ maximumClassSize = 4 * GiB -+ memoryClassNumber = 7 -+) -+ -+var ( -+ ErrInvalidMemoryClass = errors.New("invalid memory class") -+ ErrEarlyMerge = errors.New("not all children have been freed") -+ ErrEmptyPoolOperation = errors.New("operation on empty pool") -+) -+ -+// GetMemoryClassType returns the minimum memory class type that can hold a device of -+// a given size. The smallest class is 1MB and the largest one is 4GB with 2 bit offset -+// intervals in between, for a total of 7 different classes. This function does not -+// do a validity check -+func GetMemoryClassType(s uint64) classType { -+ s = (s - 1) >> 20 -+ memCls := uint32(0) -+ for s > 0 { -+ s = s >> 2 -+ memCls++ -+ } -+ return classType(memCls) -+} -+ -+// GetMemoryClassSize returns size in bytes for a given memory class -+func GetMemoryClassSize(memCls classType) (uint64, error) { -+ if memCls >= memoryClassNumber { -+ return 0, ErrInvalidMemoryClass -+ } -+ return minimumClassSize << (2 * memCls), nil -+} -+ -+// region represents a contiguous memory block -+type region struct { -+ // parent region that has been split into 4 -+ parent *region -+ class classType -+ // offset represents offset in bytes -+ offset uint64 -+} -+ -+// memoryPool tracks free and busy (used) memory regions -+type memoryPool struct { -+ free map[uint64]*region -+ busy map[uint64]*region -+} -+ -+// PoolAllocator implements a memory allocation strategy similar to buddy-malloc https://github.com/evanw/buddy-malloc/blob/master/buddy-malloc.c -+// We borrow the idea of spanning a tree of fixed size regions on top of a contiguous memory -+// space. -+// -+// There are a total of 7 different region sizes that can be allocated, with the smallest -+// being 1MB and the largest 4GB (the default maximum size of a Virtual PMem device). -+// -+// For efficiency and to reduce fragmentation an entire region is allocated when requested. -+// When there's no available region of requested size, we try to allocate more memory for -+// this particular size by splitting the next available larger region into smaller ones, e.g. -+// if there's no region available for size class 0, we try splitting a region from class 1, -+// then class 2 etc, until we are able to do so or hit the upper limit. -+type PoolAllocator struct { -+ pools [memoryClassNumber]*memoryPool -+} -+ -+var _ MappedRegion = ®ion{} -+var _ Allocator = &PoolAllocator{} -+ -+func (r *region) Offset() uint64 { -+ return r.offset -+} -+ -+func (r *region) Size() uint64 { -+ sz, err := GetMemoryClassSize(r.class) -+ if err != nil { -+ panic(err) -+ } -+ return sz -+} -+ -+func (r *region) Type() classType { -+ return r.class -+} -+ -+func newEmptyMemoryPool() *memoryPool { -+ return &memoryPool{ -+ free: make(map[uint64]*region), -+ busy: make(map[uint64]*region), -+ } -+} -+ -+func NewPoolMemoryAllocator() PoolAllocator { -+ pa := PoolAllocator{} -+ p := newEmptyMemoryPool() -+ // by default we allocate a single region with maximum possible size (class type) -+ p.free[0] = ®ion{ -+ class: memoryClassNumber - 1, -+ offset: 0, -+ } -+ pa.pools[memoryClassNumber-1] = p -+ return pa -+} -+ -+// Allocate checks memory region pool for the given `size` and returns a free region with -+// minimal offset, if none available tries expanding matched memory pool. -+// -+// Internally it's done via moving a region from free pool into a busy pool -+func (pa *PoolAllocator) Allocate(size uint64) (MappedRegion, error) { -+ memCls := GetMemoryClassType(size) -+ if memCls >= memoryClassNumber { -+ return nil, ErrInvalidMemoryClass -+ } -+ -+ // find region with the smallest offset -+ nextCls, nextOffset, err := pa.findNextOffset(memCls) -+ if err != nil { -+ return nil, err -+ } -+ -+ // this means that there are no more regions for the current class, try expanding -+ if nextCls != memCls { -+ if err := pa.split(memCls); err != nil { -+ if err == ErrInvalidMemoryClass { -+ return nil, ErrNotEnoughSpace -+ } -+ return nil, err -+ } -+ } -+ -+ if err := pa.markBusy(memCls, nextOffset); err != nil { -+ return nil, err -+ } -+ -+ // by this point memory pool for memCls should have been created, -+ // either prior or during split call -+ if r := pa.pools[memCls].busy[nextOffset]; r != nil { -+ return r, nil -+ } -+ -+ return nil, ErrNotEnoughSpace -+} -+ -+// Release marks a memory region of class `memCls` and offset `offset` as free and tries to merge smaller regions into -+// a bigger one -+func (pa *PoolAllocator) Release(reg MappedRegion) error { -+ mp := pa.pools[reg.Type()] -+ if mp == nil { -+ return ErrEmptyPoolOperation -+ } -+ -+ err := pa.markFree(reg.Type(), reg.Offset()) -+ if err != nil { -+ return err -+ } -+ -+ n := mp.free[reg.Offset()] -+ if n == nil { -+ return ErrNotAllocated -+ } -+ if err := pa.merge(n.parent); err != nil { -+ if err != ErrEarlyMerge { -+ return err -+ } -+ } -+ return nil -+} -+ -+// findNextOffset finds next region location for a given memCls -+func (pa *PoolAllocator) findNextOffset(memCls classType) (classType, uint64, error) { -+ for mc := memCls; mc < memoryClassNumber; mc++ { -+ pi := pa.pools[mc] -+ if pi == nil || len(pi.free) == 0 { -+ continue -+ } -+ -+ target := uint64(maximumClassSize) -+ for offset := range pi.free { -+ if offset < target { -+ target = offset -+ } -+ } -+ return mc, target, nil -+ } -+ return 0, 0, ErrNotEnoughSpace -+} -+ -+// split tries to recursively split a bigger memory region into smaller ones until it succeeds or hits the upper limit -+func (pa *PoolAllocator) split(clsType classType) error { -+ nextClsType := clsType + 1 -+ if nextClsType >= memoryClassNumber { -+ return ErrInvalidMemoryClass -+ } -+ -+ nextPool := pa.pools[nextClsType] -+ if nextPool == nil { -+ nextPool = newEmptyMemoryPool() -+ pa.pools[nextClsType] = nextPool -+ } -+ -+ cls, offset, err := pa.findNextOffset(nextClsType) -+ if err != nil { -+ return err -+ } -+ // not enough memory in the next class, try to recursively expand -+ if cls != nextClsType { -+ if err := pa.split(nextClsType); err != nil { -+ return err -+ } -+ } -+ -+ if err := pa.markBusy(nextClsType, offset); err != nil { -+ return err -+ } -+ -+ // memCls validity has been checked already, we can ignore the error -+ clsSize, _ := GetMemoryClassSize(clsType) -+ -+ nextReg := nextPool.busy[offset] -+ if nextReg == nil { -+ return ErrNotAllocated -+ } -+ -+ // expand memCls -+ cp := pa.pools[clsType] -+ if cp == nil { -+ cp = newEmptyMemoryPool() -+ pa.pools[clsType] = cp -+ } -+ // create 4 smaller regions -+ for i := uint64(0); i < 4; i++ { -+ offset := nextReg.offset + i*clsSize -+ reg := ®ion{ -+ parent: nextReg, -+ class: clsType, -+ offset: offset, -+ } -+ cp.free[offset] = reg -+ } -+ return nil -+} -+ -+func (pa *PoolAllocator) merge(parent *region) error { -+ // nothing to merge -+ if parent == nil { -+ return nil -+ } -+ -+ childCls := parent.class - 1 -+ childPool := pa.pools[childCls] -+ // no child nodes to merge, try to merge parent -+ if childPool == nil { -+ return pa.merge(parent.parent) -+ } -+ -+ childSize, err := GetMemoryClassSize(childCls) -+ if err != nil { -+ return err -+ } -+ -+ // check if all the child nodes are free -+ var children []*region -+ for i := uint64(0); i < 4; i++ { -+ child, free := childPool.free[parent.offset+i*childSize] -+ if !free { -+ return ErrEarlyMerge -+ } -+ children = append(children, child) -+ } -+ -+ // at this point all the child nodes will be free and we can merge -+ for _, child := range children { -+ delete(childPool.free, child.offset) -+ } -+ -+ if err := pa.markFree(parent.class, parent.offset); err != nil { -+ return err -+ } -+ -+ return pa.merge(parent.parent) -+} -+ -+// markFree internally moves a region with `offset` from busy to free map -+func (pa *PoolAllocator) markFree(memCls classType, offset uint64) error { -+ clsPool := pa.pools[memCls] -+ if clsPool == nil { -+ return ErrEmptyPoolOperation -+ } -+ -+ if reg, exists := clsPool.busy[offset]; exists { -+ clsPool.free[offset] = reg -+ delete(clsPool.busy, offset) -+ return nil -+ } -+ return ErrNotAllocated -+} -+ -+// markBusy internally moves a region with `offset` from free to busy map -+func (pa *PoolAllocator) markBusy(memCls classType, offset uint64) error { -+ clsPool := pa.pools[memCls] -+ if clsPool == nil { -+ return ErrEmptyPoolOperation -+ } -+ -+ if reg, exists := clsPool.free[offset]; exists { -+ clsPool.busy[offset] = reg -+ delete(clsPool.free, offset) -+ return nil -+ } -+ return ErrNotAllocated -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go b/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go -new file mode 100644 -index 00000000..d6cdb8cc ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/memory/types.go -@@ -0,0 +1,28 @@ -+package memory -+ -+import "github.com/pkg/errors" -+ -+type classType uint32 -+ -+const ( -+ MiB = 1024 * 1024 -+ GiB = 1024 * MiB -+) -+ -+var ( -+ ErrNotEnoughSpace = errors.New("not enough space") -+ ErrNotAllocated = errors.New("no memory allocated at the given offset") -+) -+ -+// MappedRegion represents a memory block with an offset -+type MappedRegion interface { -+ Offset() uint64 -+ Size() uint64 -+ Type() classType -+} -+ -+// Allocator is an interface for memory allocation -+type Allocator interface { -+ Allocate(uint64) (MappedRegion, error) -+ Release(MappedRegion) error -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/oc/errors.go b/vendor/github.com/Microsoft/hcsshim/internal/oc/errors.go -new file mode 100644 -index 00000000..71df25b8 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/oc/errors.go -@@ -0,0 +1,69 @@ -+package oc -+ -+import ( -+ "errors" -+ "io" -+ "net" -+ "os" -+ -+ "github.com/containerd/containerd/errdefs" -+ "google.golang.org/grpc/codes" -+ "google.golang.org/grpc/status" -+) -+ -+// todo: break import cycle with "internal/hcs/errors.go" and reference errors defined there -+// todo: add errors defined in "internal/guest/gcserror" (Hresult does not implement error) -+ -+func toStatusCode(err error) codes.Code { -+ // checks if err implements GRPCStatus() *"google.golang.org/grpc/status".Status, -+ // wraps an error defined in "github.com/containerd/containerd/errdefs", or is a -+ // context timeout or cancelled error -+ if s, ok := status.FromError(errdefs.ToGRPC(err)); ok { -+ return s.Code() -+ } -+ -+ switch { -+ // case isAny(err): -+ // return codes.Cancelled -+ case isAny(err, os.ErrInvalid): -+ return codes.InvalidArgument -+ case isAny(err, os.ErrDeadlineExceeded): -+ return codes.DeadlineExceeded -+ case isAny(err, os.ErrNotExist): -+ return codes.NotFound -+ case isAny(err, os.ErrExist): -+ return codes.AlreadyExists -+ case isAny(err, os.ErrPermission): -+ return codes.PermissionDenied -+ // case isAny(err): -+ // return codes.ResourceExhausted -+ case isAny(err, os.ErrClosed, net.ErrClosed, io.ErrClosedPipe, io.ErrShortBuffer): -+ return codes.FailedPrecondition -+ // case isAny(err): -+ // return codes.Aborted -+ // case isAny(err): -+ // return codes.OutOfRange -+ // case isAny(err): -+ // return codes.Unimplemented -+ case isAny(err, io.ErrNoProgress): -+ return codes.Internal -+ // case isAny(err): -+ // return codes.Unavailable -+ case isAny(err, io.ErrShortWrite, io.ErrUnexpectedEOF): -+ return codes.DataLoss -+ // case isAny(err): -+ // return codes.Unauthenticated -+ default: -+ return codes.Unknown -+ } -+} -+ -+// isAny returns true if errors.Is is true for any of the provided errors, errs. -+func isAny(err error, errs ...error) bool { -+ for _, e := range errs { -+ if errors.Is(err, e) { -+ return true -+ } -+ } -+ return false -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/oc/exporter.go b/vendor/github.com/Microsoft/hcsshim/internal/oc/exporter.go -index f428bdaf..28f8f43a 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/oc/exporter.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/oc/exporter.go -@@ -3,19 +3,26 @@ package oc - import ( - "github.com/sirupsen/logrus" - "go.opencensus.io/trace" -+ "google.golang.org/grpc/codes" -+ -+ "github.com/Microsoft/hcsshim/internal/log" -+ "github.com/Microsoft/hcsshim/internal/logfields" - ) - --var _ = (trace.Exporter)(&LogrusExporter{}) -+const spanMessage = "Span" -+ -+var _errorCodeKey = logrus.ErrorKey + "Code" - - // LogrusExporter is an OpenCensus `trace.Exporter` that exports - // `trace.SpanData` to logrus output. --type LogrusExporter struct { --} -+type LogrusExporter struct{} -+ -+var _ trace.Exporter = &LogrusExporter{} - - // ExportSpan exports `s` based on the the following rules: - // --// 1. All output will contain `s.Attributes`, `s.TraceID`, `s.SpanID`, --// `s.ParentSpanID` for correlation -+// 1. All output will contain `s.Attributes`, `s.SpanKind`, `s.TraceID`, -+// `s.SpanID`, and `s.ParentSpanID` for correlation - // - // 2. Any calls to .Annotate will not be supported. - // -@@ -23,21 +30,57 @@ type LogrusExporter struct { - // `s.Status.Code != 0` in which case it will be written at `logrus.ErrorLevel` - // providing `s.Status.Message` as the error value. - func (le *LogrusExporter) ExportSpan(s *trace.SpanData) { -- // Combine all span annotations with traceID, spanID, parentSpanID -- baseEntry := logrus.WithFields(logrus.Fields(s.Attributes)) -- baseEntry.Data["traceID"] = s.TraceID.String() -- baseEntry.Data["spanID"] = s.SpanID.String() -- baseEntry.Data["parentSpanID"] = s.ParentSpanID.String() -- baseEntry.Data["startTime"] = s.StartTime -- baseEntry.Data["endTime"] = s.EndTime -- baseEntry.Data["duration"] = s.EndTime.Sub(s.StartTime).String() -- baseEntry.Data["name"] = s.Name -- baseEntry.Time = s.StartTime -+ if s.DroppedAnnotationCount > 0 { -+ logrus.WithFields(logrus.Fields{ -+ "name": s.Name, -+ logfields.TraceID: s.TraceID.String(), -+ logfields.SpanID: s.SpanID.String(), -+ "dropped": s.DroppedAttributeCount, -+ "maxAttributes": len(s.Attributes), -+ }).Warning("span had dropped attributes") -+ } -+ -+ entry := log.L.Dup() -+ // Combine all span annotations with span data (eg, trace ID, span ID, parent span ID, -+ // error, status code) -+ // (OC) Span attributes are guaranteed to be strings, bools, or int64s, so we can -+ // can skip overhead in entry.WithFields() and add them directly to entry.Data. -+ // Preallocate ahead of time, since we should add, at most, 10 additional entries -+ data := make(logrus.Fields, len(entry.Data)+len(s.Attributes)+10) -+ -+ // Default log entry may have prexisting/application-wide data -+ for k, v := range entry.Data { -+ data[k] = v -+ } -+ for k, v := range s.Attributes { -+ data[k] = v -+ } -+ -+ data[logfields.Name] = s.Name -+ data[logfields.TraceID] = s.TraceID.String() -+ data[logfields.SpanID] = s.SpanID.String() -+ data[logfields.ParentSpanID] = s.ParentSpanID.String() -+ data[logfields.StartTime] = s.StartTime -+ data[logfields.EndTime] = s.EndTime -+ data[logfields.Duration] = s.EndTime.Sub(s.StartTime) -+ if sk := spanKindToString(s.SpanKind); sk != "" { -+ data["spanKind"] = sk -+ } - - level := logrus.InfoLevel - if s.Status.Code != 0 { - level = logrus.ErrorLevel -- baseEntry.Data[logrus.ErrorKey] = s.Status.Message -+ -+ // don't overwrite an existing "error" or "errorCode" attributes -+ if _, ok := data[logrus.ErrorKey]; !ok { -+ data[logrus.ErrorKey] = s.Status.Message -+ } -+ if _, ok := data[_errorCodeKey]; !ok { -+ data[_errorCodeKey] = codes.Code(s.Status.Code).String() -+ } - } -- baseEntry.Log(level, "Span") -+ -+ entry.Data = data -+ entry.Time = s.StartTime -+ entry.Log(level, spanMessage) - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go b/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go -index fee4765c..72607843 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/oc/span.go -@@ -1,17 +1,58 @@ - package oc - - import ( -+ "context" -+ -+ "github.com/Microsoft/hcsshim/internal/log" - "go.opencensus.io/trace" - ) - -+var DefaultSampler = trace.AlwaysSample() -+ - // SetSpanStatus sets `span.SetStatus` to the proper status depending on `err`. If - // `err` is `nil` assumes `trace.StatusCodeOk`. - func SetSpanStatus(span *trace.Span, err error) { - status := trace.Status{} - if err != nil { -- // TODO: JTERRY75 - Handle errors in a non-generic way -- status.Code = trace.StatusCodeUnknown -+ status.Code = int32(toStatusCode(err)) - status.Message = err.Error() - } - span.SetStatus(status) - } -+ -+// StartSpan wraps "go.opencensus.io/trace".StartSpan, but, if the span is sampling, -+// adds a log entry to the context that points to the newly created span. -+func StartSpan(ctx context.Context, name string, o ...trace.StartOption) (context.Context, *trace.Span) { -+ ctx, s := trace.StartSpan(ctx, name, o...) -+ return update(ctx, s) -+} -+ -+// StartSpanWithRemoteParent wraps "go.opencensus.io/trace".StartSpanWithRemoteParent. -+// -+// See StartSpan for more information. -+func StartSpanWithRemoteParent(ctx context.Context, name string, parent trace.SpanContext, o ...trace.StartOption) (context.Context, *trace.Span) { -+ ctx, s := trace.StartSpanWithRemoteParent(ctx, name, parent, o...) -+ return update(ctx, s) -+} -+ -+func update(ctx context.Context, s *trace.Span) (context.Context, *trace.Span) { -+ if s.IsRecordingEvents() { -+ ctx = log.UpdateContext(ctx) -+ } -+ -+ return ctx, s -+} -+ -+var WithServerSpanKind = trace.WithSpanKind(trace.SpanKindServer) -+var WithClientSpanKind = trace.WithSpanKind(trace.SpanKindClient) -+ -+func spanKindToString(sk int) string { -+ switch sk { -+ case trace.SpanKindClient: -+ return "client" -+ case trace.SpanKindServer: -+ return "server" -+ default: -+ return "" -+ } -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go b/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go -new file mode 100644 -index 00000000..d8d0c20b ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/protocol/guestrequest/types.go -@@ -0,0 +1,56 @@ -+package guestrequest -+ -+// These are constants for v2 schema modify requests. -+ -+type RequestType string -+type ResourceType string -+ -+// RequestType const -+const ( -+ RequestTypeAdd RequestType = "Add" -+ RequestTypeRemove RequestType = "Remove" -+ RequestTypePreAdd RequestType = "PreAdd" // For networking -+ RequestTypeUpdate RequestType = "Update" -+) -+ -+type SignalValueWCOW string -+ -+const ( -+ SignalValueWCOWCtrlC SignalValueWCOW = "CtrlC" -+ SignalValueWCOWCtrlBreak SignalValueWCOW = "CtrlBreak" -+ SignalValueWCOWCtrlClose SignalValueWCOW = "CtrlClose" -+ SignalValueWCOWCtrlLogOff SignalValueWCOW = "CtrlLogOff" -+ SignalValueWCOWCtrlShutdown SignalValueWCOW = "CtrlShutdown" -+) -+ -+// ModificationRequest is for modify commands passed to the guest. -+type ModificationRequest struct { -+ RequestType RequestType `json:"RequestType,omitempty"` -+ ResourceType ResourceType `json:"ResourceType,omitempty"` -+ Settings interface{} `json:"Settings,omitempty"` -+} -+ -+type NetworkModifyRequest struct { -+ AdapterId string `json:"AdapterId,omitempty"` //nolint:stylecheck -+ RequestType RequestType `json:"RequestType,omitempty"` -+ Settings interface{} `json:"Settings,omitempty"` -+} -+ -+type RS4NetworkModifyRequest struct { -+ AdapterInstanceId string `json:"AdapterInstanceId,omitempty"` //nolint:stylecheck -+ RequestType RequestType `json:"RequestType,omitempty"` -+ Settings interface{} `json:"Settings,omitempty"` -+} -+ -+var ( -+ // V5 GUIDs for SCSI controllers -+ // These GUIDs are created with namespace GUID "d422512d-2bf2-4752-809d-7b82b5fcb1b4" -+ // and index as names. For example, first GUID is created like this: -+ // guid.NewV5("d422512d-2bf2-4752-809d-7b82b5fcb1b4", []byte("0")) -+ ScsiControllerGuids = []string{ -+ "df6d0690-79e5-55b6-a5ec-c1e2f77f580a", -+ "0110f83b-de10-5172-a266-78bca56bf50a", -+ "b5d2d8d4-3a75-51bf-945b-3444dc6b8579", -+ "305891a9-b251-5dfe-91a2-c25d9212275b", -+ } -+) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/regstate/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/regstate/doc.go -new file mode 100644 -index 00000000..51bcdf6e ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/regstate/doc.go -@@ -0,0 +1 @@ -+package regstate -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go b/vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go -index dcbc9334..a56be7b2 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/regstate/regstate.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package regstate - - import ( -@@ -13,7 +15,7 @@ import ( - "golang.org/x/sys/windows/registry" - ) - --//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go regstate.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go regstate.go - - //sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go -index 4e349ad4..4ff1b333 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/regstate/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated by 'go generate'; DO NOT EDIT. -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package regstate - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go -index a161c204..132b28d3 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/container.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package runhcs - - import ( -@@ -5,7 +7,6 @@ import ( - "errors" - "fmt" - "io" -- "io/ioutil" - "os" - "syscall" - "time" -@@ -40,7 +41,7 @@ type ContainerState struct { - // returned success or error. If error converts that to an error and returns. If - // `p` is not nill will issue a `Kill` and `Wait` for exit. - func GetErrorFromPipe(pipe io.Reader, p *os.Process) error { -- serr, err := ioutil.ReadAll(pipe) -+ serr, err := io.ReadAll(pipe) - if err != nil { - return err - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/runhcs/vm.go b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/vm.go -index 2c8957b8..b3e443d6 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/runhcs/vm.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/runhcs/vm.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package runhcs - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go b/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go -new file mode 100644 -index 00000000..f211d25e ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/safefile/do.go -@@ -0,0 +1 @@ -+package safefile -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go b/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go -index 66b8d7e0..74967f21 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/safefile/safeopen.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package safefile - - import ( -@@ -156,7 +158,6 @@ func LinkRelative(oldname string, oldroot *os.File, newname string, newroot *os. - if (fi.FileAttributes & syscall.FILE_ATTRIBUTE_REPARSE_POINT) != 0 { - return &os.LinkError{Op: "link", Old: oldf.Name(), New: filepath.Join(newroot.Name(), newname), Err: winapi.RtlNtStatusToDosError(winapi.STATUS_REPARSE_POINT_ENCOUNTERED)} - } -- - } else { - parent = newroot - } -@@ -339,6 +340,33 @@ func MkdirRelative(path string, root *os.File) error { - return err - } - -+// MkdirAllRelative creates each directory in the path relative to a root, failing if -+// any existing intermediate path components are reparse points. -+func MkdirAllRelative(path string, root *os.File) error { -+ pathParts := strings.Split(filepath.Clean(path), (string)(filepath.Separator)) -+ for index := range pathParts { -+ partialPath := filepath.Join(pathParts[0 : index+1]...) -+ stat, err := LstatRelative(partialPath, root) -+ -+ if err != nil { -+ if os.IsNotExist(err) { -+ if err := MkdirRelative(partialPath, root); err != nil { -+ return err -+ } -+ continue -+ } -+ return err -+ } -+ -+ if !stat.IsDir() { -+ fullPath := filepath.Join(root.Name(), partialPath) -+ return &os.PathError{Op: "mkdir", Path: fullPath, Err: syscall.ENOTDIR} -+ } -+ } -+ -+ return nil -+} -+ - // LstatRelative performs a stat operation on a file relative to a root, failing - // if any intermediate path components are reparse points. - func LstatRelative(path string, root *os.File) (os.FileInfo, error) { -diff --git a/vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go b/vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go -similarity index 64% -rename from vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go -rename to vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go -index 6df87b74..7dfa1e59 100644 ---- a/vendor/github.com/Microsoft/go-winio/pkg/security/grantvmgroupaccess.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/security/grantvmgroupaccess.go -@@ -20,34 +20,37 @@ type ( - securityInformation uint32 - trusteeForm uint32 - trusteeType uint32 -+) - -- //nolint:structcheck // structcheck thinks fields are unused, but the are used to pass data to OS -- explicitAccess struct { -- accessPermissions accessMask -- accessMode accessMode -- inheritance inheritMode -- trustee trustee -- } -+type explicitAccess struct { -+ accessPermissions accessMask -+ accessMode accessMode -+ inheritance inheritMode -+ trustee trustee -+} - -- //nolint:structcheck,unused // structcheck thinks fields are unused, but the are used to pass data to OS -- trustee struct { -- multipleTrustee *trustee -- multipleTrusteeOperation int32 -- trusteeForm trusteeForm -- trusteeType trusteeType -- name uintptr -- } --) -+type trustee struct { -+ multipleTrustee *trustee -+ multipleTrusteeOperation int32 -+ trusteeForm trusteeForm -+ trusteeType trusteeType -+ name uintptr -+} - - const ( -- accessMaskDesiredPermission accessMask = 1 << 31 // GENERIC_READ -+ AccessMaskNone accessMask = 0 -+ AccessMaskRead accessMask = 1 << 31 // GENERIC_READ -+ AccessMaskWrite accessMask = 1 << 30 // GENERIC_WRITE -+ AccessMaskExecute accessMask = 1 << 29 // GENERIC_EXECUTE -+ AccessMaskAll accessMask = 1 << 28 // GENERIC_ALL -+ -+ accessMaskDesiredPermission = AccessMaskRead - - accessModeGrant accessMode = 1 - - desiredAccessReadControl desiredAccess = 0x20000 - desiredAccessWriteDac desiredAccess = 0x40000 - -- //cspell:disable-next-line - gvmga = "GrantVmGroupAccess:" - - inheritModeNoInheritance inheritMode = 0x0 -@@ -60,20 +63,28 @@ const ( - shareModeRead shareMode = 0x1 - shareModeWrite shareMode = 0x2 - -- sidVMGroup = "S-1-5-83-0" -+ //nolint:stylecheck // ST1003 -+ sidVmGroup = "S-1-5-83-0" - -- trusteeFormIsSID trusteeForm = 0 -+ trusteeFormIsSid trusteeForm = 0 - - trusteeTypeWellKnownGroup trusteeType = 5 - ) - --// GrantVMGroupAccess sets the DACL for a specified file or directory to -+// GrantVmGroupAccess sets the DACL for a specified file or directory to - // include Grant ACE entries for the VM Group SID. This is a golang re- - // implementation of the same function in vmcompute, just not exported in - // RS5. Which kind of sucks. Sucks a lot :/ --// --//revive:disable-next-line:var-naming VM, not Vm --func GrantVmGroupAccess(name string) error { -+func GrantVmGroupAccess(name string) error { //nolint:stylecheck // ST1003 -+ return GrantVmGroupAccessWithMask(name, accessMaskDesiredPermission) -+} -+ -+// GrantVmGroupAccessWithMask sets the desired DACL for a specified file or -+// directory. -+func GrantVmGroupAccessWithMask(name string, access accessMask) error { //nolint:stylecheck // ST1003 -+ if access == 0 || access<<4 != 0 { -+ return fmt.Errorf("invalid access mask: 0x%08x", access) -+ } - // Stat (to determine if `name` is a directory). - s, err := os.Stat(name) - if err != nil { -@@ -85,7 +96,9 @@ func GrantVmGroupAccess(name string) error { - if err != nil { - return err // Already wrapped - } -- defer syscall.CloseHandle(fd) //nolint:errcheck -+ defer func() { -+ _ = syscall.CloseHandle(fd) -+ }() - - // Get the current DACL and Security Descriptor. Must defer LocalFree on success. - ot := objectTypeFileObject -@@ -95,15 +108,19 @@ func GrantVmGroupAccess(name string) error { - if err := getSecurityInfo(fd, uint32(ot), uint32(si), nil, nil, &origDACL, nil, &sd); err != nil { - return fmt.Errorf("%s GetSecurityInfo %s: %w", gvmga, name, err) - } -- defer syscall.LocalFree((syscall.Handle)(unsafe.Pointer(sd))) //nolint:errcheck -+ defer func() { -+ _, _ = syscall.LocalFree((syscall.Handle)(unsafe.Pointer(sd))) -+ }() - - // Generate a new DACL which is the current DACL with the required ACEs added. - // Must defer LocalFree on success. -- newDACL, err := generateDACLWithAcesAdded(name, s.IsDir(), origDACL) -+ newDACL, err := generateDACLWithAcesAdded(name, s.IsDir(), access, origDACL) - if err != nil { - return err // Already wrapped - } -- defer syscall.LocalFree((syscall.Handle)(unsafe.Pointer(newDACL))) //nolint:errcheck -+ defer func() { -+ _, _ = syscall.LocalFree((syscall.Handle)(unsafe.Pointer(newDACL))) -+ }() - - // And finally use SetSecurityInfo to apply the updated DACL. - if err := setSecurityInfo(fd, uint32(ot), uint32(si), uintptr(0), uintptr(0), newDACL, uintptr(0)); err != nil { -@@ -118,28 +135,28 @@ func GrantVmGroupAccess(name string) error { - func createFile(name string, isDir bool) (syscall.Handle, error) { - namep, err := syscall.UTF16FromString(name) - if err != nil { -- return syscall.InvalidHandle, fmt.Errorf("could not convernt name to UTF-16: %w", err) -+ return 0, fmt.Errorf("syscall.UTF16FromString %s: %w", name, err) - } - da := uint32(desiredAccessReadControl | desiredAccessWriteDac) - sm := uint32(shareModeRead | shareModeWrite) - fa := uint32(syscall.FILE_ATTRIBUTE_NORMAL) - if isDir { -- fa |= syscall.FILE_FLAG_BACKUP_SEMANTICS -+ fa = uint32(fa | syscall.FILE_FLAG_BACKUP_SEMANTICS) - } - fd, err := syscall.CreateFile(&namep[0], da, sm, nil, syscall.OPEN_EXISTING, fa, 0) - if err != nil { -- return syscall.InvalidHandle, fmt.Errorf("%s syscall.CreateFile %s: %w", gvmga, name, err) -+ return 0, fmt.Errorf("%s syscall.CreateFile %s: %w", gvmga, name, err) - } - return fd, nil - } - - // generateDACLWithAcesAdded generates a new DACL with the two needed ACEs added. - // The caller is responsible for LocalFree of the returned DACL on success. --func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintptr, error) { -+func generateDACLWithAcesAdded(name string, isDir bool, desiredAccess accessMask, origDACL uintptr) (uintptr, error) { - // Generate pointers to the SIDs based on the string SIDs -- sid, err := syscall.StringToSid(sidVMGroup) -+ sid, err := syscall.StringToSid(sidVmGroup) - if err != nil { -- return 0, fmt.Errorf("%s syscall.StringToSid %s %s: %w", gvmga, name, sidVMGroup, err) -+ return 0, fmt.Errorf("%s syscall.StringToSid %s %s: %w", gvmga, name, sidVmGroup, err) - } - - inheritance := inheritModeNoInheritance -@@ -149,11 +166,11 @@ func generateDACLWithAcesAdded(name string, isDir bool, origDACL uintptr) (uintp - - eaArray := []explicitAccess{ - { -- accessPermissions: accessMaskDesiredPermission, -+ accessPermissions: desiredAccess, - accessMode: accessModeGrant, - inheritance: inheritance, - trustee: trustee{ -- trusteeForm: trusteeFormIsSID, -+ trusteeForm: trusteeFormIsSid, - trusteeType: trusteeTypeWellKnownGroup, - name: uintptr(unsafe.Pointer(sid)), - }, -diff --git a/vendor/github.com/Microsoft/go-winio/pkg/security/syscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go -similarity index 100% -rename from vendor/github.com/Microsoft/go-winio/pkg/security/syscall_windows.go -rename to vendor/github.com/Microsoft/hcsshim/internal/security/syscall_windows.go -diff --git a/vendor/github.com/Microsoft/go-winio/pkg/security/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go -similarity index 100% -rename from vendor/github.com/Microsoft/go-winio/pkg/security/zsyscall_windows.go -rename to vendor/github.com/Microsoft/hcsshim/internal/security/zsyscall_windows.go -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go -new file mode 100644 -index 00000000..9dd00c81 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/doc.go -@@ -0,0 +1 @@ -+package vmcompute -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go -index e7f114b6..79b14ef9 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/vmcompute.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package vmcompute - - import ( -@@ -5,15 +7,17 @@ import ( - "syscall" - "time" - -+ "github.com/sirupsen/logrus" -+ "go.opencensus.io/trace" -+ - "github.com/Microsoft/hcsshim/internal/interop" - "github.com/Microsoft/hcsshim/internal/log" - "github.com/Microsoft/hcsshim/internal/logfields" - "github.com/Microsoft/hcsshim/internal/oc" - "github.com/Microsoft/hcsshim/internal/timeout" -- "go.opencensus.io/trace" - ) - --//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go vmcompute.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go vmcompute.go - - //sys hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) = vmcompute.HcsEnumerateComputeSystems? - //sys hcsCreateComputeSystem(id string, configuration string, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) = vmcompute.HcsCreateComputeSystem? -@@ -62,7 +66,7 @@ type HcsCallback syscall.Handle - type HcsProcessInformation struct { - // ProcessId is the pid of the created process. - ProcessId uint32 -- reserved uint32 //nolint:structcheck -+ _ uint32 // reserved padding - // StdInput is the handle associated with the stdin of the process. - StdInput syscall.Handle - // StdOutput is the handle associated with the stdout of the process. -@@ -72,12 +76,28 @@ type HcsProcessInformation struct { - } - - func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error { -+ now := time.Now() - if timeout > 0 { - var cancel gcontext.CancelFunc - ctx, cancel = gcontext.WithTimeout(ctx, timeout) - defer cancel() - } - -+ // if ctx already has prior deadlines, the shortest timeout takes precedence and is used. -+ // find the true timeout for reporting -+ // -+ // this is mostly an issue with (*UtilityVM).Start(context.Context), which sets its -+ // own (2 minute) timeout. -+ deadline, ok := ctx.Deadline() -+ trueTimeout := timeout -+ if ok { -+ trueTimeout = deadline.Sub(now) -+ log.G(ctx).WithFields(logrus.Fields{ -+ logfields.Timeout: trueTimeout, -+ "desiredTimeout": timeout, -+ }).Trace("Executing syscall with deadline") -+ } -+ - done := make(chan error, 1) - go func() { - done <- f() -@@ -85,8 +105,10 @@ func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error - select { - case <-ctx.Done(): - if ctx.Err() == gcontext.DeadlineExceeded { -- log.G(ctx).WithField(logfields.Timeout, timeout). -- Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. If it appears to be making no forward progress, obtain the stacks and see if there is a syscall stuck in the platform API for a significant length of time.") -+ log.G(ctx).WithField(logfields.Timeout, trueTimeout). -+ Warning("Syscall did not complete within operation timeout. This may indicate a platform issue. " + -+ "If it appears to be making no forward progress, obtain the stacks and see if there is a syscall " + -+ "stuck in the platform API for a significant length of time.") - } - return ctx.Err() - case err := <-done: -@@ -95,7 +117,7 @@ func execute(ctx gcontext.Context, timeout time.Duration, f func() error) error - } - - func HcsEnumerateComputeSystems(ctx gcontext.Context, query string) (computeSystems, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsEnumerateComputeSystems") -+ ctx, span := oc.StartSpan(ctx, "HcsEnumerateComputeSystems") - defer span.End() - defer func() { - if result != "" { -@@ -122,7 +144,7 @@ func HcsEnumerateComputeSystems(ctx gcontext.Context, query string) (computeSyst - } - - func HcsCreateComputeSystem(ctx gcontext.Context, id string, configuration string, identity syscall.Handle) (computeSystem HcsSystem, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsCreateComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsCreateComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -147,7 +169,7 @@ func HcsCreateComputeSystem(ctx gcontext.Context, id string, configuration strin - } - - func HcsOpenComputeSystem(ctx gcontext.Context, id string) (computeSystem HcsSystem, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsOpenComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsOpenComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -167,7 +189,7 @@ func HcsOpenComputeSystem(ctx gcontext.Context, id string) (computeSystem HcsSys - } - - func HcsCloseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem) (hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsCloseComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsCloseComputeSystem") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -177,7 +199,7 @@ func HcsCloseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem) (hr er - } - - func HcsStartComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsStartComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsStartComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -200,7 +222,7 @@ func HcsStartComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, option - } - - func HcsShutdownComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsShutdownComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsShutdownComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -223,7 +245,7 @@ func HcsShutdownComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, opt - } - - func HcsTerminateComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsTerminateComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsTerminateComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -246,7 +268,7 @@ func HcsTerminateComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, op - } - - func HcsPauseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsPauseComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsPauseComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -269,7 +291,7 @@ func HcsPauseComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, option - } - - func HcsResumeComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsResumeComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsResumeComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -292,7 +314,7 @@ func HcsResumeComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, optio - } - - func HcsGetComputeSystemProperties(ctx gcontext.Context, computeSystem HcsSystem, propertyQuery string) (properties, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsGetComputeSystemProperties") -+ ctx, span := oc.StartSpan(ctx, "HcsGetComputeSystemProperties") - defer span.End() - defer func() { - if result != "" { -@@ -319,7 +341,7 @@ func HcsGetComputeSystemProperties(ctx gcontext.Context, computeSystem HcsSystem - } - - func HcsModifyComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, configuration string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsModifyComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsModifyComputeSystem") - defer span.End() - defer func() { - if result != "" { -@@ -340,7 +362,7 @@ func HcsModifyComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, confi - } - - func HcsModifyServiceSettings(ctx gcontext.Context, settings string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsModifyServiceSettings") -+ ctx, span := oc.StartSpan(ctx, "HcsModifyServiceSettings") - defer span.End() - defer func() { - if result != "" { -@@ -361,7 +383,7 @@ func HcsModifyServiceSettings(ctx gcontext.Context, settings string) (result str - } - - func HcsRegisterComputeSystemCallback(ctx gcontext.Context, computeSystem HcsSystem, callback uintptr, context uintptr) (callbackHandle HcsCallback, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsRegisterComputeSystemCallback") -+ ctx, span := oc.StartSpan(ctx, "HcsRegisterComputeSystemCallback") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -371,7 +393,7 @@ func HcsRegisterComputeSystemCallback(ctx gcontext.Context, computeSystem HcsSys - } - - func HcsUnregisterComputeSystemCallback(ctx gcontext.Context, callbackHandle HcsCallback) (hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsUnregisterComputeSystemCallback") -+ ctx, span := oc.StartSpan(ctx, "HcsUnregisterComputeSystemCallback") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -381,7 +403,7 @@ func HcsUnregisterComputeSystemCallback(ctx gcontext.Context, callbackHandle Hcs - } - - func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processParameters string) (processInformation HcsProcessInformation, process HcsProcess, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsCreateProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsCreateProcess") - defer span.End() - defer func() { - if result != "" { -@@ -389,7 +411,12 @@ func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processPara - } - oc.SetSpanStatus(span, hr) - }() -- span.AddAttributes(trace.StringAttribute("processParameters", processParameters)) -+ if span.IsRecordingEvents() { -+ // wont handle v1 process parameters -+ if s, err := log.ScrubProcessParameters(processParameters); err == nil { -+ span.AddAttributes(trace.StringAttribute("processParameters", s)) -+ } -+ } - - return processInformation, process, result, execute(ctx, timeout.SyscallWatcher, func() error { - var resultp *uint16 -@@ -402,7 +429,7 @@ func HcsCreateProcess(ctx gcontext.Context, computeSystem HcsSystem, processPara - } - - func HcsOpenProcess(ctx gcontext.Context, computeSystem HcsSystem, pid uint32) (process HcsProcess, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsOpenProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsOpenProcess") - defer span.End() - defer func() { - if result != "" { -@@ -423,7 +450,7 @@ func HcsOpenProcess(ctx gcontext.Context, computeSystem HcsSystem, pid uint32) ( - } - - func HcsCloseProcess(ctx gcontext.Context, process HcsProcess) (hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsCloseProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsCloseProcess") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -433,7 +460,7 @@ func HcsCloseProcess(ctx gcontext.Context, process HcsProcess) (hr error) { - } - - func HcsTerminateProcess(ctx gcontext.Context, process HcsProcess) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsTerminateProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsTerminateProcess") - defer span.End() - defer func() { - if result != "" { -@@ -453,7 +480,7 @@ func HcsTerminateProcess(ctx gcontext.Context, process HcsProcess) (result strin - } - - func HcsSignalProcess(ctx gcontext.Context, process HcsProcess, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsSignalProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsSignalProcess") - defer span.End() - defer func() { - if result != "" { -@@ -474,7 +501,7 @@ func HcsSignalProcess(ctx gcontext.Context, process HcsProcess, options string) - } - - func HcsGetProcessInfo(ctx gcontext.Context, process HcsProcess) (processInformation HcsProcessInformation, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsGetProcessInfo") -+ ctx, span := oc.StartSpan(ctx, "HcsGetProcessInfo") - defer span.End() - defer func() { - if result != "" { -@@ -494,7 +521,7 @@ func HcsGetProcessInfo(ctx gcontext.Context, process HcsProcess) (processInforma - } - - func HcsGetProcessProperties(ctx gcontext.Context, process HcsProcess) (processProperties, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsGetProcessProperties") -+ ctx, span := oc.StartSpan(ctx, "HcsGetProcessProperties") - defer span.End() - defer func() { - if result != "" { -@@ -520,7 +547,7 @@ func HcsGetProcessProperties(ctx gcontext.Context, process HcsProcess) (processP - } - - func HcsModifyProcess(ctx gcontext.Context, process HcsProcess, settings string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsModifyProcess") -+ ctx, span := oc.StartSpan(ctx, "HcsModifyProcess") - defer span.End() - defer func() { - if result != "" { -@@ -541,7 +568,7 @@ func HcsModifyProcess(ctx gcontext.Context, process HcsProcess, settings string) - } - - func HcsGetServiceProperties(ctx gcontext.Context, propertyQuery string) (properties, result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsGetServiceProperties") -+ ctx, span := oc.StartSpan(ctx, "HcsGetServiceProperties") - defer span.End() - defer func() { - if result != "" { -@@ -568,7 +595,7 @@ func HcsGetServiceProperties(ctx gcontext.Context, propertyQuery string) (proper - } - - func HcsRegisterProcessCallback(ctx gcontext.Context, process HcsProcess, callback uintptr, context uintptr) (callbackHandle HcsCallback, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsRegisterProcessCallback") -+ ctx, span := oc.StartSpan(ctx, "HcsRegisterProcessCallback") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -578,7 +605,7 @@ func HcsRegisterProcessCallback(ctx gcontext.Context, process HcsProcess, callba - } - - func HcsUnregisterProcessCallback(ctx gcontext.Context, callbackHandle HcsCallback) (hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsUnregisterProcessCallback") -+ ctx, span := oc.StartSpan(ctx, "HcsUnregisterProcessCallback") - defer span.End() - defer func() { oc.SetSpanStatus(span, hr) }() - -@@ -588,7 +615,7 @@ func HcsUnregisterProcessCallback(ctx gcontext.Context, callbackHandle HcsCallba - } - - func HcsSaveComputeSystem(ctx gcontext.Context, computeSystem HcsSystem, options string) (result string, hr error) { -- ctx, span := trace.StartSpan(ctx, "HcsSaveComputeSystem") -+ ctx, span := oc.StartSpan(ctx, "HcsSaveComputeSystem") - defer span.End() - defer func() { - if result != "" { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go -index cae55058..42368872 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/vmcompute/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package vmcompute - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -39,48 +42,55 @@ func errnoErr(e syscall.Errno) error { - var ( - modvmcompute = windows.NewLazySystemDLL("vmcompute.dll") - -- procHcsEnumerateComputeSystems = modvmcompute.NewProc("HcsEnumerateComputeSystems") -- procHcsCreateComputeSystem = modvmcompute.NewProc("HcsCreateComputeSystem") -- procHcsOpenComputeSystem = modvmcompute.NewProc("HcsOpenComputeSystem") - procHcsCloseComputeSystem = modvmcompute.NewProc("HcsCloseComputeSystem") -- procHcsStartComputeSystem = modvmcompute.NewProc("HcsStartComputeSystem") -- procHcsShutdownComputeSystem = modvmcompute.NewProc("HcsShutdownComputeSystem") -- procHcsTerminateComputeSystem = modvmcompute.NewProc("HcsTerminateComputeSystem") -- procHcsPauseComputeSystem = modvmcompute.NewProc("HcsPauseComputeSystem") -- procHcsResumeComputeSystem = modvmcompute.NewProc("HcsResumeComputeSystem") -+ procHcsCloseProcess = modvmcompute.NewProc("HcsCloseProcess") -+ procHcsCreateComputeSystem = modvmcompute.NewProc("HcsCreateComputeSystem") -+ procHcsCreateProcess = modvmcompute.NewProc("HcsCreateProcess") -+ procHcsEnumerateComputeSystems = modvmcompute.NewProc("HcsEnumerateComputeSystems") - procHcsGetComputeSystemProperties = modvmcompute.NewProc("HcsGetComputeSystemProperties") -+ procHcsGetProcessInfo = modvmcompute.NewProc("HcsGetProcessInfo") -+ procHcsGetProcessProperties = modvmcompute.NewProc("HcsGetProcessProperties") -+ procHcsGetServiceProperties = modvmcompute.NewProc("HcsGetServiceProperties") - procHcsModifyComputeSystem = modvmcompute.NewProc("HcsModifyComputeSystem") -+ procHcsModifyProcess = modvmcompute.NewProc("HcsModifyProcess") - procHcsModifyServiceSettings = modvmcompute.NewProc("HcsModifyServiceSettings") -+ procHcsOpenComputeSystem = modvmcompute.NewProc("HcsOpenComputeSystem") -+ procHcsOpenProcess = modvmcompute.NewProc("HcsOpenProcess") -+ procHcsPauseComputeSystem = modvmcompute.NewProc("HcsPauseComputeSystem") - procHcsRegisterComputeSystemCallback = modvmcompute.NewProc("HcsRegisterComputeSystemCallback") -- procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback") -+ procHcsRegisterProcessCallback = modvmcompute.NewProc("HcsRegisterProcessCallback") -+ procHcsResumeComputeSystem = modvmcompute.NewProc("HcsResumeComputeSystem") - procHcsSaveComputeSystem = modvmcompute.NewProc("HcsSaveComputeSystem") -- procHcsCreateProcess = modvmcompute.NewProc("HcsCreateProcess") -- procHcsOpenProcess = modvmcompute.NewProc("HcsOpenProcess") -- procHcsCloseProcess = modvmcompute.NewProc("HcsCloseProcess") -- procHcsTerminateProcess = modvmcompute.NewProc("HcsTerminateProcess") -+ procHcsShutdownComputeSystem = modvmcompute.NewProc("HcsShutdownComputeSystem") - procHcsSignalProcess = modvmcompute.NewProc("HcsSignalProcess") -- procHcsGetProcessInfo = modvmcompute.NewProc("HcsGetProcessInfo") -- procHcsGetProcessProperties = modvmcompute.NewProc("HcsGetProcessProperties") -- procHcsModifyProcess = modvmcompute.NewProc("HcsModifyProcess") -- procHcsGetServiceProperties = modvmcompute.NewProc("HcsGetServiceProperties") -- procHcsRegisterProcessCallback = modvmcompute.NewProc("HcsRegisterProcessCallback") -+ procHcsStartComputeSystem = modvmcompute.NewProc("HcsStartComputeSystem") -+ procHcsTerminateComputeSystem = modvmcompute.NewProc("HcsTerminateComputeSystem") -+ procHcsTerminateProcess = modvmcompute.NewProc("HcsTerminateProcess") -+ procHcsUnregisterComputeSystemCallback = modvmcompute.NewProc("HcsUnregisterComputeSystemCallback") - procHcsUnregisterProcessCallback = modvmcompute.NewProc("HcsUnregisterProcessCallback") - ) - --func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(query) -+func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) { -+ hr = procHcsCloseComputeSystem.Find() - if hr != nil { - return - } -- return _hcsEnumerateComputeSystems(_p0, computeSystems, result) -+ r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return - } - --func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) { -- if hr = procHcsEnumerateComputeSystems.Find(); hr != nil { -+func hcsCloseProcess(process HcsProcess) (hr error) { -+ hr = procHcsCloseProcess.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -105,7 +115,8 @@ func hcsCreateComputeSystem(id string, configuration string, identity syscall.Ha - } - - func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall.Handle, computeSystem *HcsSystem, result **uint16) (hr error) { -- if hr = procHcsCreateComputeSystem.Find(); hr != nil { -+ hr = procHcsCreateComputeSystem.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall6(procHcsCreateComputeSystem.Addr(), 5, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(configuration)), uintptr(identity), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result)), 0) -@@ -118,34 +129,21 @@ func _hcsCreateComputeSystem(id *uint16, configuration *uint16, identity syscall - return - } - --func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) { -+func hcsCreateProcess(computeSystem HcsSystem, processParameters string, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(id) -+ _p0, hr = syscall.UTF16PtrFromString(processParameters) - if hr != nil { - return - } -- return _hcsOpenComputeSystem(_p0, computeSystem, result) --} -- --func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) { -- if hr = procHcsOpenComputeSystem.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result))) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return -+ return _hcsCreateProcess(computeSystem, _p0, processInformation, process, result) - } - --func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) { -- if hr = procHcsCloseComputeSystem.Find(); hr != nil { -+func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) { -+ hr = procHcsCreateProcess.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsCloseComputeSystem.Addr(), 1, uintptr(computeSystem), 0, 0) -+ r0, _, _ := syscall.Syscall6(procHcsCreateProcess.Addr(), 5, uintptr(computeSystem), uintptr(unsafe.Pointer(processParameters)), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -155,20 +153,21 @@ func hcsCloseComputeSystem(computeSystem HcsSystem) (hr error) { - return - } - --func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+func hcsEnumerateComputeSystems(query string, computeSystems **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(options) -+ _p0, hr = syscall.UTF16PtrFromString(query) - if hr != nil { - return - } -- return _hcsStartComputeSystem(computeSystem, _p0, result) -+ return _hcsEnumerateComputeSystems(_p0, computeSystems, result) - } - --func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsStartComputeSystem.Find(); hr != nil { -+func _hcsEnumerateComputeSystems(query *uint16, computeSystems **uint16, result **uint16) (hr error) { -+ hr = procHcsEnumerateComputeSystems.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsEnumerateComputeSystems.Addr(), 3, uintptr(unsafe.Pointer(query)), uintptr(unsafe.Pointer(computeSystems)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -178,20 +177,21 @@ func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **u - return - } - --func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(options) -+ _p0, hr = syscall.UTF16PtrFromString(propertyQuery) - if hr != nil { - return - } -- return _hcsShutdownComputeSystem(computeSystem, _p0, result) -+ return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result) - } - --func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsShutdownComputeSystem.Find(); hr != nil { -+func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcsGetComputeSystemProperties.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -201,20 +201,12 @@ func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result - return - } - --func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(options) -+func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInformation, result **uint16) (hr error) { -+ hr = procHcsGetProcessInfo.Find() - if hr != nil { - return - } -- return _hcsTerminateComputeSystem(computeSystem, _p0, result) --} -- --func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsTerminateComputeSystem.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsGetProcessInfo.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -224,20 +216,12 @@ func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result - return - } - --func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(options) -+func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, result **uint16) (hr error) { -+ hr = procHcsGetProcessProperties.Find() - if hr != nil { - return - } -- return _hcsPauseComputeSystem(computeSystem, _p0, result) --} -- --func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsPauseComputeSystem.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -247,20 +231,21 @@ func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **u - return - } - --func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+func hcsGetServiceProperties(propertyQuery string, properties **uint16, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(options) -+ _p0, hr = syscall.UTF16PtrFromString(propertyQuery) - if hr != nil { - return - } -- return _hcsResumeComputeSystem(computeSystem, _p0, result) -+ return _hcsGetServiceProperties(_p0, properties, result) - } - --func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsResumeComputeSystem.Find(); hr != nil { -+func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result **uint16) (hr error) { -+ hr = procHcsGetServiceProperties.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsGetServiceProperties.Addr(), 3, uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -270,20 +255,21 @@ func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result ** - return - } - --func hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery string, properties **uint16, result **uint16) (hr error) { -+func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(propertyQuery) -+ _p0, hr = syscall.UTF16PtrFromString(configuration) - if hr != nil { - return - } -- return _hcsGetComputeSystemProperties(computeSystem, _p0, properties, result) -+ return _hcsModifyComputeSystem(computeSystem, _p0, result) - } - --func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcsGetComputeSystemProperties.Find(); hr != nil { -+func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) { -+ hr = procHcsModifyComputeSystem.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcsGetComputeSystemProperties.Addr(), 4, uintptr(computeSystem), uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -293,20 +279,21 @@ func _hcsGetComputeSystemProperties(computeSystem HcsSystem, propertyQuery *uint - return - } - --func hcsModifyComputeSystem(computeSystem HcsSystem, configuration string, result **uint16) (hr error) { -+func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(configuration) -+ _p0, hr = syscall.UTF16PtrFromString(settings) - if hr != nil { - return - } -- return _hcsModifyComputeSystem(computeSystem, _p0, result) -+ return _hcsModifyProcess(process, _p0, result) - } - --func _hcsModifyComputeSystem(computeSystem HcsSystem, configuration *uint16, result **uint16) (hr error) { -- if hr = procHcsModifyComputeSystem.Find(); hr != nil { -+func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) { -+ hr = procHcsModifyProcess.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsModifyComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(configuration)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -326,7 +313,8 @@ func hcsModifyServiceSettings(settings string, result **uint16) (hr error) { - } - - func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) { -- if hr = procHcsModifyServiceSettings.Find(); hr != nil { -+ hr = procHcsModifyServiceSettings.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcsModifyServiceSettings.Addr(), 2, uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result)), 0) -@@ -339,11 +327,21 @@ func _hcsModifyServiceSettings(settings *uint16, result **uint16) (hr error) { - return - } - --func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) { -- if hr = procHcsRegisterComputeSystemCallback.Find(); hr != nil { -+func hcsOpenComputeSystem(id string, computeSystem *HcsSystem, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(id) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0) -+ return _hcsOpenComputeSystem(_p0, computeSystem, result) -+} -+ -+func _hcsOpenComputeSystem(id *uint16, computeSystem *HcsSystem, result **uint16) (hr error) { -+ hr = procHcsOpenComputeSystem.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsOpenComputeSystem.Addr(), 3, uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(computeSystem)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -353,11 +351,12 @@ func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, - return - } - --func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) { -- if hr = procHcsUnregisterComputeSystemCallback.Find(); hr != nil { -+func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) { -+ hr = procHcsOpenProcess.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0) -+ r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -367,20 +366,21 @@ func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) { - return - } - --func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+func hcsPauseComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(options) - if hr != nil { - return - } -- return _hcsSaveComputeSystem(computeSystem, _p0, result) -+ return _hcsPauseComputeSystem(computeSystem, _p0, result) - } - --func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -- if hr = procHcsSaveComputeSystem.Find(); hr != nil { -+func _hcsPauseComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsPauseComputeSystem.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsPauseComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -390,20 +390,27 @@ func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **ui - return - } - --func hcsCreateProcess(computeSystem HcsSystem, processParameters string, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(processParameters) -+func hcsRegisterComputeSystemCallback(computeSystem HcsSystem, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) { -+ hr = procHcsRegisterComputeSystemCallback.Find() - if hr != nil { - return - } -- return _hcsCreateProcess(computeSystem, _p0, processInformation, process, result) -+ r0, _, _ := syscall.Syscall6(procHcsRegisterComputeSystemCallback.Addr(), 4, uintptr(computeSystem), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return - } - --func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, processInformation *HcsProcessInformation, process *HcsProcess, result **uint16) (hr error) { -- if hr = procHcsCreateProcess.Find(); hr != nil { -+func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) { -+ hr = procHcsRegisterProcessCallback.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcsCreateProcess.Addr(), 5, uintptr(computeSystem), uintptr(unsafe.Pointer(processParameters)), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0) -+ r0, _, _ := syscall.Syscall6(procHcsRegisterProcessCallback.Addr(), 4, uintptr(process), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -413,11 +420,21 @@ func _hcsCreateProcess(computeSystem HcsSystem, processParameters *uint16, proce - return - } - --func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, result **uint16) (hr error) { -- if hr = procHcsOpenProcess.Find(); hr != nil { -+func hcsResumeComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(options) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcsOpenProcess.Addr(), 4, uintptr(computeSystem), uintptr(pid), uintptr(unsafe.Pointer(process)), uintptr(unsafe.Pointer(result)), 0, 0) -+ return _hcsResumeComputeSystem(computeSystem, _p0, result) -+} -+ -+func _hcsResumeComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsResumeComputeSystem.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsResumeComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -427,11 +444,21 @@ func hcsOpenProcess(computeSystem HcsSystem, pid uint32, process *HcsProcess, re - return - } - --func hcsCloseProcess(process HcsProcess) (hr error) { -- if hr = procHcsCloseProcess.Find(); hr != nil { -+func hcsSaveComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(options) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsCloseProcess.Addr(), 1, uintptr(process), 0, 0) -+ return _hcsSaveComputeSystem(computeSystem, _p0, result) -+} -+ -+func _hcsSaveComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsSaveComputeSystem.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsSaveComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -441,11 +468,21 @@ func hcsCloseProcess(process HcsProcess) (hr error) { - return - } - --func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) { -- if hr = procHcsTerminateProcess.Find(); hr != nil { -+func hcsShutdownComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(options) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0) -+ return _hcsShutdownComputeSystem(computeSystem, _p0, result) -+} -+ -+func _hcsShutdownComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsShutdownComputeSystem.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procHcsShutdownComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -465,7 +502,8 @@ func hcsSignalProcess(process HcsProcess, options string, result **uint16) (hr e - } - - func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr error) { -- if hr = procHcsSignalProcess.Find(); hr != nil { -+ hr = procHcsSignalProcess.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcsSignalProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) -@@ -478,25 +516,21 @@ func _hcsSignalProcess(process HcsProcess, options *uint16, result **uint16) (hr - return - } - --func hcsGetProcessInfo(process HcsProcess, processInformation *HcsProcessInformation, result **uint16) (hr error) { -- if hr = procHcsGetProcessInfo.Find(); hr != nil { -+func hcsStartComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(options) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsGetProcessInfo.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processInformation)), uintptr(unsafe.Pointer(result))) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return -+ return _hcsStartComputeSystem(computeSystem, _p0, result) - } - --func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, result **uint16) (hr error) { -- if hr = procHcsGetProcessProperties.Find(); hr != nil { -+func _hcsStartComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsStartComputeSystem.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsGetProcessProperties.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(processProperties)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsStartComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -506,20 +540,21 @@ func hcsGetProcessProperties(process HcsProcess, processProperties **uint16, res - return - } - --func hcsModifyProcess(process HcsProcess, settings string, result **uint16) (hr error) { -+func hcsTerminateComputeSystem(computeSystem HcsSystem, options string, result **uint16) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(settings) -+ _p0, hr = syscall.UTF16PtrFromString(options) - if hr != nil { - return - } -- return _hcsModifyProcess(process, _p0, result) -+ return _hcsTerminateComputeSystem(computeSystem, _p0, result) - } - --func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (hr error) { -- if hr = procHcsModifyProcess.Find(); hr != nil { -+func _hcsTerminateComputeSystem(computeSystem HcsSystem, options *uint16, result **uint16) (hr error) { -+ hr = procHcsTerminateComputeSystem.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procHcsModifyProcess.Addr(), 3, uintptr(process), uintptr(unsafe.Pointer(settings)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsTerminateComputeSystem.Addr(), 3, uintptr(computeSystem), uintptr(unsafe.Pointer(options)), uintptr(unsafe.Pointer(result))) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -529,20 +564,12 @@ func _hcsModifyProcess(process HcsProcess, settings *uint16, result **uint16) (h - return - } - --func hcsGetServiceProperties(propertyQuery string, properties **uint16, result **uint16) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(propertyQuery) -+func hcsTerminateProcess(process HcsProcess, result **uint16) (hr error) { -+ hr = procHcsTerminateProcess.Find() - if hr != nil { - return - } -- return _hcsGetServiceProperties(_p0, properties, result) --} -- --func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result **uint16) (hr error) { -- if hr = procHcsGetServiceProperties.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procHcsGetServiceProperties.Addr(), 3, uintptr(unsafe.Pointer(propertyQuery)), uintptr(unsafe.Pointer(properties)), uintptr(unsafe.Pointer(result))) -+ r0, _, _ := syscall.Syscall(procHcsTerminateProcess.Addr(), 2, uintptr(process), uintptr(unsafe.Pointer(result)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -552,11 +579,12 @@ func _hcsGetServiceProperties(propertyQuery *uint16, properties **uint16, result - return - } - --func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context uintptr, callbackHandle *HcsCallback) (hr error) { -- if hr = procHcsRegisterProcessCallback.Find(); hr != nil { -+func hcsUnregisterComputeSystemCallback(callbackHandle HcsCallback) (hr error) { -+ hr = procHcsUnregisterComputeSystemCallback.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procHcsRegisterProcessCallback.Addr(), 4, uintptr(process), uintptr(callback), uintptr(context), uintptr(unsafe.Pointer(callbackHandle)), 0, 0) -+ r0, _, _ := syscall.Syscall(procHcsUnregisterComputeSystemCallback.Addr(), 1, uintptr(callbackHandle), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -567,7 +595,8 @@ func hcsRegisterProcessCallback(process HcsProcess, callback uintptr, context ui - } - - func hcsUnregisterProcessCallback(callbackHandle HcsCallback) (hr error) { -- if hr = procHcsUnregisterProcessCallback.Find(); hr != nil { -+ hr = procHcsUnregisterProcessCallback.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procHcsUnregisterProcessCallback.Addr(), 1, uintptr(callbackHandle), 0, 0) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go -index 5debe974..e12253c9 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/activatelayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -14,7 +16,7 @@ import ( - // An activated layer must later be deactivated via DeactivateLayer. - func ActivateLayer(ctx context.Context, path string) (err error) { - title := "hcsshim::ActivateLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go -new file mode 100644 -index 00000000..ec4423ef ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerreader.go -@@ -0,0 +1,216 @@ -+package wclayer -+ -+import ( -+ "errors" -+ "io" -+ "os" -+ "path/filepath" -+ "strings" -+ "syscall" -+ -+ "github.com/Microsoft/go-winio" -+ "github.com/Microsoft/hcsshim/internal/longpath" -+ "github.com/Microsoft/hcsshim/internal/oc" -+ "go.opencensus.io/trace" -+) -+ -+type baseLayerReader struct { -+ s *trace.Span -+ root string -+ result chan *fileEntry -+ proceed chan bool -+ currentFile *os.File -+ backupReader *winio.BackupFileReader -+} -+ -+func newBaseLayerReader(root string, s *trace.Span) (r *baseLayerReader) { -+ r = &baseLayerReader{ -+ s: s, -+ root: root, -+ result: make(chan *fileEntry), -+ proceed: make(chan bool), -+ } -+ go r.walk() -+ return r -+} -+ -+func (r *baseLayerReader) walkUntilCancelled() error { -+ root, err := longpath.LongAbs(r.root) -+ if err != nil { -+ return err -+ } -+ -+ r.root = root -+ -+ err = filepath.Walk(filepath.Join(r.root, filesPath), func(path string, info os.FileInfo, err error) error { -+ if err != nil { -+ return err -+ } -+ -+ // Indirect fix for https://github.com/moby/moby/issues/32838#issuecomment-343610048. -+ // Handle failure from what may be a golang bug in the conversion of -+ // UTF16 to UTF8 in files which are left in the recycle bin. Os.Lstat -+ // which is called by filepath.Walk will fail when a filename contains -+ // unicode characters. Skip the recycle bin regardless which is goodness. -+ if strings.EqualFold(path, filepath.Join(r.root, `Files\$Recycle.Bin`)) && info.IsDir() { -+ return filepath.SkipDir -+ } -+ -+ r.result <- &fileEntry{path, info, nil} -+ if !<-r.proceed { -+ return errorIterationCanceled -+ } -+ -+ return nil -+ }) -+ -+ if err == errorIterationCanceled { -+ return nil -+ } -+ -+ if err != nil { -+ return err -+ } -+ -+ utilityVMAbsPath := filepath.Join(r.root, utilityVMPath) -+ utilityVMFilesAbsPath := filepath.Join(r.root, utilityVMFilesPath) -+ -+ // Ignore a UtilityVM without Files, that's not _really_ a UtiltyVM -+ if _, err = os.Lstat(utilityVMFilesAbsPath); err != nil { -+ if os.IsNotExist(err) { -+ return io.EOF -+ } -+ return err -+ } -+ -+ err = filepath.Walk(utilityVMAbsPath, func(path string, info os.FileInfo, err error) error { -+ if err != nil { -+ return err -+ } -+ -+ if path != utilityVMAbsPath && path != utilityVMFilesAbsPath && !hasPathPrefix(path, utilityVMFilesAbsPath) { -+ if info.IsDir() { -+ return filepath.SkipDir -+ } -+ return nil -+ } -+ -+ r.result <- &fileEntry{path, info, nil} -+ if !<-r.proceed { -+ return errorIterationCanceled -+ } -+ -+ return nil -+ }) -+ -+ if err == errorIterationCanceled { -+ return nil -+ } -+ -+ if err != nil { -+ return err -+ } -+ -+ return io.EOF -+} -+ -+func (r *baseLayerReader) walk() { -+ defer close(r.result) -+ if !<-r.proceed { -+ return -+ } -+ -+ err := r.walkUntilCancelled() -+ if err != nil { -+ for { -+ r.result <- &fileEntry{err: err} -+ if !<-r.proceed { -+ return -+ } -+ } -+ } -+} -+ -+func (r *baseLayerReader) reset() { -+ if r.backupReader != nil { -+ r.backupReader.Close() -+ r.backupReader = nil -+ } -+ if r.currentFile != nil { -+ r.currentFile.Close() -+ r.currentFile = nil -+ } -+} -+ -+func (r *baseLayerReader) Next() (path string, size int64, fileInfo *winio.FileBasicInfo, err error) { -+ r.reset() -+ r.proceed <- true -+ fe := <-r.result -+ if fe == nil { -+ err = errors.New("BaseLayerReader closed") -+ return -+ } -+ if fe.err != nil { -+ err = fe.err -+ return -+ } -+ -+ path, err = filepath.Rel(r.root, fe.path) -+ if err != nil { -+ return -+ } -+ -+ f, err := openFileOrDir(fe.path, syscall.GENERIC_READ, syscall.OPEN_EXISTING) -+ if err != nil { -+ return -+ } -+ defer func() { -+ if f != nil { -+ f.Close() -+ } -+ }() -+ -+ fileInfo, err = winio.GetFileBasicInfo(f) -+ if err != nil { -+ return -+ } -+ -+ size = fe.fi.Size() -+ r.backupReader = winio.NewBackupFileReader(f, true) -+ -+ r.currentFile = f -+ f = nil -+ return -+} -+ -+func (r *baseLayerReader) LinkInfo() (uint32, *winio.FileIDInfo, error) { -+ fileStandardInfo, err := winio.GetFileStandardInfo(r.currentFile) -+ if err != nil { -+ return 0, nil, err -+ } -+ fileIDInfo, err := winio.GetFileID(r.currentFile) -+ if err != nil { -+ return 0, nil, err -+ } -+ return fileStandardInfo.NumberOfLinks, fileIDInfo, nil -+} -+ -+func (r *baseLayerReader) Read(b []byte) (int, error) { -+ if r.backupReader == nil { -+ return 0, io.EOF -+ } -+ return r.backupReader.Read(b) -+} -+ -+func (r *baseLayerReader) Close() (err error) { -+ defer r.s.End() -+ defer func() { -+ oc.SetSpanStatus(r.s, err) -+ close(r.proceed) -+ }() -+ r.proceed <- false -+ // The r.result channel will be closed once walk() returns -+ <-r.result -+ r.reset() -+ return nil -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go -similarity index 99% -rename from vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go -rename to vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go -index 3ec708d1..aea8b421 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/baselayerwriter.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -48,7 +50,6 @@ func reapplyDirectoryTimes(root *os.File, dis []dirInfo) error { - if err != nil { - return err - } -- - } - return nil - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go -new file mode 100644 -index 00000000..ceb3b508 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/converttobaselayer.go -@@ -0,0 +1,158 @@ -+package wclayer -+ -+import ( -+ "context" -+ "fmt" -+ "os" -+ "path/filepath" -+ "syscall" -+ -+ "github.com/Microsoft/hcsshim/internal/hcserror" -+ "github.com/Microsoft/hcsshim/internal/longpath" -+ "github.com/Microsoft/hcsshim/internal/oc" -+ "github.com/Microsoft/hcsshim/internal/safefile" -+ "github.com/Microsoft/hcsshim/internal/winapi" -+ "github.com/pkg/errors" -+ "go.opencensus.io/trace" -+ "golang.org/x/sys/windows" -+) -+ -+var hiveNames = []string{"DEFAULT", "SAM", "SECURITY", "SOFTWARE", "SYSTEM"} -+ -+// Ensure the given file exists as an ordinary file, and create a minimal hive file if not. -+func ensureHive(path string, root *os.File) (err error) { -+ _, err = safefile.LstatRelative(path, root) -+ if err != nil && !os.IsNotExist(err) { -+ return fmt.Errorf("accessing %s: %w", path, err) -+ } -+ -+ version := windows.RtlGetVersion() -+ if version == nil { -+ return fmt.Errorf("failed to get OS version") -+ } -+ -+ var fullPath string -+ fullPath, err = longpath.LongAbs(filepath.Join(root.Name(), path)) -+ if err != nil { -+ return fmt.Errorf("getting path: %w", err) -+ } -+ -+ var key syscall.Handle -+ err = winapi.ORCreateHive(&key) -+ if err != nil { -+ return fmt.Errorf("creating hive: %w", err) -+ } -+ -+ defer func() { -+ closeErr := winapi.ORCloseHive(key) -+ if closeErr != nil && err == nil { -+ err = fmt.Errorf("closing hive key: %w", closeErr) -+ } -+ }() -+ -+ err = winapi.ORSaveHive(key, fullPath, version.MajorVersion, version.MinorVersion) -+ if err != nil { -+ return fmt.Errorf("saving hive: %w", err) -+ } -+ -+ return nil -+} -+ -+func ensureBaseLayer(root *os.File) (hasUtilityVM bool, err error) { -+ // The base layer registry hives will be copied from here -+ const hiveSourcePath = "Files\\Windows\\System32\\config" -+ if err = safefile.MkdirAllRelative(hiveSourcePath, root); err != nil { -+ return -+ } -+ -+ for _, hiveName := range hiveNames { -+ hivePath := filepath.Join(hiveSourcePath, hiveName) -+ if err = ensureHive(hivePath, root); err != nil { -+ return -+ } -+ } -+ -+ stat, err := safefile.LstatRelative(utilityVMFilesPath, root) -+ -+ if os.IsNotExist(err) { -+ return false, nil -+ } -+ -+ if err != nil { -+ return -+ } -+ -+ if !stat.Mode().IsDir() { -+ fullPath := filepath.Join(root.Name(), utilityVMFilesPath) -+ return false, errors.Errorf("%s has unexpected file mode %s", fullPath, stat.Mode().String()) -+ } -+ -+ const bcdRelativePath = "EFI\\Microsoft\\Boot\\BCD" -+ -+ // Just check that this exists as a regular file. If it exists but is not a valid registry hive, -+ // ProcessUtilityVMImage will complain: -+ // "The registry could not read in, or write out, or flush, one of the files that contain the system's image of the registry." -+ bcdPath := filepath.Join(utilityVMFilesPath, bcdRelativePath) -+ -+ stat, err = safefile.LstatRelative(bcdPath, root) -+ if err != nil { -+ return false, errors.Wrapf(err, "UtilityVM must contain '%s'", bcdRelativePath) -+ } -+ -+ if !stat.Mode().IsRegular() { -+ fullPath := filepath.Join(root.Name(), bcdPath) -+ return false, errors.Errorf("%s has unexpected file mode %s", fullPath, stat.Mode().String()) -+ } -+ -+ return true, nil -+} -+ -+func convertToBaseLayer(ctx context.Context, root *os.File) error { -+ hasUtilityVM, err := ensureBaseLayer(root) -+ -+ if err != nil { -+ return err -+ } -+ -+ if err := ProcessBaseLayer(ctx, root.Name()); err != nil { -+ return err -+ } -+ -+ if !hasUtilityVM { -+ return nil -+ } -+ -+ err = safefile.EnsureNotReparsePointRelative(utilityVMPath, root) -+ if err != nil { -+ return err -+ } -+ -+ utilityVMPath := filepath.Join(root.Name(), utilityVMPath) -+ return ProcessUtilityVMImage(ctx, utilityVMPath) -+} -+ -+// ConvertToBaseLayer processes a candidate base layer, i.e. a directory -+// containing the desired file content under Files/, and optionally the -+// desired file content for a UtilityVM under UtilityVM/Files/ -+func ConvertToBaseLayer(ctx context.Context, path string) (err error) { -+ title := "hcsshim::ConvertToBaseLayer" -+ ctx, span := trace.StartSpan(ctx, title) -+ defer span.End() -+ defer func() { oc.SetSpanStatus(span, err) }() -+ span.AddAttributes(trace.StringAttribute("path", path)) -+ -+ root, err := safefile.OpenRoot(path) -+ if err != nil { -+ return hcserror.New(err, title+" - failed", "") -+ } -+ defer func() { -+ if err2 := root.Close(); err == nil && err2 != nil { -+ err = hcserror.New(err2, title+" - failed", "") -+ } -+ }() -+ -+ if err = convertToBaseLayer(ctx, root); err != nil { -+ return hcserror.New(err, title+" - failed", "") -+ } -+ return nil -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go -index 480aee87..93247572 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createlayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // the parent layer provided. - func CreateLayer(ctx context.Context, path, parent string) (err error) { - title := "hcsshim::CreateLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go -index 131aa94f..5c9d5d25 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/createscratchlayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -13,7 +15,7 @@ import ( - // This requires the full list of paths to all parent layers up to the base - func CreateScratchLayer(ctx context.Context, path string, parentLayerPaths []string) (err error) { - title := "hcsshim::CreateScratchLayer" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go -index d5bf2f5b..e3bc77cb 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/deactivatelayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -11,7 +13,7 @@ import ( - // DeactivateLayer will dismount a layer that was mounted via ActivateLayer. - func DeactivateLayer(ctx context.Context, path string) (err error) { - title := "hcsshim::DeactivateLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go -index 424467ac..d0a59efe 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/destroylayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // path, including that layer's containing folder, if any. - func DestroyLayer(ctx context.Context, path string) (err error) { - title := "hcsshim::DestroyLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go -new file mode 100644 -index 00000000..dd1d5558 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/doc.go -@@ -0,0 +1,4 @@ -+// Package wclayer provides bindings to HCS's legacy layer management API and -+// provides a higher level interface around these calls for container layer -+// management. -+package wclayer -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go -index 035c9041..e2ec27ad 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/expandscratchsize.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -16,7 +18,7 @@ import ( - // ExpandScratchSize expands the size of a layer to at least size bytes. - func ExpandScratchSize(ctx context.Context, path string, size uint64) (err error) { - title := "hcsshim::ExpandScratchSize" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go -index 97b27eb7..d4c677aa 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/exportlayer.go -@@ -1,8 +1,9 @@ -+//go:build windows -+ - package wclayer - - import ( - "context" -- "io/ioutil" - "os" - "strings" - -@@ -19,7 +20,7 @@ import ( - // perform the export. - func ExportLayer(ctx context.Context, path string, exportFolderPath string, parentLayerPaths []string) (err error) { - title := "hcsshim::ExportLayer" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -40,9 +41,16 @@ func ExportLayer(ctx context.Context, path string, exportFolderPath string, pare - return nil - } - -+// LayerReader is an interface that supports reading an existing container image layer. - type LayerReader interface { -+ // Next advances to the next file and returns the name, size, and file info - Next() (string, int64, *winio.FileBasicInfo, error) -+ // LinkInfo returns the number of links and the file identifier for the current file. -+ LinkInfo() (uint32, *winio.FileIDInfo, error) -+ // Read reads data from the current file, in the format of a Win32 backup stream, and -+ // returns the number of bytes read. - Read(b []byte) (int, error) -+ // Close finishes the layer reading process and releases any resources. - Close() error - } - -@@ -50,7 +58,7 @@ type LayerReader interface { - // The caller must have taken the SeBackupPrivilege privilege - // to call this and any methods on the resulting LayerReader. - func NewLayerReader(ctx context.Context, path string, parentLayerPaths []string) (_ LayerReader, err error) { -- ctx, span := trace.StartSpan(ctx, "hcsshim::NewLayerReader") -+ ctx, span := oc.StartSpan(ctx, "hcsshim::NewLayerReader") - defer func() { - if err != nil { - oc.SetSpanStatus(span, err) -@@ -61,7 +69,12 @@ func NewLayerReader(ctx context.Context, path string, parentLayerPaths []string) - trace.StringAttribute("path", path), - trace.StringAttribute("parentLayerPaths", strings.Join(parentLayerPaths, ", "))) - -- exportPath, err := ioutil.TempDir("", "hcs") -+ if len(parentLayerPaths) == 0 { -+ // This is a base layer. It gets exported differently. -+ return newBaseLayerReader(path, span), nil -+ } -+ -+ exportPath, err := os.MkdirTemp("", "hcs") - if err != nil { - return nil, err - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go -index 8d213f58..715e06e3 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getlayermountpath.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -16,7 +18,7 @@ import ( - // folder path at which the layer is stored. - func GetLayerMountPath(ctx context.Context, path string) (_ string, err error) { - title := "hcsshim::GetLayerMountPath" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go -index ae1fff84..5e400fb2 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/getsharedbaseimages.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -14,7 +16,7 @@ import ( - // of registering them with the graphdriver, graph, and tagstore. - func GetSharedBaseImages(ctx context.Context) (_ string, err error) { - title := "hcsshim::GetSharedBaseImages" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go -index 4b282fef..20217ed8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/grantvmaccess.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -11,7 +13,7 @@ import ( - // GrantVmAccess adds access to a file for a given VM - func GrantVmAccess(ctx context.Context, vmid string, filepath string) (err error) { - title := "hcsshim::GrantVmAccess" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go -index 687550f0..50f669a2 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/importlayer.go -@@ -1,8 +1,9 @@ -+//go:build windows -+ - package wclayer - - import ( - "context" -- "io/ioutil" - "os" - "path/filepath" - "strings" -@@ -20,7 +21,7 @@ import ( - // be present on the system at the paths provided in parentLayerPaths. - func ImportLayer(ctx context.Context, path string, importFolderPath string, parentLayerPaths []string) (err error) { - title := "hcsshim::ImportLayer" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -@@ -124,7 +125,7 @@ func (r *legacyLayerWriterWrapper) Close() (err error) { - // The caller must have taken the SeBackupPrivilege and SeRestorePrivilege privileges - // to call this and any methods on the resulting LayerWriter. - func NewLayerWriter(ctx context.Context, path string, parentLayerPaths []string) (_ LayerWriter, err error) { -- ctx, span := trace.StartSpan(ctx, "hcsshim::NewLayerWriter") -+ ctx, span := oc.StartSpan(ctx, "hcsshim::NewLayerWriter") - defer func() { - if err != nil { - oc.SetSpanStatus(span, err) -@@ -148,7 +149,7 @@ func NewLayerWriter(ctx context.Context, path string, parentLayerPaths []string) - }, nil - } - -- importPath, err := ioutil.TempDir("", "hcs") -+ importPath, err := os.MkdirTemp("", "hcs") - if err != nil { - return nil, err - } -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go -index 01e67233..4d82977e 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerexists.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // to the system. - func LayerExists(ctx context.Context, path string) (_ bool, err error) { - title := "hcsshim::LayerExists" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go -index 0ce34a30..d4805f14 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerid.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // LayerID returns the layer ID of a layer on disk. - func LayerID(ctx context.Context, path string) (_ guid.GUID, err error) { - title := "hcsshim::LayerID" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go -index 1ec893c6..d5d2cb13 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/layerutils.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - // This file contains utility functions to support storage (graph) related -@@ -11,7 +13,9 @@ import ( - "github.com/sirupsen/logrus" - ) - --/* To pass into syscall, we need a struct matching the following: -+/* -+To pass into syscall, we need a struct matching the following: -+ - enum GraphDriverType - { - DiffDriver, -@@ -34,32 +38,34 @@ var ( - stdDriverInfo = driverInfo{1, &utf16EmptyString} - ) - --/* To pass into syscall, we need a struct matching the following: -+/* -+To pass into syscall, we need a struct matching the following: -+ - typedef struct _WC_LAYER_DESCRIPTOR { - -- // -- // The ID of the layer -- // -+ // -+ // The ID of the layer -+ // - -- GUID LayerId; -+ GUID LayerId; - -- // -- // Additional flags -- // -+ // -+ // Additional flags -+ // - -- union { -- struct { -- ULONG Reserved : 31; -- ULONG Dirty : 1; // Created from sandbox as a result of snapshot -- }; -- ULONG Value; -- } Flags; -+ union { -+ struct { -+ ULONG Reserved : 31; -+ ULONG Dirty : 1; // Created from sandbox as a result of snapshot -+ }; -+ ULONG Value; -+ } Flags; - -- // -- // Path to the layer root directory, null-terminated -- // -+ // -+ // Path to the layer root directory, null-terminated -+ // - -- PCWSTR Path; -+ PCWSTR Path; - - } WC_LAYER_DESCRIPTOR, *PWC_LAYER_DESCRIPTOR; - */ -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go -index b7f3064f..ee8da5df 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/legacy.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -6,7 +8,6 @@ import ( - "errors" - "fmt" - "io" -- "io/ioutil" - "os" - "path/filepath" - "strings" -@@ -262,7 +263,6 @@ func (r *legacyLayerReader) Next() (path string, size int64, fileInfo *winio.Fil - // The creation time and access time get reset for files outside of the Files path. - fileInfo.CreationTime = fileInfo.LastWriteTime - fileInfo.LastAccessTime = fileInfo.LastWriteTime -- - } else { - // The file attributes are written before the backup stream. - var attr uint32 -@@ -294,6 +294,18 @@ func (r *legacyLayerReader) Next() (path string, size int64, fileInfo *winio.Fil - return - } - -+func (r *legacyLayerReader) LinkInfo() (uint32, *winio.FileIDInfo, error) { -+ fileStandardInfo, err := winio.GetFileStandardInfo(r.currentFile) -+ if err != nil { -+ return 0, nil, err -+ } -+ fileIDInfo, err := winio.GetFileID(r.currentFile) -+ if err != nil { -+ return 0, nil, err -+ } -+ return fileStandardInfo.NumberOfLinks, fileIDInfo, nil -+} -+ - func (r *legacyLayerReader) Read(b []byte) (int, error) { - if r.backupReader == nil { - if r.currentFile == nil { -@@ -349,7 +361,7 @@ type legacyLayerWriter struct { - currentIsDir bool - } - --// newLegacyLayerWriter returns a LayerWriter that can write the contaler layer -+// newLegacyLayerWriter returns a LayerWriter that can write the container layer - // transport format to disk. - func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w *legacyLayerWriter, err error) { - w = &legacyLayerWriter{ -@@ -376,7 +388,7 @@ func newLegacyLayerWriter(root string, parentRoots []string, destRoot string) (w - } - w.parentRoots = append(w.parentRoots, f) - } -- w.bufWriter = bufio.NewWriterSize(ioutil.Discard, 65536) -+ w.bufWriter = bufio.NewWriterSize(io.Discard, 65536) - return - } - -@@ -419,7 +431,7 @@ func (w *legacyLayerWriter) reset() error { - if err != nil { - return err - } -- w.bufWriter.Reset(ioutil.Discard) -+ w.bufWriter.Reset(io.Discard) - if w.currentIsDir { - r := w.currentFile - br := winio.NewBackupStreamReader(r) -@@ -695,7 +707,7 @@ func (w *legacyLayerWriter) Add(name string, fileInfo *winio.FileBasicInfo) erro - // The file attributes are written before the stream. - err = binary.Write(w.bufWriter, binary.LittleEndian, uint32(fileInfo.FileAttributes)) - if err != nil { -- w.bufWriter.Reset(ioutil.Discard) -+ w.bufWriter.Reset(io.Discard) - return err - } - } -@@ -730,7 +742,7 @@ func (w *legacyLayerWriter) AddLink(name string, target string) error { - return errors.New("invalid hard link in layer") - } - -- // Find to try the target of the link in a previously added file. If that -+ // Try to find the target of the link in a previously added file. If that - // fails, search in parent layers. - var selectedRoot *os.File - if _, ok := w.addedFiles[target]; ok { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go -index 09950297..c45fa275 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/nametoguid.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -14,7 +16,7 @@ import ( - // across all clients. - func NameToGuid(ctx context.Context, name string) (_ guid.GUID, err error) { - title := "hcsshim::NameToGuid" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("objectName", name)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go -index 90129fae..b66e0712 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/preparelayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -19,7 +21,7 @@ var prepareLayerLock sync.Mutex - // Disabling the filter must be done via UnprepareLayer. - func PrepareLayer(ctx context.Context, path string, parentLayerPaths []string) (err error) { - title := "hcsshim::PrepareLayer" -- ctx, span := trace.StartSpan(ctx, title) -+ ctx, span := oc.StartSpan(ctx, title) - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go -index 30bcdff5..7c49cbda 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/processimage.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // The files should have been extracted to \Files. - func ProcessBaseLayer(ctx context.Context, path string) (err error) { - title := "hcsshim::ProcessBaseLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -@@ -28,7 +30,7 @@ func ProcessBaseLayer(ctx context.Context, path string) (err error) { - // The files should have been extracted to \Files. - func ProcessUtilityVMImage(ctx context.Context, path string) (err error) { - title := "hcsshim::ProcessUtilityVMImage" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go -index 71b130c5..fe20702c 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/unpreparelayer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package wclayer - - import ( -@@ -12,7 +14,7 @@ import ( - // the given id. - func UnprepareLayer(ctx context.Context, path string) (err error) { - title := "hcsshim::UnprepareLayer" -- ctx, span := trace.StartSpan(ctx, title) //nolint:ineffassign,staticcheck -+ ctx, span := oc.StartSpan(ctx, title) //nolint:ineffassign,staticcheck - defer span.End() - defer func() { oc.SetSpanStatus(span, err) }() - span.AddAttributes(trace.StringAttribute("path", path)) -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go -index 9b1e06d5..39682b81 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/wclayer.go -@@ -1,11 +1,10 @@ --// Package wclayer provides bindings to HCS's legacy layer management API and --// provides a higher level interface around these calls for container layer --// management. -+//go:build windows -+ - package wclayer - - import "github.com/Microsoft/go-winio/pkg/guid" - --//go:generate go run ../../mksyscall_windows.go -output zsyscall_windows.go wclayer.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go wclayer.go - - //sys activateLayer(info *driverInfo, id string) (hr error) = vmcompute.ActivateLayer? - //sys copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LAYER_DESCRIPTOR) (hr error) = vmcompute.CopyLayer? -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go -index 67f917f0..0cb509c4 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/wclayer/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package wclayer - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -37,33 +40,75 @@ func errnoErr(e syscall.Errno) error { - } - - var ( -- modvmcompute = windows.NewLazySystemDLL("vmcompute.dll") -- modvirtdisk = windows.NewLazySystemDLL("virtdisk.dll") - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") -+ modvirtdisk = windows.NewLazySystemDLL("virtdisk.dll") -+ modvmcompute = windows.NewLazySystemDLL("vmcompute.dll") - -+ procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") -+ procAttachVirtualDisk = modvirtdisk.NewProc("AttachVirtualDisk") -+ procOpenVirtualDisk = modvirtdisk.NewProc("OpenVirtualDisk") - procActivateLayer = modvmcompute.NewProc("ActivateLayer") - procCopyLayer = modvmcompute.NewProc("CopyLayer") - procCreateLayer = modvmcompute.NewProc("CreateLayer") - procCreateSandboxLayer = modvmcompute.NewProc("CreateSandboxLayer") -- procExpandSandboxSize = modvmcompute.NewProc("ExpandSandboxSize") - procDeactivateLayer = modvmcompute.NewProc("DeactivateLayer") - procDestroyLayer = modvmcompute.NewProc("DestroyLayer") -+ procExpandSandboxSize = modvmcompute.NewProc("ExpandSandboxSize") - procExportLayer = modvmcompute.NewProc("ExportLayer") -- procGetLayerMountPath = modvmcompute.NewProc("GetLayerMountPath") - procGetBaseImages = modvmcompute.NewProc("GetBaseImages") -+ procGetLayerMountPath = modvmcompute.NewProc("GetLayerMountPath") -+ procGrantVmAccess = modvmcompute.NewProc("GrantVmAccess") - procImportLayer = modvmcompute.NewProc("ImportLayer") - procLayerExists = modvmcompute.NewProc("LayerExists") - procNameToGuid = modvmcompute.NewProc("NameToGuid") - procPrepareLayer = modvmcompute.NewProc("PrepareLayer") -- procUnprepareLayer = modvmcompute.NewProc("UnprepareLayer") - procProcessBaseImage = modvmcompute.NewProc("ProcessBaseImage") - procProcessUtilityImage = modvmcompute.NewProc("ProcessUtilityImage") -- procGrantVmAccess = modvmcompute.NewProc("GrantVmAccess") -- procOpenVirtualDisk = modvirtdisk.NewProc("OpenVirtualDisk") -- procAttachVirtualDisk = modvirtdisk.NewProc("AttachVirtualDisk") -- procGetDiskFreeSpaceExW = modkernel32.NewProc("GetDiskFreeSpaceExW") -+ procUnprepareLayer = modvmcompute.NewProc("UnprepareLayer") - ) - -+func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) { -+ var _p0 *uint16 -+ _p0, err = syscall.UTF16PtrFromString(directoryName) -+ if err != nil { -+ return -+ } -+ return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes) -+} -+ -+func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) { -+ r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) { -+ r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped)) -+ if r1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) { -+ var _p0 *uint16 -+ _p0, err = syscall.UTF16PtrFromString(path) -+ if err != nil { -+ return -+ } -+ return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle) -+} -+ -+func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) { -+ r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle))) -+ if r1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func activateLayer(info *driverInfo, id string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(id) -@@ -74,7 +119,8 @@ func activateLayer(info *driverInfo, id string) (hr error) { - } - - func _activateLayer(info *driverInfo, id *uint16) (hr error) { -- if hr = procActivateLayer.Find(); hr != nil { -+ hr = procActivateLayer.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procActivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) -@@ -102,13 +148,14 @@ func copyLayer(info *driverInfo, srcId string, dstId string, descriptors []WC_LA - } - - func _copyLayer(info *driverInfo, srcId *uint16, dstId *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) { -+ hr = procCopyLayer.Find() -+ if hr != nil { -+ return -+ } - var _p2 *WC_LAYER_DESCRIPTOR - if len(descriptors) > 0 { - _p2 = &descriptors[0] - } -- if hr = procCopyLayer.Find(); hr != nil { -- return -- } - r0, _, _ := syscall.Syscall6(procCopyLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(srcId)), uintptr(unsafe.Pointer(dstId)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { -@@ -134,7 +181,8 @@ func createLayer(info *driverInfo, id string, parent string) (hr error) { - } - - func _createLayer(info *driverInfo, id *uint16, parent *uint16) (hr error) { -- if hr = procCreateLayer.Find(); hr != nil { -+ hr = procCreateLayer.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procCreateLayer.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(parent))) -@@ -157,13 +205,14 @@ func createSandboxLayer(info *driverInfo, id string, parent uintptr, descriptors - } - - func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descriptors []WC_LAYER_DESCRIPTOR) (hr error) { -+ hr = procCreateSandboxLayer.Find() -+ if hr != nil { -+ return -+ } - var _p1 *WC_LAYER_DESCRIPTOR - if len(descriptors) > 0 { - _p1 = &descriptors[0] - } -- if hr = procCreateSandboxLayer.Find(); hr != nil { -- return -- } - r0, _, _ := syscall.Syscall6(procCreateSandboxLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(parent), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { -@@ -174,20 +223,21 @@ func _createSandboxLayer(info *driverInfo, id *uint16, parent uintptr, descripto - return - } - --func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) { -+func deactivateLayer(info *driverInfo, id string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(id) - if hr != nil { - return - } -- return _expandSandboxSize(info, _p0, size) -+ return _deactivateLayer(info, _p0) - } - --func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) { -- if hr = procExpandSandboxSize.Find(); hr != nil { -+func _deactivateLayer(info *driverInfo, id *uint16) (hr error) { -+ hr = procDeactivateLayer.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size)) -+ r0, _, _ := syscall.Syscall(procDeactivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -197,20 +247,21 @@ func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) { - return - } - --func deactivateLayer(info *driverInfo, id string) (hr error) { -+func destroyLayer(info *driverInfo, id string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(id) - if hr != nil { - return - } -- return _deactivateLayer(info, _p0) -+ return _destroyLayer(info, _p0) - } - --func _deactivateLayer(info *driverInfo, id *uint16) (hr error) { -- if hr = procDeactivateLayer.Find(); hr != nil { -+func _destroyLayer(info *driverInfo, id *uint16) (hr error) { -+ hr = procDestroyLayer.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procDeactivateLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) -+ r0, _, _ := syscall.Syscall(procDestroyLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -220,20 +271,21 @@ func _deactivateLayer(info *driverInfo, id *uint16) (hr error) { - return - } - --func destroyLayer(info *driverInfo, id string) (hr error) { -+func expandSandboxSize(info *driverInfo, id string, size uint64) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(id) - if hr != nil { - return - } -- return _destroyLayer(info, _p0) -+ return _expandSandboxSize(info, _p0, size) - } - --func _destroyLayer(info *driverInfo, id *uint16) (hr error) { -- if hr = procDestroyLayer.Find(); hr != nil { -+func _expandSandboxSize(info *driverInfo, id *uint16, size uint64) (hr error) { -+ hr = procExpandSandboxSize.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procDestroyLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) -+ r0, _, _ := syscall.Syscall(procExpandSandboxSize.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(size)) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -258,14 +310,30 @@ func exportLayer(info *driverInfo, id string, path string, descriptors []WC_LAYE - } - - func _exportLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) { -+ hr = procExportLayer.Find() -+ if hr != nil { -+ return -+ } - var _p2 *WC_LAYER_DESCRIPTOR - if len(descriptors) > 0 { - _p2 = &descriptors[0] - } -- if hr = procExportLayer.Find(); hr != nil { -+ r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) -+ } -+ return -+} -+ -+func getBaseImages(buffer **uint16) (hr error) { -+ hr = procGetBaseImages.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall6(procExportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0) -+ r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -285,7 +353,8 @@ func getLayerMountPath(info *driverInfo, id string, length *uintptr, buffer *uin - } - - func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *uint16) (hr error) { -- if hr = procGetLayerMountPath.Find(); hr != nil { -+ hr = procGetLayerMountPath.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall6(procGetLayerMountPath.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(length)), uintptr(unsafe.Pointer(buffer)), 0, 0) -@@ -298,11 +367,26 @@ func _getLayerMountPath(info *driverInfo, id *uint16, length *uintptr, buffer *u - return - } - --func getBaseImages(buffer **uint16) (hr error) { -- if hr = procGetBaseImages.Find(); hr != nil { -+func grantVmAccess(vmid string, filepath string) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(vmid) -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procGetBaseImages.Addr(), 1, uintptr(unsafe.Pointer(buffer)), 0, 0) -+ var _p1 *uint16 -+ _p1, hr = syscall.UTF16PtrFromString(filepath) -+ if hr != nil { -+ return -+ } -+ return _grantVmAccess(_p0, _p1) -+} -+ -+func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) { -+ hr = procGrantVmAccess.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -327,13 +411,14 @@ func importLayer(info *driverInfo, id string, path string, descriptors []WC_LAYE - } - - func _importLayer(info *driverInfo, id *uint16, path *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) { -+ hr = procImportLayer.Find() -+ if hr != nil { -+ return -+ } - var _p2 *WC_LAYER_DESCRIPTOR - if len(descriptors) > 0 { - _p2 = &descriptors[0] - } -- if hr = procImportLayer.Find(); hr != nil { -- return -- } - r0, _, _ := syscall.Syscall6(procImportLayer.Addr(), 5, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(_p2)), uintptr(len(descriptors)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { -@@ -354,7 +439,8 @@ func layerExists(info *driverInfo, id string, exists *uint32) (hr error) { - } - - func _layerExists(info *driverInfo, id *uint16, exists *uint32) (hr error) { -- if hr = procLayerExists.Find(); hr != nil { -+ hr = procLayerExists.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procLayerExists.Addr(), 3, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(exists))) -@@ -377,7 +463,8 @@ func nameToGuid(name string, guid *_guid) (hr error) { - } - - func _nameToGuid(name *uint16, guid *_guid) (hr error) { -- if hr = procNameToGuid.Find(); hr != nil { -+ hr = procNameToGuid.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procNameToGuid.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(guid)), 0) -@@ -400,13 +487,14 @@ func prepareLayer(info *driverInfo, id string, descriptors []WC_LAYER_DESCRIPTOR - } - - func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPTOR) (hr error) { -+ hr = procPrepareLayer.Find() -+ if hr != nil { -+ return -+ } - var _p1 *WC_LAYER_DESCRIPTOR - if len(descriptors) > 0 { - _p1 = &descriptors[0] - } -- if hr = procPrepareLayer.Find(); hr != nil { -- return -- } - r0, _, _ := syscall.Syscall6(procPrepareLayer.Addr(), 4, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), uintptr(unsafe.Pointer(_p1)), uintptr(len(descriptors)), 0, 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { -@@ -417,29 +505,6 @@ func _prepareLayer(info *driverInfo, id *uint16, descriptors []WC_LAYER_DESCRIPT - return - } - --func unprepareLayer(info *driverInfo, id string) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(id) -- if hr != nil { -- return -- } -- return _unprepareLayer(info, _p0) --} -- --func _unprepareLayer(info *driverInfo, id *uint16) (hr error) { -- if hr = procUnprepareLayer.Find(); hr != nil { -- return -- } -- r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -- } -- return --} -- - func processBaseImage(path string) (hr error) { - var _p0 *uint16 - _p0, hr = syscall.UTF16PtrFromString(path) -@@ -450,7 +515,8 @@ func processBaseImage(path string) (hr error) { - } - - func _processBaseImage(path *uint16) (hr error) { -- if hr = procProcessBaseImage.Find(); hr != nil { -+ hr = procProcessBaseImage.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procProcessBaseImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) -@@ -473,7 +539,8 @@ func processUtilityImage(path string) (hr error) { - } - - func _processUtilityImage(path *uint16) (hr error) { -- if hr = procProcessUtilityImage.Find(); hr != nil { -+ hr = procProcessUtilityImage.Find() -+ if hr != nil { - return - } - r0, _, _ := syscall.Syscall(procProcessUtilityImage.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) -@@ -486,25 +553,21 @@ func _processUtilityImage(path *uint16) (hr error) { - return - } - --func grantVmAccess(vmid string, filepath string) (hr error) { -+func unprepareLayer(info *driverInfo, id string) (hr error) { - var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(vmid) -- if hr != nil { -- return -- } -- var _p1 *uint16 -- _p1, hr = syscall.UTF16PtrFromString(filepath) -+ _p0, hr = syscall.UTF16PtrFromString(id) - if hr != nil { - return - } -- return _grantVmAccess(_p0, _p1) -+ return _unprepareLayer(info, _p0) - } - --func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) { -- if hr = procGrantVmAccess.Find(); hr != nil { -+func _unprepareLayer(info *driverInfo, id *uint16) (hr error) { -+ hr = procUnprepareLayer.Find() -+ if hr != nil { - return - } -- r0, _, _ := syscall.Syscall(procGrantVmAccess.Addr(), 2, uintptr(unsafe.Pointer(vmid)), uintptr(unsafe.Pointer(filepath)), 0) -+ r0, _, _ := syscall.Syscall(procUnprepareLayer.Addr(), 2, uintptr(unsafe.Pointer(info)), uintptr(unsafe.Pointer(id)), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -513,57 +576,3 @@ func _grantVmAccess(vmid *uint16, filepath *uint16) (hr error) { - } - return - } -- --func openVirtualDisk(virtualStorageType *virtualStorageType, path string, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) { -- var _p0 *uint16 -- _p0, err = syscall.UTF16PtrFromString(path) -- if err != nil { -- return -- } -- return _openVirtualDisk(virtualStorageType, _p0, virtualDiskAccessMask, flags, parameters, handle) --} -- --func _openVirtualDisk(virtualStorageType *virtualStorageType, path *uint16, virtualDiskAccessMask uint32, flags uint32, parameters *openVirtualDiskParameters, handle *syscall.Handle) (err error) { -- r1, _, e1 := syscall.Syscall6(procOpenVirtualDisk.Addr(), 6, uintptr(unsafe.Pointer(virtualStorageType)), uintptr(unsafe.Pointer(path)), uintptr(virtualDiskAccessMask), uintptr(flags), uintptr(unsafe.Pointer(parameters)), uintptr(unsafe.Pointer(handle))) -- if r1 != 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -- } -- return --} -- --func attachVirtualDisk(handle syscall.Handle, sd uintptr, flags uint32, providerFlags uint32, params uintptr, overlapped uintptr) (err error) { -- r1, _, e1 := syscall.Syscall6(procAttachVirtualDisk.Addr(), 6, uintptr(handle), uintptr(sd), uintptr(flags), uintptr(providerFlags), uintptr(params), uintptr(overlapped)) -- if r1 != 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -- } -- return --} -- --func getDiskFreeSpaceEx(directoryName string, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) { -- var _p0 *uint16 -- _p0, err = syscall.UTF16PtrFromString(directoryName) -- if err != nil { -- return -- } -- return _getDiskFreeSpaceEx(_p0, freeBytesAvailableToCaller, totalNumberOfBytes, totalNumberOfFreeBytes) --} -- --func _getDiskFreeSpaceEx(directoryName *uint16, freeBytesAvailableToCaller *int64, totalNumberOfBytes *int64, totalNumberOfFreeBytes *int64) (err error) { -- r1, _, e1 := syscall.Syscall6(procGetDiskFreeSpaceExW.Addr(), 4, uintptr(unsafe.Pointer(directoryName)), uintptr(unsafe.Pointer(freeBytesAvailableToCaller)), uintptr(unsafe.Pointer(totalNumberOfBytes)), uintptr(unsafe.Pointer(totalNumberOfFreeBytes)), 0, 0) -- if r1 == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -- } -- return --} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go -new file mode 100644 -index 00000000..559d4432 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/bindflt.go -@@ -0,0 +1,19 @@ -+package winapi -+ -+const ( -+ BINDFLT_FLAG_READ_ONLY_MAPPING uint32 = 0x00000001 -+ BINDFLT_FLAG_MERGED_BIND_MAPPING uint32 = 0x00000002 -+ BINDFLT_FLAG_USE_CURRENT_SILO_MAPPING uint32 = 0x00000004 -+) -+ -+// HRESULT -+// BfSetupFilter( -+// _In_opt_ HANDLE JobHandle, -+// _In_ ULONG Flags, -+// _In_ LPCWSTR VirtualizationRootPath, -+// _In_ LPCWSTR VirtualizationTargetPath, -+// _In_reads_opt_( VirtualizationExceptionPathCount ) LPCWSTR* VirtualizationExceptionPaths, -+// _In_opt_ ULONG VirtualizationExceptionPathCount -+// ); -+// -+//sys BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16, virtTargetPath *uint16, virtExceptions **uint16, virtExceptionPathCount uint32) (hr error) = bindfltapi.BfSetupFilter? -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go -index def95254..4547cdd8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/console.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go -index df28ea24..7875466c 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/devices.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import "github.com/Microsoft/go-winio/pkg/guid" -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go -new file mode 100644 -index 00000000..9acc0bfc ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/doc.go -@@ -0,0 +1,3 @@ -+// Package winapi contains various low-level bindings to Windows APIs. It can -+// be thought of as an extension to golang.org/x/sys/windows. -+package winapi -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go -new file mode 100644 -index 00000000..40cbf871 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/elevation.go -@@ -0,0 +1,11 @@ -+//go:build windows -+ -+package winapi -+ -+import ( -+ "golang.org/x/sys/windows" -+) -+ -+func IsElevated() bool { -+ return windows.GetCurrentProcessToken().IsElevated() -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go -index 4e80ef68..49ce924c 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/errors.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import "syscall" -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go -index 7ce52afd..3dcb3faa 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/filesystem.go -@@ -1,5 +1,8 @@ -+//go:build windows -+ - package winapi - -+//sys CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) = kernel32.CopyFileW - //sys NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb *IOStatusBlock, allocationSize *uint64, fileAttributes uint32, shareAccess uint32, createDisposition uint32, createOptions uint32, eaBuffer *byte, eaLength uint32) (status uint32) = ntdll.NtCreateFile - //sys NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) = ntdll.NtSetInformationFile - -@@ -34,34 +37,35 @@ const ( - // Select entries from FILE_INFO_BY_HANDLE_CLASS. - // - // C declaration: --// typedef enum _FILE_INFO_BY_HANDLE_CLASS { --// FileBasicInfo, --// FileStandardInfo, --// FileNameInfo, --// FileRenameInfo, --// FileDispositionInfo, --// FileAllocationInfo, --// FileEndOfFileInfo, --// FileStreamInfo, --// FileCompressionInfo, --// FileAttributeTagInfo, --// FileIdBothDirectoryInfo, --// FileIdBothDirectoryRestartInfo, --// FileIoPriorityHintInfo, --// FileRemoteProtocolInfo, --// FileFullDirectoryInfo, --// FileFullDirectoryRestartInfo, --// FileStorageInfo, --// FileAlignmentInfo, --// FileIdInfo, --// FileIdExtdDirectoryInfo, --// FileIdExtdDirectoryRestartInfo, --// FileDispositionInfoEx, --// FileRenameInfoEx, --// FileCaseSensitiveInfo, --// FileNormalizedNameInfo, --// MaximumFileInfoByHandleClass --// } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS; -+// -+// typedef enum _FILE_INFO_BY_HANDLE_CLASS { -+// FileBasicInfo, -+// FileStandardInfo, -+// FileNameInfo, -+// FileRenameInfo, -+// FileDispositionInfo, -+// FileAllocationInfo, -+// FileEndOfFileInfo, -+// FileStreamInfo, -+// FileCompressionInfo, -+// FileAttributeTagInfo, -+// FileIdBothDirectoryInfo, -+// FileIdBothDirectoryRestartInfo, -+// FileIoPriorityHintInfo, -+// FileRemoteProtocolInfo, -+// FileFullDirectoryInfo, -+// FileFullDirectoryRestartInfo, -+// FileStorageInfo, -+// FileAlignmentInfo, -+// FileIdInfo, -+// FileIdExtdDirectoryInfo, -+// FileIdExtdDirectoryRestartInfo, -+// FileDispositionInfoEx, -+// FileRenameInfoEx, -+// FileCaseSensitiveInfo, -+// FileNormalizedNameInfo, -+// MaximumFileInfoByHandleClass -+// } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS; - // - // Documentation: https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ne-minwinbase-file_info_by_handle_class - const ( -@@ -98,10 +102,11 @@ type FileLinkInformation struct { - } - - // C declaration: --// typedef struct _FILE_ID_INFO { --// ULONGLONG VolumeSerialNumber; --// FILE_ID_128 FileId; --// } FILE_ID_INFO, *PFILE_ID_INFO; -+// -+// typedef struct _FILE_ID_INFO { -+// ULONGLONG VolumeSerialNumber; -+// FILE_ID_128 FileId; -+// } FILE_ID_INFO, *PFILE_ID_INFO; - // - // Documentation: https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_id_info - type FILE_ID_INFO struct { -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go -index 7eb13f8f..b0deb5c7 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import ( -@@ -55,6 +57,8 @@ const ( - JobObjectLimitViolationInformation uint32 = 13 - JobObjectMemoryUsageInformation uint32 = 28 - JobObjectNotificationLimitInformation2 uint32 = 33 -+ JobObjectCreateSilo uint32 = 35 -+ JobObjectSiloBasicInformation uint32 = 36 - JobObjectIoAttribution uint32 = 42 - ) - -@@ -111,29 +115,27 @@ type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION struct { - TotalTerminateProcesses uint32 - } - --//https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_and_io_accounting_information -+// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_and_io_accounting_information - type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION struct { - BasicInfo JOBOBJECT_BASIC_ACCOUNTING_INFORMATION - IoInfo windows.IO_COUNTERS - } - --// typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION { --// ULONG64 JobMemory; --// ULONG64 PeakJobMemoryUsed; --// } JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION; --// -+// typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION { -+// ULONG64 JobMemory; -+// ULONG64 PeakJobMemoryUsed; -+// } JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION; - type JOBOBJECT_MEMORY_USAGE_INFORMATION struct { - JobMemory uint64 - PeakJobMemoryUsed uint64 - } - --// typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS { --// ULONG_PTR IoCount; --// ULONGLONG TotalNonOverlappedQueueTime; --// ULONGLONG TotalNonOverlappedServiceTime; --// ULONGLONG TotalSize; --// } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS; --// -+// typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS { -+// ULONG_PTR IoCount; -+// ULONGLONG TotalNonOverlappedQueueTime; -+// ULONGLONG TotalNonOverlappedServiceTime; -+// ULONGLONG TotalSize; -+// } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS; - type JOBOBJECT_IO_ATTRIBUTION_STATS struct { - IoCount uintptr - TotalNonOverlappedQueueTime uint64 -@@ -141,12 +143,11 @@ type JOBOBJECT_IO_ATTRIBUTION_STATS struct { - TotalSize uint64 - } - --// typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION { --// ULONG ControlFlags; --// JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats; --// JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats; --// } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION; --// -+// typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION { -+// ULONG ControlFlags; -+// JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats; -+// JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats; -+// } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION; - type JOBOBJECT_IO_ATTRIBUTION_INFORMATION struct { - ControlFlags uint32 - ReadStats JOBOBJECT_IO_ATTRIBUTION_STATS -@@ -183,7 +184,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct { - // LPCWSTR lpName - // ); - // --//sys OpenJobObject(desiredAccess uint32, inheritHandle bool, lpName *uint16) (handle windows.Handle, err error) = kernel32.OpenJobObjectW -+//sys OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) = kernel32.OpenJobObjectW - - // DWORD SetIoRateControlInformationJobObject( - // HANDLE hJob, -@@ -198,6 +199,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct { - // JOBOBJECT_IO_RATE_CONTROL_INFORMATION **InfoBlocks, - // ULONG *InfoBlockCount - // ); -+// - //sys QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) = kernel32.QueryIoRateControlInformationJobObject - - // NTSTATUS -@@ -206,6 +208,7 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct { - // _In_ ACCESS_MASK DesiredAccess, - // _In_ POBJECT_ATTRIBUTES ObjectAttributes - // ); -+// - //sys NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) = ntdll.NtOpenJobObject - - // NTSTATUS -@@ -215,4 +218,5 @@ type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct { - // _In_ ACCESS_MASK DesiredAccess, - // _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes - // ); -+// - //sys NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) = ntdll.NtCreateJobObject -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go -new file mode 100644 -index 00000000..d8f7afe8 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/ofreg.go -@@ -0,0 +1,5 @@ -+package winapi -+ -+//sys ORCreateHive(key *syscall.Handle) (regerrno error) = offreg.ORCreateHive -+//sys ORSaveHive(key syscall.Handle, file string, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) = offreg.ORSaveHive -+//sys ORCloseHive(key syscall.Handle) (regerrno error) = offreg.ORCloseHive -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go -index 908920e8..c6a149b5 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/path.go -@@ -8,4 +8,5 @@ package winapi - // LPWSTR lpBuffer, - // LPWSTR *lpFilePart - // ); -+// - //sys SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) = kernel32.SearchPathW -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go -index 222529f4..f4ae94cf 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/process.go -@@ -20,22 +20,20 @@ const ProcessVmCounters = 3 - // - //sys NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) = ntdll.NtQueryInformationProcess - --// typedef struct _VM_COUNTERS_EX --// { --// SIZE_T PeakVirtualSize; --// SIZE_T VirtualSize; --// ULONG PageFaultCount; --// SIZE_T PeakWorkingSetSize; --// SIZE_T WorkingSetSize; --// SIZE_T QuotaPeakPagedPoolUsage; --// SIZE_T QuotaPagedPoolUsage; --// SIZE_T QuotaPeakNonPagedPoolUsage; --// SIZE_T QuotaNonPagedPoolUsage; --// SIZE_T PagefileUsage; --// SIZE_T PeakPagefileUsage; --// SIZE_T PrivateUsage; --// } VM_COUNTERS_EX, *PVM_COUNTERS_EX; --// -+// typedef struct _VM_COUNTERS_EX { -+// SIZE_T PeakVirtualSize; -+// SIZE_T VirtualSize; -+// ULONG PageFaultCount; -+// SIZE_T PeakWorkingSetSize; -+// SIZE_T WorkingSetSize; -+// SIZE_T QuotaPeakPagedPoolUsage; -+// SIZE_T QuotaPagedPoolUsage; -+// SIZE_T QuotaPeakNonPagedPoolUsage; -+// SIZE_T QuotaNonPagedPoolUsage; -+// SIZE_T PagefileUsage; -+// SIZE_T PeakPagefileUsage; -+// SIZE_T PrivateUsage; -+// } VM_COUNTERS_EX, *PVM_COUNTERS_EX; - type VM_COUNTERS_EX struct { - PeakVirtualSize uintptr - VirtualSize uintptr -@@ -51,13 +49,11 @@ type VM_COUNTERS_EX struct { - PrivateUsage uintptr - } - --// typedef struct _VM_COUNTERS_EX2 --// { --// VM_COUNTERS_EX CountersEx; --// SIZE_T PrivateWorkingSetSize; --// SIZE_T SharedCommitUsage; --// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2; --// -+// typedef struct _VM_COUNTERS_EX2 { -+// VM_COUNTERS_EX CountersEx; -+// SIZE_T PrivateWorkingSetSize; -+// SIZE_T SharedCommitUsage; -+// } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2; - type VM_COUNTERS_EX2 struct { - CountersEx VM_COUNTERS_EX - PrivateWorkingSetSize uintptr -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go -index 78fe01a4..cb494aaa 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/system.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import "golang.org/x/sys/windows" -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go -index 4724713e..f23141a8 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/thread.go -@@ -9,4 +9,5 @@ package winapi - // DWORD dwCreationFlags, - // LPDWORD lpThreadId - // ); -+// - //sys CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) = kernel32.CreateRemoteThread -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go -new file mode 100644 -index 00000000..84d4cc29 ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/user.go -@@ -0,0 +1,194 @@ -+//go:build windows -+ -+package winapi -+ -+import ( -+ "syscall" -+ -+ "golang.org/x/sys/windows" -+) -+ -+const UserNameCharLimit = 20 -+ -+const ( -+ USER_PRIV_GUEST uint32 = iota -+ USER_PRIV_USER -+ USER_PRIV_ADMIN -+) -+ -+const ( -+ UF_NORMAL_ACCOUNT = 0x00200 -+ UF_DONT_EXPIRE_PASSWD = 0x10000 -+) -+ -+const NERR_UserNotFound = syscall.Errno(0x8AD) -+ -+// typedef struct _LOCALGROUP_MEMBERS_INFO_0 { -+// PSID lgrmi0_sid; -+// } LOCALGROUP_MEMBERS_INFO_0, *PLOCALGROUP_MEMBERS_INFO_0, *LPLOCALGROUP_MEMBERS_INFO_0; -+type LocalGroupMembersInfo0 struct { -+ Sid *windows.SID -+} -+ -+// typedef struct _LOCALGROUP_INFO_1 { -+// LPWSTR lgrpi1_name; -+// LPWSTR lgrpi1_comment; -+// } LOCALGROUP_INFO_1, *PLOCALGROUP_INFO_1, *LPLOCALGROUP_INFO_1; -+type LocalGroupInfo1 struct { -+ Name *uint16 -+ Comment *uint16 -+} -+ -+// typedef struct _USER_INFO_1 { -+// LPWSTR usri1_name; -+// LPWSTR usri1_password; -+// DWORD usri1_password_age; -+// DWORD usri1_priv; -+// LPWSTR usri1_home_dir; -+// LPWSTR usri1_comment; -+// DWORD usri1_flags; -+// LPWSTR usri1_script_path; -+// } USER_INFO_1, *PUSER_INFO_1, *LPUSER_INFO_1; -+type UserInfo1 struct { -+ Name *uint16 -+ Password *uint16 -+ PasswordAge uint32 -+ Priv uint32 -+ HomeDir *uint16 -+ Comment *uint16 -+ Flags uint32 -+ ScriptPath *uint16 -+} -+ -+// NET_API_STATUS NET_API_FUNCTION NetLocalGroupGetInfo( -+// [in] LPCWSTR servername, -+// [in] LPCWSTR groupname, -+// [in] DWORD level, -+// [out] LPBYTE *bufptr -+// ); -+// -+//sys netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) = netapi32.NetLocalGroupGetInfo -+ -+// NetLocalGroupGetInfo is a slightly go friendlier wrapper around the NetLocalGroupGetInfo function. Instead of taking in *uint16's, it takes in -+// go strings and does the conversion internally. -+func NetLocalGroupGetInfo(serverName, groupName string, level uint32, bufPtr **byte) (err error) { -+ var ( -+ serverNameUTF16 *uint16 -+ groupNameUTF16 *uint16 -+ ) -+ if serverName != "" { -+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName) -+ if err != nil { -+ return err -+ } -+ } -+ if groupName != "" { -+ groupNameUTF16, err = windows.UTF16PtrFromString(groupName) -+ if err != nil { -+ return err -+ } -+ } -+ return netLocalGroupGetInfo( -+ serverNameUTF16, -+ groupNameUTF16, -+ level, -+ bufPtr, -+ ) -+} -+ -+// NET_API_STATUS NET_API_FUNCTION NetUserAdd( -+// [in] LPCWSTR servername, -+// [in] DWORD level, -+// [in] LPBYTE buf, -+// [out] LPDWORD parm_err -+// ); -+// -+//sys netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) = netapi32.NetUserAdd -+ -+// NetUserAdd is a slightly go friendlier wrapper around the NetUserAdd function. Instead of taking in *uint16's, it takes in -+// go strings and does the conversion internally. -+func NetUserAdd(serverName string, level uint32, buf *byte, parm_err *uint32) (err error) { -+ var serverNameUTF16 *uint16 -+ if serverName != "" { -+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName) -+ if err != nil { -+ return err -+ } -+ } -+ return netUserAdd( -+ serverNameUTF16, -+ level, -+ buf, -+ parm_err, -+ ) -+} -+ -+// NET_API_STATUS NET_API_FUNCTION NetUserDel( -+// [in] LPCWSTR servername, -+// [in] LPCWSTR username -+// ); -+// -+//sys netUserDel(serverName *uint16, username *uint16) (status error) = netapi32.NetUserDel -+ -+// NetUserDel is a slightly go friendlier wrapper around the NetUserDel function. Instead of taking in *uint16's, it takes in -+// go strings and does the conversion internally. -+func NetUserDel(serverName, userName string) (err error) { -+ var ( -+ serverNameUTF16 *uint16 -+ userNameUTF16 *uint16 -+ ) -+ if serverName != "" { -+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName) -+ if err != nil { -+ return err -+ } -+ } -+ if userName != "" { -+ userNameUTF16, err = windows.UTF16PtrFromString(userName) -+ if err != nil { -+ return err -+ } -+ } -+ return netUserDel( -+ serverNameUTF16, -+ userNameUTF16, -+ ) -+} -+ -+// NET_API_STATUS NET_API_FUNCTION NetLocalGroupAddMembers( -+// [in] LPCWSTR servername, -+// [in] LPCWSTR groupname, -+// [in] DWORD level, -+// [in] LPBYTE buf, -+// [in] DWORD totalentries -+// ); -+// -+//sys netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) = netapi32.NetLocalGroupAddMembers -+ -+// NetLocalGroupAddMembers is a slightly go friendlier wrapper around the NetLocalGroupAddMembers function. Instead of taking in *uint16's, it takes in -+// go strings and does the conversion internally. -+func NetLocalGroupAddMembers(serverName, groupName string, level uint32, buf *byte, totalEntries uint32) (err error) { -+ var ( -+ serverNameUTF16 *uint16 -+ groupNameUTF16 *uint16 -+ ) -+ if serverName != "" { -+ serverNameUTF16, err = windows.UTF16PtrFromString(serverName) -+ if err != nil { -+ return err -+ } -+ } -+ if groupName != "" { -+ groupNameUTF16, err = windows.UTF16PtrFromString(groupName) -+ if err != nil { -+ return err -+ } -+ } -+ return netLocalGroupAddMembers( -+ serverNameUTF16, -+ groupNameUTF16, -+ level, -+ buf, -+ totalEntries, -+ ) -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go -index 859b753c..a2da5707 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/utils.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package winapi - - import ( -@@ -32,7 +34,7 @@ type UnicodeString struct { - // denotes the maximum number of wide chars a path can have. - const NTSTRSAFE_UNICODE_STRING_MAX_CCH = 32767 - --//String converts a UnicodeString to a golang string -+// String converts a UnicodeString to a golang string - func (uni UnicodeString) String() string { - // UnicodeString is not guaranteed to be null terminated, therefore - // use the UnicodeString's Length field -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go -index d2cc9d9f..6a90e3a6 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/winapi.go -@@ -1,5 +1,3 @@ --// Package winapi contains various low-level bindings to Windows APIs. It can --// be thought of as an extension to golang.org/x/sys/windows. - package winapi - --//go:generate go run ..\..\mksyscall_windows.go -output zsyscall_windows.go user.go console.go system.go net.go path.go thread.go jobobject.go logon.go memory.go process.go processor.go devices.go filesystem.go errors.go -+//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go -diff --git a/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go -index 1f16cf0b..c607245e 100644 ---- a/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/internal/winapi/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package winapi - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -@@ -37,44 +40,68 @@ func errnoErr(e syscall.Errno) error { - } - - var ( -- modkernel32 = windows.NewLazySystemDLL("kernel32.dll") -- modntdll = windows.NewLazySystemDLL("ntdll.dll") -- modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll") -- modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") -- modcfgmgr32 = windows.NewLazySystemDLL("cfgmgr32.dll") -+ modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") -+ modbindfltapi = windows.NewLazySystemDLL("bindfltapi.dll") -+ modcfgmgr32 = windows.NewLazySystemDLL("cfgmgr32.dll") -+ modiphlpapi = windows.NewLazySystemDLL("iphlpapi.dll") -+ modkernel32 = windows.NewLazySystemDLL("kernel32.dll") -+ modnetapi32 = windows.NewLazySystemDLL("netapi32.dll") -+ modntdll = windows.NewLazySystemDLL("ntdll.dll") -+ modoffreg = windows.NewLazySystemDLL("offreg.dll") - -- procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") -- procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") -- procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") -- procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") -+ procLogonUserW = modadvapi32.NewProc("LogonUserW") -+ procBfSetupFilter = modbindfltapi.NewProc("BfSetupFilter") -+ procCM_Get_DevNode_PropertyW = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW") -+ procCM_Get_Device_ID_ListA = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA") -+ procCM_Get_Device_ID_List_SizeA = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA") -+ procCM_Locate_DevNodeW = modcfgmgr32.NewProc("CM_Locate_DevNodeW") - procSetJobCompartmentId = modiphlpapi.NewProc("SetJobCompartmentId") -- procSearchPathW = modkernel32.NewProc("SearchPathW") -+ procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") -+ procCopyFileW = modkernel32.NewProc("CopyFileW") -+ procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") - procCreateRemoteThread = modkernel32.NewProc("CreateRemoteThread") -+ procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") - procIsProcessInJob = modkernel32.NewProc("IsProcessInJob") -- procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") -- procOpenJobObjectW = modkernel32.NewProc("OpenJobObjectW") -- procSetIoRateControlInformationJobObject = modkernel32.NewProc("SetIoRateControlInformationJobObject") -- procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject") -- procNtOpenJobObject = modntdll.NewProc("NtOpenJobObject") -- procNtCreateJobObject = modntdll.NewProc("NtCreateJobObject") -- procLogonUserW = modadvapi32.NewProc("LogonUserW") - procLocalAlloc = modkernel32.NewProc("LocalAlloc") - procLocalFree = modkernel32.NewProc("LocalFree") -- procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") -- procGetActiveProcessorCount = modkernel32.NewProc("GetActiveProcessorCount") -- procCM_Get_Device_ID_List_SizeA = modcfgmgr32.NewProc("CM_Get_Device_ID_List_SizeA") -- procCM_Get_Device_ID_ListA = modcfgmgr32.NewProc("CM_Get_Device_ID_ListA") -- procCM_Locate_DevNodeW = modcfgmgr32.NewProc("CM_Locate_DevNodeW") -- procCM_Get_DevNode_PropertyW = modcfgmgr32.NewProc("CM_Get_DevNode_PropertyW") -+ procOpenJobObjectW = modkernel32.NewProc("OpenJobObjectW") -+ procQueryInformationJobObject = modkernel32.NewProc("QueryInformationJobObject") -+ procQueryIoRateControlInformationJobObject = modkernel32.NewProc("QueryIoRateControlInformationJobObject") -+ procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") -+ procSearchPathW = modkernel32.NewProc("SearchPathW") -+ procSetIoRateControlInformationJobObject = modkernel32.NewProc("SetIoRateControlInformationJobObject") -+ procNetLocalGroupAddMembers = modnetapi32.NewProc("NetLocalGroupAddMembers") -+ procNetLocalGroupGetInfo = modnetapi32.NewProc("NetLocalGroupGetInfo") -+ procNetUserAdd = modnetapi32.NewProc("NetUserAdd") -+ procNetUserDel = modnetapi32.NewProc("NetUserDel") - procNtCreateFile = modntdll.NewProc("NtCreateFile") -- procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") -+ procNtCreateJobObject = modntdll.NewProc("NtCreateJobObject") - procNtOpenDirectoryObject = modntdll.NewProc("NtOpenDirectoryObject") -+ procNtOpenJobObject = modntdll.NewProc("NtOpenJobObject") - procNtQueryDirectoryObject = modntdll.NewProc("NtQueryDirectoryObject") -+ procNtQueryInformationProcess = modntdll.NewProc("NtQueryInformationProcess") -+ procNtQuerySystemInformation = modntdll.NewProc("NtQuerySystemInformation") -+ procNtSetInformationFile = modntdll.NewProc("NtSetInformationFile") - procRtlNtStatusToDosError = modntdll.NewProc("RtlNtStatusToDosError") -+ procORCloseHive = modoffreg.NewProc("ORCloseHive") -+ procORCreateHive = modoffreg.NewProc("ORCreateHive") -+ procORSaveHive = modoffreg.NewProc("ORSaveHive") - ) - --func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) { -- r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0) -+func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) { -+ r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token))) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+func BfSetupFilter(jobHandle windows.Handle, flags uint32, virtRootPath *uint16, virtTargetPath *uint16, virtExceptions **uint16, virtExceptionPathCount uint32) (hr error) { -+ hr = procBfSetupFilter.Find() -+ if hr != nil { -+ return -+ } -+ r0, _, _ := syscall.Syscall6(procBfSetupFilter.Addr(), 6, uintptr(jobHandle), uintptr(flags), uintptr(unsafe.Pointer(virtRootPath)), uintptr(unsafe.Pointer(virtTargetPath)), uintptr(unsafe.Pointer(virtExceptions)), uintptr(virtExceptionPathCount)) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -84,13 +111,8 @@ func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Han - return - } - --func ClosePseudoConsole(hpc windows.Handle) { -- syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0) -- return --} -- --func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) { -- r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0) -+func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) { -+ r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags)) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -100,135 +122,99 @@ func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) { - return - } - --func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) { -- r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) -- status = uint32(r0) -- return --} -- --func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) { -- r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0) -- if r0 != 0 { -- win32Err = syscall.Errno(r0) -+func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags uint32) (hr error) { -+ r0, _, _ := syscall.Syscall6(procCM_Get_Device_ID_ListA.Addr(), 4, uintptr(unsafe.Pointer(pszFilter)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(uFlags), 0, 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff -+ } -+ hr = syscall.Errno(r0) - } - return - } - --func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) { -- r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath))) -- size = uint32(r0) -- if size == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -+func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) { -+ r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags)) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff - } -+ hr = syscall.Errno(r0) - } - return - } - --func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) { -- r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0) -- handle = windows.Handle(r0) -- if handle == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -+func CMLocateDevNode(pdnDevInst *uint32, pDeviceID string, uFlags uint32) (hr error) { -+ var _p0 *uint16 -+ _p0, hr = syscall.UTF16PtrFromString(pDeviceID) -+ if hr != nil { -+ return - } -- return -+ return _CMLocateDevNode(pdnDevInst, _p0, uFlags) - } - --func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) { -- r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result))) -- if r1 == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -+func _CMLocateDevNode(pdnDevInst *uint32, pDeviceID *uint16, uFlags uint32) (hr error) { -+ r0, _, _ := syscall.Syscall(procCM_Locate_DevNodeW.Addr(), 3, uintptr(unsafe.Pointer(pdnDevInst)), uintptr(unsafe.Pointer(pDeviceID)), uintptr(uFlags)) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff - } -+ hr = syscall.Errno(r0) - } - return - } - --func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) { -- r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0) -- if r1 == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -+func SetJobCompartmentId(handle windows.Handle, compartmentId uint32) (win32Err error) { -+ r0, _, _ := syscall.Syscall(procSetJobCompartmentId.Addr(), 2, uintptr(handle), uintptr(compartmentId), 0) -+ if r0 != 0 { -+ win32Err = syscall.Errno(r0) - } - return - } - --func OpenJobObject(desiredAccess uint32, inheritHandle bool, lpName *uint16) (handle windows.Handle, err error) { -- var _p0 uint32 -- if inheritHandle { -- _p0 = 1 -- } else { -- _p0 = 0 -- } -- r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(lpName))) -- handle = windows.Handle(r0) -- if handle == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -- } -+func ClosePseudoConsole(hpc windows.Handle) { -+ syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(hpc), 0, 0) - return - } - --func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) { -- r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0) -- ret = uint32(r0) -- if ret == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -+func CopyFileW(existingFileName *uint16, newFileName *uint16, failIfExists int32) (err error) { -+ r1, _, e1 := syscall.Syscall(procCopyFileW.Addr(), 3, uintptr(unsafe.Pointer(existingFileName)), uintptr(unsafe.Pointer(newFileName)), uintptr(failIfExists)) -+ if r1 == 0 { -+ err = errnoErr(e1) - } - return - } - --func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) { -- r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0) -- ret = uint32(r0) -- if ret == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -+func createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) { -+ r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(hInput), uintptr(hOutput), uintptr(dwFlags), uintptr(unsafe.Pointer(hpcon)), 0) -+ if int32(r0) < 0 { -+ if r0&0x1fff0000 == 0x00070000 { -+ r0 &= 0xffff - } -+ hr = syscall.Errno(r0) - } - return - } - --func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) { -- r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes))) -- status = uint32(r0) -+func CreateRemoteThread(process windows.Handle, sa *windows.SecurityAttributes, stackSize uint32, startAddr uintptr, parameter uintptr, creationFlags uint32, threadID *uint32) (handle windows.Handle, err error) { -+ r0, _, e1 := syscall.Syscall9(procCreateRemoteThread.Addr(), 7, uintptr(process), uintptr(unsafe.Pointer(sa)), uintptr(stackSize), uintptr(startAddr), uintptr(parameter), uintptr(creationFlags), uintptr(unsafe.Pointer(threadID)), 0, 0) -+ handle = windows.Handle(r0) -+ if handle == 0 { -+ err = errnoErr(e1) -+ } - return - } - --func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) { -- r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes))) -- status = uint32(r0) -+func GetActiveProcessorCount(groupNumber uint16) (amount uint32) { -+ r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) -+ amount = uint32(r0) - return - } - --func LogonUser(username *uint16, domain *uint16, password *uint16, logonType uint32, logonProvider uint32, token *windows.Token) (err error) { -- r1, _, e1 := syscall.Syscall6(procLogonUserW.Addr(), 6, uintptr(unsafe.Pointer(username)), uintptr(unsafe.Pointer(domain)), uintptr(unsafe.Pointer(password)), uintptr(logonType), uintptr(logonProvider), uintptr(unsafe.Pointer(token))) -+func IsProcessInJob(procHandle windows.Handle, jobHandle windows.Handle, result *int32) (err error) { -+ r1, _, e1 := syscall.Syscall(procIsProcessInJob.Addr(), 3, uintptr(procHandle), uintptr(jobHandle), uintptr(unsafe.Pointer(result))) - if r1 == 0 { -- if e1 != 0 { -- err = errnoErr(e1) -- } else { -- err = syscall.EINVAL -- } -+ err = errnoErr(e1) - } - return - } -@@ -244,31 +230,34 @@ func LocalFree(ptr uintptr) { - return - } - --func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) { -- r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0) -- status = uint32(r0) -+func OpenJobObject(desiredAccess uint32, inheritHandle int32, lpName *uint16) (handle windows.Handle, err error) { -+ r0, _, e1 := syscall.Syscall(procOpenJobObjectW.Addr(), 3, uintptr(desiredAccess), uintptr(inheritHandle), uintptr(unsafe.Pointer(lpName))) -+ handle = windows.Handle(r0) -+ if handle == 0 { -+ err = errnoErr(e1) -+ } - return - } - --func GetActiveProcessorCount(groupNumber uint16) (amount uint32) { -- r0, _, _ := syscall.Syscall(procGetActiveProcessorCount.Addr(), 1, uintptr(groupNumber), 0, 0) -- amount = uint32(r0) -+func QueryInformationJobObject(jobHandle windows.Handle, infoClass uint32, jobObjectInfo unsafe.Pointer, jobObjectInformationLength uint32, lpReturnLength *uint32) (err error) { -+ r1, _, e1 := syscall.Syscall6(procQueryInformationJobObject.Addr(), 5, uintptr(jobHandle), uintptr(infoClass), uintptr(jobObjectInfo), uintptr(jobObjectInformationLength), uintptr(unsafe.Pointer(lpReturnLength)), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } - return - } - --func CMGetDeviceIDListSize(pulLen *uint32, pszFilter *byte, uFlags uint32) (hr error) { -- r0, _, _ := syscall.Syscall(procCM_Get_Device_ID_List_SizeA.Addr(), 3, uintptr(unsafe.Pointer(pulLen)), uintptr(unsafe.Pointer(pszFilter)), uintptr(uFlags)) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -+func QueryIoRateControlInformationJobObject(jobHandle windows.Handle, volumeName *uint16, ioRateControlInfo **JOBOBJECT_IO_RATE_CONTROL_INFORMATION, infoBlockCount *uint32) (ret uint32, err error) { -+ r0, _, e1 := syscall.Syscall6(procQueryIoRateControlInformationJobObject.Addr(), 4, uintptr(jobHandle), uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(ioRateControlInfo)), uintptr(unsafe.Pointer(infoBlockCount)), 0, 0) -+ ret = uint32(r0) -+ if ret == 0 { -+ err = errnoErr(e1) - } - return - } - --func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags uint32) (hr error) { -- r0, _, _ := syscall.Syscall6(procCM_Get_Device_ID_ListA.Addr(), 4, uintptr(unsafe.Pointer(pszFilter)), uintptr(unsafe.Pointer(buffer)), uintptr(bufferLen), uintptr(uFlags), 0, 0) -+func resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) { -+ r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(hPc), uintptr(size), 0) - if int32(r0) < 0 { - if r0&0x1fff0000 == 0x00070000 { - r0 &= 0xffff -@@ -278,33 +267,52 @@ func CMGetDeviceIDList(pszFilter *byte, buffer *byte, bufferLen uint32, uFlags u - return - } - --func CMLocateDevNode(pdnDevInst *uint32, pDeviceID string, uFlags uint32) (hr error) { -- var _p0 *uint16 -- _p0, hr = syscall.UTF16PtrFromString(pDeviceID) -- if hr != nil { -- return -+func SearchPath(lpPath *uint16, lpFileName *uint16, lpExtension *uint16, nBufferLength uint32, lpBuffer *uint16, lpFilePath *uint16) (size uint32, err error) { -+ r0, _, e1 := syscall.Syscall6(procSearchPathW.Addr(), 6, uintptr(unsafe.Pointer(lpPath)), uintptr(unsafe.Pointer(lpFileName)), uintptr(unsafe.Pointer(lpExtension)), uintptr(nBufferLength), uintptr(unsafe.Pointer(lpBuffer)), uintptr(unsafe.Pointer(lpFilePath))) -+ size = uint32(r0) -+ if size == 0 { -+ err = errnoErr(e1) - } -- return _CMLocateDevNode(pdnDevInst, _p0, uFlags) -+ return - } - --func _CMLocateDevNode(pdnDevInst *uint32, pDeviceID *uint16, uFlags uint32) (hr error) { -- r0, _, _ := syscall.Syscall(procCM_Locate_DevNodeW.Addr(), 3, uintptr(unsafe.Pointer(pdnDevInst)), uintptr(unsafe.Pointer(pDeviceID)), uintptr(uFlags)) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -+func SetIoRateControlInformationJobObject(jobHandle windows.Handle, ioRateControlInfo *JOBOBJECT_IO_RATE_CONTROL_INFORMATION) (ret uint32, err error) { -+ r0, _, e1 := syscall.Syscall(procSetIoRateControlInformationJobObject.Addr(), 2, uintptr(jobHandle), uintptr(unsafe.Pointer(ioRateControlInfo)), 0) -+ ret = uint32(r0) -+ if ret == 0 { -+ err = errnoErr(e1) - } - return - } - --func CMGetDevNodeProperty(dnDevInst uint32, propertyKey *DevPropKey, propertyType *uint32, propertyBuffer *uint16, propertyBufferSize *uint32, uFlags uint32) (hr error) { -- r0, _, _ := syscall.Syscall6(procCM_Get_DevNode_PropertyW.Addr(), 6, uintptr(dnDevInst), uintptr(unsafe.Pointer(propertyKey)), uintptr(unsafe.Pointer(propertyType)), uintptr(unsafe.Pointer(propertyBuffer)), uintptr(unsafe.Pointer(propertyBufferSize)), uintptr(uFlags)) -- if int32(r0) < 0 { -- if r0&0x1fff0000 == 0x00070000 { -- r0 &= 0xffff -- } -- hr = syscall.Errno(r0) -+func netLocalGroupAddMembers(serverName *uint16, groupName *uint16, level uint32, buf *byte, totalEntries uint32) (status error) { -+ r0, _, _ := syscall.Syscall6(procNetLocalGroupAddMembers.Addr(), 5, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(totalEntries), 0) -+ if r0 != 0 { -+ status = syscall.Errno(r0) -+ } -+ return -+} -+ -+func netLocalGroupGetInfo(serverName *uint16, groupName *uint16, level uint32, bufptr **byte) (status error) { -+ r0, _, _ := syscall.Syscall6(procNetLocalGroupGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(groupName)), uintptr(level), uintptr(unsafe.Pointer(bufptr)), 0, 0) -+ if r0 != 0 { -+ status = syscall.Errno(r0) -+ } -+ return -+} -+ -+func netUserAdd(serverName *uint16, level uint32, buf *byte, parm_err *uint32) (status error) { -+ r0, _, _ := syscall.Syscall6(procNetUserAdd.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(level), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(parm_err)), 0, 0) -+ if r0 != 0 { -+ status = syscall.Errno(r0) -+ } -+ return -+} -+ -+func netUserDel(serverName *uint16, username *uint16) (status error) { -+ r0, _, _ := syscall.Syscall(procNetUserDel.Addr(), 2, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(username)), 0) -+ if r0 != 0 { -+ status = syscall.Errno(r0) - } - return - } -@@ -315,8 +323,8 @@ func NtCreateFile(handle *uintptr, accessMask uint32, oa *ObjectAttributes, iosb - return - } - --func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) { -- r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0) -+func NtCreateJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) { -+ r0, _, _ := syscall.Syscall(procNtCreateJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes))) - status = uint32(r0) - return - } -@@ -327,24 +335,44 @@ func NtOpenDirectoryObject(handle *uintptr, accessMask uint32, oa *ObjectAttribu - return - } - -+func NtOpenJobObject(jobHandle *windows.Handle, desiredAccess uint32, objAttributes *ObjectAttributes) (status uint32) { -+ r0, _, _ := syscall.Syscall(procNtOpenJobObject.Addr(), 3, uintptr(unsafe.Pointer(jobHandle)), uintptr(desiredAccess), uintptr(unsafe.Pointer(objAttributes))) -+ status = uint32(r0) -+ return -+} -+ - func NtQueryDirectoryObject(handle uintptr, buffer *byte, length uint32, singleEntry bool, restartScan bool, context *uint32, returnLength *uint32) (status uint32) { - var _p0 uint32 - if singleEntry { - _p0 = 1 -- } else { -- _p0 = 0 - } - var _p1 uint32 - if restartScan { - _p1 = 1 -- } else { -- _p1 = 0 - } - r0, _, _ := syscall.Syscall9(procNtQueryDirectoryObject.Addr(), 7, uintptr(handle), uintptr(unsafe.Pointer(buffer)), uintptr(length), uintptr(_p0), uintptr(_p1), uintptr(unsafe.Pointer(context)), uintptr(unsafe.Pointer(returnLength)), 0, 0) - status = uint32(r0) - return - } - -+func NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) { -+ r0, _, _ := syscall.Syscall6(procNtQueryInformationProcess.Addr(), 5, uintptr(processHandle), uintptr(processInfoClass), uintptr(processInfo), uintptr(processInfoLength), uintptr(unsafe.Pointer(returnLength)), 0) -+ status = uint32(r0) -+ return -+} -+ -+func NtQuerySystemInformation(systemInfoClass int, systemInformation unsafe.Pointer, systemInfoLength uint32, returnLength *uint32) (status uint32) { -+ r0, _, _ := syscall.Syscall6(procNtQuerySystemInformation.Addr(), 4, uintptr(systemInfoClass), uintptr(systemInformation), uintptr(systemInfoLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) -+ status = uint32(r0) -+ return -+} -+ -+func NtSetInformationFile(handle uintptr, iosb *IOStatusBlock, information uintptr, length uint32, class uint32) (status uint32) { -+ r0, _, _ := syscall.Syscall6(procNtSetInformationFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(iosb)), uintptr(information), uintptr(length), uintptr(class), 0) -+ status = uint32(r0) -+ return -+} -+ - func RtlNtStatusToDosError(status uint32) (winerr error) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosError.Addr(), 1, uintptr(status), 0, 0) - if r0 != 0 { -@@ -352,3 +380,36 @@ func RtlNtStatusToDosError(status uint32) (winerr error) { - } - return - } -+ -+func ORCloseHive(key syscall.Handle) (regerrno error) { -+ r0, _, _ := syscall.Syscall(procORCloseHive.Addr(), 1, uintptr(key), 0, 0) -+ if r0 != 0 { -+ regerrno = syscall.Errno(r0) -+ } -+ return -+} -+ -+func ORCreateHive(key *syscall.Handle) (regerrno error) { -+ r0, _, _ := syscall.Syscall(procORCreateHive.Addr(), 1, uintptr(unsafe.Pointer(key)), 0, 0) -+ if r0 != 0 { -+ regerrno = syscall.Errno(r0) -+ } -+ return -+} -+ -+func ORSaveHive(key syscall.Handle, file string, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) { -+ var _p0 *uint16 -+ _p0, regerrno = syscall.UTF16PtrFromString(file) -+ if regerrno != nil { -+ return -+ } -+ return _ORSaveHive(key, _p0, OsMajorVersion, OsMinorVersion) -+} -+ -+func _ORSaveHive(key syscall.Handle, file *uint16, OsMajorVersion uint32, OsMinorVersion uint32) (regerrno error) { -+ r0, _, _ := syscall.Syscall6(procORSaveHive.Addr(), 4, uintptr(key), uintptr(unsafe.Pointer(file)), uintptr(OsMajorVersion), uintptr(OsMinorVersion), 0, 0) -+ if r0 != 0 { -+ regerrno = syscall.Errno(r0) -+ } -+ return -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/layer.go b/vendor/github.com/Microsoft/hcsshim/layer.go -index 89161637..afd1ddd0 100644 ---- a/vendor/github.com/Microsoft/hcsshim/layer.go -+++ b/vendor/github.com/Microsoft/hcsshim/layer.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -@@ -68,6 +70,9 @@ func ProcessUtilityVMImage(path string) error { - func UnprepareLayer(info DriverInfo, layerId string) error { - return wclayer.UnprepareLayer(context.Background(), layerPath(&info, layerId)) - } -+func ConvertToBaseLayer(path string) error { -+ return wclayer.ConvertToBaseLayer(context.Background(), path) -+} - - type DriverInfo struct { - Flavour int -diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go b/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go -index 3ab3bcd8..6c435d2b 100644 ---- a/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go -@@ -45,6 +45,15 @@ func Build() uint16 { - return Get().Build - } - --func (osv OSVersion) ToString() string { -+// String returns the OSVersion formatted as a string. It implements the -+// [fmt.Stringer] interface. -+func (osv OSVersion) String() string { - return fmt.Sprintf("%d.%d.%d", osv.MajorVersion, osv.MinorVersion, osv.Build) - } -+ -+// ToString returns the OSVersion formatted as a string. -+// -+// Deprecated: use [OSVersion.String]. -+func (osv OSVersion) ToString() string { -+ return osv.String() -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go b/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go -new file mode 100644 -index 00000000..f8d411ad ---- /dev/null -+++ b/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go -@@ -0,0 +1,35 @@ -+package osversion -+ -+// List of stable ABI compliant ltsc releases -+// Note: List must be sorted in ascending order -+var compatLTSCReleases = []uint16{ -+ V21H2Server, -+} -+ -+// CheckHostAndContainerCompat checks if given host and container -+// OS versions are compatible. -+// It includes support for stable ABI compliant versions as well. -+// Every release after WS 2022 will support the previous ltsc -+// container image. Stable ABI is in preview mode for windows 11 client. -+// Refer: https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-10#windows-server-host-os-compatibility -+func CheckHostAndContainerCompat(host, ctr OSVersion) bool { -+ // check major minor versions of host and guest -+ if host.MajorVersion != ctr.MajorVersion || -+ host.MinorVersion != ctr.MinorVersion { -+ return false -+ } -+ -+ // If host is < WS 2022, exact version match is required -+ if host.Build < V21H2Server { -+ return host.Build == ctr.Build -+ } -+ -+ var supportedLtscRelease uint16 -+ for i := len(compatLTSCReleases) - 1; i >= 0; i-- { -+ if host.Build >= compatLTSCReleases[i] { -+ supportedLtscRelease = compatLTSCReleases[i] -+ break -+ } -+ } -+ return ctr.Build >= supportedLtscRelease && ctr.Build <= host.Build -+} -diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go b/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go -index 75dce5d8..44636959 100644 ---- a/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go -+++ b/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go -@@ -1,37 +1,63 @@ - package osversion - -+// Windows Client and Server build numbers. -+// -+// See: -+// https://learn.microsoft.com/en-us/windows/release-health/release-information -+// https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info -+// https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information - const ( - // RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server - // 2016 (ltsc2016) and Windows 10 (Anniversary Update). - RS1 = 14393 -+ // V1607 (version 1607, codename "Redstone 1") is an alias for [RS1]. -+ V1607 = RS1 -+ // LTSC2016 (Windows Server 2016) is an alias for [RS1]. -+ LTSC2016 = RS1 - - // RS2 (version 1703, codename "Redstone 2") was a client-only update, and - // corresponds to Windows 10 (Creators Update). - RS2 = 15063 -+ // V1703 (version 1703, codename "Redstone 2") is an alias for [RS2]. -+ V1703 = RS2 - - // RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server - // 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update). - RS3 = 16299 -+ // V1709 (version 1709, codename "Redstone 3") is an alias for [RS3]. -+ V1709 = RS3 - - // RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server - // 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update). - RS4 = 17134 -+ // V1803 (version 1803, codename "Redstone 4") is an alias for [RS4]. -+ V1803 = RS4 - - // RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server - // 2019 (ltsc2019), and Windows 10 (October 2018 Update). - RS5 = 17763 -+ // V1809 (version 1809, codename "Redstone 5") is an alias for [RS5]. -+ V1809 = RS5 -+ // LTSC2019 (Windows Server 2019) is an alias for [RS5]. -+ LTSC2019 = RS5 - -- // V19H1 (version 1903) corresponds to Windows Server 1903 (semi-annual -+ // V19H1 (version 1903, codename 19H1) corresponds to Windows Server 1903 (semi-annual - // channel). - V19H1 = 18362 -+ // V1903 (version 1903) is an alias for [V19H1]. -+ V1903 = V19H1 - -- // V19H2 (version 1909) corresponds to Windows Server 1909 (semi-annual -+ // V19H2 (version 1909, codename 19H2) corresponds to Windows Server 1909 (semi-annual - // channel). - V19H2 = 18363 -+ // V1909 (version 1909) is an alias for [V19H2]. -+ V1909 = V19H2 - -- // V20H1 (version 2004) corresponds to Windows Server 2004 (semi-annual -+ // V20H1 (version 2004, codename 20H1) corresponds to Windows Server 2004 (semi-annual - // channel). - V20H1 = 19041 -+ // V2004 (version 2004) is an alias for [V20H1]. -+ V2004 = V20H1 - - // V20H2 corresponds to Windows Server 20H2 (semi-annual channel). - V20H2 = 19042 -@@ -44,7 +70,15 @@ const ( - - // V21H2Server corresponds to Windows Server 2022 (ltsc2022). - V21H2Server = 20348 -+ // LTSC2022 (Windows Server 2022) is an alias for [V21H2Server] -+ LTSC2022 = V21H2Server - - // V21H2Win11 corresponds to Windows 11 (original release). - V21H2Win11 = 22000 -+ -+ // V22H2Win10 corresponds to Windows 10 (2022 Update). -+ V22H2Win10 = 19045 -+ -+ // V22H2Win11 corresponds to Windows 11 (2022 Update). -+ V22H2Win11 = 22621 - ) -diff --git a/vendor/github.com/Microsoft/hcsshim/process.go b/vendor/github.com/Microsoft/hcsshim/process.go -index 3362c683..44df91cd 100644 ---- a/vendor/github.com/Microsoft/hcsshim/process.go -+++ b/vendor/github.com/Microsoft/hcsshim/process.go -@@ -1,3 +1,5 @@ -+//go:build windows -+ - package hcsshim - - import ( -diff --git a/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go b/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go -index 8bed8485..9b619b6e 100644 ---- a/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go -+++ b/vendor/github.com/Microsoft/hcsshim/zsyscall_windows.go -@@ -1,4 +1,6 @@ --// Code generated mksyscall_windows.exe DO NOT EDIT -+//go:build windows -+ -+// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - - package hcsshim - -@@ -19,6 +21,7 @@ const ( - - var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) -+ errERROR_EINVAL error = syscall.EINVAL - ) - - // errnoErr returns common boxed Errno values, to prevent -@@ -26,7 +29,7 @@ var ( - func errnoErr(e syscall.Errno) error { - switch e { - case 0: -- return nil -+ return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } -diff --git a/vendor/github.com/containerd/containerd/LICENSE b/vendor/github.com/containerd/containerd/LICENSE -new file mode 100644 -index 00000000..584149b6 ---- /dev/null -+++ b/vendor/github.com/containerd/containerd/LICENSE -@@ -0,0 +1,191 @@ -+ -+ Apache License -+ Version 2.0, January 2004 -+ https://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 -+ -+ Copyright The containerd Authors -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ https://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/vendor/github.com/containerd/containerd/NOTICE b/vendor/github.com/containerd/containerd/NOTICE -new file mode 100644 -index 00000000..8915f027 ---- /dev/null -+++ b/vendor/github.com/containerd/containerd/NOTICE -@@ -0,0 +1,16 @@ -+Docker -+Copyright 2012-2015 Docker, Inc. -+ -+This product includes software developed at Docker, Inc. (https://www.docker.com). -+ -+The following is courtesy of our legal counsel: -+ -+ -+Use and transfer of Docker may be subject to certain restrictions by the -+United States and other governments. -+It is your responsibility to ensure that your use and/or transfer does not -+violate applicable laws. -+ -+For more information, please see https://www.bis.doc.gov -+ -+See also https://www.apache.org/dev/crypto.html and/or seek legal counsel. -diff --git a/vendor/github.com/containerd/containerd/errdefs/errors.go b/vendor/github.com/containerd/containerd/errdefs/errors.go -new file mode 100644 -index 00000000..87622559 ---- /dev/null -+++ b/vendor/github.com/containerd/containerd/errdefs/errors.go -@@ -0,0 +1,92 @@ -+/* -+ Copyright The containerd Authors. -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -+*/ -+ -+// Package errdefs defines the common errors used throughout containerd -+// packages. -+// -+// Use with fmt.Errorf to add context to an error. -+// -+// To detect an error class, use the IsXXX functions to tell whether an error -+// is of a certain type. -+// -+// The functions ToGRPC and FromGRPC can be used to map server-side and -+// client-side errors to the correct types. -+package errdefs -+ -+import ( -+ "context" -+ "errors" -+) -+ -+// Definitions of common error types used throughout containerd. All containerd -+// errors returned by most packages will map into one of these errors classes. -+// Packages should return errors of these types when they want to instruct a -+// client to take a particular action. -+// -+// For the most part, we just try to provide local grpc errors. Most conditions -+// map very well to those defined by grpc. -+var ( -+ ErrUnknown = errors.New("unknown") // used internally to represent a missed mapping. -+ ErrInvalidArgument = errors.New("invalid argument") -+ ErrNotFound = errors.New("not found") -+ ErrAlreadyExists = errors.New("already exists") -+ ErrFailedPrecondition = errors.New("failed precondition") -+ ErrUnavailable = errors.New("unavailable") -+ ErrNotImplemented = errors.New("not implemented") // represents not supported and unimplemented -+) -+ -+// IsInvalidArgument returns true if the error is due to an invalid argument -+func IsInvalidArgument(err error) bool { -+ return errors.Is(err, ErrInvalidArgument) -+} -+ -+// IsNotFound returns true if the error is due to a missing object -+func IsNotFound(err error) bool { -+ return errors.Is(err, ErrNotFound) -+} -+ -+// IsAlreadyExists returns true if the error is due to an already existing -+// metadata item -+func IsAlreadyExists(err error) bool { -+ return errors.Is(err, ErrAlreadyExists) -+} -+ -+// IsFailedPrecondition returns true if an operation could not proceed to the -+// lack of a particular condition -+func IsFailedPrecondition(err error) bool { -+ return errors.Is(err, ErrFailedPrecondition) -+} -+ -+// IsUnavailable returns true if the error is due to a resource being unavailable -+func IsUnavailable(err error) bool { -+ return errors.Is(err, ErrUnavailable) -+} -+ -+// IsNotImplemented returns true if the error is due to not being implemented -+func IsNotImplemented(err error) bool { -+ return errors.Is(err, ErrNotImplemented) -+} -+ -+// IsCanceled returns true if the error is due to `context.Canceled`. -+func IsCanceled(err error) bool { -+ return errors.Is(err, context.Canceled) -+} -+ -+// IsDeadlineExceeded returns true if the error is due to -+// `context.DeadlineExceeded`. -+func IsDeadlineExceeded(err error) bool { -+ return errors.Is(err, context.DeadlineExceeded) -+} -diff --git a/vendor/github.com/containerd/containerd/errdefs/grpc.go b/vendor/github.com/containerd/containerd/errdefs/grpc.go -new file mode 100644 -index 00000000..7a9b33e0 ---- /dev/null -+++ b/vendor/github.com/containerd/containerd/errdefs/grpc.go -@@ -0,0 +1,147 @@ -+/* -+ Copyright The containerd Authors. -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -+*/ -+ -+package errdefs -+ -+import ( -+ "context" -+ "fmt" -+ "strings" -+ -+ "google.golang.org/grpc/codes" -+ "google.golang.org/grpc/status" -+) -+ -+// ToGRPC will attempt to map the backend containerd error into a grpc error, -+// using the original error message as a description. -+// -+// Further information may be extracted from certain errors depending on their -+// type. -+// -+// If the error is unmapped, the original error will be returned to be handled -+// by the regular grpc error handling stack. -+func ToGRPC(err error) error { -+ if err == nil { -+ return nil -+ } -+ -+ if isGRPCError(err) { -+ // error has already been mapped to grpc -+ return err -+ } -+ -+ switch { -+ case IsInvalidArgument(err): -+ return status.Errorf(codes.InvalidArgument, err.Error()) -+ case IsNotFound(err): -+ return status.Errorf(codes.NotFound, err.Error()) -+ case IsAlreadyExists(err): -+ return status.Errorf(codes.AlreadyExists, err.Error()) -+ case IsFailedPrecondition(err): -+ return status.Errorf(codes.FailedPrecondition, err.Error()) -+ case IsUnavailable(err): -+ return status.Errorf(codes.Unavailable, err.Error()) -+ case IsNotImplemented(err): -+ return status.Errorf(codes.Unimplemented, err.Error()) -+ case IsCanceled(err): -+ return status.Errorf(codes.Canceled, err.Error()) -+ case IsDeadlineExceeded(err): -+ return status.Errorf(codes.DeadlineExceeded, err.Error()) -+ } -+ -+ return err -+} -+ -+// ToGRPCf maps the error to grpc error codes, assembling the formatting string -+// and combining it with the target error string. -+// -+// This is equivalent to errdefs.ToGRPC(fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), err)) -+func ToGRPCf(err error, format string, args ...interface{}) error { -+ return ToGRPC(fmt.Errorf("%s: %w", fmt.Sprintf(format, args...), err)) -+} -+ -+// FromGRPC returns the underlying error from a grpc service based on the grpc error code -+func FromGRPC(err error) error { -+ if err == nil { -+ return nil -+ } -+ -+ var cls error // divide these into error classes, becomes the cause -+ -+ switch code(err) { -+ case codes.InvalidArgument: -+ cls = ErrInvalidArgument -+ case codes.AlreadyExists: -+ cls = ErrAlreadyExists -+ case codes.NotFound: -+ cls = ErrNotFound -+ case codes.Unavailable: -+ cls = ErrUnavailable -+ case codes.FailedPrecondition: -+ cls = ErrFailedPrecondition -+ case codes.Unimplemented: -+ cls = ErrNotImplemented -+ case codes.Canceled: -+ cls = context.Canceled -+ case codes.DeadlineExceeded: -+ cls = context.DeadlineExceeded -+ default: -+ cls = ErrUnknown -+ } -+ -+ msg := rebaseMessage(cls, err) -+ if msg != "" { -+ err = fmt.Errorf("%s: %w", msg, cls) -+ } else { -+ err = cls -+ } -+ -+ return err -+} -+ -+// rebaseMessage removes the repeats for an error at the end of an error -+// string. This will happen when taking an error over grpc then remapping it. -+// -+// Effectively, we just remove the string of cls from the end of err if it -+// appears there. -+func rebaseMessage(cls error, err error) string { -+ desc := errDesc(err) -+ clss := cls.Error() -+ if desc == clss { -+ return "" -+ } -+ -+ return strings.TrimSuffix(desc, ": "+clss) -+} -+ -+func isGRPCError(err error) bool { -+ _, ok := status.FromError(err) -+ return ok -+} -+ -+func code(err error) codes.Code { -+ if s, ok := status.FromError(err); ok { -+ return s.Code() -+ } -+ return codes.Unknown -+} -+ -+func errDesc(err error) string { -+ if s, ok := status.FromError(err); ok { -+ return s.Message() -+ } -+ return err.Error() -+} -diff --git a/vendor/github.com/golang/protobuf/AUTHORS b/vendor/github.com/golang/protobuf/AUTHORS -new file mode 100644 -index 00000000..15167cd7 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/AUTHORS -@@ -0,0 +1,3 @@ -+# This source code refers to The Go Authors for copyright purposes. -+# The master list of authors is in the main Go distribution, -+# visible at http://tip.golang.org/AUTHORS. -diff --git a/vendor/github.com/golang/protobuf/CONTRIBUTORS b/vendor/github.com/golang/protobuf/CONTRIBUTORS -new file mode 100644 -index 00000000..1c4577e9 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/CONTRIBUTORS -@@ -0,0 +1,3 @@ -+# This source code was written by the Go contributors. -+# The master list of contributors is in the main Go distribution, -+# visible at http://tip.golang.org/CONTRIBUTORS. -diff --git a/vendor/github.com/golang/protobuf/LICENSE b/vendor/github.com/golang/protobuf/LICENSE -new file mode 100644 -index 00000000..0f646931 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/LICENSE -@@ -0,0 +1,28 @@ -+Copyright 2010 The Go Authors. All rights reserved. -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are -+met: -+ -+ * Redistributions of source code must retain the above copyright -+notice, this list of conditions and the following disclaimer. -+ * Redistributions in binary form must reproduce the above -+copyright notice, this list of conditions and the following disclaimer -+in the documentation and/or other materials provided with the -+distribution. -+ * Neither the name of Google Inc. nor the names of its -+contributors may be used to endorse or promote products derived from -+this software without specific prior written permission. -+ -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -diff --git a/vendor/github.com/golang/protobuf/proto/buffer.go b/vendor/github.com/golang/protobuf/proto/buffer.go -new file mode 100644 -index 00000000..e810e6fe ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/buffer.go -@@ -0,0 +1,324 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "errors" -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/prototext" -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/runtime/protoimpl" -+) -+ -+const ( -+ WireVarint = 0 -+ WireFixed32 = 5 -+ WireFixed64 = 1 -+ WireBytes = 2 -+ WireStartGroup = 3 -+ WireEndGroup = 4 -+) -+ -+// EncodeVarint returns the varint encoded bytes of v. -+func EncodeVarint(v uint64) []byte { -+ return protowire.AppendVarint(nil, v) -+} -+ -+// SizeVarint returns the length of the varint encoded bytes of v. -+// This is equal to len(EncodeVarint(v)). -+func SizeVarint(v uint64) int { -+ return protowire.SizeVarint(v) -+} -+ -+// DecodeVarint parses a varint encoded integer from b, -+// returning the integer value and the length of the varint. -+// It returns (0, 0) if there is a parse error. -+func DecodeVarint(b []byte) (uint64, int) { -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, 0 -+ } -+ return v, n -+} -+ -+// Buffer is a buffer for encoding and decoding the protobuf wire format. -+// It may be reused between invocations to reduce memory usage. -+type Buffer struct { -+ buf []byte -+ idx int -+ deterministic bool -+} -+ -+// NewBuffer allocates a new Buffer initialized with buf, -+// where the contents of buf are considered the unread portion of the buffer. -+func NewBuffer(buf []byte) *Buffer { -+ return &Buffer{buf: buf} -+} -+ -+// SetDeterministic specifies whether to use deterministic serialization. -+// -+// Deterministic serialization guarantees that for a given binary, equal -+// messages will always be serialized to the same bytes. This implies: -+// -+// - Repeated serialization of a message will return the same bytes. -+// - Different processes of the same binary (which may be executing on -+// different machines) will serialize equal messages to the same bytes. -+// -+// Note that the deterministic serialization is NOT canonical across -+// languages. It is not guaranteed to remain stable over time. It is unstable -+// across different builds with schema changes due to unknown fields. -+// Users who need canonical serialization (e.g., persistent storage in a -+// canonical form, fingerprinting, etc.) should define their own -+// canonicalization specification and implement their own serializer rather -+// than relying on this API. -+// -+// If deterministic serialization is requested, map entries will be sorted -+// by keys in lexographical order. This is an implementation detail and -+// subject to change. -+func (b *Buffer) SetDeterministic(deterministic bool) { -+ b.deterministic = deterministic -+} -+ -+// SetBuf sets buf as the internal buffer, -+// where the contents of buf are considered the unread portion of the buffer. -+func (b *Buffer) SetBuf(buf []byte) { -+ b.buf = buf -+ b.idx = 0 -+} -+ -+// Reset clears the internal buffer of all written and unread data. -+func (b *Buffer) Reset() { -+ b.buf = b.buf[:0] -+ b.idx = 0 -+} -+ -+// Bytes returns the internal buffer. -+func (b *Buffer) Bytes() []byte { -+ return b.buf -+} -+ -+// Unread returns the unread portion of the buffer. -+func (b *Buffer) Unread() []byte { -+ return b.buf[b.idx:] -+} -+ -+// Marshal appends the wire-format encoding of m to the buffer. -+func (b *Buffer) Marshal(m Message) error { -+ var err error -+ b.buf, err = marshalAppend(b.buf, m, b.deterministic) -+ return err -+} -+ -+// Unmarshal parses the wire-format message in the buffer and -+// places the decoded results in m. -+// It does not reset m before unmarshaling. -+func (b *Buffer) Unmarshal(m Message) error { -+ err := UnmarshalMerge(b.Unread(), m) -+ b.idx = len(b.buf) -+ return err -+} -+ -+type unknownFields struct{ XXX_unrecognized protoimpl.UnknownFields } -+ -+func (m *unknownFields) String() string { panic("not implemented") } -+func (m *unknownFields) Reset() { panic("not implemented") } -+func (m *unknownFields) ProtoMessage() { panic("not implemented") } -+ -+// DebugPrint dumps the encoded bytes of b with a header and footer including s -+// to stdout. This is only intended for debugging. -+func (*Buffer) DebugPrint(s string, b []byte) { -+ m := MessageReflect(new(unknownFields)) -+ m.SetUnknown(b) -+ b, _ = prototext.MarshalOptions{AllowPartial: true, Indent: "\t"}.Marshal(m.Interface()) -+ fmt.Printf("==== %s ====\n%s==== %s ====\n", s, b, s) -+} -+ -+// EncodeVarint appends an unsigned varint encoding to the buffer. -+func (b *Buffer) EncodeVarint(v uint64) error { -+ b.buf = protowire.AppendVarint(b.buf, v) -+ return nil -+} -+ -+// EncodeZigzag32 appends a 32-bit zig-zag varint encoding to the buffer. -+func (b *Buffer) EncodeZigzag32(v uint64) error { -+ return b.EncodeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) -+} -+ -+// EncodeZigzag64 appends a 64-bit zig-zag varint encoding to the buffer. -+func (b *Buffer) EncodeZigzag64(v uint64) error { -+ return b.EncodeVarint(uint64((uint64(v) << 1) ^ uint64((int64(v) >> 63)))) -+} -+ -+// EncodeFixed32 appends a 32-bit little-endian integer to the buffer. -+func (b *Buffer) EncodeFixed32(v uint64) error { -+ b.buf = protowire.AppendFixed32(b.buf, uint32(v)) -+ return nil -+} -+ -+// EncodeFixed64 appends a 64-bit little-endian integer to the buffer. -+func (b *Buffer) EncodeFixed64(v uint64) error { -+ b.buf = protowire.AppendFixed64(b.buf, uint64(v)) -+ return nil -+} -+ -+// EncodeRawBytes appends a length-prefixed raw bytes to the buffer. -+func (b *Buffer) EncodeRawBytes(v []byte) error { -+ b.buf = protowire.AppendBytes(b.buf, v) -+ return nil -+} -+ -+// EncodeStringBytes appends a length-prefixed raw bytes to the buffer. -+// It does not validate whether v contains valid UTF-8. -+func (b *Buffer) EncodeStringBytes(v string) error { -+ b.buf = protowire.AppendString(b.buf, v) -+ return nil -+} -+ -+// EncodeMessage appends a length-prefixed encoded message to the buffer. -+func (b *Buffer) EncodeMessage(m Message) error { -+ var err error -+ b.buf = protowire.AppendVarint(b.buf, uint64(Size(m))) -+ b.buf, err = marshalAppend(b.buf, m, b.deterministic) -+ return err -+} -+ -+// DecodeVarint consumes an encoded unsigned varint from the buffer. -+func (b *Buffer) DecodeVarint() (uint64, error) { -+ v, n := protowire.ConsumeVarint(b.buf[b.idx:]) -+ if n < 0 { -+ return 0, protowire.ParseError(n) -+ } -+ b.idx += n -+ return uint64(v), nil -+} -+ -+// DecodeZigzag32 consumes an encoded 32-bit zig-zag varint from the buffer. -+func (b *Buffer) DecodeZigzag32() (uint64, error) { -+ v, err := b.DecodeVarint() -+ if err != nil { -+ return 0, err -+ } -+ return uint64((uint32(v) >> 1) ^ uint32((int32(v&1)<<31)>>31)), nil -+} -+ -+// DecodeZigzag64 consumes an encoded 64-bit zig-zag varint from the buffer. -+func (b *Buffer) DecodeZigzag64() (uint64, error) { -+ v, err := b.DecodeVarint() -+ if err != nil { -+ return 0, err -+ } -+ return uint64((uint64(v) >> 1) ^ uint64((int64(v&1)<<63)>>63)), nil -+} -+ -+// DecodeFixed32 consumes a 32-bit little-endian integer from the buffer. -+func (b *Buffer) DecodeFixed32() (uint64, error) { -+ v, n := protowire.ConsumeFixed32(b.buf[b.idx:]) -+ if n < 0 { -+ return 0, protowire.ParseError(n) -+ } -+ b.idx += n -+ return uint64(v), nil -+} -+ -+// DecodeFixed64 consumes a 64-bit little-endian integer from the buffer. -+func (b *Buffer) DecodeFixed64() (uint64, error) { -+ v, n := protowire.ConsumeFixed64(b.buf[b.idx:]) -+ if n < 0 { -+ return 0, protowire.ParseError(n) -+ } -+ b.idx += n -+ return uint64(v), nil -+} -+ -+// DecodeRawBytes consumes a length-prefixed raw bytes from the buffer. -+// If alloc is specified, it returns a copy the raw bytes -+// rather than a sub-slice of the buffer. -+func (b *Buffer) DecodeRawBytes(alloc bool) ([]byte, error) { -+ v, n := protowire.ConsumeBytes(b.buf[b.idx:]) -+ if n < 0 { -+ return nil, protowire.ParseError(n) -+ } -+ b.idx += n -+ if alloc { -+ v = append([]byte(nil), v...) -+ } -+ return v, nil -+} -+ -+// DecodeStringBytes consumes a length-prefixed raw bytes from the buffer. -+// It does not validate whether the raw bytes contain valid UTF-8. -+func (b *Buffer) DecodeStringBytes() (string, error) { -+ v, n := protowire.ConsumeString(b.buf[b.idx:]) -+ if n < 0 { -+ return "", protowire.ParseError(n) -+ } -+ b.idx += n -+ return v, nil -+} -+ -+// DecodeMessage consumes a length-prefixed message from the buffer. -+// It does not reset m before unmarshaling. -+func (b *Buffer) DecodeMessage(m Message) error { -+ v, err := b.DecodeRawBytes(false) -+ if err != nil { -+ return err -+ } -+ return UnmarshalMerge(v, m) -+} -+ -+// DecodeGroup consumes a message group from the buffer. -+// It assumes that the start group marker has already been consumed and -+// consumes all bytes until (and including the end group marker). -+// It does not reset m before unmarshaling. -+func (b *Buffer) DecodeGroup(m Message) error { -+ v, n, err := consumeGroup(b.buf[b.idx:]) -+ if err != nil { -+ return err -+ } -+ b.idx += n -+ return UnmarshalMerge(v, m) -+} -+ -+// consumeGroup parses b until it finds an end group marker, returning -+// the raw bytes of the message (excluding the end group marker) and the -+// the total length of the message (including the end group marker). -+func consumeGroup(b []byte) ([]byte, int, error) { -+ b0 := b -+ depth := 1 // assume this follows a start group marker -+ for { -+ _, wtyp, tagLen := protowire.ConsumeTag(b) -+ if tagLen < 0 { -+ return nil, 0, protowire.ParseError(tagLen) -+ } -+ b = b[tagLen:] -+ -+ var valLen int -+ switch wtyp { -+ case protowire.VarintType: -+ _, valLen = protowire.ConsumeVarint(b) -+ case protowire.Fixed32Type: -+ _, valLen = protowire.ConsumeFixed32(b) -+ case protowire.Fixed64Type: -+ _, valLen = protowire.ConsumeFixed64(b) -+ case protowire.BytesType: -+ _, valLen = protowire.ConsumeBytes(b) -+ case protowire.StartGroupType: -+ depth++ -+ case protowire.EndGroupType: -+ depth-- -+ default: -+ return nil, 0, errors.New("proto: cannot parse reserved wire type") -+ } -+ if valLen < 0 { -+ return nil, 0, protowire.ParseError(valLen) -+ } -+ b = b[valLen:] -+ -+ if depth == 0 { -+ return b0[:len(b0)-len(b)-tagLen], len(b0) - len(b), nil -+ } -+ } -+} -diff --git a/vendor/github.com/golang/protobuf/proto/defaults.go b/vendor/github.com/golang/protobuf/proto/defaults.go -new file mode 100644 -index 00000000..d399bf06 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/defaults.go -@@ -0,0 +1,63 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// SetDefaults sets unpopulated scalar fields to their default values. -+// Fields within a oneof are not set even if they have a default value. -+// SetDefaults is recursively called upon any populated message fields. -+func SetDefaults(m Message) { -+ if m != nil { -+ setDefaults(MessageReflect(m)) -+ } -+} -+ -+func setDefaults(m protoreflect.Message) { -+ fds := m.Descriptor().Fields() -+ for i := 0; i < fds.Len(); i++ { -+ fd := fds.Get(i) -+ if !m.Has(fd) { -+ if fd.HasDefault() && fd.ContainingOneof() == nil { -+ v := fd.Default() -+ if fd.Kind() == protoreflect.BytesKind { -+ v = protoreflect.ValueOf(append([]byte(nil), v.Bytes()...)) // copy the default bytes -+ } -+ m.Set(fd, v) -+ } -+ continue -+ } -+ } -+ -+ m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ switch { -+ // Handle singular message. -+ case fd.Cardinality() != protoreflect.Repeated: -+ if fd.Message() != nil { -+ setDefaults(m.Get(fd).Message()) -+ } -+ // Handle list of messages. -+ case fd.IsList(): -+ if fd.Message() != nil { -+ ls := m.Get(fd).List() -+ for i := 0; i < ls.Len(); i++ { -+ setDefaults(ls.Get(i).Message()) -+ } -+ } -+ // Handle map of messages. -+ case fd.IsMap(): -+ if fd.MapValue().Message() != nil { -+ ms := m.Get(fd).Map() -+ ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { -+ setDefaults(v.Message()) -+ return true -+ }) -+ } -+ } -+ return true -+ }) -+} -diff --git a/vendor/github.com/golang/protobuf/proto/deprecated.go b/vendor/github.com/golang/protobuf/proto/deprecated.go -new file mode 100644 -index 00000000..e8db57e0 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/deprecated.go -@@ -0,0 +1,113 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "encoding/json" -+ "errors" -+ "fmt" -+ "strconv" -+ -+ protoV2 "google.golang.org/protobuf/proto" -+) -+ -+var ( -+ // Deprecated: No longer returned. -+ ErrNil = errors.New("proto: Marshal called with nil") -+ -+ // Deprecated: No longer returned. -+ ErrTooLarge = errors.New("proto: message encodes to over 2 GB") -+ -+ // Deprecated: No longer returned. -+ ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") -+) -+ -+// Deprecated: Do not use. -+type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 } -+ -+// Deprecated: Do not use. -+func GetStats() Stats { return Stats{} } -+ -+// Deprecated: Do not use. -+func MarshalMessageSet(interface{}) ([]byte, error) { -+ return nil, errors.New("proto: not implemented") -+} -+ -+// Deprecated: Do not use. -+func UnmarshalMessageSet([]byte, interface{}) error { -+ return errors.New("proto: not implemented") -+} -+ -+// Deprecated: Do not use. -+func MarshalMessageSetJSON(interface{}) ([]byte, error) { -+ return nil, errors.New("proto: not implemented") -+} -+ -+// Deprecated: Do not use. -+func UnmarshalMessageSetJSON([]byte, interface{}) error { -+ return errors.New("proto: not implemented") -+} -+ -+// Deprecated: Do not use. -+func RegisterMessageSetType(Message, int32, string) {} -+ -+// Deprecated: Do not use. -+func EnumName(m map[int32]string, v int32) string { -+ s, ok := m[v] -+ if ok { -+ return s -+ } -+ return strconv.Itoa(int(v)) -+} -+ -+// Deprecated: Do not use. -+func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { -+ if data[0] == '"' { -+ // New style: enums are strings. -+ var repr string -+ if err := json.Unmarshal(data, &repr); err != nil { -+ return -1, err -+ } -+ val, ok := m[repr] -+ if !ok { -+ return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) -+ } -+ return val, nil -+ } -+ // Old style: enums are ints. -+ var val int32 -+ if err := json.Unmarshal(data, &val); err != nil { -+ return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) -+ } -+ return val, nil -+} -+ -+// Deprecated: Do not use; this type existed for intenal-use only. -+type InternalMessageInfo struct{} -+ -+// Deprecated: Do not use; this method existed for intenal-use only. -+func (*InternalMessageInfo) DiscardUnknown(m Message) { -+ DiscardUnknown(m) -+} -+ -+// Deprecated: Do not use; this method existed for intenal-use only. -+func (*InternalMessageInfo) Marshal(b []byte, m Message, deterministic bool) ([]byte, error) { -+ return protoV2.MarshalOptions{Deterministic: deterministic}.MarshalAppend(b, MessageV2(m)) -+} -+ -+// Deprecated: Do not use; this method existed for intenal-use only. -+func (*InternalMessageInfo) Merge(dst, src Message) { -+ protoV2.Merge(MessageV2(dst), MessageV2(src)) -+} -+ -+// Deprecated: Do not use; this method existed for intenal-use only. -+func (*InternalMessageInfo) Size(m Message) int { -+ return protoV2.Size(MessageV2(m)) -+} -+ -+// Deprecated: Do not use; this method existed for intenal-use only. -+func (*InternalMessageInfo) Unmarshal(m Message, b []byte) error { -+ return protoV2.UnmarshalOptions{Merge: true}.Unmarshal(b, MessageV2(m)) -+} -diff --git a/vendor/github.com/golang/protobuf/proto/discard.go b/vendor/github.com/golang/protobuf/proto/discard.go -new file mode 100644 -index 00000000..2187e877 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/discard.go -@@ -0,0 +1,58 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// DiscardUnknown recursively discards all unknown fields from this message -+// and all embedded messages. -+// -+// When unmarshaling a message with unrecognized fields, the tags and values -+// of such fields are preserved in the Message. This allows a later call to -+// marshal to be able to produce a message that continues to have those -+// unrecognized fields. To avoid this, DiscardUnknown is used to -+// explicitly clear the unknown fields after unmarshaling. -+func DiscardUnknown(m Message) { -+ if m != nil { -+ discardUnknown(MessageReflect(m)) -+ } -+} -+ -+func discardUnknown(m protoreflect.Message) { -+ m.Range(func(fd protoreflect.FieldDescriptor, val protoreflect.Value) bool { -+ switch { -+ // Handle singular message. -+ case fd.Cardinality() != protoreflect.Repeated: -+ if fd.Message() != nil { -+ discardUnknown(m.Get(fd).Message()) -+ } -+ // Handle list of messages. -+ case fd.IsList(): -+ if fd.Message() != nil { -+ ls := m.Get(fd).List() -+ for i := 0; i < ls.Len(); i++ { -+ discardUnknown(ls.Get(i).Message()) -+ } -+ } -+ // Handle map of messages. -+ case fd.IsMap(): -+ if fd.MapValue().Message() != nil { -+ ms := m.Get(fd).Map() -+ ms.Range(func(_ protoreflect.MapKey, v protoreflect.Value) bool { -+ discardUnknown(v.Message()) -+ return true -+ }) -+ } -+ } -+ return true -+ }) -+ -+ // Discard unknown fields. -+ if len(m.GetUnknown()) > 0 { -+ m.SetUnknown(nil) -+ } -+} -diff --git a/vendor/github.com/golang/protobuf/proto/extensions.go b/vendor/github.com/golang/protobuf/proto/extensions.go -new file mode 100644 -index 00000000..42fc120c ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/extensions.go -@@ -0,0 +1,356 @@ -+// Copyright 2010 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "errors" -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+ "google.golang.org/protobuf/runtime/protoimpl" -+) -+ -+type ( -+ // ExtensionDesc represents an extension descriptor and -+ // is used to interact with an extension field in a message. -+ // -+ // Variables of this type are generated in code by protoc-gen-go. -+ ExtensionDesc = protoimpl.ExtensionInfo -+ -+ // ExtensionRange represents a range of message extensions. -+ // Used in code generated by protoc-gen-go. -+ ExtensionRange = protoiface.ExtensionRangeV1 -+ -+ // Deprecated: Do not use; this is an internal type. -+ Extension = protoimpl.ExtensionFieldV1 -+ -+ // Deprecated: Do not use; this is an internal type. -+ XXX_InternalExtensions = protoimpl.ExtensionFields -+) -+ -+// ErrMissingExtension reports whether the extension was not present. -+var ErrMissingExtension = errors.New("proto: missing extension") -+ -+var errNotExtendable = errors.New("proto: not an extendable proto.Message") -+ -+// HasExtension reports whether the extension field is present in m -+// either as an explicitly populated field or as an unknown field. -+func HasExtension(m Message, xt *ExtensionDesc) (has bool) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return false -+ } -+ -+ // Check whether any populated known field matches the field number. -+ xtd := xt.TypeDescriptor() -+ if isValidExtension(mr.Descriptor(), xtd) { -+ has = mr.Has(xtd) -+ } else { -+ mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { -+ has = int32(fd.Number()) == xt.Field -+ return !has -+ }) -+ } -+ -+ // Check whether any unknown field matches the field number. -+ for b := mr.GetUnknown(); !has && len(b) > 0; { -+ num, _, n := protowire.ConsumeField(b) -+ has = int32(num) == xt.Field -+ b = b[n:] -+ } -+ return has -+} -+ -+// ClearExtension removes the extension field from m -+// either as an explicitly populated field or as an unknown field. -+func ClearExtension(m Message, xt *ExtensionDesc) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return -+ } -+ -+ xtd := xt.TypeDescriptor() -+ if isValidExtension(mr.Descriptor(), xtd) { -+ mr.Clear(xtd) -+ } else { -+ mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { -+ if int32(fd.Number()) == xt.Field { -+ mr.Clear(fd) -+ return false -+ } -+ return true -+ }) -+ } -+ clearUnknown(mr, fieldNum(xt.Field)) -+} -+ -+// ClearAllExtensions clears all extensions from m. -+// This includes populated fields and unknown fields in the extension range. -+func ClearAllExtensions(m Message) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return -+ } -+ -+ mr.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { -+ if fd.IsExtension() { -+ mr.Clear(fd) -+ } -+ return true -+ }) -+ clearUnknown(mr, mr.Descriptor().ExtensionRanges()) -+} -+ -+// GetExtension retrieves a proto2 extended field from m. -+// -+// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil), -+// then GetExtension parses the encoded field and returns a Go value of the specified type. -+// If the field is not present, then the default value is returned (if one is specified), -+// otherwise ErrMissingExtension is reported. -+// -+// If the descriptor is type incomplete (i.e., ExtensionDesc.ExtensionType is nil), -+// then GetExtension returns the raw encoded bytes for the extension field. -+func GetExtension(m Message, xt *ExtensionDesc) (interface{}, error) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { -+ return nil, errNotExtendable -+ } -+ -+ // Retrieve the unknown fields for this extension field. -+ var bo protoreflect.RawFields -+ for bi := mr.GetUnknown(); len(bi) > 0; { -+ num, _, n := protowire.ConsumeField(bi) -+ if int32(num) == xt.Field { -+ bo = append(bo, bi[:n]...) -+ } -+ bi = bi[n:] -+ } -+ -+ // For type incomplete descriptors, only retrieve the unknown fields. -+ if xt.ExtensionType == nil { -+ return []byte(bo), nil -+ } -+ -+ // If the extension field only exists as unknown fields, unmarshal it. -+ // This is rarely done since proto.Unmarshal eagerly unmarshals extensions. -+ xtd := xt.TypeDescriptor() -+ if !isValidExtension(mr.Descriptor(), xtd) { -+ return nil, fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) -+ } -+ if !mr.Has(xtd) && len(bo) > 0 { -+ m2 := mr.New() -+ if err := (proto.UnmarshalOptions{ -+ Resolver: extensionResolver{xt}, -+ }.Unmarshal(bo, m2.Interface())); err != nil { -+ return nil, err -+ } -+ if m2.Has(xtd) { -+ mr.Set(xtd, m2.Get(xtd)) -+ clearUnknown(mr, fieldNum(xt.Field)) -+ } -+ } -+ -+ // Check whether the message has the extension field set or a default. -+ var pv protoreflect.Value -+ switch { -+ case mr.Has(xtd): -+ pv = mr.Get(xtd) -+ case xtd.HasDefault(): -+ pv = xtd.Default() -+ default: -+ return nil, ErrMissingExtension -+ } -+ -+ v := xt.InterfaceOf(pv) -+ rv := reflect.ValueOf(v) -+ if isScalarKind(rv.Kind()) { -+ rv2 := reflect.New(rv.Type()) -+ rv2.Elem().Set(rv) -+ v = rv2.Interface() -+ } -+ return v, nil -+} -+ -+// extensionResolver is a custom extension resolver that stores a single -+// extension type that takes precedence over the global registry. -+type extensionResolver struct{ xt protoreflect.ExtensionType } -+ -+func (r extensionResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { -+ if xtd := r.xt.TypeDescriptor(); xtd.FullName() == field { -+ return r.xt, nil -+ } -+ return protoregistry.GlobalTypes.FindExtensionByName(field) -+} -+ -+func (r extensionResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { -+ if xtd := r.xt.TypeDescriptor(); xtd.ContainingMessage().FullName() == message && xtd.Number() == field { -+ return r.xt, nil -+ } -+ return protoregistry.GlobalTypes.FindExtensionByNumber(message, field) -+} -+ -+// GetExtensions returns a list of the extensions values present in m, -+// corresponding with the provided list of extension descriptors, xts. -+// If an extension is missing in m, the corresponding value is nil. -+func GetExtensions(m Message, xts []*ExtensionDesc) ([]interface{}, error) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return nil, errNotExtendable -+ } -+ -+ vs := make([]interface{}, len(xts)) -+ for i, xt := range xts { -+ v, err := GetExtension(m, xt) -+ if err != nil { -+ if err == ErrMissingExtension { -+ continue -+ } -+ return vs, err -+ } -+ vs[i] = v -+ } -+ return vs, nil -+} -+ -+// SetExtension sets an extension field in m to the provided value. -+func SetExtension(m Message, xt *ExtensionDesc, v interface{}) error { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { -+ return errNotExtendable -+ } -+ -+ rv := reflect.ValueOf(v) -+ if reflect.TypeOf(v) != reflect.TypeOf(xt.ExtensionType) { -+ return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", v, xt.ExtensionType) -+ } -+ if rv.Kind() == reflect.Ptr { -+ if rv.IsNil() { -+ return fmt.Errorf("proto: SetExtension called with nil value of type %T", v) -+ } -+ if isScalarKind(rv.Elem().Kind()) { -+ v = rv.Elem().Interface() -+ } -+ } -+ -+ xtd := xt.TypeDescriptor() -+ if !isValidExtension(mr.Descriptor(), xtd) { -+ return fmt.Errorf("proto: bad extended type; %T does not extend %T", xt.ExtendedType, m) -+ } -+ mr.Set(xtd, xt.ValueOf(v)) -+ clearUnknown(mr, fieldNum(xt.Field)) -+ return nil -+} -+ -+// SetRawExtension inserts b into the unknown fields of m. -+// -+// Deprecated: Use Message.ProtoReflect.SetUnknown instead. -+func SetRawExtension(m Message, fnum int32, b []byte) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return -+ } -+ -+ // Verify that the raw field is valid. -+ for b0 := b; len(b0) > 0; { -+ num, _, n := protowire.ConsumeField(b0) -+ if int32(num) != fnum { -+ panic(fmt.Sprintf("mismatching field number: got %d, want %d", num, fnum)) -+ } -+ b0 = b0[n:] -+ } -+ -+ ClearExtension(m, &ExtensionDesc{Field: fnum}) -+ mr.SetUnknown(append(mr.GetUnknown(), b...)) -+} -+ -+// ExtensionDescs returns a list of extension descriptors found in m, -+// containing descriptors for both populated extension fields in m and -+// also unknown fields of m that are in the extension range. -+// For the later case, an type incomplete descriptor is provided where only -+// the ExtensionDesc.Field field is populated. -+// The order of the extension descriptors is undefined. -+func ExtensionDescs(m Message) ([]*ExtensionDesc, error) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() || mr.Descriptor().ExtensionRanges().Len() == 0 { -+ return nil, errNotExtendable -+ } -+ -+ // Collect a set of known extension descriptors. -+ extDescs := make(map[protoreflect.FieldNumber]*ExtensionDesc) -+ mr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ if fd.IsExtension() { -+ xt := fd.(protoreflect.ExtensionTypeDescriptor) -+ if xd, ok := xt.Type().(*ExtensionDesc); ok { -+ extDescs[fd.Number()] = xd -+ } -+ } -+ return true -+ }) -+ -+ // Collect a set of unknown extension descriptors. -+ extRanges := mr.Descriptor().ExtensionRanges() -+ for b := mr.GetUnknown(); len(b) > 0; { -+ num, _, n := protowire.ConsumeField(b) -+ if extRanges.Has(num) && extDescs[num] == nil { -+ extDescs[num] = nil -+ } -+ b = b[n:] -+ } -+ -+ // Transpose the set of descriptors into a list. -+ var xts []*ExtensionDesc -+ for num, xt := range extDescs { -+ if xt == nil { -+ xt = &ExtensionDesc{Field: int32(num)} -+ } -+ xts = append(xts, xt) -+ } -+ return xts, nil -+} -+ -+// isValidExtension reports whether xtd is a valid extension descriptor for md. -+func isValidExtension(md protoreflect.MessageDescriptor, xtd protoreflect.ExtensionTypeDescriptor) bool { -+ return xtd.ContainingMessage() == md && md.ExtensionRanges().Has(xtd.Number()) -+} -+ -+// isScalarKind reports whether k is a protobuf scalar kind (except bytes). -+// This function exists for historical reasons since the representation of -+// scalars differs between v1 and v2, where v1 uses *T and v2 uses T. -+func isScalarKind(k reflect.Kind) bool { -+ switch k { -+ case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: -+ return true -+ default: -+ return false -+ } -+} -+ -+// clearUnknown removes unknown fields from m where remover.Has reports true. -+func clearUnknown(m protoreflect.Message, remover interface { -+ Has(protoreflect.FieldNumber) bool -+}) { -+ var bo protoreflect.RawFields -+ for bi := m.GetUnknown(); len(bi) > 0; { -+ num, _, n := protowire.ConsumeField(bi) -+ if !remover.Has(num) { -+ bo = append(bo, bi[:n]...) -+ } -+ bi = bi[n:] -+ } -+ if bi := m.GetUnknown(); len(bi) != len(bo) { -+ m.SetUnknown(bo) -+ } -+} -+ -+type fieldNum protoreflect.FieldNumber -+ -+func (n1 fieldNum) Has(n2 protoreflect.FieldNumber) bool { -+ return protoreflect.FieldNumber(n1) == n2 -+} -diff --git a/vendor/github.com/golang/protobuf/proto/properties.go b/vendor/github.com/golang/protobuf/proto/properties.go -new file mode 100644 -index 00000000..dcdc2202 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/properties.go -@@ -0,0 +1,306 @@ -+// Copyright 2010 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "fmt" -+ "reflect" -+ "strconv" -+ "strings" -+ "sync" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoimpl" -+) -+ -+// StructProperties represents protocol buffer type information for a -+// generated protobuf message in the open-struct API. -+// -+// Deprecated: Do not use. -+type StructProperties struct { -+ // Prop are the properties for each field. -+ // -+ // Fields belonging to a oneof are stored in OneofTypes instead, with a -+ // single Properties representing the parent oneof held here. -+ // -+ // The order of Prop matches the order of fields in the Go struct. -+ // Struct fields that are not related to protobufs have a "XXX_" prefix -+ // in the Properties.Name and must be ignored by the user. -+ Prop []*Properties -+ -+ // OneofTypes contains information about the oneof fields in this message. -+ // It is keyed by the protobuf field name. -+ OneofTypes map[string]*OneofProperties -+} -+ -+// Properties represents the type information for a protobuf message field. -+// -+// Deprecated: Do not use. -+type Properties struct { -+ // Name is a placeholder name with little meaningful semantic value. -+ // If the name has an "XXX_" prefix, the entire Properties must be ignored. -+ Name string -+ // OrigName is the protobuf field name or oneof name. -+ OrigName string -+ // JSONName is the JSON name for the protobuf field. -+ JSONName string -+ // Enum is a placeholder name for enums. -+ // For historical reasons, this is neither the Go name for the enum, -+ // nor the protobuf name for the enum. -+ Enum string // Deprecated: Do not use. -+ // Weak contains the full name of the weakly referenced message. -+ Weak string -+ // Wire is a string representation of the wire type. -+ Wire string -+ // WireType is the protobuf wire type for the field. -+ WireType int -+ // Tag is the protobuf field number. -+ Tag int -+ // Required reports whether this is a required field. -+ Required bool -+ // Optional reports whether this is a optional field. -+ Optional bool -+ // Repeated reports whether this is a repeated field. -+ Repeated bool -+ // Packed reports whether this is a packed repeated field of scalars. -+ Packed bool -+ // Proto3 reports whether this field operates under the proto3 syntax. -+ Proto3 bool -+ // Oneof reports whether this field belongs within a oneof. -+ Oneof bool -+ -+ // Default is the default value in string form. -+ Default string -+ // HasDefault reports whether the field has a default value. -+ HasDefault bool -+ -+ // MapKeyProp is the properties for the key field for a map field. -+ MapKeyProp *Properties -+ // MapValProp is the properties for the value field for a map field. -+ MapValProp *Properties -+} -+ -+// OneofProperties represents the type information for a protobuf oneof. -+// -+// Deprecated: Do not use. -+type OneofProperties struct { -+ // Type is a pointer to the generated wrapper type for the field value. -+ // This is nil for messages that are not in the open-struct API. -+ Type reflect.Type -+ // Field is the index into StructProperties.Prop for the containing oneof. -+ Field int -+ // Prop is the properties for the field. -+ Prop *Properties -+} -+ -+// String formats the properties in the protobuf struct field tag style. -+func (p *Properties) String() string { -+ s := p.Wire -+ s += "," + strconv.Itoa(p.Tag) -+ if p.Required { -+ s += ",req" -+ } -+ if p.Optional { -+ s += ",opt" -+ } -+ if p.Repeated { -+ s += ",rep" -+ } -+ if p.Packed { -+ s += ",packed" -+ } -+ s += ",name=" + p.OrigName -+ if p.JSONName != "" { -+ s += ",json=" + p.JSONName -+ } -+ if len(p.Enum) > 0 { -+ s += ",enum=" + p.Enum -+ } -+ if len(p.Weak) > 0 { -+ s += ",weak=" + p.Weak -+ } -+ if p.Proto3 { -+ s += ",proto3" -+ } -+ if p.Oneof { -+ s += ",oneof" -+ } -+ if p.HasDefault { -+ s += ",def=" + p.Default -+ } -+ return s -+} -+ -+// Parse populates p by parsing a string in the protobuf struct field tag style. -+func (p *Properties) Parse(tag string) { -+ // For example: "bytes,49,opt,name=foo,def=hello!" -+ for len(tag) > 0 { -+ i := strings.IndexByte(tag, ',') -+ if i < 0 { -+ i = len(tag) -+ } -+ switch s := tag[:i]; { -+ case strings.HasPrefix(s, "name="): -+ p.OrigName = s[len("name="):] -+ case strings.HasPrefix(s, "json="): -+ p.JSONName = s[len("json="):] -+ case strings.HasPrefix(s, "enum="): -+ p.Enum = s[len("enum="):] -+ case strings.HasPrefix(s, "weak="): -+ p.Weak = s[len("weak="):] -+ case strings.Trim(s, "0123456789") == "": -+ n, _ := strconv.ParseUint(s, 10, 32) -+ p.Tag = int(n) -+ case s == "opt": -+ p.Optional = true -+ case s == "req": -+ p.Required = true -+ case s == "rep": -+ p.Repeated = true -+ case s == "varint" || s == "zigzag32" || s == "zigzag64": -+ p.Wire = s -+ p.WireType = WireVarint -+ case s == "fixed32": -+ p.Wire = s -+ p.WireType = WireFixed32 -+ case s == "fixed64": -+ p.Wire = s -+ p.WireType = WireFixed64 -+ case s == "bytes": -+ p.Wire = s -+ p.WireType = WireBytes -+ case s == "group": -+ p.Wire = s -+ p.WireType = WireStartGroup -+ case s == "packed": -+ p.Packed = true -+ case s == "proto3": -+ p.Proto3 = true -+ case s == "oneof": -+ p.Oneof = true -+ case strings.HasPrefix(s, "def="): -+ // The default tag is special in that everything afterwards is the -+ // default regardless of the presence of commas. -+ p.HasDefault = true -+ p.Default, i = tag[len("def="):], len(tag) -+ } -+ tag = strings.TrimPrefix(tag[i:], ",") -+ } -+} -+ -+// Init populates the properties from a protocol buffer struct tag. -+// -+// Deprecated: Do not use. -+func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { -+ p.Name = name -+ p.OrigName = name -+ if tag == "" { -+ return -+ } -+ p.Parse(tag) -+ -+ if typ != nil && typ.Kind() == reflect.Map { -+ p.MapKeyProp = new(Properties) -+ p.MapKeyProp.Init(nil, "Key", f.Tag.Get("protobuf_key"), nil) -+ p.MapValProp = new(Properties) -+ p.MapValProp.Init(nil, "Value", f.Tag.Get("protobuf_val"), nil) -+ } -+} -+ -+var propertiesCache sync.Map // map[reflect.Type]*StructProperties -+ -+// GetProperties returns the list of properties for the type represented by t, -+// which must be a generated protocol buffer message in the open-struct API, -+// where protobuf message fields are represented by exported Go struct fields. -+// -+// Deprecated: Use protobuf reflection instead. -+func GetProperties(t reflect.Type) *StructProperties { -+ if p, ok := propertiesCache.Load(t); ok { -+ return p.(*StructProperties) -+ } -+ p, _ := propertiesCache.LoadOrStore(t, newProperties(t)) -+ return p.(*StructProperties) -+} -+ -+func newProperties(t reflect.Type) *StructProperties { -+ if t.Kind() != reflect.Struct { -+ panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) -+ } -+ -+ var hasOneof bool -+ prop := new(StructProperties) -+ -+ // Construct a list of properties for each field in the struct. -+ for i := 0; i < t.NumField(); i++ { -+ p := new(Properties) -+ f := t.Field(i) -+ tagField := f.Tag.Get("protobuf") -+ p.Init(f.Type, f.Name, tagField, &f) -+ -+ tagOneof := f.Tag.Get("protobuf_oneof") -+ if tagOneof != "" { -+ hasOneof = true -+ p.OrigName = tagOneof -+ } -+ -+ // Rename unrelated struct fields with the "XXX_" prefix since so much -+ // user code simply checks for this to exclude special fields. -+ if tagField == "" && tagOneof == "" && !strings.HasPrefix(p.Name, "XXX_") { -+ p.Name = "XXX_" + p.Name -+ p.OrigName = "XXX_" + p.OrigName -+ } else if p.Weak != "" { -+ p.Name = p.OrigName // avoid possible "XXX_" prefix on weak field -+ } -+ -+ prop.Prop = append(prop.Prop, p) -+ } -+ -+ // Construct a mapping of oneof field names to properties. -+ if hasOneof { -+ var oneofWrappers []interface{} -+ if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[3].Interface().([]interface{}) -+ } -+ if fn, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ oneofWrappers = fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0].Interface().([]interface{}) -+ } -+ if m, ok := reflect.Zero(reflect.PtrTo(t)).Interface().(protoreflect.ProtoMessage); ok { -+ if m, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *protoimpl.MessageInfo }); ok { -+ oneofWrappers = m.ProtoMessageInfo().OneofWrappers -+ } -+ } -+ -+ prop.OneofTypes = make(map[string]*OneofProperties) -+ for _, wrapper := range oneofWrappers { -+ p := &OneofProperties{ -+ Type: reflect.ValueOf(wrapper).Type(), // *T -+ Prop: new(Properties), -+ } -+ f := p.Type.Elem().Field(0) -+ p.Prop.Name = f.Name -+ p.Prop.Parse(f.Tag.Get("protobuf")) -+ -+ // Determine the struct field that contains this oneof. -+ // Each wrapper is assignable to exactly one parent field. -+ var foundOneof bool -+ for i := 0; i < t.NumField() && !foundOneof; i++ { -+ if p.Type.AssignableTo(t.Field(i).Type) { -+ p.Field = i -+ foundOneof = true -+ } -+ } -+ if !foundOneof { -+ panic(fmt.Sprintf("%v is not a generated message in the open-struct API", t)) -+ } -+ prop.OneofTypes[p.Prop.OrigName] = p -+ } -+ } -+ -+ return prop -+} -+ -+func (sp *StructProperties) Len() int { return len(sp.Prop) } -+func (sp *StructProperties) Less(i, j int) bool { return false } -+func (sp *StructProperties) Swap(i, j int) { return } -diff --git a/vendor/github.com/golang/protobuf/proto/proto.go b/vendor/github.com/golang/protobuf/proto/proto.go -new file mode 100644 -index 00000000..5aee89c3 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/proto.go -@@ -0,0 +1,167 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package proto provides functionality for handling protocol buffer messages. -+// In particular, it provides marshaling and unmarshaling between a protobuf -+// message and the binary wire format. -+// -+// See https://developers.google.com/protocol-buffers/docs/gotutorial for -+// more information. -+// -+// Deprecated: Use the "google.golang.org/protobuf/proto" package instead. -+package proto -+ -+import ( -+ protoV2 "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+ "google.golang.org/protobuf/runtime/protoimpl" -+) -+ -+const ( -+ ProtoPackageIsVersion1 = true -+ ProtoPackageIsVersion2 = true -+ ProtoPackageIsVersion3 = true -+ ProtoPackageIsVersion4 = true -+) -+ -+// GeneratedEnum is any enum type generated by protoc-gen-go -+// which is a named int32 kind. -+// This type exists for documentation purposes. -+type GeneratedEnum interface{} -+ -+// GeneratedMessage is any message type generated by protoc-gen-go -+// which is a pointer to a named struct kind. -+// This type exists for documentation purposes. -+type GeneratedMessage interface{} -+ -+// Message is a protocol buffer message. -+// -+// This is the v1 version of the message interface and is marginally better -+// than an empty interface as it lacks any method to programatically interact -+// with the contents of the message. -+// -+// A v2 message is declared in "google.golang.org/protobuf/proto".Message and -+// exposes protobuf reflection as a first-class feature of the interface. -+// -+// To convert a v1 message to a v2 message, use the MessageV2 function. -+// To convert a v2 message to a v1 message, use the MessageV1 function. -+type Message = protoiface.MessageV1 -+ -+// MessageV1 converts either a v1 or v2 message to a v1 message. -+// It returns nil if m is nil. -+func MessageV1(m GeneratedMessage) protoiface.MessageV1 { -+ return protoimpl.X.ProtoMessageV1Of(m) -+} -+ -+// MessageV2 converts either a v1 or v2 message to a v2 message. -+// It returns nil if m is nil. -+func MessageV2(m GeneratedMessage) protoV2.Message { -+ return protoimpl.X.ProtoMessageV2Of(m) -+} -+ -+// MessageReflect returns a reflective view for a message. -+// It returns nil if m is nil. -+func MessageReflect(m Message) protoreflect.Message { -+ return protoimpl.X.MessageOf(m) -+} -+ -+// Marshaler is implemented by messages that can marshal themselves. -+// This interface is used by the following functions: Size, Marshal, -+// Buffer.Marshal, and Buffer.EncodeMessage. -+// -+// Deprecated: Do not implement. -+type Marshaler interface { -+ // Marshal formats the encoded bytes of the message. -+ // It should be deterministic and emit valid protobuf wire data. -+ // The caller takes ownership of the returned buffer. -+ Marshal() ([]byte, error) -+} -+ -+// Unmarshaler is implemented by messages that can unmarshal themselves. -+// This interface is used by the following functions: Unmarshal, UnmarshalMerge, -+// Buffer.Unmarshal, Buffer.DecodeMessage, and Buffer.DecodeGroup. -+// -+// Deprecated: Do not implement. -+type Unmarshaler interface { -+ // Unmarshal parses the encoded bytes of the protobuf wire input. -+ // The provided buffer is only valid for during method call. -+ // It should not reset the receiver message. -+ Unmarshal([]byte) error -+} -+ -+// Merger is implemented by messages that can merge themselves. -+// This interface is used by the following functions: Clone and Merge. -+// -+// Deprecated: Do not implement. -+type Merger interface { -+ // Merge merges the contents of src into the receiver message. -+ // It clones all data structures in src such that it aliases no mutable -+ // memory referenced by src. -+ Merge(src Message) -+} -+ -+// RequiredNotSetError is an error type returned when -+// marshaling or unmarshaling a message with missing required fields. -+type RequiredNotSetError struct { -+ err error -+} -+ -+func (e *RequiredNotSetError) Error() string { -+ if e.err != nil { -+ return e.err.Error() -+ } -+ return "proto: required field not set" -+} -+func (e *RequiredNotSetError) RequiredNotSet() bool { -+ return true -+} -+ -+func checkRequiredNotSet(m protoV2.Message) error { -+ if err := protoV2.CheckInitialized(m); err != nil { -+ return &RequiredNotSetError{err: err} -+ } -+ return nil -+} -+ -+// Clone returns a deep copy of src. -+func Clone(src Message) Message { -+ return MessageV1(protoV2.Clone(MessageV2(src))) -+} -+ -+// Merge merges src into dst, which must be messages of the same type. -+// -+// Populated scalar fields in src are copied to dst, while populated -+// singular messages in src are merged into dst by recursively calling Merge. -+// The elements of every list field in src is appended to the corresponded -+// list fields in dst. The entries of every map field in src is copied into -+// the corresponding map field in dst, possibly replacing existing entries. -+// The unknown fields of src are appended to the unknown fields of dst. -+func Merge(dst, src Message) { -+ protoV2.Merge(MessageV2(dst), MessageV2(src)) -+} -+ -+// Equal reports whether two messages are equal. -+// If two messages marshal to the same bytes under deterministic serialization, -+// then Equal is guaranteed to report true. -+// -+// Two messages are equal if they are the same protobuf message type, -+// have the same set of populated known and extension field values, -+// and the same set of unknown fields values. -+// -+// Scalar values are compared with the equivalent of the == operator in Go, -+// except bytes values which are compared using bytes.Equal and -+// floating point values which specially treat NaNs as equal. -+// Message values are compared by recursively calling Equal. -+// Lists are equal if each element value is also equal. -+// Maps are equal if they have the same set of keys, where the pair of values -+// for each key is also equal. -+func Equal(x, y Message) bool { -+ return protoV2.Equal(MessageV2(x), MessageV2(y)) -+} -+ -+func isMessageSet(md protoreflect.MessageDescriptor) bool { -+ ms, ok := md.(interface{ IsMessageSet() bool }) -+ return ok && ms.IsMessageSet() -+} -diff --git a/vendor/github.com/golang/protobuf/proto/registry.go b/vendor/github.com/golang/protobuf/proto/registry.go -new file mode 100644 -index 00000000..066b4323 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/registry.go -@@ -0,0 +1,317 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "bytes" -+ "compress/gzip" -+ "fmt" -+ "io/ioutil" -+ "reflect" -+ "strings" -+ "sync" -+ -+ "google.golang.org/protobuf/reflect/protodesc" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoimpl" -+) -+ -+// filePath is the path to the proto source file. -+type filePath = string // e.g., "google/protobuf/descriptor.proto" -+ -+// fileDescGZIP is the compressed contents of the encoded FileDescriptorProto. -+type fileDescGZIP = []byte -+ -+var fileCache sync.Map // map[filePath]fileDescGZIP -+ -+// RegisterFile is called from generated code to register the compressed -+// FileDescriptorProto with the file path for a proto source file. -+// -+// Deprecated: Use protoregistry.GlobalFiles.RegisterFile instead. -+func RegisterFile(s filePath, d fileDescGZIP) { -+ // Decompress the descriptor. -+ zr, err := gzip.NewReader(bytes.NewReader(d)) -+ if err != nil { -+ panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) -+ } -+ b, err := ioutil.ReadAll(zr) -+ if err != nil { -+ panic(fmt.Sprintf("proto: invalid compressed file descriptor: %v", err)) -+ } -+ -+ // Construct a protoreflect.FileDescriptor from the raw descriptor. -+ // Note that DescBuilder.Build automatically registers the constructed -+ // file descriptor with the v2 registry. -+ protoimpl.DescBuilder{RawDescriptor: b}.Build() -+ -+ // Locally cache the raw descriptor form for the file. -+ fileCache.Store(s, d) -+} -+ -+// FileDescriptor returns the compressed FileDescriptorProto given the file path -+// for a proto source file. It returns nil if not found. -+// -+// Deprecated: Use protoregistry.GlobalFiles.FindFileByPath instead. -+func FileDescriptor(s filePath) fileDescGZIP { -+ if v, ok := fileCache.Load(s); ok { -+ return v.(fileDescGZIP) -+ } -+ -+ // Find the descriptor in the v2 registry. -+ var b []byte -+ if fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil { -+ b, _ = Marshal(protodesc.ToFileDescriptorProto(fd)) -+ } -+ -+ // Locally cache the raw descriptor form for the file. -+ if len(b) > 0 { -+ v, _ := fileCache.LoadOrStore(s, protoimpl.X.CompressGZIP(b)) -+ return v.(fileDescGZIP) -+ } -+ return nil -+} -+ -+// enumName is the name of an enum. For historical reasons, the enum name is -+// neither the full Go name nor the full protobuf name of the enum. -+// The name is the dot-separated combination of just the proto package that the -+// enum is declared within followed by the Go type name of the generated enum. -+type enumName = string // e.g., "my.proto.package.GoMessage_GoEnum" -+ -+// enumsByName maps enum values by name to their numeric counterpart. -+type enumsByName = map[string]int32 -+ -+// enumsByNumber maps enum values by number to their name counterpart. -+type enumsByNumber = map[int32]string -+ -+var enumCache sync.Map // map[enumName]enumsByName -+var numFilesCache sync.Map // map[protoreflect.FullName]int -+ -+// RegisterEnum is called from the generated code to register the mapping of -+// enum value names to enum numbers for the enum identified by s. -+// -+// Deprecated: Use protoregistry.GlobalTypes.RegisterEnum instead. -+func RegisterEnum(s enumName, _ enumsByNumber, m enumsByName) { -+ if _, ok := enumCache.Load(s); ok { -+ panic("proto: duplicate enum registered: " + s) -+ } -+ enumCache.Store(s, m) -+ -+ // This does not forward registration to the v2 registry since this API -+ // lacks sufficient information to construct a complete v2 enum descriptor. -+} -+ -+// EnumValueMap returns the mapping from enum value names to enum numbers for -+// the enum of the given name. It returns nil if not found. -+// -+// Deprecated: Use protoregistry.GlobalTypes.FindEnumByName instead. -+func EnumValueMap(s enumName) enumsByName { -+ if v, ok := enumCache.Load(s); ok { -+ return v.(enumsByName) -+ } -+ -+ // Check whether the cache is stale. If the number of files in the current -+ // package differs, then it means that some enums may have been recently -+ // registered upstream that we do not know about. -+ var protoPkg protoreflect.FullName -+ if i := strings.LastIndexByte(s, '.'); i >= 0 { -+ protoPkg = protoreflect.FullName(s[:i]) -+ } -+ v, _ := numFilesCache.Load(protoPkg) -+ numFiles, _ := v.(int) -+ if protoregistry.GlobalFiles.NumFilesByPackage(protoPkg) == numFiles { -+ return nil // cache is up-to-date; was not found earlier -+ } -+ -+ // Update the enum cache for all enums declared in the given proto package. -+ numFiles = 0 -+ protoregistry.GlobalFiles.RangeFilesByPackage(protoPkg, func(fd protoreflect.FileDescriptor) bool { -+ walkEnums(fd, func(ed protoreflect.EnumDescriptor) { -+ name := protoimpl.X.LegacyEnumName(ed) -+ if _, ok := enumCache.Load(name); !ok { -+ m := make(enumsByName) -+ evs := ed.Values() -+ for i := evs.Len() - 1; i >= 0; i-- { -+ ev := evs.Get(i) -+ m[string(ev.Name())] = int32(ev.Number()) -+ } -+ enumCache.LoadOrStore(name, m) -+ } -+ }) -+ numFiles++ -+ return true -+ }) -+ numFilesCache.Store(protoPkg, numFiles) -+ -+ // Check cache again for enum map. -+ if v, ok := enumCache.Load(s); ok { -+ return v.(enumsByName) -+ } -+ return nil -+} -+ -+// walkEnums recursively walks all enums declared in d. -+func walkEnums(d interface { -+ Enums() protoreflect.EnumDescriptors -+ Messages() protoreflect.MessageDescriptors -+}, f func(protoreflect.EnumDescriptor)) { -+ eds := d.Enums() -+ for i := eds.Len() - 1; i >= 0; i-- { -+ f(eds.Get(i)) -+ } -+ mds := d.Messages() -+ for i := mds.Len() - 1; i >= 0; i-- { -+ walkEnums(mds.Get(i), f) -+ } -+} -+ -+// messageName is the full name of protobuf message. -+type messageName = string -+ -+var messageTypeCache sync.Map // map[messageName]reflect.Type -+ -+// RegisterType is called from generated code to register the message Go type -+// for a message of the given name. -+// -+// Deprecated: Use protoregistry.GlobalTypes.RegisterMessage instead. -+func RegisterType(m Message, s messageName) { -+ mt := protoimpl.X.LegacyMessageTypeOf(m, protoreflect.FullName(s)) -+ if err := protoregistry.GlobalTypes.RegisterMessage(mt); err != nil { -+ panic(err) -+ } -+ messageTypeCache.Store(s, reflect.TypeOf(m)) -+} -+ -+// RegisterMapType is called from generated code to register the Go map type -+// for a protobuf message representing a map entry. -+// -+// Deprecated: Do not use. -+func RegisterMapType(m interface{}, s messageName) { -+ t := reflect.TypeOf(m) -+ if t.Kind() != reflect.Map { -+ panic(fmt.Sprintf("invalid map kind: %v", t)) -+ } -+ if _, ok := messageTypeCache.Load(s); ok { -+ panic(fmt.Errorf("proto: duplicate proto message registered: %s", s)) -+ } -+ messageTypeCache.Store(s, t) -+} -+ -+// MessageType returns the message type for a named message. -+// It returns nil if not found. -+// -+// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead. -+func MessageType(s messageName) reflect.Type { -+ if v, ok := messageTypeCache.Load(s); ok { -+ return v.(reflect.Type) -+ } -+ -+ // Derive the message type from the v2 registry. -+ var t reflect.Type -+ if mt, _ := protoregistry.GlobalTypes.FindMessageByName(protoreflect.FullName(s)); mt != nil { -+ t = messageGoType(mt) -+ } -+ -+ // If we could not get a concrete type, it is possible that it is a -+ // pseudo-message for a map entry. -+ if t == nil { -+ d, _ := protoregistry.GlobalFiles.FindDescriptorByName(protoreflect.FullName(s)) -+ if md, _ := d.(protoreflect.MessageDescriptor); md != nil && md.IsMapEntry() { -+ kt := goTypeForField(md.Fields().ByNumber(1)) -+ vt := goTypeForField(md.Fields().ByNumber(2)) -+ t = reflect.MapOf(kt, vt) -+ } -+ } -+ -+ // Locally cache the message type for the given name. -+ if t != nil { -+ v, _ := messageTypeCache.LoadOrStore(s, t) -+ return v.(reflect.Type) -+ } -+ return nil -+} -+ -+func goTypeForField(fd protoreflect.FieldDescriptor) reflect.Type { -+ switch k := fd.Kind(); k { -+ case protoreflect.EnumKind: -+ if et, _ := protoregistry.GlobalTypes.FindEnumByName(fd.Enum().FullName()); et != nil { -+ return enumGoType(et) -+ } -+ return reflect.TypeOf(protoreflect.EnumNumber(0)) -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ if mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()); mt != nil { -+ return messageGoType(mt) -+ } -+ return reflect.TypeOf((*protoreflect.Message)(nil)).Elem() -+ default: -+ return reflect.TypeOf(fd.Default().Interface()) -+ } -+} -+ -+func enumGoType(et protoreflect.EnumType) reflect.Type { -+ return reflect.TypeOf(et.New(0)) -+} -+ -+func messageGoType(mt protoreflect.MessageType) reflect.Type { -+ return reflect.TypeOf(MessageV1(mt.Zero().Interface())) -+} -+ -+// MessageName returns the full protobuf name for the given message type. -+// -+// Deprecated: Use protoreflect.MessageDescriptor.FullName instead. -+func MessageName(m Message) messageName { -+ if m == nil { -+ return "" -+ } -+ if m, ok := m.(interface{ XXX_MessageName() messageName }); ok { -+ return m.XXX_MessageName() -+ } -+ return messageName(protoimpl.X.MessageDescriptorOf(m).FullName()) -+} -+ -+// RegisterExtension is called from the generated code to register -+// the extension descriptor. -+// -+// Deprecated: Use protoregistry.GlobalTypes.RegisterExtension instead. -+func RegisterExtension(d *ExtensionDesc) { -+ if err := protoregistry.GlobalTypes.RegisterExtension(d); err != nil { -+ panic(err) -+ } -+} -+ -+type extensionsByNumber = map[int32]*ExtensionDesc -+ -+var extensionCache sync.Map // map[messageName]extensionsByNumber -+ -+// RegisteredExtensions returns a map of the registered extensions for the -+// provided protobuf message, indexed by the extension field number. -+// -+// Deprecated: Use protoregistry.GlobalTypes.RangeExtensionsByMessage instead. -+func RegisteredExtensions(m Message) extensionsByNumber { -+ // Check whether the cache is stale. If the number of extensions for -+ // the given message differs, then it means that some extensions were -+ // recently registered upstream that we do not know about. -+ s := MessageName(m) -+ v, _ := extensionCache.Load(s) -+ xs, _ := v.(extensionsByNumber) -+ if protoregistry.GlobalTypes.NumExtensionsByMessage(protoreflect.FullName(s)) == len(xs) { -+ return xs // cache is up-to-date -+ } -+ -+ // Cache is stale, re-compute the extensions map. -+ xs = make(extensionsByNumber) -+ protoregistry.GlobalTypes.RangeExtensionsByMessage(protoreflect.FullName(s), func(xt protoreflect.ExtensionType) bool { -+ if xd, ok := xt.(*ExtensionDesc); ok { -+ xs[int32(xt.TypeDescriptor().Number())] = xd -+ } else { -+ // TODO: This implies that the protoreflect.ExtensionType is a -+ // custom type not generated by protoc-gen-go. We could try and -+ // convert the type to an ExtensionDesc. -+ } -+ return true -+ }) -+ extensionCache.Store(s, xs) -+ return xs -+} -diff --git a/vendor/github.com/golang/protobuf/proto/text_decode.go b/vendor/github.com/golang/protobuf/proto/text_decode.go -new file mode 100644 -index 00000000..47eb3e44 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/text_decode.go -@@ -0,0 +1,801 @@ -+// Copyright 2010 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "encoding" -+ "errors" -+ "fmt" -+ "reflect" -+ "strconv" -+ "strings" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/prototext" -+ protoV2 "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+const wrapTextUnmarshalV2 = false -+ -+// ParseError is returned by UnmarshalText. -+type ParseError struct { -+ Message string -+ -+ // Deprecated: Do not use. -+ Line, Offset int -+} -+ -+func (e *ParseError) Error() string { -+ if wrapTextUnmarshalV2 { -+ return e.Message -+ } -+ if e.Line == 1 { -+ return fmt.Sprintf("line 1.%d: %v", e.Offset, e.Message) -+ } -+ return fmt.Sprintf("line %d: %v", e.Line, e.Message) -+} -+ -+// UnmarshalText parses a proto text formatted string into m. -+func UnmarshalText(s string, m Message) error { -+ if u, ok := m.(encoding.TextUnmarshaler); ok { -+ return u.UnmarshalText([]byte(s)) -+ } -+ -+ m.Reset() -+ mi := MessageV2(m) -+ -+ if wrapTextUnmarshalV2 { -+ err := prototext.UnmarshalOptions{ -+ AllowPartial: true, -+ }.Unmarshal([]byte(s), mi) -+ if err != nil { -+ return &ParseError{Message: err.Error()} -+ } -+ return checkRequiredNotSet(mi) -+ } else { -+ if err := newTextParser(s).unmarshalMessage(mi.ProtoReflect(), ""); err != nil { -+ return err -+ } -+ return checkRequiredNotSet(mi) -+ } -+} -+ -+type textParser struct { -+ s string // remaining input -+ done bool // whether the parsing is finished (success or error) -+ backed bool // whether back() was called -+ offset, line int -+ cur token -+} -+ -+type token struct { -+ value string -+ err *ParseError -+ line int // line number -+ offset int // byte number from start of input, not start of line -+ unquoted string // the unquoted version of value, if it was a quoted string -+} -+ -+func newTextParser(s string) *textParser { -+ p := new(textParser) -+ p.s = s -+ p.line = 1 -+ p.cur.line = 1 -+ return p -+} -+ -+func (p *textParser) unmarshalMessage(m protoreflect.Message, terminator string) (err error) { -+ md := m.Descriptor() -+ fds := md.Fields() -+ -+ // A struct is a sequence of "name: value", terminated by one of -+ // '>' or '}', or the end of the input. A name may also be -+ // "[extension]" or "[type/url]". -+ // -+ // The whole struct can also be an expanded Any message, like: -+ // [type/url] < ... struct contents ... > -+ seen := make(map[protoreflect.FieldNumber]bool) -+ for { -+ tok := p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ if tok.value == terminator { -+ break -+ } -+ if tok.value == "[" { -+ if err := p.unmarshalExtensionOrAny(m, seen); err != nil { -+ return err -+ } -+ continue -+ } -+ -+ // This is a normal, non-extension field. -+ name := protoreflect.Name(tok.value) -+ fd := fds.ByName(name) -+ switch { -+ case fd == nil: -+ gd := fds.ByName(protoreflect.Name(strings.ToLower(string(name)))) -+ if gd != nil && gd.Kind() == protoreflect.GroupKind && gd.Message().Name() == name { -+ fd = gd -+ } -+ case fd.Kind() == protoreflect.GroupKind && fd.Message().Name() != name: -+ fd = nil -+ case fd.IsWeak() && fd.Message().IsPlaceholder(): -+ fd = nil -+ } -+ if fd == nil { -+ typeName := string(md.FullName()) -+ if m, ok := m.Interface().(Message); ok { -+ t := reflect.TypeOf(m) -+ if t.Kind() == reflect.Ptr { -+ typeName = t.Elem().String() -+ } -+ } -+ return p.errorf("unknown field name %q in %v", name, typeName) -+ } -+ if od := fd.ContainingOneof(); od != nil && m.WhichOneof(od) != nil { -+ return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, od.Name()) -+ } -+ if fd.Cardinality() != protoreflect.Repeated && seen[fd.Number()] { -+ return p.errorf("non-repeated field %q was repeated", fd.Name()) -+ } -+ seen[fd.Number()] = true -+ -+ // Consume any colon. -+ if err := p.checkForColon(fd); err != nil { -+ return err -+ } -+ -+ // Parse into the field. -+ v := m.Get(fd) -+ if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { -+ v = m.Mutable(fd) -+ } -+ if v, err = p.unmarshalValue(v, fd); err != nil { -+ return err -+ } -+ m.Set(fd, v) -+ -+ if err := p.consumeOptionalSeparator(); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+func (p *textParser) unmarshalExtensionOrAny(m protoreflect.Message, seen map[protoreflect.FieldNumber]bool) error { -+ name, err := p.consumeExtensionOrAnyName() -+ if err != nil { -+ return err -+ } -+ -+ // If it contains a slash, it's an Any type URL. -+ if slashIdx := strings.LastIndex(name, "/"); slashIdx >= 0 { -+ tok := p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ // consume an optional colon -+ if tok.value == ":" { -+ tok = p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ } -+ -+ var terminator string -+ switch tok.value { -+ case "<": -+ terminator = ">" -+ case "{": -+ terminator = "}" -+ default: -+ return p.errorf("expected '{' or '<', found %q", tok.value) -+ } -+ -+ mt, err := protoregistry.GlobalTypes.FindMessageByURL(name) -+ if err != nil { -+ return p.errorf("unrecognized message %q in google.protobuf.Any", name[slashIdx+len("/"):]) -+ } -+ m2 := mt.New() -+ if err := p.unmarshalMessage(m2, terminator); err != nil { -+ return err -+ } -+ b, err := protoV2.Marshal(m2.Interface()) -+ if err != nil { -+ return p.errorf("failed to marshal message of type %q: %v", name[slashIdx+len("/"):], err) -+ } -+ -+ urlFD := m.Descriptor().Fields().ByName("type_url") -+ valFD := m.Descriptor().Fields().ByName("value") -+ if seen[urlFD.Number()] { -+ return p.errorf("Any message unpacked multiple times, or %q already set", urlFD.Name()) -+ } -+ if seen[valFD.Number()] { -+ return p.errorf("Any message unpacked multiple times, or %q already set", valFD.Name()) -+ } -+ m.Set(urlFD, protoreflect.ValueOfString(name)) -+ m.Set(valFD, protoreflect.ValueOfBytes(b)) -+ seen[urlFD.Number()] = true -+ seen[valFD.Number()] = true -+ return nil -+ } -+ -+ xname := protoreflect.FullName(name) -+ xt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname) -+ if xt == nil && isMessageSet(m.Descriptor()) { -+ xt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append("message_set_extension")) -+ } -+ if xt == nil { -+ return p.errorf("unrecognized extension %q", name) -+ } -+ fd := xt.TypeDescriptor() -+ if fd.ContainingMessage().FullName() != m.Descriptor().FullName() { -+ return p.errorf("extension field %q does not extend message %q", name, m.Descriptor().FullName()) -+ } -+ -+ if err := p.checkForColon(fd); err != nil { -+ return err -+ } -+ -+ v := m.Get(fd) -+ if !m.Has(fd) && (fd.IsList() || fd.IsMap() || fd.Message() != nil) { -+ v = m.Mutable(fd) -+ } -+ v, err = p.unmarshalValue(v, fd) -+ if err != nil { -+ return err -+ } -+ m.Set(fd, v) -+ return p.consumeOptionalSeparator() -+} -+ -+func (p *textParser) unmarshalValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { -+ tok := p.next() -+ if tok.err != nil { -+ return v, tok.err -+ } -+ if tok.value == "" { -+ return v, p.errorf("unexpected EOF") -+ } -+ -+ switch { -+ case fd.IsList(): -+ lv := v.List() -+ var err error -+ if tok.value == "[" { -+ // Repeated field with list notation, like [1,2,3]. -+ for { -+ vv := lv.NewElement() -+ vv, err = p.unmarshalSingularValue(vv, fd) -+ if err != nil { -+ return v, err -+ } -+ lv.Append(vv) -+ -+ tok := p.next() -+ if tok.err != nil { -+ return v, tok.err -+ } -+ if tok.value == "]" { -+ break -+ } -+ if tok.value != "," { -+ return v, p.errorf("Expected ']' or ',' found %q", tok.value) -+ } -+ } -+ return v, nil -+ } -+ -+ // One value of the repeated field. -+ p.back() -+ vv := lv.NewElement() -+ vv, err = p.unmarshalSingularValue(vv, fd) -+ if err != nil { -+ return v, err -+ } -+ lv.Append(vv) -+ return v, nil -+ case fd.IsMap(): -+ // The map entry should be this sequence of tokens: -+ // < key : KEY value : VALUE > -+ // However, implementations may omit key or value, and technically -+ // we should support them in any order. -+ var terminator string -+ switch tok.value { -+ case "<": -+ terminator = ">" -+ case "{": -+ terminator = "}" -+ default: -+ return v, p.errorf("expected '{' or '<', found %q", tok.value) -+ } -+ -+ keyFD := fd.MapKey() -+ valFD := fd.MapValue() -+ -+ mv := v.Map() -+ kv := keyFD.Default() -+ vv := mv.NewValue() -+ for { -+ tok := p.next() -+ if tok.err != nil { -+ return v, tok.err -+ } -+ if tok.value == terminator { -+ break -+ } -+ var err error -+ switch tok.value { -+ case "key": -+ if err := p.consumeToken(":"); err != nil { -+ return v, err -+ } -+ if kv, err = p.unmarshalSingularValue(kv, keyFD); err != nil { -+ return v, err -+ } -+ if err := p.consumeOptionalSeparator(); err != nil { -+ return v, err -+ } -+ case "value": -+ if err := p.checkForColon(valFD); err != nil { -+ return v, err -+ } -+ if vv, err = p.unmarshalSingularValue(vv, valFD); err != nil { -+ return v, err -+ } -+ if err := p.consumeOptionalSeparator(); err != nil { -+ return v, err -+ } -+ default: -+ p.back() -+ return v, p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) -+ } -+ } -+ mv.Set(kv.MapKey(), vv) -+ return v, nil -+ default: -+ p.back() -+ return p.unmarshalSingularValue(v, fd) -+ } -+} -+ -+func (p *textParser) unmarshalSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { -+ tok := p.next() -+ if tok.err != nil { -+ return v, tok.err -+ } -+ if tok.value == "" { -+ return v, p.errorf("unexpected EOF") -+ } -+ -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ switch tok.value { -+ case "true", "1", "t", "True": -+ return protoreflect.ValueOfBool(true), nil -+ case "false", "0", "f", "False": -+ return protoreflect.ValueOfBool(false), nil -+ } -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: -+ if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { -+ return protoreflect.ValueOfInt32(int32(x)), nil -+ } -+ -+ // The C++ parser accepts large positive hex numbers that uses -+ // two's complement arithmetic to represent negative numbers. -+ // This feature is here for backwards compatibility with C++. -+ if strings.HasPrefix(tok.value, "0x") { -+ if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { -+ return protoreflect.ValueOfInt32(int32(-(int64(^x) + 1))), nil -+ } -+ } -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { -+ return protoreflect.ValueOfInt64(int64(x)), nil -+ } -+ -+ // The C++ parser accepts large positive hex numbers that uses -+ // two's complement arithmetic to represent negative numbers. -+ // This feature is here for backwards compatibility with C++. -+ if strings.HasPrefix(tok.value, "0x") { -+ if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { -+ return protoreflect.ValueOfInt64(int64(-(int64(^x) + 1))), nil -+ } -+ } -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: -+ if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { -+ return protoreflect.ValueOfUint32(uint32(x)), nil -+ } -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { -+ return protoreflect.ValueOfUint64(uint64(x)), nil -+ } -+ case protoreflect.FloatKind: -+ // Ignore 'f' for compatibility with output generated by C++, -+ // but don't remove 'f' when the value is "-inf" or "inf". -+ v := tok.value -+ if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { -+ v = v[:len(v)-len("f")] -+ } -+ if x, err := strconv.ParseFloat(v, 32); err == nil { -+ return protoreflect.ValueOfFloat32(float32(x)), nil -+ } -+ case protoreflect.DoubleKind: -+ // Ignore 'f' for compatibility with output generated by C++, -+ // but don't remove 'f' when the value is "-inf" or "inf". -+ v := tok.value -+ if strings.HasSuffix(v, "f") && v != "-inf" && v != "inf" { -+ v = v[:len(v)-len("f")] -+ } -+ if x, err := strconv.ParseFloat(v, 64); err == nil { -+ return protoreflect.ValueOfFloat64(float64(x)), nil -+ } -+ case protoreflect.StringKind: -+ if isQuote(tok.value[0]) { -+ return protoreflect.ValueOfString(tok.unquoted), nil -+ } -+ case protoreflect.BytesKind: -+ if isQuote(tok.value[0]) { -+ return protoreflect.ValueOfBytes([]byte(tok.unquoted)), nil -+ } -+ case protoreflect.EnumKind: -+ if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { -+ return protoreflect.ValueOfEnum(protoreflect.EnumNumber(x)), nil -+ } -+ vd := fd.Enum().Values().ByName(protoreflect.Name(tok.value)) -+ if vd != nil { -+ return protoreflect.ValueOfEnum(vd.Number()), nil -+ } -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ var terminator string -+ switch tok.value { -+ case "{": -+ terminator = "}" -+ case "<": -+ terminator = ">" -+ default: -+ return v, p.errorf("expected '{' or '<', found %q", tok.value) -+ } -+ err := p.unmarshalMessage(v.Message(), terminator) -+ return v, err -+ default: -+ panic(fmt.Sprintf("invalid kind %v", fd.Kind())) -+ } -+ return v, p.errorf("invalid %v: %v", fd.Kind(), tok.value) -+} -+ -+// Consume a ':' from the input stream (if the next token is a colon), -+// returning an error if a colon is needed but not present. -+func (p *textParser) checkForColon(fd protoreflect.FieldDescriptor) *ParseError { -+ tok := p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ if tok.value != ":" { -+ if fd.Message() == nil { -+ return p.errorf("expected ':', found %q", tok.value) -+ } -+ p.back() -+ } -+ return nil -+} -+ -+// consumeExtensionOrAnyName consumes an extension name or an Any type URL and -+// the following ']'. It returns the name or URL consumed. -+func (p *textParser) consumeExtensionOrAnyName() (string, error) { -+ tok := p.next() -+ if tok.err != nil { -+ return "", tok.err -+ } -+ -+ // If extension name or type url is quoted, it's a single token. -+ if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { -+ name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) -+ if err != nil { -+ return "", err -+ } -+ return name, p.consumeToken("]") -+ } -+ -+ // Consume everything up to "]" -+ var parts []string -+ for tok.value != "]" { -+ parts = append(parts, tok.value) -+ tok = p.next() -+ if tok.err != nil { -+ return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) -+ } -+ if p.done && tok.value != "]" { -+ return "", p.errorf("unclosed type_url or extension name") -+ } -+ } -+ return strings.Join(parts, ""), nil -+} -+ -+// consumeOptionalSeparator consumes an optional semicolon or comma. -+// It is used in unmarshalMessage to provide backward compatibility. -+func (p *textParser) consumeOptionalSeparator() error { -+ tok := p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ if tok.value != ";" && tok.value != "," { -+ p.back() -+ } -+ return nil -+} -+ -+func (p *textParser) errorf(format string, a ...interface{}) *ParseError { -+ pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} -+ p.cur.err = pe -+ p.done = true -+ return pe -+} -+ -+func (p *textParser) skipWhitespace() { -+ i := 0 -+ for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { -+ if p.s[i] == '#' { -+ // comment; skip to end of line or input -+ for i < len(p.s) && p.s[i] != '\n' { -+ i++ -+ } -+ if i == len(p.s) { -+ break -+ } -+ } -+ if p.s[i] == '\n' { -+ p.line++ -+ } -+ i++ -+ } -+ p.offset += i -+ p.s = p.s[i:len(p.s)] -+ if len(p.s) == 0 { -+ p.done = true -+ } -+} -+ -+func (p *textParser) advance() { -+ // Skip whitespace -+ p.skipWhitespace() -+ if p.done { -+ return -+ } -+ -+ // Start of non-whitespace -+ p.cur.err = nil -+ p.cur.offset, p.cur.line = p.offset, p.line -+ p.cur.unquoted = "" -+ switch p.s[0] { -+ case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': -+ // Single symbol -+ p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] -+ case '"', '\'': -+ // Quoted string -+ i := 1 -+ for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { -+ if p.s[i] == '\\' && i+1 < len(p.s) { -+ // skip escaped char -+ i++ -+ } -+ i++ -+ } -+ if i >= len(p.s) || p.s[i] != p.s[0] { -+ p.errorf("unmatched quote") -+ return -+ } -+ unq, err := unquoteC(p.s[1:i], rune(p.s[0])) -+ if err != nil { -+ p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) -+ return -+ } -+ p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] -+ p.cur.unquoted = unq -+ default: -+ i := 0 -+ for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { -+ i++ -+ } -+ if i == 0 { -+ p.errorf("unexpected byte %#x", p.s[0]) -+ return -+ } -+ p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] -+ } -+ p.offset += len(p.cur.value) -+} -+ -+// Back off the parser by one token. Can only be done between calls to next(). -+// It makes the next advance() a no-op. -+func (p *textParser) back() { p.backed = true } -+ -+// Advances the parser and returns the new current token. -+func (p *textParser) next() *token { -+ if p.backed || p.done { -+ p.backed = false -+ return &p.cur -+ } -+ p.advance() -+ if p.done { -+ p.cur.value = "" -+ } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { -+ // Look for multiple quoted strings separated by whitespace, -+ // and concatenate them. -+ cat := p.cur -+ for { -+ p.skipWhitespace() -+ if p.done || !isQuote(p.s[0]) { -+ break -+ } -+ p.advance() -+ if p.cur.err != nil { -+ return &p.cur -+ } -+ cat.value += " " + p.cur.value -+ cat.unquoted += p.cur.unquoted -+ } -+ p.done = false // parser may have seen EOF, but we want to return cat -+ p.cur = cat -+ } -+ return &p.cur -+} -+ -+func (p *textParser) consumeToken(s string) error { -+ tok := p.next() -+ if tok.err != nil { -+ return tok.err -+ } -+ if tok.value != s { -+ p.back() -+ return p.errorf("expected %q, found %q", s, tok.value) -+ } -+ return nil -+} -+ -+var errBadUTF8 = errors.New("proto: bad UTF-8") -+ -+func unquoteC(s string, quote rune) (string, error) { -+ // This is based on C++'s tokenizer.cc. -+ // Despite its name, this is *not* parsing C syntax. -+ // For instance, "\0" is an invalid quoted string. -+ -+ // Avoid allocation in trivial cases. -+ simple := true -+ for _, r := range s { -+ if r == '\\' || r == quote { -+ simple = false -+ break -+ } -+ } -+ if simple { -+ return s, nil -+ } -+ -+ buf := make([]byte, 0, 3*len(s)/2) -+ for len(s) > 0 { -+ r, n := utf8.DecodeRuneInString(s) -+ if r == utf8.RuneError && n == 1 { -+ return "", errBadUTF8 -+ } -+ s = s[n:] -+ if r != '\\' { -+ if r < utf8.RuneSelf { -+ buf = append(buf, byte(r)) -+ } else { -+ buf = append(buf, string(r)...) -+ } -+ continue -+ } -+ -+ ch, tail, err := unescape(s) -+ if err != nil { -+ return "", err -+ } -+ buf = append(buf, ch...) -+ s = tail -+ } -+ return string(buf), nil -+} -+ -+func unescape(s string) (ch string, tail string, err error) { -+ r, n := utf8.DecodeRuneInString(s) -+ if r == utf8.RuneError && n == 1 { -+ return "", "", errBadUTF8 -+ } -+ s = s[n:] -+ switch r { -+ case 'a': -+ return "\a", s, nil -+ case 'b': -+ return "\b", s, nil -+ case 'f': -+ return "\f", s, nil -+ case 'n': -+ return "\n", s, nil -+ case 'r': -+ return "\r", s, nil -+ case 't': -+ return "\t", s, nil -+ case 'v': -+ return "\v", s, nil -+ case '?': -+ return "?", s, nil // trigraph workaround -+ case '\'', '"', '\\': -+ return string(r), s, nil -+ case '0', '1', '2', '3', '4', '5', '6', '7': -+ if len(s) < 2 { -+ return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) -+ } -+ ss := string(r) + s[:2] -+ s = s[2:] -+ i, err := strconv.ParseUint(ss, 8, 8) -+ if err != nil { -+ return "", "", fmt.Errorf(`\%s contains non-octal digits`, ss) -+ } -+ return string([]byte{byte(i)}), s, nil -+ case 'x', 'X', 'u', 'U': -+ var n int -+ switch r { -+ case 'x', 'X': -+ n = 2 -+ case 'u': -+ n = 4 -+ case 'U': -+ n = 8 -+ } -+ if len(s) < n { -+ return "", "", fmt.Errorf(`\%c requires %d following digits`, r, n) -+ } -+ ss := s[:n] -+ s = s[n:] -+ i, err := strconv.ParseUint(ss, 16, 64) -+ if err != nil { -+ return "", "", fmt.Errorf(`\%c%s contains non-hexadecimal digits`, r, ss) -+ } -+ if r == 'x' || r == 'X' { -+ return string([]byte{byte(i)}), s, nil -+ } -+ if i > utf8.MaxRune { -+ return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) -+ } -+ return string(rune(i)), s, nil -+ } -+ return "", "", fmt.Errorf(`unknown escape \%c`, r) -+} -+ -+func isIdentOrNumberChar(c byte) bool { -+ switch { -+ case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': -+ return true -+ case '0' <= c && c <= '9': -+ return true -+ } -+ switch c { -+ case '-', '+', '.', '_': -+ return true -+ } -+ return false -+} -+ -+func isWhitespace(c byte) bool { -+ switch c { -+ case ' ', '\t', '\n', '\r': -+ return true -+ } -+ return false -+} -+ -+func isQuote(c byte) bool { -+ switch c { -+ case '"', '\'': -+ return true -+ } -+ return false -+} -diff --git a/vendor/github.com/golang/protobuf/proto/text_encode.go b/vendor/github.com/golang/protobuf/proto/text_encode.go -new file mode 100644 -index 00000000..a31134ee ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/text_encode.go -@@ -0,0 +1,560 @@ -+// Copyright 2010 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "bytes" -+ "encoding" -+ "fmt" -+ "io" -+ "math" -+ "sort" -+ "strings" -+ -+ "google.golang.org/protobuf/encoding/prototext" -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+const wrapTextMarshalV2 = false -+ -+// TextMarshaler is a configurable text format marshaler. -+type TextMarshaler struct { -+ Compact bool // use compact text format (one line) -+ ExpandAny bool // expand google.protobuf.Any messages of known types -+} -+ -+// Marshal writes the proto text format of m to w. -+func (tm *TextMarshaler) Marshal(w io.Writer, m Message) error { -+ b, err := tm.marshal(m) -+ if len(b) > 0 { -+ if _, err := w.Write(b); err != nil { -+ return err -+ } -+ } -+ return err -+} -+ -+// Text returns a proto text formatted string of m. -+func (tm *TextMarshaler) Text(m Message) string { -+ b, _ := tm.marshal(m) -+ return string(b) -+} -+ -+func (tm *TextMarshaler) marshal(m Message) ([]byte, error) { -+ mr := MessageReflect(m) -+ if mr == nil || !mr.IsValid() { -+ return []byte(""), nil -+ } -+ -+ if wrapTextMarshalV2 { -+ if m, ok := m.(encoding.TextMarshaler); ok { -+ return m.MarshalText() -+ } -+ -+ opts := prototext.MarshalOptions{ -+ AllowPartial: true, -+ EmitUnknown: true, -+ } -+ if !tm.Compact { -+ opts.Indent = " " -+ } -+ if !tm.ExpandAny { -+ opts.Resolver = (*protoregistry.Types)(nil) -+ } -+ return opts.Marshal(mr.Interface()) -+ } else { -+ w := &textWriter{ -+ compact: tm.Compact, -+ expandAny: tm.ExpandAny, -+ complete: true, -+ } -+ -+ if m, ok := m.(encoding.TextMarshaler); ok { -+ b, err := m.MarshalText() -+ if err != nil { -+ return nil, err -+ } -+ w.Write(b) -+ return w.buf, nil -+ } -+ -+ err := w.writeMessage(mr) -+ return w.buf, err -+ } -+} -+ -+var ( -+ defaultTextMarshaler = TextMarshaler{} -+ compactTextMarshaler = TextMarshaler{Compact: true} -+) -+ -+// MarshalText writes the proto text format of m to w. -+func MarshalText(w io.Writer, m Message) error { return defaultTextMarshaler.Marshal(w, m) } -+ -+// MarshalTextString returns a proto text formatted string of m. -+func MarshalTextString(m Message) string { return defaultTextMarshaler.Text(m) } -+ -+// CompactText writes the compact proto text format of m to w. -+func CompactText(w io.Writer, m Message) error { return compactTextMarshaler.Marshal(w, m) } -+ -+// CompactTextString returns a compact proto text formatted string of m. -+func CompactTextString(m Message) string { return compactTextMarshaler.Text(m) } -+ -+var ( -+ newline = []byte("\n") -+ endBraceNewline = []byte("}\n") -+ posInf = []byte("inf") -+ negInf = []byte("-inf") -+ nan = []byte("nan") -+) -+ -+// textWriter is an io.Writer that tracks its indentation level. -+type textWriter struct { -+ compact bool // same as TextMarshaler.Compact -+ expandAny bool // same as TextMarshaler.ExpandAny -+ complete bool // whether the current position is a complete line -+ indent int // indentation level; never negative -+ buf []byte -+} -+ -+func (w *textWriter) Write(p []byte) (n int, _ error) { -+ newlines := bytes.Count(p, newline) -+ if newlines == 0 { -+ if !w.compact && w.complete { -+ w.writeIndent() -+ } -+ w.buf = append(w.buf, p...) -+ w.complete = false -+ return len(p), nil -+ } -+ -+ frags := bytes.SplitN(p, newline, newlines+1) -+ if w.compact { -+ for i, frag := range frags { -+ if i > 0 { -+ w.buf = append(w.buf, ' ') -+ n++ -+ } -+ w.buf = append(w.buf, frag...) -+ n += len(frag) -+ } -+ return n, nil -+ } -+ -+ for i, frag := range frags { -+ if w.complete { -+ w.writeIndent() -+ } -+ w.buf = append(w.buf, frag...) -+ n += len(frag) -+ if i+1 < len(frags) { -+ w.buf = append(w.buf, '\n') -+ n++ -+ } -+ } -+ w.complete = len(frags[len(frags)-1]) == 0 -+ return n, nil -+} -+ -+func (w *textWriter) WriteByte(c byte) error { -+ if w.compact && c == '\n' { -+ c = ' ' -+ } -+ if !w.compact && w.complete { -+ w.writeIndent() -+ } -+ w.buf = append(w.buf, c) -+ w.complete = c == '\n' -+ return nil -+} -+ -+func (w *textWriter) writeName(fd protoreflect.FieldDescriptor) { -+ if !w.compact && w.complete { -+ w.writeIndent() -+ } -+ w.complete = false -+ -+ if fd.Kind() != protoreflect.GroupKind { -+ w.buf = append(w.buf, fd.Name()...) -+ w.WriteByte(':') -+ } else { -+ // Use message type name for group field name. -+ w.buf = append(w.buf, fd.Message().Name()...) -+ } -+ -+ if !w.compact { -+ w.WriteByte(' ') -+ } -+} -+ -+func requiresQuotes(u string) bool { -+ // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. -+ for _, ch := range u { -+ switch { -+ case ch == '.' || ch == '/' || ch == '_': -+ continue -+ case '0' <= ch && ch <= '9': -+ continue -+ case 'A' <= ch && ch <= 'Z': -+ continue -+ case 'a' <= ch && ch <= 'z': -+ continue -+ default: -+ return true -+ } -+ } -+ return false -+} -+ -+// writeProto3Any writes an expanded google.protobuf.Any message. -+// -+// It returns (false, nil) if sv value can't be unmarshaled (e.g. because -+// required messages are not linked in). -+// -+// It returns (true, error) when sv was written in expanded format or an error -+// was encountered. -+func (w *textWriter) writeProto3Any(m protoreflect.Message) (bool, error) { -+ md := m.Descriptor() -+ fdURL := md.Fields().ByName("type_url") -+ fdVal := md.Fields().ByName("value") -+ -+ url := m.Get(fdURL).String() -+ mt, err := protoregistry.GlobalTypes.FindMessageByURL(url) -+ if err != nil { -+ return false, nil -+ } -+ -+ b := m.Get(fdVal).Bytes() -+ m2 := mt.New() -+ if err := proto.Unmarshal(b, m2.Interface()); err != nil { -+ return false, nil -+ } -+ w.Write([]byte("[")) -+ if requiresQuotes(url) { -+ w.writeQuotedString(url) -+ } else { -+ w.Write([]byte(url)) -+ } -+ if w.compact { -+ w.Write([]byte("]:<")) -+ } else { -+ w.Write([]byte("]: <\n")) -+ w.indent++ -+ } -+ if err := w.writeMessage(m2); err != nil { -+ return true, err -+ } -+ if w.compact { -+ w.Write([]byte("> ")) -+ } else { -+ w.indent-- -+ w.Write([]byte(">\n")) -+ } -+ return true, nil -+} -+ -+func (w *textWriter) writeMessage(m protoreflect.Message) error { -+ md := m.Descriptor() -+ if w.expandAny && md.FullName() == "google.protobuf.Any" { -+ if canExpand, err := w.writeProto3Any(m); canExpand { -+ return err -+ } -+ } -+ -+ fds := md.Fields() -+ for i := 0; i < fds.Len(); { -+ fd := fds.Get(i) -+ if od := fd.ContainingOneof(); od != nil { -+ fd = m.WhichOneof(od) -+ i += od.Fields().Len() -+ } else { -+ i++ -+ } -+ if fd == nil || !m.Has(fd) { -+ continue -+ } -+ -+ switch { -+ case fd.IsList(): -+ lv := m.Get(fd).List() -+ for j := 0; j < lv.Len(); j++ { -+ w.writeName(fd) -+ v := lv.Get(j) -+ if err := w.writeSingularValue(v, fd); err != nil { -+ return err -+ } -+ w.WriteByte('\n') -+ } -+ case fd.IsMap(): -+ kfd := fd.MapKey() -+ vfd := fd.MapValue() -+ mv := m.Get(fd).Map() -+ -+ type entry struct{ key, val protoreflect.Value } -+ var entries []entry -+ mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { -+ entries = append(entries, entry{k.Value(), v}) -+ return true -+ }) -+ sort.Slice(entries, func(i, j int) bool { -+ switch kfd.Kind() { -+ case protoreflect.BoolKind: -+ return !entries[i].key.Bool() && entries[j].key.Bool() -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ return entries[i].key.Int() < entries[j].key.Int() -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ return entries[i].key.Uint() < entries[j].key.Uint() -+ case protoreflect.StringKind: -+ return entries[i].key.String() < entries[j].key.String() -+ default: -+ panic("invalid kind") -+ } -+ }) -+ for _, entry := range entries { -+ w.writeName(fd) -+ w.WriteByte('<') -+ if !w.compact { -+ w.WriteByte('\n') -+ } -+ w.indent++ -+ w.writeName(kfd) -+ if err := w.writeSingularValue(entry.key, kfd); err != nil { -+ return err -+ } -+ w.WriteByte('\n') -+ w.writeName(vfd) -+ if err := w.writeSingularValue(entry.val, vfd); err != nil { -+ return err -+ } -+ w.WriteByte('\n') -+ w.indent-- -+ w.WriteByte('>') -+ w.WriteByte('\n') -+ } -+ default: -+ w.writeName(fd) -+ if err := w.writeSingularValue(m.Get(fd), fd); err != nil { -+ return err -+ } -+ w.WriteByte('\n') -+ } -+ } -+ -+ if b := m.GetUnknown(); len(b) > 0 { -+ w.writeUnknownFields(b) -+ } -+ return w.writeExtensions(m) -+} -+ -+func (w *textWriter) writeSingularValue(v protoreflect.Value, fd protoreflect.FieldDescriptor) error { -+ switch fd.Kind() { -+ case protoreflect.FloatKind, protoreflect.DoubleKind: -+ switch vf := v.Float(); { -+ case math.IsInf(vf, +1): -+ w.Write(posInf) -+ case math.IsInf(vf, -1): -+ w.Write(negInf) -+ case math.IsNaN(vf): -+ w.Write(nan) -+ default: -+ fmt.Fprint(w, v.Interface()) -+ } -+ case protoreflect.StringKind: -+ // NOTE: This does not validate UTF-8 for historical reasons. -+ w.writeQuotedString(string(v.String())) -+ case protoreflect.BytesKind: -+ w.writeQuotedString(string(v.Bytes())) -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ var bra, ket byte = '<', '>' -+ if fd.Kind() == protoreflect.GroupKind { -+ bra, ket = '{', '}' -+ } -+ w.WriteByte(bra) -+ if !w.compact { -+ w.WriteByte('\n') -+ } -+ w.indent++ -+ m := v.Message() -+ if m2, ok := m.Interface().(encoding.TextMarshaler); ok { -+ b, err := m2.MarshalText() -+ if err != nil { -+ return err -+ } -+ w.Write(b) -+ } else { -+ w.writeMessage(m) -+ } -+ w.indent-- -+ w.WriteByte(ket) -+ case protoreflect.EnumKind: -+ if ev := fd.Enum().Values().ByNumber(v.Enum()); ev != nil { -+ fmt.Fprint(w, ev.Name()) -+ } else { -+ fmt.Fprint(w, v.Enum()) -+ } -+ default: -+ fmt.Fprint(w, v.Interface()) -+ } -+ return nil -+} -+ -+// writeQuotedString writes a quoted string in the protocol buffer text format. -+func (w *textWriter) writeQuotedString(s string) { -+ w.WriteByte('"') -+ for i := 0; i < len(s); i++ { -+ switch c := s[i]; c { -+ case '\n': -+ w.buf = append(w.buf, `\n`...) -+ case '\r': -+ w.buf = append(w.buf, `\r`...) -+ case '\t': -+ w.buf = append(w.buf, `\t`...) -+ case '"': -+ w.buf = append(w.buf, `\"`...) -+ case '\\': -+ w.buf = append(w.buf, `\\`...) -+ default: -+ if isPrint := c >= 0x20 && c < 0x7f; isPrint { -+ w.buf = append(w.buf, c) -+ } else { -+ w.buf = append(w.buf, fmt.Sprintf(`\%03o`, c)...) -+ } -+ } -+ } -+ w.WriteByte('"') -+} -+ -+func (w *textWriter) writeUnknownFields(b []byte) { -+ if !w.compact { -+ fmt.Fprintf(w, "/* %d unknown bytes */\n", len(b)) -+ } -+ -+ for len(b) > 0 { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return -+ } -+ b = b[n:] -+ -+ if wtyp == protowire.EndGroupType { -+ w.indent-- -+ w.Write(endBraceNewline) -+ continue -+ } -+ fmt.Fprint(w, num) -+ if wtyp != protowire.StartGroupType { -+ w.WriteByte(':') -+ } -+ if !w.compact || wtyp == protowire.StartGroupType { -+ w.WriteByte(' ') -+ } -+ switch wtyp { -+ case protowire.VarintType: -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return -+ } -+ b = b[n:] -+ fmt.Fprint(w, v) -+ case protowire.Fixed32Type: -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return -+ } -+ b = b[n:] -+ fmt.Fprint(w, v) -+ case protowire.Fixed64Type: -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return -+ } -+ b = b[n:] -+ fmt.Fprint(w, v) -+ case protowire.BytesType: -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return -+ } -+ b = b[n:] -+ fmt.Fprintf(w, "%q", v) -+ case protowire.StartGroupType: -+ w.WriteByte('{') -+ w.indent++ -+ default: -+ fmt.Fprintf(w, "/* unknown wire type %d */", wtyp) -+ } -+ w.WriteByte('\n') -+ } -+} -+ -+// writeExtensions writes all the extensions in m. -+func (w *textWriter) writeExtensions(m protoreflect.Message) error { -+ md := m.Descriptor() -+ if md.ExtensionRanges().Len() == 0 { -+ return nil -+ } -+ -+ type ext struct { -+ desc protoreflect.FieldDescriptor -+ val protoreflect.Value -+ } -+ var exts []ext -+ m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ if fd.IsExtension() { -+ exts = append(exts, ext{fd, v}) -+ } -+ return true -+ }) -+ sort.Slice(exts, func(i, j int) bool { -+ return exts[i].desc.Number() < exts[j].desc.Number() -+ }) -+ -+ for _, ext := range exts { -+ // For message set, use the name of the message as the extension name. -+ name := string(ext.desc.FullName()) -+ if isMessageSet(ext.desc.ContainingMessage()) { -+ name = strings.TrimSuffix(name, ".message_set_extension") -+ } -+ -+ if !ext.desc.IsList() { -+ if err := w.writeSingularExtension(name, ext.val, ext.desc); err != nil { -+ return err -+ } -+ } else { -+ lv := ext.val.List() -+ for i := 0; i < lv.Len(); i++ { -+ if err := w.writeSingularExtension(name, lv.Get(i), ext.desc); err != nil { -+ return err -+ } -+ } -+ } -+ } -+ return nil -+} -+ -+func (w *textWriter) writeSingularExtension(name string, v protoreflect.Value, fd protoreflect.FieldDescriptor) error { -+ fmt.Fprintf(w, "[%s]:", name) -+ if !w.compact { -+ w.WriteByte(' ') -+ } -+ if err := w.writeSingularValue(v, fd); err != nil { -+ return err -+ } -+ w.WriteByte('\n') -+ return nil -+} -+ -+func (w *textWriter) writeIndent() { -+ if !w.complete { -+ return -+ } -+ for i := 0; i < w.indent*2; i++ { -+ w.buf = append(w.buf, ' ') -+ } -+ w.complete = false -+} -diff --git a/vendor/github.com/golang/protobuf/proto/wire.go b/vendor/github.com/golang/protobuf/proto/wire.go -new file mode 100644 -index 00000000..d7c28da5 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/wire.go -@@ -0,0 +1,78 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ protoV2 "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// Size returns the size in bytes of the wire-format encoding of m. -+func Size(m Message) int { -+ if m == nil { -+ return 0 -+ } -+ mi := MessageV2(m) -+ return protoV2.Size(mi) -+} -+ -+// Marshal returns the wire-format encoding of m. -+func Marshal(m Message) ([]byte, error) { -+ b, err := marshalAppend(nil, m, false) -+ if b == nil { -+ b = zeroBytes -+ } -+ return b, err -+} -+ -+var zeroBytes = make([]byte, 0, 0) -+ -+func marshalAppend(buf []byte, m Message, deterministic bool) ([]byte, error) { -+ if m == nil { -+ return nil, ErrNil -+ } -+ mi := MessageV2(m) -+ nbuf, err := protoV2.MarshalOptions{ -+ Deterministic: deterministic, -+ AllowPartial: true, -+ }.MarshalAppend(buf, mi) -+ if err != nil { -+ return buf, err -+ } -+ if len(buf) == len(nbuf) { -+ if !mi.ProtoReflect().IsValid() { -+ return buf, ErrNil -+ } -+ } -+ return nbuf, checkRequiredNotSet(mi) -+} -+ -+// Unmarshal parses a wire-format message in b and places the decoded results in m. -+// -+// Unmarshal resets m before starting to unmarshal, so any existing data in m is always -+// removed. Use UnmarshalMerge to preserve and append to existing data. -+func Unmarshal(b []byte, m Message) error { -+ m.Reset() -+ return UnmarshalMerge(b, m) -+} -+ -+// UnmarshalMerge parses a wire-format message in b and places the decoded results in m. -+func UnmarshalMerge(b []byte, m Message) error { -+ mi := MessageV2(m) -+ out, err := protoV2.UnmarshalOptions{ -+ AllowPartial: true, -+ Merge: true, -+ }.UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: b, -+ Message: mi.ProtoReflect(), -+ }) -+ if err != nil { -+ return err -+ } -+ if out.Flags&protoiface.UnmarshalInitialized > 0 { -+ return nil -+ } -+ return checkRequiredNotSet(mi) -+} -diff --git a/vendor/github.com/golang/protobuf/proto/wrappers.go b/vendor/github.com/golang/protobuf/proto/wrappers.go -new file mode 100644 -index 00000000..398e3485 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/proto/wrappers.go -@@ -0,0 +1,34 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+// Bool stores v in a new bool value and returns a pointer to it. -+func Bool(v bool) *bool { return &v } -+ -+// Int stores v in a new int32 value and returns a pointer to it. -+// -+// Deprecated: Use Int32 instead. -+func Int(v int) *int32 { return Int32(int32(v)) } -+ -+// Int32 stores v in a new int32 value and returns a pointer to it. -+func Int32(v int32) *int32 { return &v } -+ -+// Int64 stores v in a new int64 value and returns a pointer to it. -+func Int64(v int64) *int64 { return &v } -+ -+// Uint32 stores v in a new uint32 value and returns a pointer to it. -+func Uint32(v uint32) *uint32 { return &v } -+ -+// Uint64 stores v in a new uint64 value and returns a pointer to it. -+func Uint64(v uint64) *uint64 { return &v } -+ -+// Float32 stores v in a new float32 value and returns a pointer to it. -+func Float32(v float32) *float32 { return &v } -+ -+// Float64 stores v in a new float64 value and returns a pointer to it. -+func Float64(v float64) *float64 { return &v } -+ -+// String stores v in a new string value and returns a pointer to it. -+func String(v string) *string { return &v } -diff --git a/vendor/github.com/golang/protobuf/ptypes/any.go b/vendor/github.com/golang/protobuf/ptypes/any.go -new file mode 100644 -index 00000000..85f9f573 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/any.go -@@ -0,0 +1,179 @@ -+// Copyright 2016 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package ptypes -+ -+import ( -+ "fmt" -+ "strings" -+ -+ "github.com/golang/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ -+ anypb "github.com/golang/protobuf/ptypes/any" -+) -+ -+const urlPrefix = "type.googleapis.com/" -+ -+// AnyMessageName returns the message name contained in an anypb.Any message. -+// Most type assertions should use the Is function instead. -+// -+// Deprecated: Call the any.MessageName method instead. -+func AnyMessageName(any *anypb.Any) (string, error) { -+ name, err := anyMessageName(any) -+ return string(name), err -+} -+func anyMessageName(any *anypb.Any) (protoreflect.FullName, error) { -+ if any == nil { -+ return "", fmt.Errorf("message is nil") -+ } -+ name := protoreflect.FullName(any.TypeUrl) -+ if i := strings.LastIndex(any.TypeUrl, "/"); i >= 0 { -+ name = name[i+len("/"):] -+ } -+ if !name.IsValid() { -+ return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) -+ } -+ return name, nil -+} -+ -+// MarshalAny marshals the given message m into an anypb.Any message. -+// -+// Deprecated: Call the anypb.New function instead. -+func MarshalAny(m proto.Message) (*anypb.Any, error) { -+ switch dm := m.(type) { -+ case DynamicAny: -+ m = dm.Message -+ case *DynamicAny: -+ if dm == nil { -+ return nil, proto.ErrNil -+ } -+ m = dm.Message -+ } -+ b, err := proto.Marshal(m) -+ if err != nil { -+ return nil, err -+ } -+ return &anypb.Any{TypeUrl: urlPrefix + proto.MessageName(m), Value: b}, nil -+} -+ -+// Empty returns a new message of the type specified in an anypb.Any message. -+// It returns protoregistry.NotFound if the corresponding message type could not -+// be resolved in the global registry. -+// -+// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead -+// to resolve the message name and create a new instance of it. -+func Empty(any *anypb.Any) (proto.Message, error) { -+ name, err := anyMessageName(any) -+ if err != nil { -+ return nil, err -+ } -+ mt, err := protoregistry.GlobalTypes.FindMessageByName(name) -+ if err != nil { -+ return nil, err -+ } -+ return proto.MessageV1(mt.New().Interface()), nil -+} -+ -+// UnmarshalAny unmarshals the encoded value contained in the anypb.Any message -+// into the provided message m. It returns an error if the target message -+// does not match the type in the Any message or if an unmarshal error occurs. -+// -+// The target message m may be a *DynamicAny message. If the underlying message -+// type could not be resolved, then this returns protoregistry.NotFound. -+// -+// Deprecated: Call the any.UnmarshalTo method instead. -+func UnmarshalAny(any *anypb.Any, m proto.Message) error { -+ if dm, ok := m.(*DynamicAny); ok { -+ if dm.Message == nil { -+ var err error -+ dm.Message, err = Empty(any) -+ if err != nil { -+ return err -+ } -+ } -+ m = dm.Message -+ } -+ -+ anyName, err := AnyMessageName(any) -+ if err != nil { -+ return err -+ } -+ msgName := proto.MessageName(m) -+ if anyName != msgName { -+ return fmt.Errorf("mismatched message type: got %q want %q", anyName, msgName) -+ } -+ return proto.Unmarshal(any.Value, m) -+} -+ -+// Is reports whether the Any message contains a message of the specified type. -+// -+// Deprecated: Call the any.MessageIs method instead. -+func Is(any *anypb.Any, m proto.Message) bool { -+ if any == nil || m == nil { -+ return false -+ } -+ name := proto.MessageName(m) -+ if !strings.HasSuffix(any.TypeUrl, name) { -+ return false -+ } -+ return len(any.TypeUrl) == len(name) || any.TypeUrl[len(any.TypeUrl)-len(name)-1] == '/' -+} -+ -+// DynamicAny is a value that can be passed to UnmarshalAny to automatically -+// allocate a proto.Message for the type specified in an anypb.Any message. -+// The allocated message is stored in the embedded proto.Message. -+// -+// Example: -+// var x ptypes.DynamicAny -+// if err := ptypes.UnmarshalAny(a, &x); err != nil { ... } -+// fmt.Printf("unmarshaled message: %v", x.Message) -+// -+// Deprecated: Use the any.UnmarshalNew method instead to unmarshal -+// the any message contents into a new instance of the underlying message. -+type DynamicAny struct{ proto.Message } -+ -+func (m DynamicAny) String() string { -+ if m.Message == nil { -+ return "" -+ } -+ return m.Message.String() -+} -+func (m DynamicAny) Reset() { -+ if m.Message == nil { -+ return -+ } -+ m.Message.Reset() -+} -+func (m DynamicAny) ProtoMessage() { -+ return -+} -+func (m DynamicAny) ProtoReflect() protoreflect.Message { -+ if m.Message == nil { -+ return nil -+ } -+ return dynamicAny{proto.MessageReflect(m.Message)} -+} -+ -+type dynamicAny struct{ protoreflect.Message } -+ -+func (m dynamicAny) Type() protoreflect.MessageType { -+ return dynamicAnyType{m.Message.Type()} -+} -+func (m dynamicAny) New() protoreflect.Message { -+ return dynamicAnyType{m.Message.Type()}.New() -+} -+func (m dynamicAny) Interface() protoreflect.ProtoMessage { -+ return DynamicAny{proto.MessageV1(m.Message.Interface())} -+} -+ -+type dynamicAnyType struct{ protoreflect.MessageType } -+ -+func (t dynamicAnyType) New() protoreflect.Message { -+ return dynamicAny{t.MessageType.New()} -+} -+func (t dynamicAnyType) Zero() protoreflect.Message { -+ return dynamicAny{t.MessageType.Zero()} -+} -diff --git a/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go -new file mode 100644 -index 00000000..0ef27d33 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/any/any.pb.go -@@ -0,0 +1,62 @@ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: github.com/golang/protobuf/ptypes/any/any.proto -+ -+package any -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ anypb "google.golang.org/protobuf/types/known/anypb" -+ reflect "reflect" -+) -+ -+// Symbols defined in public import of google/protobuf/any.proto. -+ -+type Any = anypb.Any -+ -+var File_github_com_golang_protobuf_ptypes_any_any_proto protoreflect.FileDescriptor -+ -+var file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = []byte{ -+ 0x0a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, -+ 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, -+ 0x70, 0x65, 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 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, 0x42, 0x2b, 0x5a, 0x29, -+ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, -+ 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, -+ 0x73, 0x2f, 0x61, 0x6e, 0x79, 0x3b, 0x61, 0x6e, 0x79, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x33, -+} -+ -+var file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = []interface{}{} -+var file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_github_com_golang_protobuf_ptypes_any_any_proto_init() } -+func file_github_com_golang_protobuf_ptypes_any_any_proto_init() { -+ if File_github_com_golang_protobuf_ptypes_any_any_proto != nil { -+ return -+ } -+ type x struct{} -+ out := protoimpl.TypeBuilder{ -+ File: protoimpl.DescBuilder{ -+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), -+ RawDescriptor: file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 0, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes, -+ DependencyIndexes: file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs, -+ }.Build() -+ File_github_com_golang_protobuf_ptypes_any_any_proto = out.File -+ file_github_com_golang_protobuf_ptypes_any_any_proto_rawDesc = nil -+ file_github_com_golang_protobuf_ptypes_any_any_proto_goTypes = nil -+ file_github_com_golang_protobuf_ptypes_any_any_proto_depIdxs = nil -+} -diff --git a/vendor/github.com/golang/protobuf/ptypes/doc.go b/vendor/github.com/golang/protobuf/ptypes/doc.go -new file mode 100644 -index 00000000..d3c33259 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/doc.go -@@ -0,0 +1,10 @@ -+// Copyright 2016 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package ptypes provides functionality for interacting with well-known types. -+// -+// Deprecated: Well-known types have specialized functionality directly -+// injected into the generated packages for each message type. -+// See the deprecation notice for each function for the suggested alternative. -+package ptypes -diff --git a/vendor/github.com/golang/protobuf/ptypes/duration.go b/vendor/github.com/golang/protobuf/ptypes/duration.go -new file mode 100644 -index 00000000..b2b55dd8 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/duration.go -@@ -0,0 +1,76 @@ -+// Copyright 2016 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package ptypes -+ -+import ( -+ "errors" -+ "fmt" -+ "time" -+ -+ durationpb "github.com/golang/protobuf/ptypes/duration" -+) -+ -+// Range of google.protobuf.Duration as specified in duration.proto. -+// This is about 10,000 years in seconds. -+const ( -+ maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) -+ minSeconds = -maxSeconds -+) -+ -+// Duration converts a durationpb.Duration to a time.Duration. -+// Duration returns an error if dur is invalid or overflows a time.Duration. -+// -+// Deprecated: Call the dur.AsDuration and dur.CheckValid methods instead. -+func Duration(dur *durationpb.Duration) (time.Duration, error) { -+ if err := validateDuration(dur); err != nil { -+ return 0, err -+ } -+ d := time.Duration(dur.Seconds) * time.Second -+ if int64(d/time.Second) != dur.Seconds { -+ return 0, fmt.Errorf("duration: %v is out of range for time.Duration", dur) -+ } -+ if dur.Nanos != 0 { -+ d += time.Duration(dur.Nanos) * time.Nanosecond -+ if (d < 0) != (dur.Nanos < 0) { -+ return 0, fmt.Errorf("duration: %v is out of range for time.Duration", dur) -+ } -+ } -+ return d, nil -+} -+ -+// DurationProto converts a time.Duration to a durationpb.Duration. -+// -+// Deprecated: Call the durationpb.New function instead. -+func DurationProto(d time.Duration) *durationpb.Duration { -+ nanos := d.Nanoseconds() -+ secs := nanos / 1e9 -+ nanos -= secs * 1e9 -+ return &durationpb.Duration{ -+ Seconds: int64(secs), -+ Nanos: int32(nanos), -+ } -+} -+ -+// validateDuration determines whether the durationpb.Duration is valid -+// according to the definition in google/protobuf/duration.proto. -+// A valid durpb.Duration may still be too large to fit into a time.Duration -+// Note that the range of durationpb.Duration is about 10,000 years, -+// while the range of time.Duration is about 290 years. -+func validateDuration(dur *durationpb.Duration) error { -+ if dur == nil { -+ return errors.New("duration: nil Duration") -+ } -+ if dur.Seconds < minSeconds || dur.Seconds > maxSeconds { -+ return fmt.Errorf("duration: %v: seconds out of range", dur) -+ } -+ if dur.Nanos <= -1e9 || dur.Nanos >= 1e9 { -+ return fmt.Errorf("duration: %v: nanos out of range", dur) -+ } -+ // Seconds and Nanos must have the same sign, unless d.Nanos is zero. -+ if (dur.Seconds < 0 && dur.Nanos > 0) || (dur.Seconds > 0 && dur.Nanos < 0) { -+ return fmt.Errorf("duration: %v: seconds and nanos have different signs", dur) -+ } -+ return nil -+} -diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go -new file mode 100644 -index 00000000..d0079ee3 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/duration/duration.pb.go -@@ -0,0 +1,63 @@ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: github.com/golang/protobuf/ptypes/duration/duration.proto -+ -+package duration -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ durationpb "google.golang.org/protobuf/types/known/durationpb" -+ reflect "reflect" -+) -+ -+// Symbols defined in public import of google/protobuf/duration.proto. -+ -+type Duration = durationpb.Duration -+ -+var File_github_com_golang_protobuf_ptypes_duration_duration_proto protoreflect.FileDescriptor -+ -+var file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = []byte{ -+ 0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, -+ 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, -+ 0x70, 0x65, 0x73, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x64, 0x75, 0x72, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x42, 0x35, 0x5a, 0x33, 0x67, -+ 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, -+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, -+ 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -+} -+ -+var file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = []interface{}{} -+var file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() } -+func file_github_com_golang_protobuf_ptypes_duration_duration_proto_init() { -+ if File_github_com_golang_protobuf_ptypes_duration_duration_proto != nil { -+ return -+ } -+ type x struct{} -+ out := protoimpl.TypeBuilder{ -+ File: protoimpl.DescBuilder{ -+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), -+ RawDescriptor: file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 0, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes, -+ DependencyIndexes: file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs, -+ }.Build() -+ File_github_com_golang_protobuf_ptypes_duration_duration_proto = out.File -+ file_github_com_golang_protobuf_ptypes_duration_duration_proto_rawDesc = nil -+ file_github_com_golang_protobuf_ptypes_duration_duration_proto_goTypes = nil -+ file_github_com_golang_protobuf_ptypes_duration_duration_proto_depIdxs = nil -+} -diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/vendor/github.com/golang/protobuf/ptypes/timestamp.go -new file mode 100644 -index 00000000..8368a3f7 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/timestamp.go -@@ -0,0 +1,112 @@ -+// Copyright 2016 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package ptypes -+ -+import ( -+ "errors" -+ "fmt" -+ "time" -+ -+ timestamppb "github.com/golang/protobuf/ptypes/timestamp" -+) -+ -+// Range of google.protobuf.Duration as specified in timestamp.proto. -+const ( -+ // Seconds field of the earliest valid Timestamp. -+ // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). -+ minValidSeconds = -62135596800 -+ // Seconds field just after the latest valid Timestamp. -+ // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). -+ maxValidSeconds = 253402300800 -+) -+ -+// Timestamp converts a timestamppb.Timestamp to a time.Time. -+// It returns an error if the argument is invalid. -+// -+// Unlike most Go functions, if Timestamp returns an error, the first return -+// value is not the zero time.Time. Instead, it is the value obtained from the -+// time.Unix function when passed the contents of the Timestamp, in the UTC -+// locale. This may or may not be a meaningful time; many invalid Timestamps -+// do map to valid time.Times. -+// -+// A nil Timestamp returns an error. The first return value in that case is -+// undefined. -+// -+// Deprecated: Call the ts.AsTime and ts.CheckValid methods instead. -+func Timestamp(ts *timestamppb.Timestamp) (time.Time, error) { -+ // Don't return the zero value on error, because corresponds to a valid -+ // timestamp. Instead return whatever time.Unix gives us. -+ var t time.Time -+ if ts == nil { -+ t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp -+ } else { -+ t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() -+ } -+ return t, validateTimestamp(ts) -+} -+ -+// TimestampNow returns a google.protobuf.Timestamp for the current time. -+// -+// Deprecated: Call the timestamppb.Now function instead. -+func TimestampNow() *timestamppb.Timestamp { -+ ts, err := TimestampProto(time.Now()) -+ if err != nil { -+ panic("ptypes: time.Now() out of Timestamp range") -+ } -+ return ts -+} -+ -+// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. -+// It returns an error if the resulting Timestamp is invalid. -+// -+// Deprecated: Call the timestamppb.New function instead. -+func TimestampProto(t time.Time) (*timestamppb.Timestamp, error) { -+ ts := ×tamppb.Timestamp{ -+ Seconds: t.Unix(), -+ Nanos: int32(t.Nanosecond()), -+ } -+ if err := validateTimestamp(ts); err != nil { -+ return nil, err -+ } -+ return ts, nil -+} -+ -+// TimestampString returns the RFC 3339 string for valid Timestamps. -+// For invalid Timestamps, it returns an error message in parentheses. -+// -+// Deprecated: Call the ts.AsTime method instead, -+// followed by a call to the Format method on the time.Time value. -+func TimestampString(ts *timestamppb.Timestamp) string { -+ t, err := Timestamp(ts) -+ if err != nil { -+ return fmt.Sprintf("(%v)", err) -+ } -+ return t.Format(time.RFC3339Nano) -+} -+ -+// validateTimestamp determines whether a Timestamp is valid. -+// A valid timestamp represents a time in the range [0001-01-01, 10000-01-01) -+// and has a Nanos field in the range [0, 1e9). -+// -+// If the Timestamp is valid, validateTimestamp returns nil. -+// Otherwise, it returns an error that describes the problem. -+// -+// Every valid Timestamp can be represented by a time.Time, -+// but the converse is not true. -+func validateTimestamp(ts *timestamppb.Timestamp) error { -+ if ts == nil { -+ return errors.New("timestamp: nil Timestamp") -+ } -+ if ts.Seconds < minValidSeconds { -+ return fmt.Errorf("timestamp: %v before 0001-01-01", ts) -+ } -+ if ts.Seconds >= maxValidSeconds { -+ return fmt.Errorf("timestamp: %v after 10000-01-01", ts) -+ } -+ if ts.Nanos < 0 || ts.Nanos >= 1e9 { -+ return fmt.Errorf("timestamp: %v: nanos not in range [0, 1e9)", ts) -+ } -+ return nil -+} -diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go -new file mode 100644 -index 00000000..a76f8076 ---- /dev/null -+++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/timestamp.pb.go -@@ -0,0 +1,64 @@ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto -+ -+package timestamp -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ timestamppb "google.golang.org/protobuf/types/known/timestamppb" -+ reflect "reflect" -+) -+ -+// Symbols defined in public import of google/protobuf/timestamp.proto. -+ -+type Timestamp = timestamppb.Timestamp -+ -+var File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto protoreflect.FileDescriptor -+ -+var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = []byte{ -+ 0x0a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, -+ 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, -+ 0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2f, 0x74, 0x69, -+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 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, 0x42, 0x37, -+ 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, -+ 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, -+ 0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3b, 0x74, 0x69, -+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x33, -+} -+ -+var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = []interface{}{} -+var file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() } -+func file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_init() { -+ if File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto != nil { -+ return -+ } -+ type x struct{} -+ out := protoimpl.TypeBuilder{ -+ File: protoimpl.DescBuilder{ -+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), -+ RawDescriptor: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 0, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes, -+ DependencyIndexes: file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs, -+ }.Build() -+ File_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto = out.File -+ file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_rawDesc = nil -+ file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_goTypes = nil -+ file_github_com_golang_protobuf_ptypes_timestamp_timestamp_proto_depIdxs = nil -+} -diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go -index 7a96eae3..2466ae3d 100644 ---- a/vendor/golang.org/x/net/html/doc.go -+++ b/vendor/golang.org/x/net/html/doc.go -@@ -99,14 +99,20 @@ Care should be taken when parsing and interpreting HTML, whether full documents - or fragments, within the framework of the HTML specification, especially with - regard to untrusted inputs. - --This package provides both a tokenizer and a parser. Only the parser constructs --a DOM according to the HTML specification, resolving malformed and misplaced --tags where appropriate. The tokenizer simply tokenizes the HTML presented to it, --and as such does not resolve issues that may exist in the processed HTML, --producing a literal interpretation of the input. -- --If your use case requires semantically well-formed HTML, as defined by the --WHATWG specifiction, the parser should be used rather than the tokenizer. -+This package provides both a tokenizer and a parser, which implement the -+tokenization, and tokenization and tree construction stages of the WHATWG HTML -+parsing specification respectively. While the tokenizer parses and normalizes -+individual HTML tokens, only the parser constructs the DOM tree from the -+tokenized HTML, as described in the tree construction stage of the -+specification, dynamically modifying or extending the docuemnt's DOM tree. -+ -+If your use case requires semantically well-formed HTML documents, as defined by -+the WHATWG specification, the parser should be used rather than the tokenizer. -+ -+In security contexts, if trust decisions are being made using the tokenized or -+parsed content, the input must be re-serialized (for instance by using Render or -+Token.String) in order for those trust decisions to hold, as the process of -+tokenization or parsing may alter the content. - */ - package html // import "golang.org/x/net/html" - -diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go -index 8b280319..e8c12334 100644 ---- a/vendor/golang.org/x/net/html/render.go -+++ b/vendor/golang.org/x/net/html/render.go -@@ -194,9 +194,8 @@ func render1(w writer, n *Node) error { - } - } - -- // Render any child nodes. -- switch n.Data { -- case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": -+ // Render any child nodes -+ if childTextNodesAreLiteral(n) { - for c := n.FirstChild; c != nil; c = c.NextSibling { - if c.Type == TextNode { - if _, err := w.WriteString(c.Data); err != nil { -@@ -213,7 +212,7 @@ func render1(w writer, n *Node) error { - // last element in the file, with no closing tag. - return plaintextAbort - } -- default: -+ } else { - for c := n.FirstChild; c != nil; c = c.NextSibling { - if err := render1(w, c); err != nil { - return err -@@ -231,6 +230,27 @@ func render1(w writer, n *Node) error { - return w.WriteByte('>') - } - -+func childTextNodesAreLiteral(n *Node) bool { -+ // Per WHATWG HTML 13.3, if the parent of the current node is a style, -+ // script, xmp, iframe, noembed, noframes, or plaintext element, and the -+ // current node is a text node, append the value of the node's data -+ // literally. The specification is not explicit about it, but we only -+ // enforce this if we are in the HTML namespace (i.e. when the namespace is -+ // ""). -+ // NOTE: we also always include noscript elements, although the -+ // specification states that they should only be rendered as such if -+ // scripting is enabled for the node (which is not something we track). -+ if n.Namespace != "" { -+ return false -+ } -+ switch n.Data { -+ case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": -+ return true -+ default: -+ return false -+ } -+} -+ - // writeQuoted writes s to w surrounded by quotes. Normally it will use double - // quotes, but if s contains a double quote, it will use single quotes. - // It is used for writing the identifiers in a doctype declaration. -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index 5c2a1f4e..de67f938 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -913,7 +913,14 @@ func (z *Tokenizer) readTagAttrKey() { - case ' ', '\n', '\r', '\t', '\f', '/': - z.pendingAttr[0].end = z.raw.end - 1 - return -- case '=', '>': -+ case '=': -+ if z.pendingAttr[0].start+1 == z.raw.end { -+ // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -+ // begins, we treat it as a character in the attribute name and continue. -+ continue -+ } -+ fallthrough -+ case '>': - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -diff --git a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go b/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go -deleted file mode 100644 -index e07899b9..00000000 ---- a/vendor/golang.org/x/sys/internal/unsafeheader/unsafeheader.go -+++ /dev/null -@@ -1,30 +0,0 @@ --// Copyright 2020 The Go Authors. All rights reserved. --// Use of this source code is governed by a BSD-style --// license that can be found in the LICENSE file. -- --// Package unsafeheader contains header declarations for the Go runtime's --// slice and string implementations. --// --// This package allows x/sys to use types equivalent to --// reflect.SliceHeader and reflect.StringHeader without introducing --// a dependency on the (relatively heavy) "reflect" package. --package unsafeheader -- --import ( -- "unsafe" --) -- --// Slice is the runtime representation of a slice. --// It cannot be used safely or portably and its representation may change in a later release. --type Slice struct { -- Data unsafe.Pointer -- Len int -- Cap int --} -- --// String is the runtime representation of a string. --// It cannot be used safely or portably and its representation may change in a later release. --type String struct { -- Data unsafe.Pointer -- Len int --} -diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh -index 8e3947c3..e6f31d37 100644 ---- a/vendor/golang.org/x/sys/unix/mkall.sh -+++ b/vendor/golang.org/x/sys/unix/mkall.sh -@@ -50,7 +50,7 @@ if [[ "$GOOS" = "linux" ]]; then - # Use the Docker-based build system - # Files generated through docker (use $cmd so you can Ctl-C the build or run) - $cmd docker build --tag generate:$GOOS $GOOS -- $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && /bin/pwd):/build generate:$GOOS -+ $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && pwd):/build generate:$GOOS - exit - fi - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 2045d3da..47fa6a7e 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -204,6 +204,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -518,7 +519,7 @@ ccflags="$@" - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^LO_(KEY|NAME)_SIZE$/ || - $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || -- $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT)_/ || -+ $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || - $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || - $2 ~ /^NFC_.*_(MAX)?SIZE$/ || - $2 ~ /^RAW_PAYLOAD_/ || -@@ -582,6 +583,7 @@ ccflags="$@" - $2 ~ /^PERF_/ || - $2 ~ /^SECCOMP_MODE_/ || - $2 ~ /^SEEK_/ || -+ $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || - $2 ~ /^SYNC_FILE_RANGE_/ || - $2 !~ /IOC_MAGIC/ && -@@ -623,7 +625,7 @@ ccflags="$@" - $2 ~ /^MEM/ || - $2 ~ /^WG/ || - $2 ~ /^FIB_RULE_/ || -- $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} -+ $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE|IOMIN$|IOOPT$|ALIGNOFF$|DISCARD|ROTATIONAL$|ZEROOUT$|GETDISKSEQ$)/ {printf("\t%s = C.%s\n", $2, $2)} - $2 ~ /^__WCOREFLAG$/ {next} - $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} - -@@ -740,7 +742,8 @@ main(void) - e = errors[i].num; - if(i > 0 && errors[i-1].num == e) - continue; -- strcpy(buf, strerror(e)); -+ strncpy(buf, strerror(e), sizeof(buf) - 1); -+ buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; -@@ -759,7 +762,8 @@ main(void) - e = signals[i].num; - if(i > 0 && signals[i-1].num == e) - continue; -- strcpy(buf, strsignal(e)); -+ strncpy(buf, strsignal(e), sizeof(buf) - 1); -+ buf[sizeof(buf) - 1] = '\0'; - // lowercase first letter: Bad -> bad, but STREAM -> STREAM. - if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) - buf[0] += a - A; -diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go -new file mode 100644 -index 00000000..ca051363 ---- /dev/null -+++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go -@@ -0,0 +1,14 @@ -+// Copyright 2023 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build aix || darwin || dragonfly || freebsd || openbsd || solaris -+// +build aix darwin dragonfly freebsd openbsd solaris -+ -+package unix -+ -+var mapper = &mmapper{ -+ active: make(map[*byte][]byte), -+ mmap: mmap, -+ munmap: munmap, -+} -diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go -new file mode 100644 -index 00000000..fa93d0aa ---- /dev/null -+++ b/vendor/golang.org/x/sys/unix/mremap.go -@@ -0,0 +1,53 @@ -+// Copyright 2023 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build linux || netbsd -+// +build linux netbsd -+ -+package unix -+ -+import "unsafe" -+ -+type mremapMmapper struct { -+ mmapper -+ mremap func(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) -+} -+ -+var mapper = &mremapMmapper{ -+ mmapper: mmapper{ -+ active: make(map[*byte][]byte), -+ mmap: mmap, -+ munmap: munmap, -+ }, -+ mremap: mremap, -+} -+ -+func (m *mremapMmapper) Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { -+ if newLength <= 0 || len(oldData) == 0 || len(oldData) != cap(oldData) || flags&mremapFixed != 0 { -+ return nil, EINVAL -+ } -+ -+ pOld := &oldData[cap(oldData)-1] -+ m.Lock() -+ defer m.Unlock() -+ bOld := m.active[pOld] -+ if bOld == nil || &bOld[0] != &oldData[0] { -+ return nil, EINVAL -+ } -+ newAddr, errno := m.mremap(uintptr(unsafe.Pointer(&bOld[0])), uintptr(len(bOld)), uintptr(newLength), flags, 0) -+ if errno != nil { -+ return nil, errno -+ } -+ bNew := unsafe.Slice((*byte)(unsafe.Pointer(newAddr)), newLength) -+ pNew := &bNew[cap(bNew)-1] -+ if flags&mremapDontunmap == 0 { -+ delete(m.active, pOld) -+ } -+ m.active[pNew] = bNew -+ return bNew, nil -+} -+ -+func Mremap(oldData []byte, newLength int, flags int) (data []byte, err error) { -+ return mapper.Mremap(oldData, newLength, flags) -+} -diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go -index 39dba6ca..463c3eff 100644 ---- a/vendor/golang.org/x/sys/unix/ptrace_darwin.go -+++ b/vendor/golang.org/x/sys/unix/ptrace_darwin.go -@@ -7,12 +7,6 @@ - - package unix - --import "unsafe" -- - func ptrace(request int, pid int, addr uintptr, data uintptr) error { - return ptrace1(request, pid, addr, data) - } -- --func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) error { -- return ptrace1Ptr(request, pid, addr, data) --} -diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go -index 9ea66330..ed0509a0 100644 ---- a/vendor/golang.org/x/sys/unix/ptrace_ios.go -+++ b/vendor/golang.org/x/sys/unix/ptrace_ios.go -@@ -7,12 +7,6 @@ - - package unix - --import "unsafe" -- - func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { - return ENOTSUP - } -- --func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { -- return ENOTSUP --} -diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go -index c406ae00..e94e6cda 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_aix.go -+++ b/vendor/golang.org/x/sys/unix/syscall_aix.go -@@ -487,8 +487,6 @@ func Fsync(fd int) error { - //sys Unlinkat(dirfd int, path string, flags int) (err error) - //sys Ustat(dev int, ubuf *Ustat_t) (err error) - //sys write(fd int, p []byte) (n int, err error) --//sys readlen(fd int, p *byte, np int) (n int, err error) = read --//sys writelen(fd int, p *byte, np int) (n int, err error) = write - - //sys Dup2(oldfd int, newfd int) (err error) - //sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 -@@ -535,21 +533,6 @@ func Fsync(fd int) error { - //sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg - - //sys munmap(addr uintptr, length uintptr) (err error) -- --var mapper = &mmapper{ -- active: make(map[*byte][]byte), -- mmap: mmap, -- munmap: munmap, --} -- --func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -- return mapper.Mmap(fd, offset, length, prot, flags) --} -- --func Munmap(b []byte) (err error) { -- return mapper.Munmap(b) --} -- - //sys Madvise(b []byte, advice int) (err error) - //sys Mprotect(b []byte, prot int) (err error) - //sys Mlock(b []byte) (err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go -index 7705c327..4217de51 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_bsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go -@@ -601,20 +601,6 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { - // Gethostuuid(uuid *byte, timeout *Timespec) (err error) - // Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) - --var mapper = &mmapper{ -- active: make(map[*byte][]byte), -- mmap: mmap, -- munmap: munmap, --} -- --func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -- return mapper.Mmap(fd, offset, length, prot, flags) --} -- --func Munmap(b []byte) (err error) { -- return mapper.Munmap(b) --} -- - //sys Madvise(b []byte, behav int) (err error) - //sys Mlock(b []byte) (err error) - //sys Mlockall(flags int) (err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go -index 20692150..59542a89 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go -@@ -510,30 +510,36 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { - return nil, err - } - -- // Find size. -- n := uintptr(0) -- if err := sysctl(mib, nil, &n, nil, 0); err != nil { -- return nil, err -- } -- if n == 0 { -- return nil, nil -- } -- if n%SizeofKinfoProc != 0 { -- return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) -- } -+ for { -+ // Find size. -+ n := uintptr(0) -+ if err := sysctl(mib, nil, &n, nil, 0); err != nil { -+ return nil, err -+ } -+ if n == 0 { -+ return nil, nil -+ } -+ if n%SizeofKinfoProc != 0 { -+ return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) -+ } - -- // Read into buffer of that size. -- buf := make([]KinfoProc, n/SizeofKinfoProc) -- if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { -- return nil, err -- } -- if n%SizeofKinfoProc != 0 { -- return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) -- } -+ // Read into buffer of that size. -+ buf := make([]KinfoProc, n/SizeofKinfoProc) -+ if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { -+ if err == ENOMEM { -+ // Process table grew. Try again. -+ continue -+ } -+ return nil, err -+ } -+ if n%SizeofKinfoProc != 0 { -+ return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) -+ } - -- // The actual call may return less than the original reported required -- // size so ensure we deal with that. -- return buf[:n/SizeofKinfoProc], nil -+ // The actual call may return less than the original reported required -+ // size so ensure we deal with that. -+ return buf[:n/SizeofKinfoProc], nil -+ } - } - - //sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) -@@ -638,189 +644,3 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ --//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE -- --/* -- * Unimplemented -- */ --// Profil --// Sigaction --// Sigprocmask --// Getlogin --// Sigpending --// Sigaltstack --// Ioctl --// Reboot --// Execve --// Vfork --// Sbrk --// Sstk --// Ovadvise --// Mincore --// Setitimer --// Swapon --// Select --// Sigsuspend --// Readv --// Writev --// Nfssvc --// Getfh --// Quotactl --// Csops --// Waitid --// Add_profil --// Kdebug_trace --// Sigreturn --// Atsocket --// Kqueue_from_portset_np --// Kqueue_portset --// Getattrlist --// Getdirentriesattr --// Searchfs --// Delete --// Copyfile --// Watchevent --// Waitevent --// Modwatch --// Fsctl --// Initgroups --// Posix_spawn --// Nfsclnt --// Fhopen --// Minherit --// Semsys --// Msgsys --// Shmsys --// Semctl --// Semget --// Semop --// Msgctl --// Msgget --// Msgsnd --// Msgrcv --// Shm_open --// Shm_unlink --// Sem_open --// Sem_close --// Sem_unlink --// Sem_wait --// Sem_trywait --// Sem_post --// Sem_getvalue --// Sem_init --// Sem_destroy --// Open_extended --// Umask_extended --// Stat_extended --// Lstat_extended --// Fstat_extended --// Chmod_extended --// Fchmod_extended --// Access_extended --// Settid --// Gettid --// Setsgroups --// Getsgroups --// Setwgroups --// Getwgroups --// Mkfifo_extended --// Mkdir_extended --// Identitysvc --// Shared_region_check_np --// Shared_region_map_np --// __pthread_mutex_destroy --// __pthread_mutex_init --// __pthread_mutex_lock --// __pthread_mutex_trylock --// __pthread_mutex_unlock --// __pthread_cond_init --// __pthread_cond_destroy --// __pthread_cond_broadcast --// __pthread_cond_signal --// Setsid_with_pid --// __pthread_cond_timedwait --// Aio_fsync --// Aio_return --// Aio_suspend --// Aio_cancel --// Aio_error --// Aio_read --// Aio_write --// Lio_listio --// __pthread_cond_wait --// Iopolicysys --// __pthread_kill --// __pthread_sigmask --// __sigwait --// __disable_threadsignal --// __pthread_markcancel --// __pthread_canceled --// __semwait_signal --// Proc_info --// sendfile --// Stat64_extended --// Lstat64_extended --// Fstat64_extended --// __pthread_chdir --// __pthread_fchdir --// Audit --// Auditon --// Getauid --// Setauid --// Getaudit --// Setaudit --// Getaudit_addr --// Setaudit_addr --// Auditctl --// Bsdthread_create --// Bsdthread_terminate --// Stack_snapshot --// Bsdthread_register --// Workq_open --// Workq_ops --// __mac_execve --// __mac_syscall --// __mac_get_file --// __mac_set_file --// __mac_get_link --// __mac_set_link --// __mac_get_proc --// __mac_set_proc --// __mac_get_fd --// __mac_set_fd --// __mac_get_pid --// __mac_get_lcid --// __mac_get_lctx --// __mac_set_lctx --// Setlcid --// Read_nocancel --// Write_nocancel --// Open_nocancel --// Close_nocancel --// Wait4_nocancel --// Recvmsg_nocancel --// Sendmsg_nocancel --// Recvfrom_nocancel --// Accept_nocancel --// Fcntl_nocancel --// Select_nocancel --// Fsync_nocancel --// Connect_nocancel --// Sigsuspend_nocancel --// Readv_nocancel --// Writev_nocancel --// Sendto_nocancel --// Pread_nocancel --// Pwrite_nocancel --// Waitid_nocancel --// Poll_nocancel --// Msgsnd_nocancel --// Msgrcv_nocancel --// Sem_wait_nocancel --// Aio_suspend_nocancel --// __sigwait_nocancel --// __semwait_signal_nocancel --// __mac_mount --// __mac_get_mount --// __mac_getfsstat -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -index 9fa87980..b37310ce 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -@@ -47,6 +47,5 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, - //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 - //sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 - //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace --//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace - //sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 - //sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -index f17b8c52..d51ec996 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -@@ -47,6 +47,5 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, - //sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT - //sys Lstat(path string, stat *Stat_t) (err error) - //sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace --//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace - //sys Stat(path string, stat *Stat_t) (err error) - //sys Statfs(path string, stat *Statfs_t) (err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go -index d4ce988e..97cb916f 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go -+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go -@@ -343,203 +343,5 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ --//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) - //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -- --/* -- * Unimplemented -- * TODO(jsing): Update this list for DragonFly. -- */ --// Profil --// Sigaction --// Sigprocmask --// Getlogin --// Sigpending --// Sigaltstack --// Reboot --// Execve --// Vfork --// Sbrk --// Sstk --// Ovadvise --// Mincore --// Setitimer --// Swapon --// Select --// Sigsuspend --// Readv --// Writev --// Nfssvc --// Getfh --// Quotactl --// Mount --// Csops --// Waitid --// Add_profil --// Kdebug_trace --// Sigreturn --// Atsocket --// Kqueue_from_portset_np --// Kqueue_portset --// Getattrlist --// Setattrlist --// Getdirentriesattr --// Searchfs --// Delete --// Copyfile --// Watchevent --// Waitevent --// Modwatch --// Getxattr --// Fgetxattr --// Setxattr --// Fsetxattr --// Removexattr --// Fremovexattr --// Listxattr --// Flistxattr --// Fsctl --// Initgroups --// Posix_spawn --// Nfsclnt --// Fhopen --// Minherit --// Semsys --// Msgsys --// Shmsys --// Semctl --// Semget --// Semop --// Msgctl --// Msgget --// Msgsnd --// Msgrcv --// Shmat --// Shmctl --// Shmdt --// Shmget --// Shm_open --// Shm_unlink --// Sem_open --// Sem_close --// Sem_unlink --// Sem_wait --// Sem_trywait --// Sem_post --// Sem_getvalue --// Sem_init --// Sem_destroy --// Open_extended --// Umask_extended --// Stat_extended --// Lstat_extended --// Fstat_extended --// Chmod_extended --// Fchmod_extended --// Access_extended --// Settid --// Gettid --// Setsgroups --// Getsgroups --// Setwgroups --// Getwgroups --// Mkfifo_extended --// Mkdir_extended --// Identitysvc --// Shared_region_check_np --// Shared_region_map_np --// __pthread_mutex_destroy --// __pthread_mutex_init --// __pthread_mutex_lock --// __pthread_mutex_trylock --// __pthread_mutex_unlock --// __pthread_cond_init --// __pthread_cond_destroy --// __pthread_cond_broadcast --// __pthread_cond_signal --// Setsid_with_pid --// __pthread_cond_timedwait --// Aio_fsync --// Aio_return --// Aio_suspend --// Aio_cancel --// Aio_error --// Aio_read --// Aio_write --// Lio_listio --// __pthread_cond_wait --// Iopolicysys --// __pthread_kill --// __pthread_sigmask --// __sigwait --// __disable_threadsignal --// __pthread_markcancel --// __pthread_canceled --// __semwait_signal --// Proc_info --// Stat64_extended --// Lstat64_extended --// Fstat64_extended --// __pthread_chdir --// __pthread_fchdir --// Audit --// Auditon --// Getauid --// Setauid --// Getaudit --// Setaudit --// Getaudit_addr --// Setaudit_addr --// Auditctl --// Bsdthread_create --// Bsdthread_terminate --// Stack_snapshot --// Bsdthread_register --// Workq_open --// Workq_ops --// __mac_execve --// __mac_syscall --// __mac_get_file --// __mac_set_file --// __mac_get_link --// __mac_set_link --// __mac_get_proc --// __mac_set_proc --// __mac_get_fd --// __mac_set_fd --// __mac_get_pid --// __mac_get_lcid --// __mac_get_lctx --// __mac_set_lctx --// Setlcid --// Read_nocancel --// Write_nocancel --// Open_nocancel --// Close_nocancel --// Wait4_nocancel --// Recvmsg_nocancel --// Sendmsg_nocancel --// Recvfrom_nocancel --// Accept_nocancel --// Fcntl_nocancel --// Select_nocancel --// Fsync_nocancel --// Connect_nocancel --// Sigsuspend_nocancel --// Readv_nocancel --// Writev_nocancel --// Sendto_nocancel --// Pread_nocancel --// Pwrite_nocancel --// Waitid_nocancel --// Msgsnd_nocancel --// Msgrcv_nocancel --// Sem_wait_nocancel --// Aio_suspend_nocancel --// __sigwait_nocancel --// __semwait_signal_nocancel --// __mac_mount --// __mac_get_mount --// __mac_getfsstat -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index afb10106..64d1bb4d 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -449,197 +449,5 @@ func Dup3(oldfd, newfd, flags int) error { - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ --//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - //sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) - //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -- --/* -- * Unimplemented -- */ --// Profil --// Sigaction --// Sigprocmask --// Getlogin --// Sigpending --// Sigaltstack --// Ioctl --// Reboot --// Execve --// Vfork --// Sbrk --// Sstk --// Ovadvise --// Mincore --// Setitimer --// Swapon --// Select --// Sigsuspend --// Readv --// Writev --// Nfssvc --// Getfh --// Quotactl --// Mount --// Csops --// Waitid --// Add_profil --// Kdebug_trace --// Sigreturn --// Atsocket --// Kqueue_from_portset_np --// Kqueue_portset --// Getattrlist --// Setattrlist --// Getdents --// Getdirentriesattr --// Searchfs --// Delete --// Copyfile --// Watchevent --// Waitevent --// Modwatch --// Fsctl --// Initgroups --// Posix_spawn --// Nfsclnt --// Fhopen --// Minherit --// Semsys --// Msgsys --// Shmsys --// Semctl --// Semget --// Semop --// Msgctl --// Msgget --// Msgsnd --// Msgrcv --// Shmat --// Shmctl --// Shmdt --// Shmget --// Shm_open --// Shm_unlink --// Sem_open --// Sem_close --// Sem_unlink --// Sem_wait --// Sem_trywait --// Sem_post --// Sem_getvalue --// Sem_init --// Sem_destroy --// Open_extended --// Umask_extended --// Stat_extended --// Lstat_extended --// Fstat_extended --// Chmod_extended --// Fchmod_extended --// Access_extended --// Settid --// Gettid --// Setsgroups --// Getsgroups --// Setwgroups --// Getwgroups --// Mkfifo_extended --// Mkdir_extended --// Identitysvc --// Shared_region_check_np --// Shared_region_map_np --// __pthread_mutex_destroy --// __pthread_mutex_init --// __pthread_mutex_lock --// __pthread_mutex_trylock --// __pthread_mutex_unlock --// __pthread_cond_init --// __pthread_cond_destroy --// __pthread_cond_broadcast --// __pthread_cond_signal --// Setsid_with_pid --// __pthread_cond_timedwait --// Aio_fsync --// Aio_return --// Aio_suspend --// Aio_cancel --// Aio_error --// Aio_read --// Aio_write --// Lio_listio --// __pthread_cond_wait --// Iopolicysys --// __pthread_kill --// __pthread_sigmask --// __sigwait --// __disable_threadsignal --// __pthread_markcancel --// __pthread_canceled --// __semwait_signal --// Proc_info --// Stat64_extended --// Lstat64_extended --// Fstat64_extended --// __pthread_chdir --// __pthread_fchdir --// Audit --// Auditon --// Getauid --// Setauid --// Getaudit --// Setaudit --// Getaudit_addr --// Setaudit_addr --// Auditctl --// Bsdthread_create --// Bsdthread_terminate --// Stack_snapshot --// Bsdthread_register --// Workq_open --// Workq_ops --// __mac_execve --// __mac_syscall --// __mac_get_file --// __mac_set_file --// __mac_get_link --// __mac_set_link --// __mac_get_proc --// __mac_set_proc --// __mac_get_fd --// __mac_set_fd --// __mac_get_pid --// __mac_get_lcid --// __mac_get_lctx --// __mac_set_lctx --// Setlcid --// Read_nocancel --// Write_nocancel --// Open_nocancel --// Close_nocancel --// Wait4_nocancel --// Recvmsg_nocancel --// Sendmsg_nocancel --// Recvfrom_nocancel --// Accept_nocancel --// Fcntl_nocancel --// Select_nocancel --// Fsync_nocancel --// Connect_nocancel --// Sigsuspend_nocancel --// Readv_nocancel --// Writev_nocancel --// Sendto_nocancel --// Pread_nocancel --// Pwrite_nocancel --// Waitid_nocancel --// Poll_nocancel --// Msgsnd_nocancel --// Msgrcv_nocancel --// Sem_wait_nocancel --// Aio_suspend_nocancel --// __sigwait_nocancel --// __semwait_signal_nocancel --// __mac_mount --// __mac_get_mount --// __mac_getfsstat -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index fbaeb5ff..fb4e5022 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -693,10 +693,10 @@ type SockaddrALG struct { - - func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - // Leave room for NUL byte terminator. -- if len(sa.Type) > 13 { -+ if len(sa.Type) > len(sa.raw.Type)-1 { - return nil, 0, EINVAL - } -- if len(sa.Name) > 63 { -+ if len(sa.Name) > len(sa.raw.Name)-1 { - return nil, 0, EINVAL - } - -@@ -704,17 +704,8 @@ func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { - sa.raw.Feat = sa.Feature - sa.raw.Mask = sa.Mask - -- typ, err := ByteSliceFromString(sa.Type) -- if err != nil { -- return nil, 0, err -- } -- name, err := ByteSliceFromString(sa.Name) -- if err != nil { -- return nil, 0, err -- } -- -- copy(sa.raw.Type[:], typ) -- copy(sa.raw.Name[:], name) -+ copy(sa.raw.Type[:], sa.Type) -+ copy(sa.raw.Name[:], sa.Name) - - return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil - } -@@ -1699,12 +1690,23 @@ func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { - return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) - } - -+// elfNT_PRSTATUS is a copy of the debug/elf.NT_PRSTATUS constant so -+// x/sys/unix doesn't need to depend on debug/elf and thus -+// compress/zlib, debug/dwarf, and other packages. -+const elfNT_PRSTATUS = 1 -+ - func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { -- return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) -+ var iov Iovec -+ iov.Base = (*byte)(unsafe.Pointer(regsout)) -+ iov.SetLen(int(unsafe.Sizeof(*regsout))) -+ return ptracePtr(PTRACE_GETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) - } - - func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { -- return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) -+ var iov Iovec -+ iov.Base = (*byte)(unsafe.Pointer(regs)) -+ iov.SetLen(int(unsafe.Sizeof(*regs))) -+ return ptracePtr(PTRACE_SETREGSET, pid, uintptr(elfNT_PRSTATUS), unsafe.Pointer(&iov)) - } - - func PtraceSetOptions(pid int, options int) (err error) { -@@ -1874,7 +1876,7 @@ func Getpgrp() (pid int) { - //sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) - //sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT - //sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) --//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 -+//sys pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) - //sys read(fd int, p []byte) (n int, err error) - //sys Removexattr(path string, attr string) (err error) - //sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) -@@ -1977,8 +1979,6 @@ func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { - //sys Unshare(flags int) (err error) - //sys write(fd int, p []byte) (n int, err error) - //sys exitThread(code int) (err error) = SYS_EXIT --//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ --//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE - //sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV - //sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV - //sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV -@@ -2113,21 +2113,7 @@ func writevRacedetect(iovecs []Iovec, n int) { - - // mmap varies by architecture; see syscall_linux_*.go. - //sys munmap(addr uintptr, length uintptr) (err error) -- --var mapper = &mmapper{ -- active: make(map[*byte][]byte), -- mmap: mmap, -- munmap: munmap, --} -- --func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -- return mapper.Mmap(fd, offset, length, prot, flags) --} -- --func Munmap(b []byte) (err error) { -- return mapper.Munmap(b) --} -- -+//sys mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) - //sys Madvise(b []byte, advice int) (err error) - //sys Mprotect(b []byte, prot int) (err error) - //sys Mlock(b []byte) (err error) -@@ -2136,6 +2122,12 @@ func Munmap(b []byte) (err error) { - //sys Munlock(b []byte) (err error) - //sys Munlockall() (err error) - -+const ( -+ mremapFixed = MREMAP_FIXED -+ mremapDontunmap = MREMAP_DONTUNMAP -+ mremapMaymove = MREMAP_MAYMOVE -+) -+ - // Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, - // using the specified flags. - func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { -@@ -2420,99 +2412,73 @@ func PthreadSigmask(how int, set, oldset *Sigset_t) error { - return rtSigprocmask(how, set, oldset, _C__NSIG/8) - } - --/* -- * Unimplemented -- */ --// AfsSyscall --// ArchPrctl --// Brk --// ClockNanosleep --// ClockSettime --// Clone --// EpollCtlOld --// EpollPwait --// EpollWaitOld --// Execve --// Fork --// Futex --// GetKernelSyms --// GetMempolicy --// GetRobustList --// GetThreadArea --// Getpmsg --// IoCancel --// IoDestroy --// IoGetevents --// IoSetup --// IoSubmit --// IoprioGet --// IoprioSet --// KexecLoad --// LookupDcookie --// Mbind --// MigratePages --// Mincore --// ModifyLdt --// Mount --// MovePages --// MqGetsetattr --// MqNotify --// MqOpen --// MqTimedreceive --// MqTimedsend --// MqUnlink --// Mremap --// Msgctl --// Msgget --// Msgrcv --// Msgsnd --// Nfsservctl --// Personality --// Pselect6 --// Ptrace --// Putpmsg --// Quotactl --// Readahead --// Readv --// RemapFilePages --// RestartSyscall --// RtSigaction --// RtSigpending --// RtSigqueueinfo --// RtSigreturn --// RtSigsuspend --// RtSigtimedwait --// SchedGetPriorityMax --// SchedGetPriorityMin --// SchedGetparam --// SchedGetscheduler --// SchedRrGetInterval --// SchedSetparam --// SchedYield --// Security --// Semctl --// Semget --// Semop --// Semtimedop --// SetMempolicy --// SetRobustList --// SetThreadArea --// SetTidAddress --// Sigaltstack --// Swapoff --// Swapon --// Sysfs --// TimerCreate --// TimerDelete --// TimerGetoverrun --// TimerGettime --// TimerSettime --// Tkill (obsolete) --// Tuxcall --// Umount2 --// Uselib --// Utimensat --// Vfork --// Vhangup --// Vserver --// _Sysctl -+//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -+//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) -+ -+func Getresuid() (ruid, euid, suid int) { -+ var r, e, s _C_int -+ getresuid(&r, &e, &s) -+ return int(r), int(e), int(s) -+} -+ -+func Getresgid() (rgid, egid, sgid int) { -+ var r, e, s _C_int -+ getresgid(&r, &e, &s) -+ return int(r), int(e), int(s) -+} -+ -+// Pselect is a wrapper around the Linux pselect6 system call. -+// This version does not modify the timeout argument. -+func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { -+ // Per https://man7.org/linux/man-pages/man2/select.2.html#NOTES, -+ // The Linux pselect6() system call modifies its timeout argument. -+ // [Not modifying the argument] is the behavior required by POSIX.1-2001. -+ var mutableTimeout *Timespec -+ if timeout != nil { -+ mutableTimeout = new(Timespec) -+ *mutableTimeout = *timeout -+ } -+ -+ // The final argument of the pselect6() system call is not a -+ // sigset_t * pointer, but is instead a structure -+ var kernelMask *sigset_argpack -+ if sigmask != nil { -+ wordBits := 32 << (^uintptr(0) >> 63) // see math.intSize -+ -+ // A sigset stores one bit per signal, -+ // offset by 1 (because signal 0 does not exist). -+ // So the number of words needed is ⌈__C_NSIG - 1 / wordBits⌉. -+ sigsetWords := (_C__NSIG - 1 + wordBits - 1) / (wordBits) -+ -+ sigsetBytes := uintptr(sigsetWords * (wordBits / 8)) -+ kernelMask = &sigset_argpack{ -+ ss: sigmask, -+ ssLen: sigsetBytes, -+ } -+ } -+ -+ return pselect6(nfd, r, w, e, mutableTimeout, kernelMask) -+} -+ -+//sys schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) -+//sys schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) -+ -+// SchedSetAttr is a wrapper for sched_setattr(2) syscall. -+// https://man7.org/linux/man-pages/man2/sched_setattr.2.html -+func SchedSetAttr(pid int, attr *SchedAttr, flags uint) error { -+ if attr == nil { -+ return EINVAL -+ } -+ attr.Size = SizeofSchedAttr -+ return schedSetattr(pid, attr, flags) -+} -+ -+// SchedGetAttr is a wrapper for sched_getattr(2) syscall. -+// https://man7.org/linux/man-pages/man2/sched_getattr.2.html -+func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { -+ attr := &SchedAttr{} -+ if err := schedGetattr(pid, attr, SizeofSchedAttr, flags); err != nil { -+ return nil, err -+ } -+ return attr, nil -+} -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -index 5b21fcfd..70601ce3 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -@@ -40,7 +40,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } -- return Pselect(nfd, r, w, e, ts, nil) -+ return pselect6(nfd, r, w, e, ts, nil) - } - - //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -index a81f5742..f5266689 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -@@ -33,7 +33,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } -- return Pselect(nfd, r, w, e, ts, nil) -+ return pselect6(nfd, r, w, e, ts, nil) - } - - //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -index 69d2d7c3..f6ab02ec 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -@@ -28,7 +28,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } -- return Pselect(nfd, r, w, e, ts, nil) -+ return pselect6(nfd, r, w, e, ts, nil) - } - - //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -index 76d56409..93fe59d2 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -@@ -31,7 +31,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } -- return Pselect(nfd, r, w, e, ts, nil) -+ return pselect6(nfd, r, w, e, ts, nil) - } - - //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -index 35851ef7..5e6ceee1 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -@@ -32,7 +32,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - if timeout != nil { - ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} - } -- return Pselect(nfd, r, w, e, ts, nil) -+ return pselect6(nfd, r, w, e, ts, nil) - } - - //sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) -@@ -177,3 +177,14 @@ func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error - } - return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) - } -+ -+//sys riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) -+ -+func RISCVHWProbe(pairs []RISCVHWProbePairs, set *CPUSet, flags uint) (err error) { -+ var setSize uintptr -+ -+ if set != nil { -+ setSize = uintptr(unsafe.Sizeof(*set)) -+ } -+ return riscvHWProbe(pairs, setSize, set, flags) -+} -diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go -index 018d7d47..88162099 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go -@@ -356,266 +356,16 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ --//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) - --/* -- * Unimplemented -- */ --// ____semctl13 --// __clone --// __fhopen40 --// __fhstat40 --// __fhstatvfs140 --// __fstat30 --// __getcwd --// __getfh30 --// __getlogin --// __lstat30 --// __mount50 --// __msgctl13 --// __msync13 --// __ntp_gettime30 --// __posix_chown --// __posix_fchown --// __posix_lchown --// __posix_rename --// __setlogin --// __shmctl13 --// __sigaction_sigtramp --// __sigaltstack14 --// __sigpending14 --// __sigprocmask14 --// __sigsuspend14 --// __sigtimedwait --// __stat30 --// __syscall --// __vfork14 --// _ksem_close --// _ksem_destroy --// _ksem_getvalue --// _ksem_init --// _ksem_open --// _ksem_post --// _ksem_trywait --// _ksem_unlink --// _ksem_wait --// _lwp_continue --// _lwp_create --// _lwp_ctl --// _lwp_detach --// _lwp_exit --// _lwp_getname --// _lwp_getprivate --// _lwp_kill --// _lwp_park --// _lwp_self --// _lwp_setname --// _lwp_setprivate --// _lwp_suspend --// _lwp_unpark --// _lwp_unpark_all --// _lwp_wait --// _lwp_wakeup --// _pset_bind --// _sched_getaffinity --// _sched_getparam --// _sched_setaffinity --// _sched_setparam --// acct --// aio_cancel --// aio_error --// aio_fsync --// aio_read --// aio_return --// aio_suspend --// aio_write --// break --// clock_getres --// clock_gettime --// clock_settime --// compat_09_ogetdomainname --// compat_09_osetdomainname --// compat_09_ouname --// compat_10_omsgsys --// compat_10_osemsys --// compat_10_oshmsys --// compat_12_fstat12 --// compat_12_getdirentries --// compat_12_lstat12 --// compat_12_msync --// compat_12_oreboot --// compat_12_oswapon --// compat_12_stat12 --// compat_13_sigaction13 --// compat_13_sigaltstack13 --// compat_13_sigpending13 --// compat_13_sigprocmask13 --// compat_13_sigreturn13 --// compat_13_sigsuspend13 --// compat_14___semctl --// compat_14_msgctl --// compat_14_shmctl --// compat_16___sigaction14 --// compat_16___sigreturn14 --// compat_20_fhstatfs --// compat_20_fstatfs --// compat_20_getfsstat --// compat_20_statfs --// compat_30___fhstat30 --// compat_30___fstat13 --// compat_30___lstat13 --// compat_30___stat13 --// compat_30_fhopen --// compat_30_fhstat --// compat_30_fhstatvfs1 --// compat_30_getdents --// compat_30_getfh --// compat_30_ntp_gettime --// compat_30_socket --// compat_40_mount --// compat_43_fstat43 --// compat_43_lstat43 --// compat_43_oaccept --// compat_43_ocreat --// compat_43_oftruncate --// compat_43_ogetdirentries --// compat_43_ogetdtablesize --// compat_43_ogethostid --// compat_43_ogethostname --// compat_43_ogetkerninfo --// compat_43_ogetpagesize --// compat_43_ogetpeername --// compat_43_ogetrlimit --// compat_43_ogetsockname --// compat_43_okillpg --// compat_43_olseek --// compat_43_ommap --// compat_43_oquota --// compat_43_orecv --// compat_43_orecvfrom --// compat_43_orecvmsg --// compat_43_osend --// compat_43_osendmsg --// compat_43_osethostid --// compat_43_osethostname --// compat_43_osigblock --// compat_43_osigsetmask --// compat_43_osigstack --// compat_43_osigvec --// compat_43_otruncate --// compat_43_owait --// compat_43_stat43 --// execve --// extattr_delete_fd --// extattr_delete_file --// extattr_delete_link --// extattr_get_fd --// extattr_get_file --// extattr_get_link --// extattr_list_fd --// extattr_list_file --// extattr_list_link --// extattr_set_fd --// extattr_set_file --// extattr_set_link --// extattrctl --// fchroot --// fdatasync --// fgetxattr --// fktrace --// flistxattr --// fork --// fremovexattr --// fsetxattr --// fstatvfs1 --// fsync_range --// getcontext --// getitimer --// getvfsstat --// getxattr --// ktrace --// lchflags --// lchmod --// lfs_bmapv --// lfs_markv --// lfs_segclean --// lfs_segwait --// lgetxattr --// lio_listio --// listxattr --// llistxattr --// lremovexattr --// lseek --// lsetxattr --// lutimes --// madvise --// mincore --// minherit --// modctl --// mq_close --// mq_getattr --// mq_notify --// mq_open --// mq_receive --// mq_send --// mq_setattr --// mq_timedreceive --// mq_timedsend --// mq_unlink --// mremap --// msgget --// msgrcv --// msgsnd --// nfssvc --// ntp_adjtime --// pmc_control --// pmc_get_info --// pollts --// preadv --// profil --// pselect --// pset_assign --// pset_create --// pset_destroy --// ptrace --// pwritev --// quotactl --// rasctl --// readv --// reboot --// removexattr --// sa_enable --// sa_preempt --// sa_register --// sa_setconcurrency --// sa_stacks --// sa_yield --// sbrk --// sched_yield --// semconfig --// semget --// semop --// setcontext --// setitimer --// setxattr --// shmat --// shmdt --// shmget --// sstk --// statvfs1 --// swapctl --// sysarch --// syscall --// timer_create --// timer_delete --// timer_getoverrun --// timer_gettime --// timer_settime --// undelete --// utrace --// uuidgen --// vadvise --// vfork --// writev -+const ( -+ mremapFixed = MAP_FIXED -+ mremapDontunmap = 0 -+ mremapMaymove = 0 -+) -+ -+//sys mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) = SYS_MREMAP -+ -+func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (uintptr, error) { -+ return mremapNetBSD(oldaddr, oldlength, newaddr, newlength, flags) -+} -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go -index f9c7a966..6f34479b 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go -@@ -151,6 +151,21 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - return - } - -+//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -+//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) -+ -+func Getresuid() (ruid, euid, suid int) { -+ var r, e, s _C_int -+ getresuid(&r, &e, &s) -+ return int(r), int(e), int(s) -+} -+ -+func Getresgid() (rgid, egid, sgid int) { -+ var r, e, s _C_int -+ getresgid(&r, &e, &s) -+ return int(r), int(e), int(s) -+} -+ - //sys ioctl(fd int, req uint, arg uintptr) (err error) - //sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL - -@@ -311,80 +326,4 @@ func Uname(uname *Utsname) error { - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ --//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE - //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -- --/* -- * Unimplemented -- */ --// __getcwd --// __semctl --// __syscall --// __sysctl --// adjfreq --// break --// clock_getres --// clock_gettime --// clock_settime --// closefrom --// execve --// fhopen --// fhstat --// fhstatfs --// fork --// futimens --// getfh --// getgid --// getitimer --// getlogin --// getresgid --// getresuid --// getthrid --// ktrace --// lfs_bmapv --// lfs_markv --// lfs_segclean --// lfs_segwait --// mincore --// minherit --// mount --// mquery --// msgctl --// msgget --// msgrcv --// msgsnd --// nfssvc --// nnpfspioctl --// preadv --// profil --// pwritev --// quotactl --// readv --// reboot --// renameat --// rfork --// sched_yield --// semget --// semop --// setgroups --// setitimer --// setsockopt --// shmat --// shmctl --// shmdt --// shmget --// sigaction --// sigaltstack --// sigpending --// sigprocmask --// sigreturn --// sigsuspend --// sysarch --// syscall --// threxit --// thrsigdivert --// thrsleep --// thrwakeup --// vfork --// writev -diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go -index b600a289..b99cfa13 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_solaris.go -+++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go -@@ -698,38 +698,6 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e - //sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt - //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) -- n = int(r0) -- if e1 != 0 { -- err = e1 -- } -- return --} -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) -- n = int(r0) -- if e1 != 0 { -- err = e1 -- } -- return --} -- --var mapper = &mmapper{ -- active: make(map[*byte][]byte), -- mmap: mmap, -- munmap: munmap, --} -- --func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -- return mapper.Mmap(fd, offset, length, prot, flags) --} -- --func Munmap(b []byte) (err error) { -- return mapper.Munmap(b) --} -- - // Event Ports - - type fileObjCookie struct { -diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go -index 8e48c29e..f6eda270 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_unix.go -+++ b/vendor/golang.org/x/sys/unix/syscall_unix.go -@@ -147,6 +147,14 @@ func (m *mmapper) Munmap(data []byte) (err error) { - return nil - } - -+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -+ return mapper.Mmap(fd, offset, length, prot, flags) -+} -+ -+func Munmap(b []byte) (err error) { -+ return mapper.Munmap(b) -+} -+ - func Read(fd int, p []byte) (n int, err error) { - n, err = read(fd, p) - if raceenabled { -@@ -541,6 +549,9 @@ func SetNonblock(fd int, nonblocking bool) (err error) { - if err != nil { - return err - } -+ if (flag&O_NONBLOCK != 0) == nonblocking { -+ return nil -+ } - if nonblocking { - flag |= O_NONBLOCK - } else { -diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -index d3d49ec3..4596d041 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -@@ -192,7 +192,6 @@ func (cmsg *Cmsghdr) SetLen(length int) { - - //sys fcntl(fd int, cmd int, arg int) (val int, err error) - //sys read(fd int, p []byte) (n int, err error) --//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ - //sys write(fd int, p []byte) (n int, err error) - - //sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A -@@ -285,25 +284,11 @@ func Close(fd int) (err error) { - return - } - --var mapper = &mmapper{ -- active: make(map[*byte][]byte), -- mmap: mmap, -- munmap: munmap, --} -- - // Dummy function: there are no semantics for Madvise on z/OS - func Madvise(b []byte, advice int) (err error) { - return - } - --func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { -- return mapper.Mmap(fd, offset, length, prot, flags) --} -- --func Munmap(b []byte) (err error) { -- return mapper.Munmap(b) --} -- - //sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A - //sysnb Getegid() (egid int) - //sysnb Geteuid() (uid int) -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index 398c37e5..f9c7f479 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -493,6 +493,7 @@ const ( - BPF_F_TEST_RUN_ON_CPU = 0x1 - BPF_F_TEST_STATE_FREQ = 0x8 - BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 -+ BPF_F_XDP_DEV_BOUND_ONLY = 0x40 - BPF_F_XDP_HAS_FRAGS = 0x20 - BPF_H = 0x8 - BPF_IMM = 0x0 -@@ -826,9 +827,9 @@ const ( - DM_UUID_FLAG = 0x4000 - DM_UUID_LEN = 0x81 - DM_VERSION = 0xc138fd00 -- DM_VERSION_EXTRA = "-ioctl (2022-07-28)" -+ DM_VERSION_EXTRA = "-ioctl (2023-03-01)" - DM_VERSION_MAJOR = 0x4 -- DM_VERSION_MINOR = 0x2f -+ DM_VERSION_MINOR = 0x30 - DM_VERSION_PATCHLEVEL = 0x0 - DT_BLK = 0x6 - DT_CHR = 0x2 -@@ -1197,6 +1198,7 @@ const ( - FAN_EVENT_METADATA_LEN = 0x18 - FAN_EVENT_ON_CHILD = 0x8000000 - FAN_FS_ERROR = 0x8000 -+ FAN_INFO = 0x20 - FAN_MARK_ADD = 0x1 - FAN_MARK_DONT_FOLLOW = 0x4 - FAN_MARK_EVICTABLE = 0x200 -@@ -1233,6 +1235,8 @@ const ( - FAN_REPORT_PIDFD = 0x80 - FAN_REPORT_TARGET_FID = 0x1000 - FAN_REPORT_TID = 0x100 -+ FAN_RESPONSE_INFO_AUDIT_RULE = 0x1 -+ FAN_RESPONSE_INFO_NONE = 0x0 - FAN_UNLIMITED_MARKS = 0x20 - FAN_UNLIMITED_QUEUE = 0x10 - FD_CLOEXEC = 0x1 -@@ -1860,6 +1864,7 @@ const ( - MEMWRITEOOB64 = 0xc0184d15 - MFD_ALLOW_SEALING = 0x2 - MFD_CLOEXEC = 0x1 -+ MFD_EXEC = 0x10 - MFD_HUGETLB = 0x4 - MFD_HUGE_16GB = 0x88000000 - MFD_HUGE_16MB = 0x60000000 -@@ -1875,6 +1880,7 @@ const ( - MFD_HUGE_8MB = 0x5c000000 - MFD_HUGE_MASK = 0x3f - MFD_HUGE_SHIFT = 0x1a -+ MFD_NOEXEC_SEAL = 0x8 - MINIX2_SUPER_MAGIC = 0x2468 - MINIX2_SUPER_MAGIC2 = 0x2478 - MINIX3_SUPER_MAGIC = 0x4d5a -@@ -1898,6 +1904,9 @@ const ( - MOUNT_ATTR_SIZE_VER0 = 0x20 - MOUNT_ATTR_STRICTATIME = 0x20 - MOUNT_ATTR__ATIME = 0x70 -+ MREMAP_DONTUNMAP = 0x4 -+ MREMAP_FIXED = 0x2 -+ MREMAP_MAYMOVE = 0x1 - MSDOS_SUPER_MAGIC = 0x4d44 - MSG_BATCH = 0x40000 - MSG_CMSG_CLOEXEC = 0x40000000 -@@ -2204,6 +2213,7 @@ const ( - PACKET_USER = 0x6 - PACKET_VERSION = 0xa - PACKET_VNET_HDR = 0xf -+ PACKET_VNET_HDR_SZ = 0x18 - PARITY_CRC16_PR0 = 0x2 - PARITY_CRC16_PR0_CCITT = 0x4 - PARITY_CRC16_PR1 = 0x3 -@@ -2221,6 +2231,7 @@ const ( - PERF_ATTR_SIZE_VER5 = 0x70 - PERF_ATTR_SIZE_VER6 = 0x78 - PERF_ATTR_SIZE_VER7 = 0x80 -+ PERF_ATTR_SIZE_VER8 = 0x88 - PERF_AUX_FLAG_COLLISION = 0x8 - PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 - PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 -@@ -2361,6 +2372,7 @@ const ( - PR_FP_EXC_UND = 0x40000 - PR_FP_MODE_FR = 0x1 - PR_FP_MODE_FRE = 0x2 -+ PR_GET_AUXV = 0x41555856 - PR_GET_CHILD_SUBREAPER = 0x25 - PR_GET_DUMPABLE = 0x3 - PR_GET_ENDIAN = 0x13 -@@ -2369,6 +2381,8 @@ const ( - PR_GET_FP_MODE = 0x2e - PR_GET_IO_FLUSHER = 0x3a - PR_GET_KEEPCAPS = 0x7 -+ PR_GET_MDWE = 0x42 -+ PR_GET_MEMORY_MERGE = 0x44 - PR_GET_NAME = 0x10 - PR_GET_NO_NEW_PRIVS = 0x27 - PR_GET_PDEATHSIG = 0x2 -@@ -2389,6 +2403,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b - PR_MTE_TAG_MASK = 0x7fff8 -@@ -2406,6 +2421,15 @@ const ( - PR_PAC_GET_ENABLED_KEYS = 0x3d - PR_PAC_RESET_KEYS = 0x36 - PR_PAC_SET_ENABLED_KEYS = 0x3c -+ PR_RISCV_V_GET_CONTROL = 0x46 -+ PR_RISCV_V_SET_CONTROL = 0x45 -+ PR_RISCV_V_VSTATE_CTRL_CUR_MASK = 0x3 -+ PR_RISCV_V_VSTATE_CTRL_DEFAULT = 0x0 -+ PR_RISCV_V_VSTATE_CTRL_INHERIT = 0x10 -+ PR_RISCV_V_VSTATE_CTRL_MASK = 0x1f -+ PR_RISCV_V_VSTATE_CTRL_NEXT_MASK = 0xc -+ PR_RISCV_V_VSTATE_CTRL_OFF = 0x1 -+ PR_RISCV_V_VSTATE_CTRL_ON = 0x2 - PR_SCHED_CORE = 0x3e - PR_SCHED_CORE_CREATE = 0x1 - PR_SCHED_CORE_GET = 0x0 -@@ -2423,6 +2447,8 @@ const ( - PR_SET_FP_MODE = 0x2d - PR_SET_IO_FLUSHER = 0x39 - PR_SET_KEEPCAPS = 0x8 -+ PR_SET_MDWE = 0x41 -+ PR_SET_MEMORY_MERGE = 0x43 - PR_SET_MM = 0x23 - PR_SET_MM_ARG_END = 0x9 - PR_SET_MM_ARG_START = 0x8 -@@ -2506,6 +2532,7 @@ const ( - PTRACE_GETSIGMASK = 0x420a - PTRACE_GET_RSEQ_CONFIGURATION = 0x420f - PTRACE_GET_SYSCALL_INFO = 0x420e -+ PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG = 0x4211 - PTRACE_INTERRUPT = 0x4207 - PTRACE_KILL = 0x8 - PTRACE_LISTEN = 0x4208 -@@ -2536,6 +2563,7 @@ const ( - PTRACE_SETREGSET = 0x4205 - PTRACE_SETSIGINFO = 0x4203 - PTRACE_SETSIGMASK = 0x420b -+ PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG = 0x4210 - PTRACE_SINGLESTEP = 0x9 - PTRACE_SYSCALL = 0x18 - PTRACE_SYSCALL_INFO_ENTRY = 0x1 -@@ -2802,6 +2830,23 @@ const ( - RWF_SUPPORTED = 0x1f - RWF_SYNC = 0x4 - RWF_WRITE_LIFE_NOT_SET = 0x0 -+ SCHED_BATCH = 0x3 -+ SCHED_DEADLINE = 0x6 -+ SCHED_FIFO = 0x1 -+ SCHED_FLAG_ALL = 0x7f -+ SCHED_FLAG_DL_OVERRUN = 0x4 -+ SCHED_FLAG_KEEP_ALL = 0x18 -+ SCHED_FLAG_KEEP_PARAMS = 0x10 -+ SCHED_FLAG_KEEP_POLICY = 0x8 -+ SCHED_FLAG_RECLAIM = 0x2 -+ SCHED_FLAG_RESET_ON_FORK = 0x1 -+ SCHED_FLAG_UTIL_CLAMP = 0x60 -+ SCHED_FLAG_UTIL_CLAMP_MAX = 0x40 -+ SCHED_FLAG_UTIL_CLAMP_MIN = 0x20 -+ SCHED_IDLE = 0x5 -+ SCHED_NORMAL = 0x0 -+ SCHED_RESET_ON_FORK = 0x40000000 -+ SCHED_RR = 0x2 - SCM_CREDENTIALS = 0x2 - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d -@@ -2967,6 +3012,7 @@ const ( - SOL_TCP = 0x6 - SOL_TIPC = 0x10f - SOL_TLS = 0x11a -+ SOL_UDP = 0x11 - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -@@ -3071,7 +3117,7 @@ const ( - TASKSTATS_GENL_NAME = "TASKSTATS" - TASKSTATS_GENL_VERSION = 0x1 - TASKSTATS_TYPE_MAX = 0x6 -- TASKSTATS_VERSION = 0xd -+ TASKSTATS_VERSION = 0xe - TCIFLUSH = 0x0 - TCIOFF = 0x2 - TCIOFLUSH = 0x2 -@@ -3237,6 +3283,7 @@ const ( - TP_STATUS_COPY = 0x2 - TP_STATUS_CSUMNOTREADY = 0x8 - TP_STATUS_CSUM_VALID = 0x80 -+ TP_STATUS_GSO_TCP = 0x100 - TP_STATUS_KERNEL = 0x0 - TP_STATUS_LOSING = 0x4 - TP_STATUS_SENDING = 0x2 -@@ -3251,6 +3298,19 @@ const ( - TRACEFS_MAGIC = 0x74726163 - TS_COMM_LEN = 0x20 - UDF_SUPER_MAGIC = 0x15013346 -+ UDP_CORK = 0x1 -+ UDP_ENCAP = 0x64 -+ UDP_ENCAP_ESPINUDP = 0x2 -+ UDP_ENCAP_ESPINUDP_NON_IKE = 0x1 -+ UDP_ENCAP_GTP0 = 0x4 -+ UDP_ENCAP_GTP1U = 0x5 -+ UDP_ENCAP_L2TPINUDP = 0x3 -+ UDP_GRO = 0x68 -+ UDP_NO_CHECK6_RX = 0x66 -+ UDP_NO_CHECK6_TX = 0x65 -+ UDP_SEGMENT = 0x67 -+ UDP_V4_FLOW = 0x2 -+ UDP_V6_FLOW = 0x6 - UMOUNT_NOFOLLOW = 0x8 - USBDEVICE_SUPER_MAGIC = 0x9fa2 - UTIME_NOW = 0x3fffffff -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index a46df0f1..30aee00a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -317,10 +326,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index 6cd4a3ea..8ebfa512 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -318,10 +327,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index c7ebee24..271a21cd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80041270 - BLKBSZSET = 0x40041271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80041272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -324,10 +333,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 9d5352c3..910c330a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -314,10 +323,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -@@ -443,6 +454,7 @@ const ( - TIOCSWINSZ = 0x5414 - TIOCVHANGUP = 0x5437 - TOSTOP = 0x100 -+ TPIDR2_MAGIC = 0x54504902 - TUNATTACHFILTER = 0x401054d5 - TUNDETACHFILTER = 0x401054d6 - TUNGETDEVNETNS = 0x54e3 -@@ -515,6 +527,7 @@ const ( - XCASE = 0x4 - XTABS = 0x1800 - ZA_MAGIC = 0x54366345 -+ ZT_MAGIC = 0x5a544e01 - _HIDIOCGRAWNAME = 0x80804804 - _HIDIOCGRAWPHYS = 0x80404805 - _HIDIOCGRAWUNIQ = 0x80404808 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index f26a164f..a640798c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -109,6 +118,8 @@ const ( - IUCLC = 0x200 - IXOFF = 0x1000 - IXON = 0x400 -+ LASX_CTX_MAGIC = 0x41535801 -+ LSX_CTX_MAGIC = 0x53580001 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 - MAP_DENYWRITE = 0x800 -@@ -308,10 +319,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 890bc3c9..0d5925d3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -317,10 +326,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index 549f26ac..d72a00e0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -317,10 +326,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index e0365e32..02ba129f 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -317,10 +326,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index fdccce15..8daa6dd9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -317,10 +326,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x11 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x12 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x1028 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index b2205c83..63c8fa2f 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40041270 - BLKBSZSET = 0x80041271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40041272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 -@@ -372,10 +381,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 81aa5ad0..930799ec 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 -@@ -376,10 +385,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index 76807a1f..8605a7dd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x10 - B576000 = 0x15 - B921600 = 0x16 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1f - BS1 = 0x8000 - BSDLY = 0x8000 -@@ -376,10 +385,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x14 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x15 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index d4a5ab9e..95a016f1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -305,10 +314,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 66e65db9..1ae0108f 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -27,22 +27,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x127a - BLKBSZGET = 0x80081270 - BLKBSZSET = 0x40081271 -+ BLKDISCARD = 0x1277 -+ BLKDISCARDZEROES = 0x127c - BLKFLSBUF = 0x1261 - BLKFRAGET = 0x1265 - BLKFRASET = 0x1264 -+ BLKGETDISKSEQ = 0x80081280 - BLKGETSIZE = 0x1260 - BLKGETSIZE64 = 0x80081272 -+ BLKIOMIN = 0x1278 -+ BLKIOOPT = 0x1279 - BLKPBSZGET = 0x127b - BLKRAGET = 0x1263 - BLKRASET = 0x1262 - BLKROGET = 0x125e - BLKROSET = 0x125d -+ BLKROTATIONAL = 0x127e - BLKRRPART = 0x125f -+ BLKSECDISCARD = 0x127d - BLKSECTGET = 0x1267 - BLKSECTSET = 0x1266 - BLKSSZGET = 0x1268 -+ BLKZEROOUT = 0x127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -380,10 +389,12 @@ const ( - SO_NOFCS = 0x2b - SO_OOBINLINE = 0xa - SO_PASSCRED = 0x10 -+ SO_PASSPIDFD = 0x4c - SO_PASSSEC = 0x22 - SO_PEEK_OFF = 0x2a - SO_PEERCRED = 0x11 - SO_PEERGROUPS = 0x3b -+ SO_PEERPIDFD = 0x4d - SO_PEERSEC = 0x1f - SO_PREFER_BUSY_POLL = 0x45 - SO_PROTOCOL = 0x26 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index f6192526..1bb7c633 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -30,22 +30,31 @@ const ( - B57600 = 0x1001 - B576000 = 0x1006 - B921600 = 0x1007 -+ BLKALIGNOFF = 0x2000127a - BLKBSZGET = 0x40081270 - BLKBSZSET = 0x80081271 -+ BLKDISCARD = 0x20001277 -+ BLKDISCARDZEROES = 0x2000127c - BLKFLSBUF = 0x20001261 - BLKFRAGET = 0x20001265 - BLKFRASET = 0x20001264 -+ BLKGETDISKSEQ = 0x40081280 - BLKGETSIZE = 0x20001260 - BLKGETSIZE64 = 0x40081272 -+ BLKIOMIN = 0x20001278 -+ BLKIOOPT = 0x20001279 - BLKPBSZGET = 0x2000127b - BLKRAGET = 0x20001263 - BLKRASET = 0x20001262 - BLKROGET = 0x2000125e - BLKROSET = 0x2000125d -+ BLKROTATIONAL = 0x2000127e - BLKRRPART = 0x2000125f -+ BLKSECDISCARD = 0x2000127d - BLKSECTGET = 0x20001267 - BLKSECTSET = 0x20001266 - BLKSSZGET = 0x20001268 -+ BLKZEROOUT = 0x2000127f - BOTHER = 0x1000 - BS1 = 0x2000 - BSDLY = 0x2000 -@@ -329,6 +338,54 @@ const ( - SCM_WIFI_STATUS = 0x25 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 -+ SF_FP = 0x38 -+ SF_I0 = 0x20 -+ SF_I1 = 0x24 -+ SF_I2 = 0x28 -+ SF_I3 = 0x2c -+ SF_I4 = 0x30 -+ SF_I5 = 0x34 -+ SF_L0 = 0x0 -+ SF_L1 = 0x4 -+ SF_L2 = 0x8 -+ SF_L3 = 0xc -+ SF_L4 = 0x10 -+ SF_L5 = 0x14 -+ SF_L6 = 0x18 -+ SF_L7 = 0x1c -+ SF_PC = 0x3c -+ SF_RETP = 0x40 -+ SF_V9_FP = 0x70 -+ SF_V9_I0 = 0x40 -+ SF_V9_I1 = 0x48 -+ SF_V9_I2 = 0x50 -+ SF_V9_I3 = 0x58 -+ SF_V9_I4 = 0x60 -+ SF_V9_I5 = 0x68 -+ SF_V9_L0 = 0x0 -+ SF_V9_L1 = 0x8 -+ SF_V9_L2 = 0x10 -+ SF_V9_L3 = 0x18 -+ SF_V9_L4 = 0x20 -+ SF_V9_L5 = 0x28 -+ SF_V9_L6 = 0x30 -+ SF_V9_L7 = 0x38 -+ SF_V9_PC = 0x78 -+ SF_V9_RETP = 0x80 -+ SF_V9_XARG0 = 0x88 -+ SF_V9_XARG1 = 0x90 -+ SF_V9_XARG2 = 0x98 -+ SF_V9_XARG3 = 0xa0 -+ SF_V9_XARG4 = 0xa8 -+ SF_V9_XARG5 = 0xb0 -+ SF_V9_XXARG = 0xb8 -+ SF_XARG0 = 0x44 -+ SF_XARG1 = 0x48 -+ SF_XARG2 = 0x4c -+ SF_XARG3 = 0x50 -+ SF_XARG4 = 0x54 -+ SF_XARG5 = 0x58 -+ SF_XXARG = 0x5c - SIOCATMARK = 0x8905 - SIOCGPGRP = 0x8904 - SIOCGSTAMPNS_NEW = 0x40108907 -@@ -371,10 +428,12 @@ const ( - SO_NOFCS = 0x27 - SO_OOBINLINE = 0x100 - SO_PASSCRED = 0x2 -+ SO_PASSPIDFD = 0x55 - SO_PASSSEC = 0x1f - SO_PEEK_OFF = 0x26 - SO_PEERCRED = 0x40 - SO_PEERGROUPS = 0x3d -+ SO_PEERPIDFD = 0x56 - SO_PEERSEC = 0x1e - SO_PREFER_BUSY_POLL = 0x48 - SO_PROTOCOL = 0x1028 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -index 9a257219..d1d1d233 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -@@ -817,28 +817,6 @@ func write(fd int, p []byte) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, p *byte, np int) (n int, err error) { -- r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) -- n = int(r0) -- if r0 == -1 && er != nil { -- err = er -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, p *byte, np int) (n int, err error) { -- r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) -- n = int(r0) -- if r0 == -1 && er != nil { -- err = er -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func Dup2(oldfd int, newfd int) (err error) { - r0, er := C.dup2(C.int(oldfd), C.int(newfd)) - if r0 == -1 && er != nil { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -index 6de80c20..f99a18ad 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -@@ -762,28 +762,6 @@ func write(fd int, p []byte) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, p *byte, np int) (n int, err error) { -- r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, p *byte, np int) (n int, err error) { -- r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func Dup2(oldfd int, newfd int) (err error) { - _, e1 := calldup2(oldfd, newfd) - if e1 != 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -index 4037ccf7..1cad561e 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -@@ -725,6 +725,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -733,10 +739,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2410,28 +2412,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { -@@ -2521,14 +2501,6 @@ func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - return - } - --func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { -- _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- - var libc_ptrace_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s -index 4baaed0b..8b8bb284 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s -@@ -5,703 +5,586 @@ - - TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -- - GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - - TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -- - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - - TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -- - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - - TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -- - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 - DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - - TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -- - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 - DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - - TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -- - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 - DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - - TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -- - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 - DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - - TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -- - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 - DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - - TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -- - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - - TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -- - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - - TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -- - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - - TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -- - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - - TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -- - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - - TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -- - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 - DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - - TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -- - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 - DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - - TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -- - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - - TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -- - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 - DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - - TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -- - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - - TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -- - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - - TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -- - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - - TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -- - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 - DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - - TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -- - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 - DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - - TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -- - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 - DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - - TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -- - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - - TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -- - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - - TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -- - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - - TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -- - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - - TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -- - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - - TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -- - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - - TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -- - GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - - TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -- - GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - - TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -- - GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - - TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -- - GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - - TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -- - GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - - TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -- - GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - - TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -- - GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - - TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -- - GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - - TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -- - GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - - TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -- - GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - - TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -- - GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -- - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - - TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -- - GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - - TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -- - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -- - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - - TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -- - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - - TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -- - GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - - TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -- - GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - - TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -- - GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - - TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -- - GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - - TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -- - GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - - TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -- - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 - DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - - TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -- - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 - DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - - TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -- - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - - TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -- - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - - TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -- - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - - TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -- - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - - TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -- - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - - TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -- - GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - - TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -- - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 - DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - - TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -- - GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - - TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -- - GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - - TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -- - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 - DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - - TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -- - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 - DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - - TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -- - GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 - DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - - TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -- - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 - DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - - TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -- - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - - TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -- - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - - TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -- - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - - TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -- - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - - TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -- - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - - TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -- - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - - TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -- - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - - TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -- - GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - - TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -- - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - - TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -- - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - - TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -- - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - - TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -- - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - - TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -- - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - - TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -- - GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - - TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -- - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - - TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -- - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - - TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -- - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - - TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -- - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - - TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -- - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - - TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -- - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - - TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -- - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - - TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -- - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - - TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -- - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - - TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -- - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - - TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -- - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - - TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -- - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 - DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - - TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -- - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - - TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -- - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - - TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -- - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - - TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -- - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - - TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -- - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 - DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - - TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -- - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - - TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -- - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 - DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - - TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -- - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - - TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -- - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - - TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -- - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - - TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -- - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - - TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -- - GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - - TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -- - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 - DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - - TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -- - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - - TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -- - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - - TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -- - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - - TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -- - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - - TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -- - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 - DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - - TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -- - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - - TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -- - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - - TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -- - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 - DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - - TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -- - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - - TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -- - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 - DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - - TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -- - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - - TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -- - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - - TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -- - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 - DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -@@ -712,192 +595,160 @@ DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB - - TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -- - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - - TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -- - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - - TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -- - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - - TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -- - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - - TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -- - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - - TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -- - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - - TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -- - GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - - TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -- - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - - TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -- - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - - TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -- - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - - TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -- - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 - DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - - TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -- - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - - TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -- - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - - TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -- - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - - TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -- - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - - TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -- - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 - DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - - TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -- - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 - DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - - TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -- - GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 - DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - - TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -- - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - - TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -- - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - - TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -- - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - - TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -- - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 - DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - - TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -- - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - - TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -- - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - - TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat64(SB) -- - GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) - - TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat64(SB) -- - GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) - - TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs64(SB) -- - GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) - - TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat64(SB) -- - GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) - - TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat64(SB) -- - GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) - - TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -- - GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - - TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat64(SB) -- - GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) - - TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs64(SB) -- - GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 - DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -index 51d6f3fb..b18edbd0 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -@@ -725,6 +725,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -733,10 +739,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2410,28 +2412,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) - if e1 != 0 { -@@ -2521,14 +2501,6 @@ func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { - return - } - --func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { -- _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- - var libc_ptrace_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s -index c3b82c03..08362c1a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s -@@ -5,703 +5,586 @@ - - TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fdopendir(SB) -- - GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) - - TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgroups(SB) -- - GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) - - TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgroups(SB) -- - GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) - - TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_wait4(SB) -- - GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 - DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) - - TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_accept(SB) -- - GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 - DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) - - TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_bind(SB) -- - GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 - DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) - - TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_connect(SB) -- - GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 - DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) - - TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socket(SB) -- - GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 - DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) - - TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockopt(SB) -- - GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) - - TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsockopt(SB) -- - GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) - - TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpeername(SB) -- - GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) - - TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsockname(SB) -- - GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) - - TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shutdown(SB) -- - GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) - - TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_socketpair(SB) -- - GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 - DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) - - TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvfrom(SB) -- - GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 - DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) - - TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendto(SB) -- - GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) - - TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_recvmsg(SB) -- - GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 - DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) - - TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendmsg(SB) -- - GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) - - TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kevent(SB) -- - GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) - - TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimes(SB) -- - GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) - - TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_futimes(SB) -- - GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 - DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) - - TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_poll(SB) -- - GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 - DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) - - TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_madvise(SB) -- - GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 - DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) - - TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlock(SB) -- - GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) - - TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mlockall(SB) -- - GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) - - TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mprotect(SB) -- - GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) - - TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_msync(SB) -- - GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) - - TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlock(SB) -- - GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) - - TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munlockall(SB) -- - GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) - - TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_closedir(SB) -- - GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) - - TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readdir_r(SB) -- - GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) - - TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pipe(SB) -- - GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) - - TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getxattr(SB) -- - GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) - - TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fgetxattr(SB) -- - GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) - - TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setxattr(SB) -- - GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) - - TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsetxattr(SB) -- - GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) - - TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_removexattr(SB) -- - GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) - - TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fremovexattr(SB) -- - GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) - - TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listxattr(SB) -- - GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) - - TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flistxattr(SB) -- - GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 - DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) - - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) -- - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) - - TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fcntl(SB) -- - GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) - - TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kill(SB) -- - GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) - - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) -- - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) - - TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sysctl(SB) -- - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - - TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sendfile(SB) -- - GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) - - TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmat(SB) -- - GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) - - TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmctl(SB) -- - GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) - - TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmdt(SB) -- - GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) - - TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_shmget(SB) -- - GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 - DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) - - TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_access(SB) -- - GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 - DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) - - TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_adjtime(SB) -- - GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 - DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) - - TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chdir(SB) -- - GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) - - TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chflags(SB) -- - GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) - - TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chmod(SB) -- - GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) - - TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chown(SB) -- - GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) - - TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_chroot(SB) -- - GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 - DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) - - TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clock_gettime(SB) -- - GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) - - TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_close(SB) -- - GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 - DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) - - TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefile(SB) -- - GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) - - TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_clonefileat(SB) -- - GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) - - TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup(SB) -- - GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 - DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) - - TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_dup2(SB) -- - GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 - DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) - - TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exchangedata(SB) -- - GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 - DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) - - TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_exit(SB) -- - GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 - DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) - - TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_faccessat(SB) -- - GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) - - TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchdir(SB) -- - GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) - - TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchflags(SB) -- - GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) - - TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmod(SB) -- - GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) - - TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchmodat(SB) -- - GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) - - TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchown(SB) -- - GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) - - TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fchownat(SB) -- - GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) - - TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fclonefileat(SB) -- - GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) - - TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_flock(SB) -- - GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 - DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) - - TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fpathconf(SB) -- - GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) - - TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fsync(SB) -- - GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) - - TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ftruncate(SB) -- - GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) - - TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getcwd(SB) -- - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - - TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getdtablesize(SB) -- - GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) - - TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getegid(SB) -- - GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) - - TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_geteuid(SB) -- - GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) - - TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getgid(SB) -- - GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) - - TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgid(SB) -- - GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) - - TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpgrp(SB) -- - GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) - - TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpid(SB) -- - GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) - - TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getppid(SB) -- - GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) - - TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getpriority(SB) -- - GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) - - TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrlimit(SB) -- - GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) - - TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getrusage(SB) -- - GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) - - TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getsid(SB) -- - GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) - - TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_gettimeofday(SB) -- - GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 - DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) - - TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getuid(SB) -- - GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) - - TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_issetugid(SB) -- - GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) - - TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_kqueue(SB) -- - GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 - DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) - - TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lchown(SB) -- - GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) - - TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_link(SB) -- - GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 - DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) - - TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_linkat(SB) -- - GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) - - TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_listen(SB) -- - GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 - DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) - - TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdir(SB) -- - GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) - - TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkdirat(SB) -- - GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) - - TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mkfifo(SB) -- - GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) - - TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mknod(SB) -- - GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) - - TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mount(SB) -- - GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) - - TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_open(SB) -- - GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 - DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) - - TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_openat(SB) -- - GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) - - TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pathconf(SB) -- - GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) - - TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pread(SB) -- - GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) - - TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_pwrite(SB) -- - GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 - DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) - - TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_read(SB) -- - GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 - DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) - - TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlink(SB) -- - GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) - - TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_readlinkat(SB) -- - GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) - - TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rename(SB) -- - GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 - DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) - - TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_renameat(SB) -- - GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) - - TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_revoke(SB) -- - GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 - DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) - - TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_rmdir(SB) -- - GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 - DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) - - TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lseek(SB) -- - GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) - - TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_select(SB) -- - GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 - DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) - -@@ -712,192 +595,160 @@ DATA ·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB - - TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setegid(SB) -- - GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) - - TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_seteuid(SB) -- - GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) - - TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setgid(SB) -- - GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) - - TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setlogin(SB) -- - GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) - - TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpgid(SB) -- - GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) - - TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setpriority(SB) -- - GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) - - TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setprivexec(SB) -- - GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) - - TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setregid(SB) -- - GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) - - TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setreuid(SB) -- - GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) - - TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setsid(SB) -- - GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) - - TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_settimeofday(SB) -- - GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 - DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) - - TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_setuid(SB) -- - GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 - DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) - - TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlink(SB) -- - GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) - - TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_symlinkat(SB) -- - GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) - - TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_sync(SB) -- - GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) - - TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_truncate(SB) -- - GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 - DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) - - TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_umask(SB) -- - GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 - DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) - - TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_undelete(SB) -- - GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 - DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) - - TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlink(SB) -- - GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) - - TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unlinkat(SB) -- - GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) - - TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_unmount(SB) -- - GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 - DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) - - TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_write(SB) -- - GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 - DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) - - TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_mmap(SB) -- - GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) - - TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_munmap(SB) -- - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - - TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstat(SB) -- - GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) - - TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatat(SB) -- - GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) - - TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_fstatfs(SB) -- - GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 - DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) - - TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_getfsstat(SB) -- - GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) - - TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_lstat(SB) -- - GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) - - TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ptrace(SB) -- - GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 - DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) - - TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_stat(SB) -- - GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) - - TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_statfs(SB) -- - GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 - DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -index 0eabac7a..0c67df64 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -@@ -1642,28 +1642,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -index ee313eb0..e6e05d14 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -@@ -1862,28 +1862,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -index 4c986e44..7508acca 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -@@ -1862,28 +1862,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -index 55521694..7b56aead 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -@@ -1862,28 +1862,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -index 67a226fb..cc623dca 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -@@ -1862,28 +1862,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -index f0b9ddaa..58184919 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -@@ -1862,28 +1862,6 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { - r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - nfd = int(r0) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -index b57c7050..6be25cd1 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -@@ -40,7 +40,7 @@ func readv(fd int, iovs []Iovec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -55,7 +55,7 @@ func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -70,7 +70,7 @@ func writev(fd int, iovs []Iovec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -85,7 +85,7 @@ func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -96,7 +96,7 @@ func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index da63d9d7..1ff3aec7 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -1356,7 +1356,7 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) ( - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { -+func pselect6(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *sigset_argpack) (n int, err error) { - r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) - n = int(r0) - if e1 != 0 { -@@ -1734,28 +1734,6 @@ func exitThread(code int) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, p *byte, np int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, p *byte, np int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func readv(fd int, iovs []Iovec) (n int, err error) { - var _p0 unsafe.Pointer - if len(iovs) > 0 { -@@ -1868,6 +1846,17 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func mremap(oldaddr uintptr, oldlength uintptr, newlength uintptr, flags int, newaddr uintptr) (xaddr uintptr, err error) { -+ r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldaddr), uintptr(oldlength), uintptr(newlength), uintptr(flags), uintptr(newaddr), 0) -+ xaddr = uintptr(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Madvise(b []byte, advice int) (err error) { - var _p0 unsafe.Pointer - if len(b) > 0 { -@@ -2172,3 +2161,37 @@ func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) - } - return - } -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func schedSetattr(pid int, attr *SchedAttr, flags uint) (err error) { -+ _, _, e1 := Syscall(SYS_SCHED_SETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(flags)) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { -+ _, _, e1 := Syscall6(SYS_SCHED_GETATTR, uintptr(pid), uintptr(unsafe.Pointer(attr)), uintptr(size), uintptr(flags), 0, 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -index 0b292395..0ab4f2ed 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -@@ -531,3 +531,19 @@ func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, f - } - return - } -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func riscvHWProbe(pairs []RISCVHWProbePairs, cpuCount uintptr, cpus *CPUSet, flags uint) (err error) { -+ var _p0 unsafe.Pointer -+ if len(pairs) > 0 { -+ _p0 = unsafe.Pointer(&pairs[0]) -+ } else { -+ _p0 = unsafe.Pointer(&_zero) -+ } -+ _, _, e1 := Syscall6(SYS_RISCV_HWPROBE, uintptr(_p0), uintptr(len(pairs)), uintptr(cpuCount), uintptr(unsafe.Pointer(cpus)), uintptr(flags), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -index cdb2af5a..2df3c5ba 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -@@ -1824,20 +1824,13 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -+ var _p0 *byte -+ _p0, err = BytePtrFromString(path) -+ if err != nil { -+ return - } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -+ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } -@@ -1846,13 +1839,9 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -- var _p0 *byte -- _p0, err = BytePtrFromString(path) -- if err != nil { -- return -- } -- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) -+func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { -+ r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) -+ xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -index 9d25f76b..a60556ba 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -@@ -1824,20 +1824,13 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -+ var _p0 *byte -+ _p0, err = BytePtrFromString(path) -+ if err != nil { -+ return - } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -+ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } -@@ -1846,13 +1839,9 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -- var _p0 *byte -- _p0, err = BytePtrFromString(path) -- if err != nil { -- return -- } -- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) -+func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { -+ r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) -+ xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -index d3f80351..9f788917 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -@@ -1824,20 +1824,13 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -+ var _p0 *byte -+ _p0, err = BytePtrFromString(path) -+ if err != nil { -+ return - } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -+ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } -@@ -1846,13 +1839,9 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -- var _p0 *byte -- _p0, err = BytePtrFromString(path) -- if err != nil { -- return -- } -- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) -+func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { -+ r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) -+ xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -index 887188a5..82a4cb2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -@@ -1824,20 +1824,13 @@ func munmap(addr uintptr, length uintptr) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -+func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -+ var _p0 *byte -+ _p0, err = BytePtrFromString(path) -+ if err != nil { -+ return - } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -+ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) - if e1 != 0 { - err = errnoErr(e1) - } -@@ -1846,13 +1839,9 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { -- var _p0 *byte -- _p0, err = BytePtrFromString(path) -- if err != nil { -- return -- } -- _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) -+func mremapNetBSD(oldp uintptr, oldsize uintptr, newp uintptr, newsize uintptr, flags int) (xaddr uintptr, err error) { -+ r0, _, e1 := Syscall6(SYS_MREMAP, uintptr(oldp), uintptr(oldsize), uintptr(newp), uintptr(newsize), uintptr(flags), 0) -+ xaddr = uintptr(r0) - if e1 != 0 { - err = errnoErr(e1) - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index 6699a783..66b3b645 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -index 04f0de34..3dcacd30 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 - DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index 1e775fe0..c5c4cc11 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -index 27b6f4df..2763620b 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index 7f642789..93bfbb32 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -index b797045f..c9223140 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 - DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index 756ef7b1..a107b8fd 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -index a8712662..a6bc32c9 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index 7bc2e24e..c427de50 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -index 05d4bffd..b4e7bcea 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 739be621..60c1a99a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -index 74a25f8d..ca3f7660 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -@@ -189,6 +189,18 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_getresuid(SB) -+ RET -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_getresgid(SB) -+ RET -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ioctl(SB) - RET -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 7d95a197..52eba360 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -519,6 +519,28 @@ var libc_getcwd_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { -+ syscall_rawSyscall(libc_getresuid_trampoline_addr, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) -+ return -+} -+ -+var libc_getresuid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresuid getresuid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { -+ syscall_rawSyscall(libc_getresgid_trampoline_addr, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) -+ return -+} -+ -+var libc_getresgid_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getresgid getresgid "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -527,6 +549,12 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { - return - } - -+var libc_ioctl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -535,10 +563,6 @@ func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { - return - } - --var libc_ioctl_trampoline_addr uintptr -- --//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" -- - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - - func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { -@@ -2189,28 +2213,6 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- --func writelen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -index 990be245..477a7d5b 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 - DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) - -+TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresuid(SB) -+GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB) -+ -+TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getresgid(SB) -+GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB) -+ - TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ioctl(SB) - GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -index 609d1c59..b4018946 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -@@ -436,7 +436,7 @@ func pipe(p *[2]_C_int) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -446,7 +446,7 @@ func pipe(p *[2]_C_int) (n int, err error) { - func pipe2(p *[2]_C_int, flags int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -456,7 +456,7 @@ func pipe2(p *[2]_C_int, flags int) (err error) { - func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -471,7 +471,7 @@ func Getcwd(buf []byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -482,7 +482,7 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -492,7 +492,7 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) { - func setgroups(ngid int, gid *_Gid_t) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -503,7 +503,7 @@ func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) - wpid = int32(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -518,7 +518,7 @@ func gethostname(buf []byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -533,7 +533,7 @@ func utimes(path string, times *[2]Timeval) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -548,7 +548,7 @@ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -559,7 +559,7 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) - val = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -569,7 +569,7 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) { - func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -580,7 +580,7 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -591,7 +591,7 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -602,7 +602,7 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -612,7 +612,7 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { - func acct(path *byte) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -647,7 +647,7 @@ func ioctlRet(fd int, req int, arg uintptr) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -658,7 +658,7 @@ func ioctlPtrRet(fd int, req int, arg unsafe.Pointer) (ret int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) - ret = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -669,7 +669,7 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -684,7 +684,7 @@ func Access(path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -694,7 +694,7 @@ func Access(path string, mode uint32) (err error) { - func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -709,7 +709,7 @@ func Chdir(path string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -724,7 +724,7 @@ func Chmod(path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -739,7 +739,7 @@ func Chown(path string, uid int, gid int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -754,7 +754,7 @@ func Chroot(path string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -764,7 +764,7 @@ func Chroot(path string) (err error) { - func ClockGettime(clockid int32, time *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -774,7 +774,7 @@ func ClockGettime(clockid int32, time *Timespec) (err error) { - func Close(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -790,7 +790,7 @@ func Creat(path string, mode uint32) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -801,7 +801,7 @@ func Dup(fd int) (nfd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) - nfd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -811,7 +811,7 @@ func Dup(fd int) (nfd int, err error) { - func Dup2(oldfd int, newfd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -833,7 +833,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -843,7 +843,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { - func Fchdir(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -853,7 +853,7 @@ func Fchdir(fd int) (err error) { - func Fchmod(fd int, mode uint32) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -868,7 +868,7 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -878,7 +878,7 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { - func Fchown(fd int, uid int, gid int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -893,7 +893,7 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -903,7 +903,7 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { - func Fdatasync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -913,7 +913,7 @@ func Fdatasync(fd int) (err error) { - func Flock(fd int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -924,7 +924,7 @@ func Fpathconf(fd int, name int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -934,7 +934,7 @@ func Fpathconf(fd int, name int) (val int, err error) { - func Fstat(fd int, stat *Stat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -949,7 +949,7 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -959,7 +959,7 @@ func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { - func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -974,7 +974,7 @@ func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1001,7 +1001,7 @@ func Getpgid(pid int) (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1012,7 +1012,7 @@ func Getpgrp() (pgid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) - pgid = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1047,7 +1047,7 @@ func Getpriority(which int, who int) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1057,7 +1057,7 @@ func Getpriority(which int, who int) (n int, err error) { - func Getrlimit(which int, lim *Rlimit) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1067,7 +1067,7 @@ func Getrlimit(which int, lim *Rlimit) (err error) { - func Getrusage(who int, rusage *Rusage) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1078,7 +1078,7 @@ func Getsid(pid int) (sid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) - sid = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1088,7 +1088,7 @@ func Getsid(pid int) (sid int, err error) { - func Gettimeofday(tv *Timeval) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1106,7 +1106,7 @@ func Getuid() (uid int) { - func Kill(pid int, signum syscall.Signal) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1121,7 +1121,7 @@ func Lchown(path string, uid int, gid int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1141,7 +1141,7 @@ func Link(path string, link string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1151,7 +1151,7 @@ func Link(path string, link string) (err error) { - func Listen(s int, backlog int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1166,7 +1166,7 @@ func Lstat(path string, stat *Stat_t) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1180,7 +1180,7 @@ func Madvise(b []byte, advice int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1195,7 +1195,7 @@ func Mkdir(path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1210,7 +1210,7 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1225,7 +1225,7 @@ func Mkfifo(path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1240,7 +1240,7 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1255,7 +1255,7 @@ func Mknod(path string, mode uint32, dev int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1270,7 +1270,7 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1284,7 +1284,7 @@ func Mlock(b []byte) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1294,7 +1294,7 @@ func Mlock(b []byte) (err error) { - func Mlockall(flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1308,7 +1308,7 @@ func Mprotect(b []byte, prot int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1322,7 +1322,7 @@ func Msync(b []byte, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1336,7 +1336,7 @@ func Munlock(b []byte) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1346,7 +1346,7 @@ func Munlock(b []byte) (err error) { - func Munlockall() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1356,7 +1356,7 @@ func Munlockall() (err error) { - func Nanosleep(time *Timespec, leftover *Timespec) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1372,7 +1372,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1388,7 +1388,7 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1404,7 +1404,7 @@ func Pathconf(path string, name int) (val int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) - val = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1414,7 +1414,7 @@ func Pathconf(path string, name int) (val int, err error) { - func Pause() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1429,7 +1429,7 @@ func pread(fd int, p []byte, offset int64) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1444,7 +1444,7 @@ func pwrite(fd int, p []byte, offset int64) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1459,7 +1459,7 @@ func read(fd int, p []byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1479,7 +1479,7 @@ func Readlink(path string, buf []byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1499,7 +1499,7 @@ func Rename(from string, to string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1519,7 +1519,7 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1534,7 +1534,7 @@ func Rmdir(path string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1545,7 +1545,7 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) - newoffset = int64(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1556,7 +1556,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1566,7 +1566,7 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err - func Setegid(egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1576,7 +1576,7 @@ func Setegid(egid int) (err error) { - func Seteuid(euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1586,7 +1586,7 @@ func Seteuid(euid int) (err error) { - func Setgid(gid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1600,7 +1600,7 @@ func Sethostname(p []byte) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1610,7 +1610,7 @@ func Sethostname(p []byte) (err error) { - func Setpgid(pid int, pgid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1620,7 +1620,7 @@ func Setpgid(pid int, pgid int) (err error) { - func Setpriority(which int, who int, prio int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1630,7 +1630,7 @@ func Setpriority(which int, who int, prio int) (err error) { - func Setregid(rgid int, egid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1640,7 +1640,7 @@ func Setregid(rgid int, egid int) (err error) { - func Setreuid(ruid int, euid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1651,7 +1651,7 @@ func Setsid() (pid int, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) - pid = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1661,7 +1661,7 @@ func Setsid() (pid int, err error) { - func Setuid(uid int) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1671,7 +1671,7 @@ func Setuid(uid int) (err error) { - func Shutdown(s int, how int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1686,7 +1686,7 @@ func Stat(path string, stat *Stat_t) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1701,7 +1701,7 @@ func Statvfs(path string, vfsstat *Statvfs_t) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1721,7 +1721,7 @@ func Symlink(path string, link string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1731,7 +1731,7 @@ func Symlink(path string, link string) (err error) { - func Sync() (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1742,7 +1742,7 @@ func Sysconf(which int) (n int64, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) - n = int64(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1753,7 +1753,7 @@ func Times(tms *Tms) (ticks uintptr, err error) { - r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) - ticks = uintptr(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1768,7 +1768,7 @@ func Truncate(path string, length int64) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1778,7 +1778,7 @@ func Truncate(path string, length int64) (err error) { - func Fsync(fd int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1788,7 +1788,7 @@ func Fsync(fd int) (err error) { - func Ftruncate(fd int, length int64) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1806,7 +1806,7 @@ func Umask(mask int) (oldmask int) { - func Uname(buf *Utsname) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1821,7 +1821,7 @@ func Unmount(target string, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1836,7 +1836,7 @@ func Unlink(path string) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1851,7 +1851,7 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1861,7 +1861,7 @@ func Unlinkat(dirfd int, path string, flags int) (err error) { - func Ustat(dev int, ubuf *Ustat_t) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1876,7 +1876,7 @@ func Utime(path string, buf *Utimbuf) (err error) { - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1886,7 +1886,7 @@ func Utime(path string, buf *Utimbuf) (err error) { - func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1896,7 +1896,7 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1907,7 +1907,7 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) - ret = uintptr(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1917,7 +1917,7 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) ( - func munmap(addr uintptr, length uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1928,7 +1928,7 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) - written = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1942,7 +1942,7 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) ( - } - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1953,7 +1953,7 @@ func socket(domain int, typ int, proto int) (fd int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) - fd = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1963,7 +1963,7 @@ func socket(domain int, typ int, proto int) (fd int, err error) { - func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1978,7 +1978,7 @@ func write(fd int, p []byte) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1988,7 +1988,7 @@ func write(fd int, p []byte) (n int, err error) { - func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -1998,7 +1998,7 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen - func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2008,7 +2008,7 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { - func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2023,7 +2023,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2034,7 +2034,7 @@ func port_create() (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2045,7 +2045,7 @@ func port_associate(port int, source int, object uintptr, events int, user *byte - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2056,7 +2056,7 @@ func port_dissociate(port int, source int, object uintptr) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2067,7 +2067,7 @@ func port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2078,7 +2078,7 @@ func port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Times - r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0) - n = int(r0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2088,7 +2088,7 @@ func port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Times - func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -@@ -2098,7 +2098,7 @@ func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { - func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { - _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) - if e1 != 0 { -- err = e1 -+ err = errnoErr(e1) - } - return - } -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -index c3168174..1d8fe1d4 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -@@ -40,17 +40,6 @@ func read(fd int, p []byte) (n int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - --func readlen(fd int, buf *byte, nbuf int) (n int, err error) { -- r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) -- n = int(r0) -- if e1 != 0 { -- err = errnoErr(e1) -- } -- return --} -- --// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -- - func write(fd int, p []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(p) > 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index c9c4ad03..9862853d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -447,4 +447,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index 12ff3417..8901f0f4 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -369,4 +369,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index c3fb5e77..6902c37e 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -411,4 +411,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index 358c847a..a6d3dff8 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -314,4 +314,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index 81c4849b..b18f3f71 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -308,4 +308,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 202a57e9..0302e5e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -431,4 +431,5 @@ const ( - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 -+ SYS_CACHESTAT = 4451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index 1fbceb52..6693ba4a 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -361,4 +361,5 @@ const ( - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 -+ SYS_CACHESTAT = 5451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index b4ffb7a2..fd93f498 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -361,4 +361,5 @@ const ( - SYS_PROCESS_MRELEASE = 5448 - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 -+ SYS_CACHESTAT = 5451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index 867985f9..760ddcad 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -431,4 +431,5 @@ const ( - SYS_PROCESS_MRELEASE = 4448 - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 -+ SYS_CACHESTAT = 4451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index a8cce69e..cff2b255 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -438,4 +438,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index d44c5b39..a4b2405d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -410,4 +410,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index 4214dd9c..aca54b4e 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -410,4 +410,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 3e594a8c..9d1738d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -251,6 +251,8 @@ const ( - SYS_ACCEPT4 = 242 - SYS_RECVMMSG = 243 - SYS_ARCH_SPECIFIC_SYSCALL = 244 -+ SYS_RISCV_HWPROBE = 258 -+ SYS_RISCV_FLUSH_ICACHE = 259 - SYS_WAIT4 = 260 - SYS_PRLIMIT64 = 261 - SYS_FANOTIFY_INIT = 262 -@@ -313,4 +315,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index 7ea46520..022878dc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -372,7 +372,9 @@ const ( - SYS_LANDLOCK_CREATE_RULESET = 444 - SYS_LANDLOCK_ADD_RULE = 445 - SYS_LANDLOCK_RESTRICT_SELF = 446 -+ SYS_MEMFD_SECRET = 447 - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index 92f628ef..4100a761 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -389,4 +389,5 @@ const ( - SYS_PROCESS_MRELEASE = 448 - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 -+ SYS_CACHESTAT = 451 - ) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index ca84727c..18aa70b4 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -866,6 +866,11 @@ const ( - POLLNVAL = 0x20 - ) - -+type sigset_argpack struct { -+ ss *Sigset_t -+ ssLen uintptr -+} -+ - type SignalfdSiginfo struct { - Signo uint32 - Errno int32 -@@ -1538,6 +1543,10 @@ const ( - IFLA_GRO_MAX_SIZE = 0x3a - IFLA_TSO_MAX_SIZE = 0x3b - IFLA_TSO_MAX_SEGS = 0x3c -+ IFLA_ALLMULTI = 0x3d -+ IFLA_DEVLINK_PORT = 0x3e -+ IFLA_GSO_IPV4_MAX_SIZE = 0x3f -+ IFLA_GRO_IPV4_MAX_SIZE = 0x40 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1968,7 +1977,7 @@ const ( - NFT_MSG_GETFLOWTABLE = 0x17 - NFT_MSG_DELFLOWTABLE = 0x18 - NFT_MSG_GETRULE_RESET = 0x19 -- NFT_MSG_MAX = 0x1a -+ NFT_MSG_MAX = 0x22 - NFTA_LIST_UNSPEC = 0x0 - NFTA_LIST_ELEM = 0x1 - NFTA_HOOK_UNSPEC = 0x0 -@@ -2555,6 +2564,11 @@ const ( - BPF_REG_8 = 0x8 - BPF_REG_9 = 0x9 - BPF_REG_10 = 0xa -+ BPF_CGROUP_ITER_ORDER_UNSPEC = 0x0 -+ BPF_CGROUP_ITER_SELF_ONLY = 0x1 -+ BPF_CGROUP_ITER_DESCENDANTS_PRE = 0x2 -+ BPF_CGROUP_ITER_DESCENDANTS_POST = 0x3 -+ BPF_CGROUP_ITER_ANCESTORS_UP = 0x4 - BPF_MAP_CREATE = 0x0 - BPF_MAP_LOOKUP_ELEM = 0x1 - BPF_MAP_UPDATE_ELEM = 0x2 -@@ -2566,6 +2580,7 @@ const ( - BPF_PROG_ATTACH = 0x8 - BPF_PROG_DETACH = 0x9 - BPF_PROG_TEST_RUN = 0xa -+ BPF_PROG_RUN = 0xa - BPF_PROG_GET_NEXT_ID = 0xb - BPF_MAP_GET_NEXT_ID = 0xc - BPF_PROG_GET_FD_BY_ID = 0xd -@@ -2610,6 +2625,7 @@ const ( - BPF_MAP_TYPE_CPUMAP = 0x10 - BPF_MAP_TYPE_XSKMAP = 0x11 - BPF_MAP_TYPE_SOCKHASH = 0x12 -+ BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 0x13 - BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 - BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 - BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 -@@ -2620,6 +2636,10 @@ const ( - BPF_MAP_TYPE_STRUCT_OPS = 0x1a - BPF_MAP_TYPE_RINGBUF = 0x1b - BPF_MAP_TYPE_INODE_STORAGE = 0x1c -+ BPF_MAP_TYPE_TASK_STORAGE = 0x1d -+ BPF_MAP_TYPE_BLOOM_FILTER = 0x1e -+ BPF_MAP_TYPE_USER_RINGBUF = 0x1f -+ BPF_MAP_TYPE_CGRP_STORAGE = 0x20 - BPF_PROG_TYPE_UNSPEC = 0x0 - BPF_PROG_TYPE_SOCKET_FILTER = 0x1 - BPF_PROG_TYPE_KPROBE = 0x2 -@@ -2651,6 +2671,7 @@ const ( - BPF_PROG_TYPE_EXT = 0x1c - BPF_PROG_TYPE_LSM = 0x1d - BPF_PROG_TYPE_SK_LOOKUP = 0x1e -+ BPF_PROG_TYPE_SYSCALL = 0x1f - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 -@@ -2689,6 +2710,12 @@ const ( - BPF_XDP_CPUMAP = 0x23 - BPF_SK_LOOKUP = 0x24 - BPF_XDP = 0x25 -+ BPF_SK_SKB_VERDICT = 0x26 -+ BPF_SK_REUSEPORT_SELECT = 0x27 -+ BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 0x28 -+ BPF_PERF_EVENT = 0x29 -+ BPF_TRACE_KPROBE_MULTI = 0x2a -+ BPF_LSM_CGROUP = 0x2b - BPF_LINK_TYPE_UNSPEC = 0x0 - BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 - BPF_LINK_TYPE_TRACING = 0x2 -@@ -2696,6 +2723,9 @@ const ( - BPF_LINK_TYPE_ITER = 0x4 - BPF_LINK_TYPE_NETNS = 0x5 - BPF_LINK_TYPE_XDP = 0x6 -+ BPF_LINK_TYPE_PERF_EVENT = 0x7 -+ BPF_LINK_TYPE_KPROBE_MULTI = 0x8 -+ BPF_LINK_TYPE_STRUCT_OPS = 0x9 - BPF_ANY = 0x0 - BPF_NOEXIST = 0x1 - BPF_EXIST = 0x2 -@@ -2733,6 +2763,7 @@ const ( - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_SEQ_NUMBER = 0x8 -+ BPF_F_TUNINFO_FLAGS = 0x10 - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_CURRENT_CPU = 0xffffffff - BPF_F_CTXLEN_MASK = 0xfffff00000000 -@@ -2747,6 +2778,7 @@ const ( - BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 -+ BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_F_SYSCTL_BASE_NAME = 0x1 -@@ -2771,10 +2803,16 @@ const ( - BPF_LWT_ENCAP_SEG6 = 0x0 - BPF_LWT_ENCAP_SEG6_INLINE = 0x1 - BPF_LWT_ENCAP_IP = 0x2 -+ BPF_F_BPRM_SECUREEXEC = 0x1 -+ BPF_F_BROADCAST = 0x8 -+ BPF_F_EXCLUDE_INGRESS = 0x10 -+ BPF_SKB_TSTAMP_UNSPEC = 0x0 -+ BPF_SKB_TSTAMP_DELIVERY_MONO = 0x1 - BPF_OK = 0x0 - BPF_DROP = 0x2 - BPF_REDIRECT = 0x7 - BPF_LWT_REROUTE = 0x80 -+ BPF_FLOW_DISSECTOR_CONTINUE = 0x81 - BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 - BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 - BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 -@@ -2838,6 +2876,10 @@ const ( - BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 - BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 - BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 -+ BPF_MTU_CHK_SEGS = 0x1 -+ BPF_MTU_CHK_RET_SUCCESS = 0x0 -+ BPF_MTU_CHK_RET_FRAG_NEEDED = 0x1 -+ BPF_MTU_CHK_RET_SEGS_TOOBIG = 0x2 - BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 - BPF_FD_TYPE_TRACEPOINT = 0x1 - BPF_FD_TYPE_KPROBE = 0x2 -@@ -2847,6 +2889,19 @@ const ( - BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 - BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 - BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 -+ BPF_CORE_FIELD_BYTE_OFFSET = 0x0 -+ BPF_CORE_FIELD_BYTE_SIZE = 0x1 -+ BPF_CORE_FIELD_EXISTS = 0x2 -+ BPF_CORE_FIELD_SIGNED = 0x3 -+ BPF_CORE_FIELD_LSHIFT_U64 = 0x4 -+ BPF_CORE_FIELD_RSHIFT_U64 = 0x5 -+ BPF_CORE_TYPE_ID_LOCAL = 0x6 -+ BPF_CORE_TYPE_ID_TARGET = 0x7 -+ BPF_CORE_TYPE_EXISTS = 0x8 -+ BPF_CORE_TYPE_SIZE = 0x9 -+ BPF_CORE_ENUMVAL_EXISTS = 0xa -+ BPF_CORE_ENUMVAL_VALUE = 0xb -+ BPF_CORE_TYPE_MATCHES = 0xc - ) - - const ( -@@ -3605,7 +3660,7 @@ const ( - ETHTOOL_MSG_PSE_GET = 0x24 - ETHTOOL_MSG_PSE_SET = 0x25 - ETHTOOL_MSG_RSS_GET = 0x26 -- ETHTOOL_MSG_USER_MAX = 0x26 -+ ETHTOOL_MSG_USER_MAX = 0x2b - ETHTOOL_MSG_KERNEL_NONE = 0x0 - ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 - ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 -@@ -3645,7 +3700,7 @@ const ( - ETHTOOL_MSG_MODULE_NTF = 0x24 - ETHTOOL_MSG_PSE_GET_REPLY = 0x25 - ETHTOOL_MSG_RSS_GET_REPLY = 0x26 -- ETHTOOL_MSG_KERNEL_MAX = 0x26 -+ ETHTOOL_MSG_KERNEL_MAX = 0x2b - ETHTOOL_A_HEADER_UNSPEC = 0x0 - ETHTOOL_A_HEADER_DEV_INDEX = 0x1 - ETHTOOL_A_HEADER_DEV_NAME = 0x2 -@@ -3749,7 +3804,7 @@ const ( - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb - ETHTOOL_A_RINGS_CQE_SIZE = 0xc - ETHTOOL_A_RINGS_TX_PUSH = 0xd -- ETHTOOL_A_RINGS_MAX = 0xd -+ ETHTOOL_A_RINGS_MAX = 0x10 - ETHTOOL_A_CHANNELS_UNSPEC = 0x0 - ETHTOOL_A_CHANNELS_HEADER = 0x1 - ETHTOOL_A_CHANNELS_RX_MAX = 0x2 -@@ -3787,14 +3842,14 @@ const ( - ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 - ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 - ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 -- ETHTOOL_A_COALESCE_MAX = 0x19 -+ ETHTOOL_A_COALESCE_MAX = 0x1c - ETHTOOL_A_PAUSE_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_HEADER = 0x1 - ETHTOOL_A_PAUSE_AUTONEG = 0x2 - ETHTOOL_A_PAUSE_RX = 0x3 - ETHTOOL_A_PAUSE_TX = 0x4 - ETHTOOL_A_PAUSE_STATS = 0x5 -- ETHTOOL_A_PAUSE_MAX = 0x5 -+ ETHTOOL_A_PAUSE_MAX = 0x6 - ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 - ETHTOOL_A_PAUSE_STAT_PAD = 0x1 - ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 -@@ -4444,7 +4499,7 @@ const ( - NL80211_ATTR_MAC_HINT = 0xc8 - NL80211_ATTR_MAC_MASK = 0xd7 - NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca -- NL80211_ATTR_MAX = 0x141 -+ NL80211_ATTR_MAX = 0x146 - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 - NL80211_ATTR_MAX_CSA_COUNTERS = 0xce - NL80211_ATTR_MAX_MATCH_SETS = 0x85 -@@ -4673,7 +4728,7 @@ const ( - NL80211_BAND_ATTR_HT_CAPA = 0x4 - NL80211_BAND_ATTR_HT_MCS_SET = 0x3 - NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 -- NL80211_BAND_ATTR_MAX = 0xb -+ NL80211_BAND_ATTR_MAX = 0xd - NL80211_BAND_ATTR_RATES = 0x2 - NL80211_BAND_ATTR_VHT_CAPA = 0x8 - NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 -@@ -4814,7 +4869,7 @@ const ( - NL80211_CMD_LEAVE_IBSS = 0x2c - NL80211_CMD_LEAVE_MESH = 0x45 - NL80211_CMD_LEAVE_OCB = 0x6d -- NL80211_CMD_MAX = 0x98 -+ NL80211_CMD_MAX = 0x9a - NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 - NL80211_CMD_MODIFY_LINK_STA = 0x97 - NL80211_CMD_NAN_MATCH = 0x78 -@@ -5448,7 +5503,7 @@ const ( - NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 - NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 - NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 -- NL80211_RATE_INFO_MAX = 0x16 -+ NL80211_RATE_INFO_MAX = 0x1d - NL80211_RATE_INFO_MCS = 0x2 - NL80211_RATE_INFO_SHORT_GI = 0x4 - NL80211_RATE_INFO_VHT_MCS = 0x6 -@@ -5795,6 +5850,8 @@ const ( - TUN_F_TSO6 = 0x4 - TUN_F_TSO_ECN = 0x8 - TUN_F_UFO = 0x10 -+ TUN_F_USO4 = 0x20 -+ TUN_F_USO6 = 0x40 - ) - - const ( -@@ -5804,9 +5861,25 @@ const ( - ) - - const ( -- VIRTIO_NET_HDR_GSO_NONE = 0x0 -- VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 -- VIRTIO_NET_HDR_GSO_UDP = 0x3 -- VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 -- VIRTIO_NET_HDR_GSO_ECN = 0x80 -+ VIRTIO_NET_HDR_GSO_NONE = 0x0 -+ VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 -+ VIRTIO_NET_HDR_GSO_UDP = 0x3 -+ VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 -+ VIRTIO_NET_HDR_GSO_UDP_L4 = 0x5 -+ VIRTIO_NET_HDR_GSO_ECN = 0x80 - ) -+ -+type SchedAttr struct { -+ Size uint32 -+ Policy uint32 -+ Flags uint64 -+ Nice int32 -+ Priority uint32 -+ Runtime uint64 -+ Deadline uint64 -+ Period uint64 -+ Util_min uint32 -+ Util_max uint32 -+} -+ -+const SizeofSchedAttr = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -index 4ecc1495..6d8acbcc 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -@@ -337,6 +337,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint32 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -index 34fddff9..59293c68 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -@@ -350,6 +350,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -index 3b14a603..40cfa38c 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -@@ -328,6 +328,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint32 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -index 0517651a..055bc421 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -@@ -329,6 +329,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -index 3b0c5181..f28affbc 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -@@ -330,6 +330,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -index fccdf4dd..9d71e7cc 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -@@ -333,6 +333,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint32 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -index 500de8fc..fd5ccd33 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -@@ -332,6 +332,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -index d0434cd2..7704de77 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -@@ -332,6 +332,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -index 84206ba5..df00b875 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -@@ -333,6 +333,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint32 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -index ab078cf1..0942840d 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -@@ -340,6 +340,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint32 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -index 42eb2c4c..03487439 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -@@ -339,6 +339,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -index 31304a4e..bad06704 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -@@ -339,6 +339,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -index c311f961..1b4c97c3 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -@@ -357,6 +357,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -@@ -716,3 +718,30 @@ type SysvShmDesc struct { - _ uint64 - _ uint64 - } -+ -+type RISCVHWProbePairs struct { -+ Key int64 -+ Value uint64 -+} -+ -+const ( -+ RISCV_HWPROBE_KEY_MVENDORID = 0x0 -+ RISCV_HWPROBE_KEY_MARCHID = 0x1 -+ RISCV_HWPROBE_KEY_MIMPID = 0x2 -+ RISCV_HWPROBE_KEY_BASE_BEHAVIOR = 0x3 -+ RISCV_HWPROBE_BASE_BEHAVIOR_IMA = 0x1 -+ RISCV_HWPROBE_KEY_IMA_EXT_0 = 0x4 -+ RISCV_HWPROBE_IMA_FD = 0x1 -+ RISCV_HWPROBE_IMA_C = 0x2 -+ RISCV_HWPROBE_IMA_V = 0x4 -+ RISCV_HWPROBE_EXT_ZBA = 0x8 -+ RISCV_HWPROBE_EXT_ZBB = 0x10 -+ RISCV_HWPROBE_EXT_ZBS = 0x20 -+ RISCV_HWPROBE_KEY_CPUPERF_0 = 0x5 -+ RISCV_HWPROBE_MISALIGNED_UNKNOWN = 0x0 -+ RISCV_HWPROBE_MISALIGNED_EMULATED = 0x1 -+ RISCV_HWPROBE_MISALIGNED_SLOW = 0x2 -+ RISCV_HWPROBE_MISALIGNED_FAST = 0x3 -+ RISCV_HWPROBE_MISALIGNED_UNSUPPORTED = 0x4 -+ RISCV_HWPROBE_MISALIGNED_MASK = 0x7 -+) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -index bba3cefa..aa268d02 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -@@ -352,6 +352,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -index ad8a0138..444045b6 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -@@ -334,6 +334,8 @@ type Taskstats struct { - Ac_exe_inode uint64 - Wpcopy_count uint64 - Wpcopy_delay_total uint64 -+ Irq_count uint64 -+ Irq_delay_total uint64 - } - - type cpuMask uint64 -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index 92ac05ff..b8ad1925 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,14 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := uintptr(unsafe.Pointer(block)) -+ blockp := unsafe.Pointer(block) - for { -- entry := UTF16PtrToString((*uint16)(unsafe.Pointer(blockp))) -+ entry := UTF16PtrToString((*uint16)(blockp)) - if len(entry) == 0 { - break - } - env = append(env, entry) -- blockp += 2 * (uintptr(len(entry)) + 1) -+ blockp = unsafe.Add(blockp, 2*(len(entry)+1)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go -index 75980fd4..9cabbb69 100644 ---- a/vendor/golang.org/x/sys/windows/exec_windows.go -+++ b/vendor/golang.org/x/sys/windows/exec_windows.go -@@ -22,7 +22,7 @@ import ( - // but only if there is space or tab inside s. - func EscapeArg(s string) string { - if len(s) == 0 { -- return "\"\"" -+ return `""` - } - n := len(s) - hasSpace := false -@@ -35,7 +35,7 @@ func EscapeArg(s string) string { - } - } - if hasSpace { -- n += 2 -+ n += 2 // Reserve space for quotes. - } - if n == len(s) { - return s -@@ -82,36 +82,106 @@ func EscapeArg(s string) string { - // in CreateProcess's CommandLine argument, CreateService/ChangeServiceConfig's BinaryPathName argument, - // or any program that uses CommandLineToArgv. - func ComposeCommandLine(args []string) string { -- var commandLine string -- for i := range args { -- if i > 0 { -- commandLine += " " -+ if len(args) == 0 { -+ return "" -+ } -+ -+ // Per https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-commandlinetoargvw: -+ // “This function accepts command lines that contain a program name; the -+ // program name can be enclosed in quotation marks or not.†-+ // -+ // Unfortunately, it provides no means of escaping interior quotation marks -+ // within that program name, and we have no way to report them here. -+ prog := args[0] -+ mustQuote := len(prog) == 0 -+ for i := 0; i < len(prog); i++ { -+ c := prog[i] -+ if c <= ' ' || (c == '"' && i == 0) { -+ // Force quotes for not only the ASCII space and tab as described in the -+ // MSDN article, but also ASCII control characters. -+ // The documentation for CommandLineToArgvW doesn't say what happens when -+ // the first argument is not a valid program name, but it empirically -+ // seems to drop unquoted control characters. -+ mustQuote = true -+ break -+ } -+ } -+ var commandLine []byte -+ if mustQuote { -+ commandLine = make([]byte, 0, len(prog)+2) -+ commandLine = append(commandLine, '"') -+ for i := 0; i < len(prog); i++ { -+ c := prog[i] -+ if c == '"' { -+ // This quote would interfere with our surrounding quotes. -+ // We have no way to report an error, so just strip out -+ // the offending character instead. -+ continue -+ } -+ commandLine = append(commandLine, c) -+ } -+ commandLine = append(commandLine, '"') -+ } else { -+ if len(args) == 1 { -+ // args[0] is a valid command line representing itself. -+ // No need to allocate a new slice or string for it. -+ return prog - } -- commandLine += EscapeArg(args[i]) -+ commandLine = []byte(prog) - } -- return commandLine -+ -+ for _, arg := range args[1:] { -+ commandLine = append(commandLine, ' ') -+ // TODO(bcmills): since we're already appending to a slice, it would be nice -+ // to avoid the intermediate allocations of EscapeArg. -+ // Perhaps we can factor out an appendEscapedArg function. -+ commandLine = append(commandLine, EscapeArg(arg)...) -+ } -+ return string(commandLine) - } - - // DecomposeCommandLine breaks apart its argument command line into unescaped parts using CommandLineToArgv, - // as gathered from GetCommandLine, QUERY_SERVICE_CONFIG's BinaryPathName argument, or elsewhere that - // command lines are passed around. -+// DecomposeCommandLine returns an error if commandLine contains NUL. - func DecomposeCommandLine(commandLine string) ([]string, error) { - if len(commandLine) == 0 { - return []string{}, nil - } -+ utf16CommandLine, err := UTF16FromString(commandLine) -+ if err != nil { -+ return nil, errorspkg.New("string with NUL passed to DecomposeCommandLine") -+ } - var argc int32 -- argv, err := CommandLineToArgv(StringToUTF16Ptr(commandLine), &argc) -+ argv, err := commandLineToArgv(&utf16CommandLine[0], &argc) - if err != nil { - return nil, err - } - defer LocalFree(Handle(unsafe.Pointer(argv))) -+ - var args []string -- for _, v := range (*argv)[:argc] { -- args = append(args, UTF16ToString((*v)[:])) -+ for _, p := range unsafe.Slice(argv, argc) { -+ args = append(args, UTF16PtrToString(p)) - } - return args, nil - } - -+// CommandLineToArgv parses a Unicode command line string and sets -+// argc to the number of parsed arguments. -+// -+// The returned memory should be freed using a single call to LocalFree. -+// -+// Note that although the return type of CommandLineToArgv indicates 8192 -+// entries of up to 8192 characters each, the actual count of parsed arguments -+// may exceed 8192, and the documentation for CommandLineToArgvW does not mention -+// any bound on the lengths of the individual argument strings. -+// (See https://go.dev/issue/63236.) -+func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { -+ argp, err := commandLineToArgv(cmd, argc) -+ argv = (*[8192]*[8192]uint16)(unsafe.Pointer(argp)) -+ return argv, err -+} -+ - func CloseOnExec(fd Handle) { - SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) - } -diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go -index d414ef13..26be94a8 100644 ---- a/vendor/golang.org/x/sys/windows/security_windows.go -+++ b/vendor/golang.org/x/sys/windows/security_windows.go -@@ -7,8 +7,6 @@ package windows - import ( - "syscall" - "unsafe" -- -- "golang.org/x/sys/internal/unsafeheader" - ) - - const ( -@@ -1341,21 +1339,14 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) copySelfRelativeSecurityDescriptor() - sdLen = min - } - -- var src []byte -- h := (*unsafeheader.Slice)(unsafe.Pointer(&src)) -- h.Data = unsafe.Pointer(selfRelativeSD) -- h.Len = sdLen -- h.Cap = sdLen -- -+ src := unsafe.Slice((*byte)(unsafe.Pointer(selfRelativeSD)), sdLen) -+ // SECURITY_DESCRIPTOR has pointers in it, which means checkptr expects for it to -+ // be aligned properly. When we're copying a Windows-allocated struct to a -+ // Go-allocated one, make sure that the Go allocation is aligned to the -+ // pointer size. - const psize = int(unsafe.Sizeof(uintptr(0))) -- -- var dst []byte -- h = (*unsafeheader.Slice)(unsafe.Pointer(&dst)) - alloc := make([]uintptr, (sdLen+psize-1)/psize) -- h.Data = (*unsafeheader.Slice)(unsafe.Pointer(&alloc)).Data -- h.Len = sdLen -- h.Cap = sdLen -- -+ dst := unsafe.Slice((*byte)(unsafe.Pointer(&alloc[0])), sdLen) - copy(dst, src) - return (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&dst[0])) - } -diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go -index f8deca83..c44a1b96 100644 ---- a/vendor/golang.org/x/sys/windows/service.go -+++ b/vendor/golang.org/x/sys/windows/service.go -@@ -141,6 +141,12 @@ const ( - SERVICE_DYNAMIC_INFORMATION_LEVEL_START_REASON = 1 - ) - -+type ENUM_SERVICE_STATUS struct { -+ ServiceName *uint16 -+ DisplayName *uint16 -+ ServiceStatus SERVICE_STATUS -+} -+ - type SERVICE_STATUS struct { - ServiceType uint32 - CurrentState uint32 -@@ -212,6 +218,10 @@ type SERVICE_FAILURE_ACTIONS struct { - Actions *SC_ACTION - } - -+type SERVICE_FAILURE_ACTIONS_FLAG struct { -+ FailureActionsOnNonCrashFailures int32 -+} -+ - type SC_ACTION struct { - Type uint32 - Delay uint32 -@@ -245,3 +255,4 @@ type QUERY_SERVICE_LOCK_STATUS struct { - //sys UnsubscribeServiceChangeNotifications(subscription uintptr) = sechost.UnsubscribeServiceChangeNotifications? - //sys RegisterServiceCtrlHandlerEx(serviceName *uint16, handlerProc uintptr, context uintptr) (handle Handle, err error) = advapi32.RegisterServiceCtrlHandlerExW - //sys QueryServiceDynamicInformation(service Handle, infoLevel uint32, dynamicInfo unsafe.Pointer) (err error) = advapi32.QueryServiceDynamicInformation? -+//sys EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) = advapi32.EnumDependentServicesW -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 3723b2c2..35cfc57c 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -15,8 +15,6 @@ import ( - "time" - "unicode/utf16" - "unsafe" -- -- "golang.org/x/sys/internal/unsafeheader" - ) - - type Handle uintptr -@@ -135,14 +133,14 @@ func Getpagesize() int { return 4096 } - - // NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. - // This is useful when interoperating with Windows code requiring callbacks. --// The argument is expected to be a function with with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -+// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. - func NewCallback(fn interface{}) uintptr { - return syscall.NewCallback(fn) - } - - // NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. - // This is useful when interoperating with Windows code requiring callbacks. --// The argument is expected to be a function with with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. -+// The argument is expected to be a function with one uintptr-sized result. The function must not have arguments with size larger than the size of uintptr. - func NewCallbackCDecl(fn interface{}) uintptr { - return syscall.NewCallbackCDecl(fn) - } -@@ -216,7 +214,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys shGetKnownFolderPath(id *KNOWNFOLDERID, flags uint32, token Token, path **uint16) (ret error) = shell32.SHGetKnownFolderPath - //sys TerminateProcess(handle Handle, exitcode uint32) (err error) - //sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) --//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW -+//sys getStartupInfo(startupInfo *StartupInfo) = GetStartupInfoW - //sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) - //sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) - //sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] -@@ -240,7 +238,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW - //sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW - //sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW --//sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW -+//sys commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW - //sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] - //sys LocalAlloc(flags uint32, length uint32) (ptr uintptr, err error) - //sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) -@@ -299,12 +297,15 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys RegNotifyChangeKeyValue(key Handle, watchSubtree bool, notifyFilter uint32, event Handle, asynchronous bool) (regerrno error) = advapi32.RegNotifyChangeKeyValue - //sys GetCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId - //sys ProcessIdToSessionId(pid uint32, sessionid *uint32) (err error) = kernel32.ProcessIdToSessionId -+//sys ClosePseudoConsole(console Handle) = kernel32.ClosePseudoConsole -+//sys createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) = kernel32.CreatePseudoConsole - //sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode - //sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode - //sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo - //sys setConsoleCursorPosition(console Handle, position uint32) (err error) = kernel32.SetConsoleCursorPosition - //sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW - //sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW -+//sys resizePseudoConsole(pconsole Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole - //sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot - //sys Module32First(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32FirstW - //sys Module32Next(snapshot Handle, moduleEntry *ModuleEntry32) (err error) = kernel32.Module32NextW -@@ -405,7 +406,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys VerQueryValue(block unsafe.Pointer, subBlock string, pointerToBufferPointer unsafe.Pointer, bufSize *uint32) (err error) = version.VerQueryValueW - - // Process Status API (PSAPI) --//sys EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses -+//sys enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) = psapi.EnumProcesses - //sys EnumProcessModules(process Handle, module *Handle, cb uint32, cbNeeded *uint32) (err error) = psapi.EnumProcessModules - //sys EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *uint32, filterFlag uint32) (err error) = psapi.EnumProcessModulesEx - //sys GetModuleInformation(process Handle, module Handle, modinfo *ModuleInfo, cb uint32) (err error) = psapi.GetModuleInformation -@@ -437,6 +438,10 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys DwmGetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmGetWindowAttribute - //sys DwmSetWindowAttribute(hwnd HWND, attribute uint32, value unsafe.Pointer, size uint32) (ret error) = dwmapi.DwmSetWindowAttribute - -+// Windows Multimedia API -+//sys TimeBeginPeriod (period uint32) (err error) [failretval != 0] = winmm.timeBeginPeriod -+//sys TimeEndPeriod (period uint32) (err error) [failretval != 0] = winmm.timeEndPeriod -+ - // syscall interface implementation for other packages - - // GetCurrentProcess returns the handle for the current process. -@@ -1354,6 +1359,17 @@ func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { - return syscall.EWINDOWS - } - -+func EnumProcesses(processIds []uint32, bytesReturned *uint32) error { -+ // EnumProcesses syscall expects the size parameter to be in bytes, but the code generated with mksyscall uses -+ // the length of the processIds slice instead. Hence, this wrapper function is added to fix the discrepancy. -+ var p *uint32 -+ if len(processIds) > 0 { -+ p = &processIds[0] -+ } -+ size := uint32(len(processIds) * 4) -+ return enumProcesses(p, size, bytesReturned) -+} -+ - func Getpid() (pid int) { return int(GetCurrentProcessId()) } - - func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { -@@ -1613,6 +1629,11 @@ func SetConsoleCursorPosition(console Handle, position Coord) error { - return setConsoleCursorPosition(console, *((*uint32)(unsafe.Pointer(&position)))) - } - -+func GetStartupInfo(startupInfo *StartupInfo) error { -+ getStartupInfo(startupInfo) -+ return nil -+} -+ - func (s NTStatus) Errno() syscall.Errno { - return rtlNtStatusToDosErrorNoTeb(s) - } -@@ -1647,12 +1668,8 @@ func NewNTUnicodeString(s string) (*NTUnicodeString, error) { - - // Slice returns a uint16 slice that aliases the data in the NTUnicodeString. - func (s *NTUnicodeString) Slice() []uint16 { -- var slice []uint16 -- hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) -- hdr.Data = unsafe.Pointer(s.Buffer) -- hdr.Len = int(s.Length) -- hdr.Cap = int(s.MaximumLength) -- return slice -+ slice := unsafe.Slice(s.Buffer, s.MaximumLength) -+ return slice[:s.Length] - } - - func (s *NTUnicodeString) String() string { -@@ -1675,12 +1692,8 @@ func NewNTString(s string) (*NTString, error) { - - // Slice returns a byte slice that aliases the data in the NTString. - func (s *NTString) Slice() []byte { -- var slice []byte -- hdr := (*unsafeheader.Slice)(unsafe.Pointer(&slice)) -- hdr.Data = unsafe.Pointer(s.Buffer) -- hdr.Len = int(s.Length) -- hdr.Cap = int(s.MaximumLength) -- return slice -+ slice := unsafe.Slice(s.Buffer, s.MaximumLength) -+ return slice[:s.Length] - } - - func (s *NTString) String() string { -@@ -1732,10 +1745,7 @@ func LoadResourceData(module, resInfo Handle) (data []byte, err error) { - if err != nil { - return - } -- h := (*unsafeheader.Slice)(unsafe.Pointer(&data)) -- h.Data = unsafe.Pointer(ptr) -- h.Len = int(size) -- h.Cap = int(size) -+ data = unsafe.Slice((*byte)(unsafe.Pointer(ptr)), size) - return - } - -@@ -1806,3 +1816,17 @@ type PSAPI_WORKING_SET_EX_INFORMATION struct { - // A PSAPI_WORKING_SET_EX_BLOCK union that indicates the attributes of the page at VirtualAddress. - VirtualAttributes PSAPI_WORKING_SET_EX_BLOCK - } -+ -+// CreatePseudoConsole creates a windows pseudo console. -+func CreatePseudoConsole(size Coord, in Handle, out Handle, flags uint32, pconsole *Handle) error { -+ // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only -+ // accept arguments that can be casted to uintptr, and Coord can't. -+ return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), in, out, flags, pconsole) -+} -+ -+// ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. -+func ResizePseudoConsole(pconsole Handle, size Coord) error { -+ // We need this wrapper to manually cast Coord to uint32. The autogenerated wrappers only -+ // accept arguments that can be casted to uintptr, and Coord can't. -+ return resizePseudoConsole(pconsole, *((*uint32)(unsafe.Pointer(&size)))) -+} -diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go -index 0dbb2084..b88dc7c8 100644 ---- a/vendor/golang.org/x/sys/windows/types_windows.go -+++ b/vendor/golang.org/x/sys/windows/types_windows.go -@@ -247,6 +247,7 @@ const ( - PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY = 0x00020007 - PROC_THREAD_ATTRIBUTE_UMS_THREAD = 0x00030006 - PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL = 0x0002000b -+ PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x00020016 - ) - - const ( -@@ -2139,6 +2140,12 @@ const ( - ENABLE_LVB_GRID_WORLDWIDE = 0x10 - ) - -+// Pseudo console related constants used for the flags parameter to -+// CreatePseudoConsole. See: https://learn.microsoft.com/en-us/windows/console/createpseudoconsole -+const ( -+ PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 -+) -+ - type Coord struct { - X int16 - Y int16 -@@ -2220,15 +2227,19 @@ type JOBOBJECT_BASIC_UI_RESTRICTIONS struct { - } - - const ( -- // JobObjectInformationClass -+ // JobObjectInformationClass for QueryInformationJobObject and SetInformationJobObject - JobObjectAssociateCompletionPortInformation = 7 -+ JobObjectBasicAccountingInformation = 1 -+ JobObjectBasicAndIoAccountingInformation = 8 - JobObjectBasicLimitInformation = 2 -+ JobObjectBasicProcessIdList = 3 - JobObjectBasicUIRestrictions = 4 - JobObjectCpuRateControlInformation = 15 - JobObjectEndOfJobTimeInformation = 6 - JobObjectExtendedLimitInformation = 9 - JobObjectGroupInformation = 11 - JobObjectGroupInformationEx = 14 -+ JobObjectLimitViolationInformation = 13 - JobObjectLimitViolationInformation2 = 34 - JobObjectNetRateControlInformation = 32 - JobObjectNotificationLimitInformation = 12 -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 6d2a2685..8b1688de 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -55,6 +55,7 @@ var ( - moduser32 = NewLazySystemDLL("user32.dll") - moduserenv = NewLazySystemDLL("userenv.dll") - modversion = NewLazySystemDLL("version.dll") -+ modwinmm = NewLazySystemDLL("winmm.dll") - modwintrust = NewLazySystemDLL("wintrust.dll") - modws2_32 = NewLazySystemDLL("ws2_32.dll") - modwtsapi32 = NewLazySystemDLL("wtsapi32.dll") -@@ -86,6 +87,7 @@ var ( - procDeleteService = modadvapi32.NewProc("DeleteService") - procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") - procDuplicateTokenEx = modadvapi32.NewProc("DuplicateTokenEx") -+ procEnumDependentServicesW = modadvapi32.NewProc("EnumDependentServicesW") - procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") - procEqualSid = modadvapi32.NewProc("EqualSid") - procFreeSid = modadvapi32.NewProc("FreeSid") -@@ -186,6 +188,7 @@ var ( - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procCloseHandle = modkernel32.NewProc("CloseHandle") -+ procClosePseudoConsole = modkernel32.NewProc("ClosePseudoConsole") - procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") - procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") - procCreateEventExW = modkernel32.NewProc("CreateEventExW") -@@ -200,6 +203,7 @@ var ( - procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") - procCreatePipe = modkernel32.NewProc("CreatePipe") - procCreateProcessW = modkernel32.NewProc("CreateProcessW") -+ procCreatePseudoConsole = modkernel32.NewProc("CreatePseudoConsole") - procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") - procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") - procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") -@@ -326,6 +330,7 @@ var ( - procReleaseMutex = modkernel32.NewProc("ReleaseMutex") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") - procResetEvent = modkernel32.NewProc("ResetEvent") -+ procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") - procResumeThread = modkernel32.NewProc("ResumeThread") - procSetCommTimeouts = modkernel32.NewProc("SetCommTimeouts") - procSetConsoleCursorPosition = modkernel32.NewProc("SetConsoleCursorPosition") -@@ -467,6 +472,8 @@ var ( - procGetFileVersionInfoSizeW = modversion.NewProc("GetFileVersionInfoSizeW") - procGetFileVersionInfoW = modversion.NewProc("GetFileVersionInfoW") - procVerQueryValueW = modversion.NewProc("VerQueryValueW") -+ proctimeBeginPeriod = modwinmm.NewProc("timeBeginPeriod") -+ proctimeEndPeriod = modwinmm.NewProc("timeEndPeriod") - procWinVerifyTrustEx = modwintrust.NewProc("WinVerifyTrustEx") - procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") - procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") -@@ -734,6 +741,14 @@ func DuplicateTokenEx(existingToken Token, desiredAccess uint32, tokenAttributes - return - } - -+func EnumDependentServices(service Handle, activityState uint32, services *ENUM_SERVICE_STATUS, buffSize uint32, bytesNeeded *uint32, servicesReturned *uint32) (err error) { -+ r1, _, e1 := syscall.Syscall6(procEnumDependentServicesW.Addr(), 6, uintptr(service), uintptr(activityState), uintptr(unsafe.Pointer(services)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned))) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { - r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) - if r1 == 0 { -@@ -1621,6 +1636,11 @@ func CloseHandle(handle Handle) (err error) { - return - } - -+func ClosePseudoConsole(console Handle) { -+ syscall.Syscall(procClosePseudoConsole.Addr(), 1, uintptr(console), 0, 0) -+ return -+} -+ - func ConnectNamedPipe(pipe Handle, overlapped *Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(overlapped)), 0) - if r1 == 0 { -@@ -1750,6 +1770,14 @@ func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityA - return - } - -+func createPseudoConsole(size uint32, in Handle, out Handle, flags uint32, pconsole *Handle) (hr error) { -+ r0, _, _ := syscall.Syscall6(procCreatePseudoConsole.Addr(), 5, uintptr(size), uintptr(in), uintptr(out), uintptr(flags), uintptr(unsafe.Pointer(pconsole)), 0) -+ if r0 != 0 { -+ hr = syscall.Errno(r0) -+ } -+ return -+} -+ - func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { - r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) - if r1&0xff == 0 { -@@ -2358,11 +2386,8 @@ func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uin - return - } - --func GetStartupInfo(startupInfo *StartupInfo) (err error) { -- r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) -- if r1 == 0 { -- err = errnoErr(e1) -- } -+func getStartupInfo(startupInfo *StartupInfo) { -+ syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) - return - } - -@@ -2853,6 +2878,14 @@ func ResetEvent(event Handle) (err error) { - return - } - -+func resizePseudoConsole(pconsole Handle, size uint32) (hr error) { -+ r0, _, _ := syscall.Syscall(procResizePseudoConsole.Addr(), 2, uintptr(pconsole), uintptr(size), 0) -+ if r0 != 0 { -+ hr = syscall.Errno(r0) -+ } -+ return -+} -+ - func ResumeThread(thread Handle) (ret uint32, err error) { - r0, _, e1 := syscall.Syscall(procResumeThread.Addr(), 1, uintptr(thread), 0, 0) - ret = uint32(r0) -@@ -3507,12 +3540,8 @@ func EnumProcessModulesEx(process Handle, module *Handle, cb uint32, cbNeeded *u - return - } - --func EnumProcesses(processIds []uint32, bytesReturned *uint32) (err error) { -- var _p0 *uint32 -- if len(processIds) > 0 { -- _p0 = &processIds[0] -- } -- r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(processIds)), uintptr(unsafe.Pointer(bytesReturned))) -+func enumProcesses(processIds *uint32, nSize uint32, bytesReturned *uint32) (err error) { -+ r1, _, e1 := syscall.Syscall(procEnumProcesses.Addr(), 3, uintptr(unsafe.Pointer(processIds)), uintptr(nSize), uintptr(unsafe.Pointer(bytesReturned))) - if r1 == 0 { - err = errnoErr(e1) - } -@@ -3815,9 +3844,9 @@ func setupUninstallOEMInf(infFileName *uint16, flags SUOI, reserved uintptr) (er - return - } - --func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { -+func commandLineToArgv(cmd *uint16, argc *int32) (argv **uint16, err error) { - r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) -- argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) -+ argv = (**uint16)(unsafe.Pointer(r0)) - if argv == nil { - err = errnoErr(e1) - } -@@ -4012,6 +4041,22 @@ func _VerQueryValue(block unsafe.Pointer, subBlock *uint16, pointerToBufferPoint - return - } - -+func TimeBeginPeriod(period uint32) (err error) { -+ r1, _, e1 := syscall.Syscall(proctimeBeginPeriod.Addr(), 1, uintptr(period), 0, 0) -+ if r1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+func TimeEndPeriod(period uint32) (err error) { -+ r1, _, e1 := syscall.Syscall(proctimeEndPeriod.Addr(), 1, uintptr(period), 0, 0) -+ if r1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func WinVerifyTrustEx(hwnd HWND, actionId *GUID, data *WinTrustData) (ret error) { - r0, _, _ := syscall.Syscall(procWinVerifyTrustEx.Addr(), 3, uintptr(hwnd), uintptr(unsafe.Pointer(actionId)), uintptr(unsafe.Pointer(data))) - if r0 != 0 { -diff --git a/vendor/golang.org/x/text/internal/language/compact/tables.go b/vendor/golang.org/x/text/internal/language/compact/tables.go -index 32af9de5..a09ed198 100644 ---- a/vendor/golang.org/x/text/internal/language/compact/tables.go -+++ b/vendor/golang.org/x/text/internal/language/compact/tables.go -@@ -790,226 +790,226 @@ const ( - - var coreTags = []language.CompactCoreInfo{ // 773 elements - // Entry 0 - 1F -- 0x00000000, 0x01600000, 0x016000d2, 0x01600161, -- 0x01c00000, 0x01c00052, 0x02100000, 0x02100080, -- 0x02700000, 0x0270006f, 0x03a00000, 0x03a00001, -- 0x03a00023, 0x03a00039, 0x03a00062, 0x03a00067, -- 0x03a0006b, 0x03a0006c, 0x03a0006d, 0x03a00097, -- 0x03a0009b, 0x03a000a1, 0x03a000a8, 0x03a000ac, -- 0x03a000b0, 0x03a000b9, 0x03a000ba, 0x03a000c9, -- 0x03a000e1, 0x03a000ed, 0x03a000f3, 0x03a00108, -+ 0x00000000, 0x01600000, 0x016000d3, 0x01600162, -+ 0x01c00000, 0x01c00052, 0x02100000, 0x02100081, -+ 0x02700000, 0x02700070, 0x03a00000, 0x03a00001, -+ 0x03a00023, 0x03a00039, 0x03a00063, 0x03a00068, -+ 0x03a0006c, 0x03a0006d, 0x03a0006e, 0x03a00098, -+ 0x03a0009c, 0x03a000a2, 0x03a000a9, 0x03a000ad, -+ 0x03a000b1, 0x03a000ba, 0x03a000bb, 0x03a000ca, -+ 0x03a000e2, 0x03a000ee, 0x03a000f4, 0x03a00109, - // Entry 20 - 3F -- 0x03a0010b, 0x03a00115, 0x03a00117, 0x03a0011c, -- 0x03a00120, 0x03a00128, 0x03a0015e, 0x04000000, -- 0x04300000, 0x04300099, 0x04400000, 0x0440012f, -- 0x04800000, 0x0480006e, 0x05800000, 0x05820000, -- 0x05820032, 0x0585a000, 0x0585a032, 0x05e00000, -+ 0x03a0010c, 0x03a00116, 0x03a00118, 0x03a0011d, -+ 0x03a00121, 0x03a00129, 0x03a0015f, 0x04000000, -+ 0x04300000, 0x0430009a, 0x04400000, 0x04400130, -+ 0x04800000, 0x0480006f, 0x05800000, 0x05820000, -+ 0x05820032, 0x0585b000, 0x0585b032, 0x05e00000, - 0x05e00052, 0x07100000, 0x07100047, 0x07500000, -- 0x07500162, 0x07900000, 0x0790012f, 0x07e00000, -- 0x07e00038, 0x08200000, 0x0a000000, 0x0a0000c3, -+ 0x07500163, 0x07900000, 0x07900130, 0x07e00000, -+ 0x07e00038, 0x08200000, 0x0a000000, 0x0a0000c4, - // Entry 40 - 5F -- 0x0a500000, 0x0a500035, 0x0a500099, 0x0a900000, -- 0x0a900053, 0x0a900099, 0x0b200000, 0x0b200078, -- 0x0b500000, 0x0b500099, 0x0b700000, 0x0b720000, -- 0x0b720033, 0x0b75a000, 0x0b75a033, 0x0d700000, -- 0x0d700022, 0x0d70006e, 0x0d700078, 0x0d70009e, -- 0x0db00000, 0x0db00035, 0x0db00099, 0x0dc00000, -- 0x0dc00106, 0x0df00000, 0x0df00131, 0x0e500000, -- 0x0e500135, 0x0e900000, 0x0e90009b, 0x0e90009c, -+ 0x0a500000, 0x0a500035, 0x0a50009a, 0x0a900000, -+ 0x0a900053, 0x0a90009a, 0x0b200000, 0x0b200079, -+ 0x0b500000, 0x0b50009a, 0x0b700000, 0x0b720000, -+ 0x0b720033, 0x0b75b000, 0x0b75b033, 0x0d700000, -+ 0x0d700022, 0x0d70006f, 0x0d700079, 0x0d70009f, -+ 0x0db00000, 0x0db00035, 0x0db0009a, 0x0dc00000, -+ 0x0dc00107, 0x0df00000, 0x0df00132, 0x0e500000, -+ 0x0e500136, 0x0e900000, 0x0e90009c, 0x0e90009d, - // Entry 60 - 7F -- 0x0fa00000, 0x0fa0005e, 0x0fe00000, 0x0fe00106, -- 0x10000000, 0x1000007b, 0x10100000, 0x10100063, -- 0x10100082, 0x10800000, 0x108000a4, 0x10d00000, -- 0x10d0002e, 0x10d00036, 0x10d0004e, 0x10d00060, -- 0x10d0009e, 0x10d000b2, 0x10d000b7, 0x11700000, -- 0x117000d4, 0x11f00000, 0x11f00060, 0x12400000, -- 0x12400052, 0x12800000, 0x12b00000, 0x12b00114, -- 0x12d00000, 0x12d00043, 0x12f00000, 0x12f000a4, -+ 0x0fa00000, 0x0fa0005f, 0x0fe00000, 0x0fe00107, -+ 0x10000000, 0x1000007c, 0x10100000, 0x10100064, -+ 0x10100083, 0x10800000, 0x108000a5, 0x10d00000, -+ 0x10d0002e, 0x10d00036, 0x10d0004e, 0x10d00061, -+ 0x10d0009f, 0x10d000b3, 0x10d000b8, 0x11700000, -+ 0x117000d5, 0x11f00000, 0x11f00061, 0x12400000, -+ 0x12400052, 0x12800000, 0x12b00000, 0x12b00115, -+ 0x12d00000, 0x12d00043, 0x12f00000, 0x12f000a5, - // Entry 80 - 9F -- 0x13000000, 0x13000080, 0x13000122, 0x13600000, -- 0x1360005d, 0x13600087, 0x13900000, 0x13900001, -+ 0x13000000, 0x13000081, 0x13000123, 0x13600000, -+ 0x1360005e, 0x13600088, 0x13900000, 0x13900001, - 0x1390001a, 0x13900025, 0x13900026, 0x1390002d, - 0x1390002e, 0x1390002f, 0x13900034, 0x13900036, - 0x1390003a, 0x1390003d, 0x13900042, 0x13900046, - 0x13900048, 0x13900049, 0x1390004a, 0x1390004e, -- 0x13900050, 0x13900052, 0x1390005c, 0x1390005d, -- 0x13900060, 0x13900061, 0x13900063, 0x13900064, -+ 0x13900050, 0x13900052, 0x1390005d, 0x1390005e, -+ 0x13900061, 0x13900062, 0x13900064, 0x13900065, - // Entry A0 - BF -- 0x1390006d, 0x13900072, 0x13900073, 0x13900074, -- 0x13900075, 0x1390007b, 0x1390007c, 0x1390007f, -- 0x13900080, 0x13900081, 0x13900083, 0x1390008a, -- 0x1390008c, 0x1390008d, 0x13900096, 0x13900097, -- 0x13900098, 0x13900099, 0x1390009a, 0x1390009f, -- 0x139000a0, 0x139000a4, 0x139000a7, 0x139000a9, -- 0x139000ad, 0x139000b1, 0x139000b4, 0x139000b5, -- 0x139000bf, 0x139000c0, 0x139000c6, 0x139000c7, -+ 0x1390006e, 0x13900073, 0x13900074, 0x13900075, -+ 0x13900076, 0x1390007c, 0x1390007d, 0x13900080, -+ 0x13900081, 0x13900082, 0x13900084, 0x1390008b, -+ 0x1390008d, 0x1390008e, 0x13900097, 0x13900098, -+ 0x13900099, 0x1390009a, 0x1390009b, 0x139000a0, -+ 0x139000a1, 0x139000a5, 0x139000a8, 0x139000aa, -+ 0x139000ae, 0x139000b2, 0x139000b5, 0x139000b6, -+ 0x139000c0, 0x139000c1, 0x139000c7, 0x139000c8, - // Entry C0 - DF -- 0x139000ca, 0x139000cb, 0x139000cc, 0x139000ce, -- 0x139000d0, 0x139000d2, 0x139000d5, 0x139000d6, -- 0x139000d9, 0x139000dd, 0x139000df, 0x139000e0, -- 0x139000e6, 0x139000e7, 0x139000e8, 0x139000eb, -- 0x139000ec, 0x139000f0, 0x13900107, 0x13900109, -- 0x1390010a, 0x1390010b, 0x1390010c, 0x1390010d, -- 0x1390010e, 0x1390010f, 0x13900112, 0x13900117, -- 0x1390011b, 0x1390011d, 0x1390011f, 0x13900125, -+ 0x139000cb, 0x139000cc, 0x139000cd, 0x139000cf, -+ 0x139000d1, 0x139000d3, 0x139000d6, 0x139000d7, -+ 0x139000da, 0x139000de, 0x139000e0, 0x139000e1, -+ 0x139000e7, 0x139000e8, 0x139000e9, 0x139000ec, -+ 0x139000ed, 0x139000f1, 0x13900108, 0x1390010a, -+ 0x1390010b, 0x1390010c, 0x1390010d, 0x1390010e, -+ 0x1390010f, 0x13900110, 0x13900113, 0x13900118, -+ 0x1390011c, 0x1390011e, 0x13900120, 0x13900126, - // Entry E0 - FF -- 0x13900129, 0x1390012c, 0x1390012d, 0x1390012f, -- 0x13900131, 0x13900133, 0x13900135, 0x13900139, -- 0x1390013c, 0x1390013d, 0x1390013f, 0x13900142, -- 0x13900161, 0x13900162, 0x13900164, 0x13c00000, -+ 0x1390012a, 0x1390012d, 0x1390012e, 0x13900130, -+ 0x13900132, 0x13900134, 0x13900136, 0x1390013a, -+ 0x1390013d, 0x1390013e, 0x13900140, 0x13900143, -+ 0x13900162, 0x13900163, 0x13900165, 0x13c00000, - 0x13c00001, 0x13e00000, 0x13e0001f, 0x13e0002c, - 0x13e0003f, 0x13e00041, 0x13e00048, 0x13e00051, -- 0x13e00054, 0x13e00056, 0x13e00059, 0x13e00065, -- 0x13e00068, 0x13e00069, 0x13e0006e, 0x13e00086, -+ 0x13e00054, 0x13e00057, 0x13e0005a, 0x13e00066, -+ 0x13e00069, 0x13e0006a, 0x13e0006f, 0x13e00087, - // Entry 100 - 11F -- 0x13e00089, 0x13e0008f, 0x13e00094, 0x13e000cf, -- 0x13e000d8, 0x13e000e2, 0x13e000e4, 0x13e000e7, -- 0x13e000ec, 0x13e000f1, 0x13e0011a, 0x13e00135, -- 0x13e00136, 0x13e0013b, 0x14000000, 0x1400006a, -- 0x14500000, 0x1450006e, 0x14600000, 0x14600052, -- 0x14800000, 0x14800024, 0x1480009c, 0x14e00000, -- 0x14e00052, 0x14e00084, 0x14e000c9, 0x14e00114, -- 0x15100000, 0x15100072, 0x15300000, 0x153000e7, -+ 0x13e0008a, 0x13e00090, 0x13e00095, 0x13e000d0, -+ 0x13e000d9, 0x13e000e3, 0x13e000e5, 0x13e000e8, -+ 0x13e000ed, 0x13e000f2, 0x13e0011b, 0x13e00136, -+ 0x13e00137, 0x13e0013c, 0x14000000, 0x1400006b, -+ 0x14500000, 0x1450006f, 0x14600000, 0x14600052, -+ 0x14800000, 0x14800024, 0x1480009d, 0x14e00000, -+ 0x14e00052, 0x14e00085, 0x14e000ca, 0x14e00115, -+ 0x15100000, 0x15100073, 0x15300000, 0x153000e8, - // Entry 120 - 13F -- 0x15800000, 0x15800063, 0x15800076, 0x15e00000, -+ 0x15800000, 0x15800064, 0x15800077, 0x15e00000, - 0x15e00036, 0x15e00037, 0x15e0003a, 0x15e0003b, - 0x15e0003c, 0x15e00049, 0x15e0004b, 0x15e0004c, - 0x15e0004d, 0x15e0004e, 0x15e0004f, 0x15e00052, -- 0x15e00062, 0x15e00067, 0x15e00078, 0x15e0007a, -- 0x15e0007e, 0x15e00084, 0x15e00085, 0x15e00086, -- 0x15e00091, 0x15e000a8, 0x15e000b7, 0x15e000ba, -- 0x15e000bb, 0x15e000be, 0x15e000bf, 0x15e000c3, -+ 0x15e00063, 0x15e00068, 0x15e00079, 0x15e0007b, -+ 0x15e0007f, 0x15e00085, 0x15e00086, 0x15e00087, -+ 0x15e00092, 0x15e000a9, 0x15e000b8, 0x15e000bb, -+ 0x15e000bc, 0x15e000bf, 0x15e000c0, 0x15e000c4, - // Entry 140 - 15F -- 0x15e000c8, 0x15e000c9, 0x15e000cc, 0x15e000d3, -- 0x15e000d4, 0x15e000e5, 0x15e000ea, 0x15e00102, -- 0x15e00107, 0x15e0010a, 0x15e00114, 0x15e0011c, -- 0x15e00120, 0x15e00122, 0x15e00128, 0x15e0013f, -- 0x15e00140, 0x15e0015f, 0x16900000, 0x1690009e, -- 0x16d00000, 0x16d000d9, 0x16e00000, 0x16e00096, -- 0x17e00000, 0x17e0007b, 0x19000000, 0x1900006e, -- 0x1a300000, 0x1a30004e, 0x1a300078, 0x1a3000b2, -+ 0x15e000c9, 0x15e000ca, 0x15e000cd, 0x15e000d4, -+ 0x15e000d5, 0x15e000e6, 0x15e000eb, 0x15e00103, -+ 0x15e00108, 0x15e0010b, 0x15e00115, 0x15e0011d, -+ 0x15e00121, 0x15e00123, 0x15e00129, 0x15e00140, -+ 0x15e00141, 0x15e00160, 0x16900000, 0x1690009f, -+ 0x16d00000, 0x16d000da, 0x16e00000, 0x16e00097, -+ 0x17e00000, 0x17e0007c, 0x19000000, 0x1900006f, -+ 0x1a300000, 0x1a30004e, 0x1a300079, 0x1a3000b3, - // Entry 160 - 17F -- 0x1a400000, 0x1a400099, 0x1a900000, 0x1ab00000, -- 0x1ab000a4, 0x1ac00000, 0x1ac00098, 0x1b400000, -- 0x1b400080, 0x1b4000d4, 0x1b4000d6, 0x1b800000, -- 0x1b800135, 0x1bc00000, 0x1bc00097, 0x1be00000, -- 0x1be00099, 0x1d100000, 0x1d100033, 0x1d100090, -- 0x1d200000, 0x1d200060, 0x1d500000, 0x1d500092, -- 0x1d700000, 0x1d700028, 0x1e100000, 0x1e100095, -- 0x1e700000, 0x1e7000d6, 0x1ea00000, 0x1ea00053, -+ 0x1a400000, 0x1a40009a, 0x1a900000, 0x1ab00000, -+ 0x1ab000a5, 0x1ac00000, 0x1ac00099, 0x1b400000, -+ 0x1b400081, 0x1b4000d5, 0x1b4000d7, 0x1b800000, -+ 0x1b800136, 0x1bc00000, 0x1bc00098, 0x1be00000, -+ 0x1be0009a, 0x1d100000, 0x1d100033, 0x1d100091, -+ 0x1d200000, 0x1d200061, 0x1d500000, 0x1d500093, -+ 0x1d700000, 0x1d700028, 0x1e100000, 0x1e100096, -+ 0x1e700000, 0x1e7000d7, 0x1ea00000, 0x1ea00053, - // Entry 180 - 19F -- 0x1f300000, 0x1f500000, 0x1f800000, 0x1f80009d, -- 0x1f900000, 0x1f90004e, 0x1f90009e, 0x1f900113, -- 0x1f900138, 0x1fa00000, 0x1fb00000, 0x20000000, -- 0x200000a2, 0x20300000, 0x20700000, 0x20700052, -- 0x20800000, 0x20a00000, 0x20a0012f, 0x20e00000, -- 0x20f00000, 0x21000000, 0x2100007d, 0x21200000, -- 0x21200067, 0x21600000, 0x21700000, 0x217000a4, -- 0x21f00000, 0x22300000, 0x2230012f, 0x22700000, -+ 0x1f300000, 0x1f500000, 0x1f800000, 0x1f80009e, -+ 0x1f900000, 0x1f90004e, 0x1f90009f, 0x1f900114, -+ 0x1f900139, 0x1fa00000, 0x1fb00000, 0x20000000, -+ 0x200000a3, 0x20300000, 0x20700000, 0x20700052, -+ 0x20800000, 0x20a00000, 0x20a00130, 0x20e00000, -+ 0x20f00000, 0x21000000, 0x2100007e, 0x21200000, -+ 0x21200068, 0x21600000, 0x21700000, 0x217000a5, -+ 0x21f00000, 0x22300000, 0x22300130, 0x22700000, - // Entry 1A0 - 1BF -- 0x2270005a, 0x23400000, 0x234000c3, 0x23900000, -- 0x239000a4, 0x24200000, 0x242000ae, 0x24400000, -- 0x24400052, 0x24500000, 0x24500082, 0x24600000, -- 0x246000a4, 0x24a00000, 0x24a000a6, 0x25100000, -- 0x25100099, 0x25400000, 0x254000aa, 0x254000ab, -- 0x25600000, 0x25600099, 0x26a00000, 0x26a00099, -- 0x26b00000, 0x26b0012f, 0x26d00000, 0x26d00052, -- 0x26e00000, 0x26e00060, 0x27400000, 0x28100000, -+ 0x2270005b, 0x23400000, 0x234000c4, 0x23900000, -+ 0x239000a5, 0x24200000, 0x242000af, 0x24400000, -+ 0x24400052, 0x24500000, 0x24500083, 0x24600000, -+ 0x246000a5, 0x24a00000, 0x24a000a7, 0x25100000, -+ 0x2510009a, 0x25400000, 0x254000ab, 0x254000ac, -+ 0x25600000, 0x2560009a, 0x26a00000, 0x26a0009a, -+ 0x26b00000, 0x26b00130, 0x26d00000, 0x26d00052, -+ 0x26e00000, 0x26e00061, 0x27400000, 0x28100000, - // Entry 1C0 - 1DF -- 0x2810007b, 0x28a00000, 0x28a000a5, 0x29100000, -- 0x2910012f, 0x29500000, 0x295000b7, 0x2a300000, -- 0x2a300131, 0x2af00000, 0x2af00135, 0x2b500000, -+ 0x2810007c, 0x28a00000, 0x28a000a6, 0x29100000, -+ 0x29100130, 0x29500000, 0x295000b8, 0x2a300000, -+ 0x2a300132, 0x2af00000, 0x2af00136, 0x2b500000, - 0x2b50002a, 0x2b50004b, 0x2b50004c, 0x2b50004d, -- 0x2b800000, 0x2b8000af, 0x2bf00000, 0x2bf0009b, -- 0x2bf0009c, 0x2c000000, 0x2c0000b6, 0x2c200000, -- 0x2c20004b, 0x2c400000, 0x2c4000a4, 0x2c500000, -- 0x2c5000a4, 0x2c700000, 0x2c7000b8, 0x2d100000, -+ 0x2b800000, 0x2b8000b0, 0x2bf00000, 0x2bf0009c, -+ 0x2bf0009d, 0x2c000000, 0x2c0000b7, 0x2c200000, -+ 0x2c20004b, 0x2c400000, 0x2c4000a5, 0x2c500000, -+ 0x2c5000a5, 0x2c700000, 0x2c7000b9, 0x2d100000, - // Entry 1E0 - 1FF -- 0x2d1000a4, 0x2d10012f, 0x2e900000, 0x2e9000a4, -- 0x2ed00000, 0x2ed000cc, 0x2f100000, 0x2f1000bf, -- 0x2f200000, 0x2f2000d1, 0x2f400000, 0x2f400052, -- 0x2ff00000, 0x2ff000c2, 0x30400000, 0x30400099, -- 0x30b00000, 0x30b000c5, 0x31000000, 0x31b00000, -- 0x31b00099, 0x31f00000, 0x31f0003e, 0x31f000d0, -- 0x31f0010d, 0x32000000, 0x320000cb, 0x32500000, -- 0x32500052, 0x33100000, 0x331000c4, 0x33a00000, -+ 0x2d1000a5, 0x2d100130, 0x2e900000, 0x2e9000a5, -+ 0x2ed00000, 0x2ed000cd, 0x2f100000, 0x2f1000c0, -+ 0x2f200000, 0x2f2000d2, 0x2f400000, 0x2f400052, -+ 0x2ff00000, 0x2ff000c3, 0x30400000, 0x3040009a, -+ 0x30b00000, 0x30b000c6, 0x31000000, 0x31b00000, -+ 0x31b0009a, 0x31f00000, 0x31f0003e, 0x31f000d1, -+ 0x31f0010e, 0x32000000, 0x320000cc, 0x32500000, -+ 0x32500052, 0x33100000, 0x331000c5, 0x33a00000, - // Entry 200 - 21F -- 0x33a0009c, 0x34100000, 0x34500000, 0x345000d2, -- 0x34700000, 0x347000da, 0x34700110, 0x34e00000, -- 0x34e00164, 0x35000000, 0x35000060, 0x350000d9, -- 0x35100000, 0x35100099, 0x351000db, 0x36700000, -- 0x36700030, 0x36700036, 0x36700040, 0x3670005b, -- 0x367000d9, 0x36700116, 0x3670011b, 0x36800000, -- 0x36800052, 0x36a00000, 0x36a000da, 0x36c00000, -+ 0x33a0009d, 0x34100000, 0x34500000, 0x345000d3, -+ 0x34700000, 0x347000db, 0x34700111, 0x34e00000, -+ 0x34e00165, 0x35000000, 0x35000061, 0x350000da, -+ 0x35100000, 0x3510009a, 0x351000dc, 0x36700000, -+ 0x36700030, 0x36700036, 0x36700040, 0x3670005c, -+ 0x367000da, 0x36700117, 0x3670011c, 0x36800000, -+ 0x36800052, 0x36a00000, 0x36a000db, 0x36c00000, - 0x36c00052, 0x36f00000, 0x37500000, 0x37600000, - // Entry 220 - 23F -- 0x37a00000, 0x38000000, 0x38000117, 0x38700000, -- 0x38900000, 0x38900131, 0x39000000, 0x3900006f, -- 0x390000a4, 0x39500000, 0x39500099, 0x39800000, -- 0x3980007d, 0x39800106, 0x39d00000, 0x39d05000, -- 0x39d050e8, 0x39d36000, 0x39d36099, 0x3a100000, -- 0x3b300000, 0x3b3000e9, 0x3bd00000, 0x3bd00001, -+ 0x37a00000, 0x38000000, 0x38000118, 0x38700000, -+ 0x38900000, 0x38900132, 0x39000000, 0x39000070, -+ 0x390000a5, 0x39500000, 0x3950009a, 0x39800000, -+ 0x3980007e, 0x39800107, 0x39d00000, 0x39d05000, -+ 0x39d050e9, 0x39d36000, 0x39d3609a, 0x3a100000, -+ 0x3b300000, 0x3b3000ea, 0x3bd00000, 0x3bd00001, - 0x3be00000, 0x3be00024, 0x3c000000, 0x3c00002a, -- 0x3c000041, 0x3c00004e, 0x3c00005a, 0x3c000086, -+ 0x3c000041, 0x3c00004e, 0x3c00005b, 0x3c000087, - // Entry 240 - 25F -- 0x3c00008b, 0x3c0000b7, 0x3c0000c6, 0x3c0000d1, -- 0x3c0000ee, 0x3c000118, 0x3c000126, 0x3c400000, -- 0x3c40003f, 0x3c400069, 0x3c4000e4, 0x3d400000, -+ 0x3c00008c, 0x3c0000b8, 0x3c0000c7, 0x3c0000d2, -+ 0x3c0000ef, 0x3c000119, 0x3c000127, 0x3c400000, -+ 0x3c40003f, 0x3c40006a, 0x3c4000e5, 0x3d400000, - 0x3d40004e, 0x3d900000, 0x3d90003a, 0x3dc00000, -- 0x3dc000bc, 0x3dc00104, 0x3de00000, 0x3de0012f, -- 0x3e200000, 0x3e200047, 0x3e2000a5, 0x3e2000ae, -- 0x3e2000bc, 0x3e200106, 0x3e200130, 0x3e500000, -- 0x3e500107, 0x3e600000, 0x3e60012f, 0x3eb00000, -+ 0x3dc000bd, 0x3dc00105, 0x3de00000, 0x3de00130, -+ 0x3e200000, 0x3e200047, 0x3e2000a6, 0x3e2000af, -+ 0x3e2000bd, 0x3e200107, 0x3e200131, 0x3e500000, -+ 0x3e500108, 0x3e600000, 0x3e600130, 0x3eb00000, - // Entry 260 - 27F -- 0x3eb00106, 0x3ec00000, 0x3ec000a4, 0x3f300000, -- 0x3f30012f, 0x3fa00000, 0x3fa000e8, 0x3fc00000, -- 0x3fd00000, 0x3fd00072, 0x3fd000da, 0x3fd0010c, -- 0x3ff00000, 0x3ff000d1, 0x40100000, 0x401000c3, -+ 0x3eb00107, 0x3ec00000, 0x3ec000a5, 0x3f300000, -+ 0x3f300130, 0x3fa00000, 0x3fa000e9, 0x3fc00000, -+ 0x3fd00000, 0x3fd00073, 0x3fd000db, 0x3fd0010d, -+ 0x3ff00000, 0x3ff000d2, 0x40100000, 0x401000c4, - 0x40200000, 0x4020004c, 0x40700000, 0x40800000, -- 0x4085a000, 0x4085a0ba, 0x408e8000, 0x408e80ba, -- 0x40c00000, 0x40c000b3, 0x41200000, 0x41200111, -- 0x41600000, 0x4160010f, 0x41c00000, 0x41d00000, -+ 0x4085b000, 0x4085b0bb, 0x408eb000, 0x408eb0bb, -+ 0x40c00000, 0x40c000b4, 0x41200000, 0x41200112, -+ 0x41600000, 0x41600110, 0x41c00000, 0x41d00000, - // Entry 280 - 29F -- 0x41e00000, 0x41f00000, 0x41f00072, 0x42200000, -- 0x42300000, 0x42300164, 0x42900000, 0x42900062, -- 0x4290006f, 0x429000a4, 0x42900115, 0x43100000, -- 0x43100027, 0x431000c2, 0x4310014d, 0x43200000, -- 0x43220000, 0x43220033, 0x432200bd, 0x43220105, -- 0x4322014d, 0x4325a000, 0x4325a033, 0x4325a0bd, -- 0x4325a105, 0x4325a14d, 0x43700000, 0x43a00000, -- 0x43b00000, 0x44400000, 0x44400031, 0x44400072, -+ 0x41e00000, 0x41f00000, 0x41f00073, 0x42200000, -+ 0x42300000, 0x42300165, 0x42900000, 0x42900063, -+ 0x42900070, 0x429000a5, 0x42900116, 0x43100000, -+ 0x43100027, 0x431000c3, 0x4310014e, 0x43200000, -+ 0x43220000, 0x43220033, 0x432200be, 0x43220106, -+ 0x4322014e, 0x4325b000, 0x4325b033, 0x4325b0be, -+ 0x4325b106, 0x4325b14e, 0x43700000, 0x43a00000, -+ 0x43b00000, 0x44400000, 0x44400031, 0x44400073, - // Entry 2A0 - 2BF -- 0x4440010c, 0x44500000, 0x4450004b, 0x445000a4, -- 0x4450012f, 0x44500131, 0x44e00000, 0x45000000, -- 0x45000099, 0x450000b3, 0x450000d0, 0x4500010d, -- 0x46100000, 0x46100099, 0x46400000, 0x464000a4, -- 0x46400131, 0x46700000, 0x46700124, 0x46b00000, -- 0x46b00123, 0x46f00000, 0x46f0006d, 0x46f0006f, -- 0x47100000, 0x47600000, 0x47600127, 0x47a00000, -- 0x48000000, 0x48200000, 0x48200129, 0x48a00000, -+ 0x4440010d, 0x44500000, 0x4450004b, 0x445000a5, -+ 0x44500130, 0x44500132, 0x44e00000, 0x45000000, -+ 0x4500009a, 0x450000b4, 0x450000d1, 0x4500010e, -+ 0x46100000, 0x4610009a, 0x46400000, 0x464000a5, -+ 0x46400132, 0x46700000, 0x46700125, 0x46b00000, -+ 0x46b00124, 0x46f00000, 0x46f0006e, 0x46f00070, -+ 0x47100000, 0x47600000, 0x47600128, 0x47a00000, -+ 0x48000000, 0x48200000, 0x4820012a, 0x48a00000, - // Entry 2C0 - 2DF -- 0x48a0005d, 0x48a0012b, 0x48e00000, 0x49400000, -- 0x49400106, 0x4a400000, 0x4a4000d4, 0x4a900000, -- 0x4a9000ba, 0x4ac00000, 0x4ac00053, 0x4ae00000, -- 0x4ae00130, 0x4b400000, 0x4b400099, 0x4b4000e8, -+ 0x48a0005e, 0x48a0012c, 0x48e00000, 0x49400000, -+ 0x49400107, 0x4a400000, 0x4a4000d5, 0x4a900000, -+ 0x4a9000bb, 0x4ac00000, 0x4ac00053, 0x4ae00000, -+ 0x4ae00131, 0x4b400000, 0x4b40009a, 0x4b4000e9, - 0x4bc00000, 0x4bc05000, 0x4bc05024, 0x4bc20000, -- 0x4bc20137, 0x4bc5a000, 0x4bc5a137, 0x4be00000, -- 0x4be5a000, 0x4be5a0b4, 0x4bef1000, 0x4bef10b4, -- 0x4c000000, 0x4c300000, 0x4c30013e, 0x4c900000, -+ 0x4bc20138, 0x4bc5b000, 0x4bc5b138, 0x4be00000, -+ 0x4be5b000, 0x4be5b0b5, 0x4bef4000, 0x4bef40b5, -+ 0x4c000000, 0x4c300000, 0x4c30013f, 0x4c900000, - // Entry 2E0 - 2FF -- 0x4c900001, 0x4cc00000, 0x4cc0012f, 0x4ce00000, -- 0x4cf00000, 0x4cf0004e, 0x4e500000, 0x4e500114, -- 0x4f200000, 0x4fb00000, 0x4fb00131, 0x50900000, -+ 0x4c900001, 0x4cc00000, 0x4cc00130, 0x4ce00000, -+ 0x4cf00000, 0x4cf0004e, 0x4e500000, 0x4e500115, -+ 0x4f200000, 0x4fb00000, 0x4fb00132, 0x50900000, - 0x50900052, 0x51200000, 0x51200001, 0x51800000, -- 0x5180003b, 0x518000d6, 0x51f00000, 0x51f3b000, -- 0x51f3b053, 0x51f3c000, 0x51f3c08d, 0x52800000, -- 0x528000ba, 0x52900000, 0x5293b000, 0x5293b053, -- 0x5293b08d, 0x5293b0c6, 0x5293b10d, 0x5293c000, -+ 0x5180003b, 0x518000d7, 0x51f00000, 0x51f3b000, -+ 0x51f3b053, 0x51f3c000, 0x51f3c08e, 0x52800000, -+ 0x528000bb, 0x52900000, 0x5293b000, 0x5293b053, -+ 0x5293b08e, 0x5293b0c7, 0x5293b10e, 0x5293c000, - // Entry 300 - 31F -- 0x5293c08d, 0x5293c0c6, 0x5293c12e, 0x52f00000, -- 0x52f00161, -+ 0x5293c08e, 0x5293c0c7, 0x5293c12f, 0x52f00000, -+ 0x52f00162, - } // Size: 3116 bytes - - const specialTagsStr string = "ca-ES-valencia en-US-u-va-posix" - --// Total table size 3147 bytes (3KiB); checksum: 6772C83C -+// Total table size 3147 bytes (3KiB); checksum: 5A8FFFA5 -diff --git a/vendor/golang.org/x/text/internal/language/tables.go b/vendor/golang.org/x/text/internal/language/tables.go -index fb6b5837..14167e74 100644 ---- a/vendor/golang.org/x/text/internal/language/tables.go -+++ b/vendor/golang.org/x/text/internal/language/tables.go -@@ -7,11 +7,11 @@ import "golang.org/x/text/internal/tag" - // CLDRVersion is the CLDR version from which the tables in this package are derived. - const CLDRVersion = "32" - --const NumLanguages = 8752 -+const NumLanguages = 8798 - --const NumScripts = 258 -+const NumScripts = 261 - --const NumRegions = 357 -+const NumRegions = 358 - - type FromTo struct { - From uint16 -@@ -263,7 +263,7 @@ var langNoIndex = [2197]uint8{ - 0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd3, 0x3b, 0xd2, - 0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57, - 0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70, -- 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62, -+ 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x72, - 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77, - 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2, - 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xbc, 0x0a, 0x6a, -@@ -278,7 +278,7 @@ var langNoIndex = [2197]uint8{ - 0xa8, 0xff, 0x1f, 0x67, 0x7d, 0xeb, 0xef, 0xce, - 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf, - // Entry 80 - BF -- 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x6f, 0xff, 0xff, -+ 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x7f, 0xff, 0xff, - 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7, - 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba, - 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff, -@@ -289,11 +289,11 @@ var langNoIndex = [2197]uint8{ - // Entry C0 - FF - 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96, - 0x1b, 0x14, 0x08, 0xf3, 0x2b, 0xe7, 0x17, 0x56, -- 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7b, 0xf3, 0xef, -+ 0x05, 0x7d, 0x0e, 0x1c, 0x37, 0x7f, 0xf3, 0xef, - 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10, - 0xbc, 0x85, 0xaf, 0xdf, 0xff, 0xff, 0x7b, 0x35, - 0x3e, 0xc7, 0xc7, 0xdf, 0xff, 0x01, 0x81, 0x00, -- 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, -+ 0xb0, 0x05, 0x80, 0x00, 0x20, 0x00, 0x00, 0x03, - 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d, - // Entry 100 - 13F - 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64, -@@ -303,20 +303,20 @@ var langNoIndex = [2197]uint8{ - 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc7, 0x67, 0x5f, - 0x56, 0x99, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00, - 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56, -- 0x90, 0x69, 0x01, 0x2c, 0x96, 0x69, 0x20, 0xfb, -+ 0x90, 0x6d, 0x01, 0x2e, 0x96, 0x69, 0x20, 0xfb, - // Entry 140 - 17F - 0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x16, -- 0x03, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x06, -+ 0x03, 0x00, 0x00, 0xb0, 0x14, 0x23, 0x50, 0x06, - 0x0a, 0x00, 0x01, 0x00, 0x00, 0x10, 0x11, 0x09, - 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10, -- 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04, -+ 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x05, - 0x08, 0x00, 0x00, 0x05, 0x00, 0x80, 0x28, 0x04, - 0x00, 0x00, 0x40, 0xd5, 0x2d, 0x00, 0x64, 0x35, - 0x24, 0x52, 0xf4, 0xd5, 0xbf, 0x62, 0xc9, 0x03, - // Entry 180 - 1BF - 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98, -- 0x21, 0x18, 0x81, 0x00, 0x00, 0x01, 0x40, 0x82, -+ 0x21, 0x18, 0x81, 0x08, 0x00, 0x01, 0x40, 0x82, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea, - 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, -@@ -337,7 +337,7 @@ var langNoIndex = [2197]uint8{ - 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xdf, 0xe1, 0xdf, - 0x03, 0x44, 0x08, 0x90, 0x01, 0x04, 0x81, 0xe3, - 0x92, 0x54, 0xdb, 0x28, 0xd3, 0x5f, 0xfe, 0x6d, -- 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01, -+ 0x79, 0xed, 0x1c, 0x7f, 0x04, 0x08, 0x00, 0x01, - 0x21, 0x12, 0x64, 0x5f, 0xdd, 0x0e, 0x85, 0x4f, - 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54, - // Entry 240 - 27F -@@ -359,13 +359,13 @@ var langNoIndex = [2197]uint8{ - 0x03, 0x00, 0x00, 0x00, 0x8c, 0x50, 0x40, 0x04, - 0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20, - // Entry 2C0 - 2FF -- 0x02, 0x50, 0x80, 0x11, 0x00, 0x91, 0x6c, 0xe2, -- 0x50, 0x27, 0x1d, 0x11, 0x29, 0x06, 0x59, 0xe9, -+ 0x02, 0x50, 0x80, 0x11, 0x00, 0x99, 0x6c, 0xe2, -+ 0x50, 0x27, 0x1d, 0x11, 0x29, 0x0e, 0x59, 0xe9, - 0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00, - 0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d, - 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00, - 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01, -- 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08, -+ 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x40, 0x08, - 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x8d, 0x12, 0x00, - // Entry 300 - 33F - 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0, -@@ -392,14 +392,14 @@ var langNoIndex = [2197]uint8{ - 0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff, - 0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb, - 0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe, -- 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x3d, 0x1b, -+ 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x7d, 0x1f, - 0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44, - // Entry 3C0 - 3FF - 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57, - 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7, -- 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00, -- 0x40, 0x54, 0x9f, 0x8a, 0xdb, 0xf9, 0x2e, 0x11, -- 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x01, -+ 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x20, -+ 0x40, 0x54, 0x9f, 0x8a, 0xdf, 0xf9, 0x6e, 0x11, -+ 0x86, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x40, 0x03, - 0x05, 0xd1, 0x50, 0x5c, 0x00, 0x40, 0x00, 0x10, - 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2, - 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe, -@@ -424,12 +424,12 @@ var langNoIndex = [2197]uint8{ - // Entry 480 - 4BF - 0x93, 0x50, 0x5d, 0xaf, 0xa6, 0xff, 0x99, 0xfb, - 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20, -- 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41, -- 0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x05, 0xc5, 0x05, -+ 0x14, 0x00, 0x55, 0x51, 0xc2, 0x65, 0xf5, 0x41, -+ 0xe2, 0xff, 0xfc, 0xdf, 0x02, 0x85, 0xc5, 0x05, - 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x05, - 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00, -- 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1, -+ 0x06, 0x11, 0x20, 0x00, 0x18, 0x01, 0x92, 0xf1, - // Entry 4C0 - 4FF - 0xfd, 0x47, 0x69, 0x06, 0x95, 0x06, 0x57, 0xed, - 0xfb, 0x4d, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40, -@@ -441,7 +441,7 @@ var langNoIndex = [2197]uint8{ - 0xbe, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41, - // Entry 500 - 53F - 0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49, -- 0x2d, 0x14, 0x27, 0x57, 0xed, 0xf1, 0x3f, 0xe7, -+ 0x2d, 0x14, 0x27, 0x5f, 0xed, 0xf1, 0x3f, 0xe7, - 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8, - 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe7, 0xf7, - 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10, -@@ -449,7 +449,7 @@ var langNoIndex = [2197]uint8{ - 0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c, - 0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40, - // Entry 540 - 57F -- 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00, -+ 0x00, 0x00, 0x01, 0x43, 0x19, 0x24, 0x08, 0x00, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -@@ -464,13 +464,13 @@ var langNoIndex = [2197]uint8{ - 0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf, - 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00, -- 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x00, 0x81, -+ 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x20, 0x81, - 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40, - // Entry 5C0 - 5FF -- 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x3e, 0x02, -+ 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0xbe, 0x02, - 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02, -- 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, -+ 0x3d, 0x40, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d, - 0x31, 0x00, 0x00, 0x00, 0x01, 0x18, 0x02, 0x20, - 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00, - 0x00, 0x1f, 0xdf, 0xd2, 0xb9, 0xff, 0xfd, 0x3f, -@@ -491,20 +491,20 @@ var langNoIndex = [2197]uint8{ - 0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff, - 0xb9, 0xda, 0x7d, 0xd0, 0x3e, 0x15, 0x7b, 0xb4, - 0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7, -- 0x5f, 0xff, 0xff, 0x9e, 0xdb, 0xf6, 0xd7, 0xb9, -+ 0x5f, 0xff, 0xff, 0x9e, 0xdf, 0xf6, 0xd7, 0xb9, - 0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3, - // Entry 680 - 6BF - 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37, -- 0xce, 0x7f, 0x04, 0x1d, 0x73, 0x7f, 0xf8, 0xda, -+ 0xce, 0x7f, 0x44, 0x1d, 0x73, 0x7f, 0xf8, 0xda, - 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x79, 0xa0, - 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08, - 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00, -- 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06, -+ 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x09, 0x06, - 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x04, 0x00, 0x10, 0xdc, 0x58, 0xd7, 0x0d, 0x0f, - // Entry 6C0 - 6FF -- 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08, -- 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, -+ 0x54, 0x4d, 0xf1, 0x16, 0x44, 0xd5, 0x42, 0x08, -+ 0x40, 0x02, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, - 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x48, 0x41, - 0x24, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -513,7 +513,7 @@ var langNoIndex = [2197]uint8{ - 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00, - // Entry 700 - 73F - 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, -- 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01, -+ 0x80, 0x86, 0xc2, 0x00, 0x00, 0x01, 0x00, 0x01, - 0xff, 0x18, 0x02, 0x00, 0x02, 0xf0, 0xfd, 0x79, - 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, -@@ -522,7 +522,7 @@ var langNoIndex = [2197]uint8{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 740 - 77F - 0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e, -- 0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x44, -+ 0xb0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x46, - 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04, - 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a, - 0x01, 0x00, 0x00, 0xb0, 0x80, 0x20, 0x55, 0x75, -@@ -530,12 +530,12 @@ var langNoIndex = [2197]uint8{ - 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60, - // Entry 780 - 7BF -- 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01, -+ 0x83, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01, - 0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00, -- 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0, -+ 0x10, 0x03, 0x31, 0x02, 0x01, 0x00, 0x00, 0xf0, - 0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78, -- 0x78, 0x15, 0x50, 0x01, 0xa4, 0x84, 0xa9, 0x41, -- 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00, -+ 0x78, 0x15, 0x50, 0x05, 0xa4, 0x84, 0xa9, 0x41, -+ 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x40, - 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02, - 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed, - // Entry 7C0 - 7FF -@@ -545,11 +545,11 @@ var langNoIndex = [2197]uint8{ - 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d, - 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80, - 0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60, -- 0xfe, 0x01, 0x02, 0x88, 0x0a, 0x40, 0x16, 0x01, -+ 0xfe, 0x01, 0x02, 0x88, 0x2a, 0x40, 0x16, 0x01, - 0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10, - // Entry 800 - 83F - 0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf, -- 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa3, 0xd1, -+ 0xbf, 0x03, 0x00, 0x00, 0x10, 0xdc, 0xa3, 0xd1, - 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3, - 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80, - 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84, -@@ -557,11 +557,11 @@ var langNoIndex = [2197]uint8{ - 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10, - 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00, - // Entry 840 - 87F -- 0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x81, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, -+ 0xf0, 0xfb, 0xfd, 0x7f, 0x05, 0x00, 0x16, 0x89, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28, - 0x84, 0x00, 0x21, 0xc0, 0x23, 0x24, 0x00, 0x00, -- 0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x14, 0xf1, -+ 0x00, 0xcb, 0xe4, 0x3a, 0x46, 0x88, 0x54, 0xf1, - 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50, - 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40, - 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1, -@@ -583,8 +583,8 @@ var altLangIndex = [6]uint16{ - } - - // AliasMap maps langIDs to their suggested replacements. --// Size: 716 bytes, 179 elements --var AliasMap = [179]FromTo{ -+// Size: 772 bytes, 193 elements -+var AliasMap = [193]FromTo{ - 0: {From: 0x82, To: 0x88}, - 1: {From: 0x187, To: 0x1ae}, - 2: {From: 0x1f3, To: 0x1e1}, -@@ -599,223 +599,239 @@ var AliasMap = [179]FromTo{ - 11: {From: 0x4a2, To: 0x21}, - 12: {From: 0x53e, To: 0x544}, - 13: {From: 0x58f, To: 0x12d}, -- 14: {From: 0x630, To: 0x1eb1}, -- 15: {From: 0x651, To: 0x431}, -- 16: {From: 0x662, To: 0x431}, -- 17: {From: 0x6ed, To: 0x3a}, -- 18: {From: 0x6f8, To: 0x1d7}, -- 19: {From: 0x709, To: 0x3625}, -- 20: {From: 0x73e, To: 0x21a1}, -- 21: {From: 0x7b3, To: 0x56}, -- 22: {From: 0x7b9, To: 0x299b}, -- 23: {From: 0x7c5, To: 0x58}, -- 24: {From: 0x7e6, To: 0x145}, -- 25: {From: 0x80c, To: 0x5a}, -- 26: {From: 0x815, To: 0x8d}, -- 27: {From: 0x87e, To: 0x810}, -- 28: {From: 0x8a8, To: 0x8b7}, -- 29: {From: 0x8c3, To: 0xee3}, -- 30: {From: 0x8fa, To: 0x1dc}, -- 31: {From: 0x9ef, To: 0x331}, -- 32: {From: 0xa36, To: 0x2c5}, -- 33: {From: 0xa3d, To: 0xbf}, -- 34: {From: 0xabe, To: 0x3322}, -- 35: {From: 0xb38, To: 0x529}, -- 36: {From: 0xb75, To: 0x265a}, -- 37: {From: 0xb7e, To: 0xbc3}, -- 38: {From: 0xb9b, To: 0x44e}, -- 39: {From: 0xbbc, To: 0x4229}, -- 40: {From: 0xbbf, To: 0x529}, -- 41: {From: 0xbfe, To: 0x2da7}, -- 42: {From: 0xc2e, To: 0x3181}, -- 43: {From: 0xcb9, To: 0xf3}, -- 44: {From: 0xd08, To: 0xfa}, -- 45: {From: 0xdc8, To: 0x11a}, -- 46: {From: 0xdd7, To: 0x32d}, -- 47: {From: 0xdf8, To: 0xdfb}, -- 48: {From: 0xdfe, To: 0x531}, -- 49: {From: 0xe01, To: 0xdf3}, -- 50: {From: 0xedf, To: 0x205a}, -- 51: {From: 0xee9, To: 0x222e}, -- 52: {From: 0xeee, To: 0x2e9a}, -- 53: {From: 0xf39, To: 0x367}, -- 54: {From: 0x10d0, To: 0x140}, -- 55: {From: 0x1104, To: 0x2d0}, -- 56: {From: 0x11a0, To: 0x1ec}, -- 57: {From: 0x1279, To: 0x21}, -- 58: {From: 0x1424, To: 0x15e}, -- 59: {From: 0x1470, To: 0x14e}, -- 60: {From: 0x151f, To: 0xd9b}, -- 61: {From: 0x1523, To: 0x390}, -- 62: {From: 0x1532, To: 0x19f}, -- 63: {From: 0x1580, To: 0x210}, -- 64: {From: 0x1583, To: 0x10d}, -- 65: {From: 0x15a3, To: 0x3caf}, -- 66: {From: 0x1630, To: 0x222e}, -- 67: {From: 0x166a, To: 0x19b}, -- 68: {From: 0x16c8, To: 0x136}, -- 69: {From: 0x1700, To: 0x29f8}, -- 70: {From: 0x1718, To: 0x194}, -- 71: {From: 0x1727, To: 0xf3f}, -- 72: {From: 0x177a, To: 0x178}, -- 73: {From: 0x1809, To: 0x17b6}, -- 74: {From: 0x1816, To: 0x18f3}, -- 75: {From: 0x188a, To: 0x436}, -- 76: {From: 0x1979, To: 0x1d01}, -- 77: {From: 0x1a74, To: 0x2bb0}, -- 78: {From: 0x1a8a, To: 0x1f8}, -- 79: {From: 0x1b5a, To: 0x1fa}, -- 80: {From: 0x1b86, To: 0x1515}, -- 81: {From: 0x1d64, To: 0x2c9b}, -- 82: {From: 0x2038, To: 0x37b1}, -- 83: {From: 0x203d, To: 0x20dd}, -- 84: {From: 0x205a, To: 0x30b}, -- 85: {From: 0x20e3, To: 0x274}, -- 86: {From: 0x20ee, To: 0x263}, -- 87: {From: 0x20f2, To: 0x22d}, -- 88: {From: 0x20f9, To: 0x256}, -- 89: {From: 0x210f, To: 0x21eb}, -- 90: {From: 0x2135, To: 0x27d}, -- 91: {From: 0x2160, To: 0x913}, -- 92: {From: 0x2199, To: 0x121}, -- 93: {From: 0x21ce, To: 0x1561}, -- 94: {From: 0x21e6, To: 0x504}, -- 95: {From: 0x21f4, To: 0x49f}, -- 96: {From: 0x21fb, To: 0x269}, -- 97: {From: 0x222d, To: 0x121}, -- 98: {From: 0x2237, To: 0x121}, -- 99: {From: 0x2262, To: 0x92a}, -- 100: {From: 0x2316, To: 0x3226}, -- 101: {From: 0x236a, To: 0x2835}, -- 102: {From: 0x2382, To: 0x3365}, -- 103: {From: 0x2472, To: 0x2c7}, -- 104: {From: 0x24e4, To: 0x2ff}, -- 105: {From: 0x24f0, To: 0x2fa}, -- 106: {From: 0x24fa, To: 0x31f}, -- 107: {From: 0x2550, To: 0xb5b}, -- 108: {From: 0x25a9, To: 0xe2}, -- 109: {From: 0x263e, To: 0x2d0}, -- 110: {From: 0x26c9, To: 0x26b4}, -- 111: {From: 0x26f9, To: 0x3c8}, -- 112: {From: 0x2727, To: 0x3caf}, -- 113: {From: 0x2755, To: 0x6a4}, -- 114: {From: 0x2765, To: 0x26b4}, -- 115: {From: 0x2789, To: 0x4358}, -- 116: {From: 0x27c9, To: 0x2001}, -- 117: {From: 0x28ea, To: 0x27b1}, -- 118: {From: 0x28ef, To: 0x2837}, -- 119: {From: 0x2914, To: 0x351}, -- 120: {From: 0x2986, To: 0x2da7}, -- 121: {From: 0x29f0, To: 0x96b}, -- 122: {From: 0x2b1a, To: 0x38d}, -- 123: {From: 0x2bfc, To: 0x395}, -- 124: {From: 0x2c3f, To: 0x3caf}, -- 125: {From: 0x2ce1, To: 0x2201}, -- 126: {From: 0x2cfc, To: 0x3be}, -- 127: {From: 0x2d13, To: 0x597}, -- 128: {From: 0x2d47, To: 0x148}, -- 129: {From: 0x2d48, To: 0x148}, -- 130: {From: 0x2dff, To: 0x2f1}, -- 131: {From: 0x2e08, To: 0x19cc}, -- 132: {From: 0x2e1a, To: 0x2d95}, -- 133: {From: 0x2e21, To: 0x292}, -- 134: {From: 0x2e54, To: 0x7d}, -- 135: {From: 0x2e65, To: 0x2282}, -- 136: {From: 0x2ea0, To: 0x2e9b}, -- 137: {From: 0x2eef, To: 0x2ed7}, -- 138: {From: 0x3193, To: 0x3c4}, -- 139: {From: 0x3366, To: 0x338e}, -- 140: {From: 0x342a, To: 0x3dc}, -- 141: {From: 0x34ee, To: 0x18d0}, -- 142: {From: 0x35c8, To: 0x2c9b}, -- 143: {From: 0x35e6, To: 0x412}, -- 144: {From: 0x3658, To: 0x246}, -- 145: {From: 0x3676, To: 0x3f4}, -- 146: {From: 0x36fd, To: 0x445}, -- 147: {From: 0x37c0, To: 0x121}, -- 148: {From: 0x3816, To: 0x38f2}, -- 149: {From: 0x382a, To: 0x2b48}, -- 150: {From: 0x382b, To: 0x2c9b}, -- 151: {From: 0x382f, To: 0xa9}, -- 152: {From: 0x3832, To: 0x3228}, -- 153: {From: 0x386c, To: 0x39a6}, -- 154: {From: 0x3892, To: 0x3fc0}, -- 155: {From: 0x38a5, To: 0x39d7}, -- 156: {From: 0x38b4, To: 0x1fa4}, -- 157: {From: 0x38b5, To: 0x2e9a}, -- 158: {From: 0x395c, To: 0x47e}, -- 159: {From: 0x3b4e, To: 0xd91}, -- 160: {From: 0x3b78, To: 0x137}, -- 161: {From: 0x3c99, To: 0x4bc}, -- 162: {From: 0x3fbd, To: 0x100}, -- 163: {From: 0x4208, To: 0xa91}, -- 164: {From: 0x42be, To: 0x573}, -- 165: {From: 0x42f9, To: 0x3f60}, -- 166: {From: 0x4378, To: 0x25a}, -- 167: {From: 0x43b8, To: 0xe6c}, -- 168: {From: 0x43cd, To: 0x10f}, -- 169: {From: 0x44af, To: 0x3322}, -- 170: {From: 0x44e3, To: 0x512}, -- 171: {From: 0x45ca, To: 0x2409}, -- 172: {From: 0x45dd, To: 0x26dc}, -- 173: {From: 0x4610, To: 0x48ae}, -- 174: {From: 0x46ae, To: 0x46a0}, -- 175: {From: 0x473e, To: 0x4745}, -- 176: {From: 0x4817, To: 0x3503}, -- 177: {From: 0x4916, To: 0x31f}, -- 178: {From: 0x49a7, To: 0x523}, -+ 14: {From: 0x62b, To: 0x34}, -+ 15: {From: 0x62f, To: 0x14}, -+ 16: {From: 0x630, To: 0x1eb1}, -+ 17: {From: 0x651, To: 0x431}, -+ 18: {From: 0x662, To: 0x431}, -+ 19: {From: 0x6ed, To: 0x3a}, -+ 20: {From: 0x6f8, To: 0x1d7}, -+ 21: {From: 0x709, To: 0x3625}, -+ 22: {From: 0x73e, To: 0x21a1}, -+ 23: {From: 0x7b3, To: 0x56}, -+ 24: {From: 0x7b9, To: 0x299b}, -+ 25: {From: 0x7c5, To: 0x58}, -+ 26: {From: 0x7e6, To: 0x145}, -+ 27: {From: 0x80c, To: 0x5a}, -+ 28: {From: 0x815, To: 0x8d}, -+ 29: {From: 0x87e, To: 0x810}, -+ 30: {From: 0x8a8, To: 0x8b7}, -+ 31: {From: 0x8c3, To: 0xee3}, -+ 32: {From: 0x8fa, To: 0x1dc}, -+ 33: {From: 0x9ef, To: 0x331}, -+ 34: {From: 0xa36, To: 0x2c5}, -+ 35: {From: 0xa3d, To: 0xbf}, -+ 36: {From: 0xabe, To: 0x3322}, -+ 37: {From: 0xb38, To: 0x529}, -+ 38: {From: 0xb75, To: 0x265a}, -+ 39: {From: 0xb7e, To: 0xbc3}, -+ 40: {From: 0xb9b, To: 0x44e}, -+ 41: {From: 0xbbc, To: 0x4229}, -+ 42: {From: 0xbbf, To: 0x529}, -+ 43: {From: 0xbfe, To: 0x2da7}, -+ 44: {From: 0xc2e, To: 0x3181}, -+ 45: {From: 0xcb9, To: 0xf3}, -+ 46: {From: 0xd08, To: 0xfa}, -+ 47: {From: 0xdc8, To: 0x11a}, -+ 48: {From: 0xdd7, To: 0x32d}, -+ 49: {From: 0xdf8, To: 0xdfb}, -+ 50: {From: 0xdfe, To: 0x531}, -+ 51: {From: 0xe01, To: 0xdf3}, -+ 52: {From: 0xedf, To: 0x205a}, -+ 53: {From: 0xee9, To: 0x222e}, -+ 54: {From: 0xeee, To: 0x2e9a}, -+ 55: {From: 0xf39, To: 0x367}, -+ 56: {From: 0x10d0, To: 0x140}, -+ 57: {From: 0x1104, To: 0x2d0}, -+ 58: {From: 0x11a0, To: 0x1ec}, -+ 59: {From: 0x1279, To: 0x21}, -+ 60: {From: 0x1424, To: 0x15e}, -+ 61: {From: 0x1470, To: 0x14e}, -+ 62: {From: 0x151f, To: 0xd9b}, -+ 63: {From: 0x1523, To: 0x390}, -+ 64: {From: 0x1532, To: 0x19f}, -+ 65: {From: 0x1580, To: 0x210}, -+ 66: {From: 0x1583, To: 0x10d}, -+ 67: {From: 0x15a3, To: 0x3caf}, -+ 68: {From: 0x1630, To: 0x222e}, -+ 69: {From: 0x166a, To: 0x19b}, -+ 70: {From: 0x16c8, To: 0x136}, -+ 71: {From: 0x1700, To: 0x29f8}, -+ 72: {From: 0x1718, To: 0x194}, -+ 73: {From: 0x1727, To: 0xf3f}, -+ 74: {From: 0x177a, To: 0x178}, -+ 75: {From: 0x1809, To: 0x17b6}, -+ 76: {From: 0x1816, To: 0x18f3}, -+ 77: {From: 0x188a, To: 0x436}, -+ 78: {From: 0x1979, To: 0x1d01}, -+ 79: {From: 0x1a74, To: 0x2bb0}, -+ 80: {From: 0x1a8a, To: 0x1f8}, -+ 81: {From: 0x1b5a, To: 0x1fa}, -+ 82: {From: 0x1b86, To: 0x1515}, -+ 83: {From: 0x1d64, To: 0x2c9b}, -+ 84: {From: 0x2038, To: 0x37b1}, -+ 85: {From: 0x203d, To: 0x20dd}, -+ 86: {From: 0x2042, To: 0x2e00}, -+ 87: {From: 0x205a, To: 0x30b}, -+ 88: {From: 0x20e3, To: 0x274}, -+ 89: {From: 0x20ee, To: 0x263}, -+ 90: {From: 0x20f2, To: 0x22d}, -+ 91: {From: 0x20f9, To: 0x256}, -+ 92: {From: 0x210f, To: 0x21eb}, -+ 93: {From: 0x2135, To: 0x27d}, -+ 94: {From: 0x2160, To: 0x913}, -+ 95: {From: 0x2199, To: 0x121}, -+ 96: {From: 0x21ce, To: 0x1561}, -+ 97: {From: 0x21e6, To: 0x504}, -+ 98: {From: 0x21f4, To: 0x49f}, -+ 99: {From: 0x21fb, To: 0x269}, -+ 100: {From: 0x222d, To: 0x121}, -+ 101: {From: 0x2237, To: 0x121}, -+ 102: {From: 0x2248, To: 0x217d}, -+ 103: {From: 0x2262, To: 0x92a}, -+ 104: {From: 0x2316, To: 0x3226}, -+ 105: {From: 0x236a, To: 0x2835}, -+ 106: {From: 0x2382, To: 0x3365}, -+ 107: {From: 0x2472, To: 0x2c7}, -+ 108: {From: 0x24e4, To: 0x2ff}, -+ 109: {From: 0x24f0, To: 0x2fa}, -+ 110: {From: 0x24fa, To: 0x31f}, -+ 111: {From: 0x2550, To: 0xb5b}, -+ 112: {From: 0x25a9, To: 0xe2}, -+ 113: {From: 0x263e, To: 0x2d0}, -+ 114: {From: 0x26c9, To: 0x26b4}, -+ 115: {From: 0x26f9, To: 0x3c8}, -+ 116: {From: 0x2727, To: 0x3caf}, -+ 117: {From: 0x2755, To: 0x6a4}, -+ 118: {From: 0x2765, To: 0x26b4}, -+ 119: {From: 0x2789, To: 0x4358}, -+ 120: {From: 0x27c9, To: 0x2001}, -+ 121: {From: 0x28ea, To: 0x27b1}, -+ 122: {From: 0x28ef, To: 0x2837}, -+ 123: {From: 0x28fe, To: 0xaa5}, -+ 124: {From: 0x2914, To: 0x351}, -+ 125: {From: 0x2986, To: 0x2da7}, -+ 126: {From: 0x29f0, To: 0x96b}, -+ 127: {From: 0x2b1a, To: 0x38d}, -+ 128: {From: 0x2bfc, To: 0x395}, -+ 129: {From: 0x2c3f, To: 0x3caf}, -+ 130: {From: 0x2ce1, To: 0x2201}, -+ 131: {From: 0x2cfc, To: 0x3be}, -+ 132: {From: 0x2d13, To: 0x597}, -+ 133: {From: 0x2d47, To: 0x148}, -+ 134: {From: 0x2d48, To: 0x148}, -+ 135: {From: 0x2dff, To: 0x2f1}, -+ 136: {From: 0x2e08, To: 0x19cc}, -+ 137: {From: 0x2e10, To: 0xc45}, -+ 138: {From: 0x2e1a, To: 0x2d95}, -+ 139: {From: 0x2e21, To: 0x292}, -+ 140: {From: 0x2e54, To: 0x7d}, -+ 141: {From: 0x2e65, To: 0x2282}, -+ 142: {From: 0x2e97, To: 0x1a4}, -+ 143: {From: 0x2ea0, To: 0x2e9b}, -+ 144: {From: 0x2eef, To: 0x2ed7}, -+ 145: {From: 0x3193, To: 0x3c4}, -+ 146: {From: 0x3366, To: 0x338e}, -+ 147: {From: 0x342a, To: 0x3dc}, -+ 148: {From: 0x34ee, To: 0x18d0}, -+ 149: {From: 0x35c8, To: 0x2c9b}, -+ 150: {From: 0x35e6, To: 0x412}, -+ 151: {From: 0x35f5, To: 0x24b}, -+ 152: {From: 0x360d, To: 0x1dc}, -+ 153: {From: 0x3658, To: 0x246}, -+ 154: {From: 0x3676, To: 0x3f4}, -+ 155: {From: 0x36fd, To: 0x445}, -+ 156: {From: 0x3747, To: 0x3b42}, -+ 157: {From: 0x37c0, To: 0x121}, -+ 158: {From: 0x3816, To: 0x38f2}, -+ 159: {From: 0x382a, To: 0x2b48}, -+ 160: {From: 0x382b, To: 0x2c9b}, -+ 161: {From: 0x382f, To: 0xa9}, -+ 162: {From: 0x3832, To: 0x3228}, -+ 163: {From: 0x386c, To: 0x39a6}, -+ 164: {From: 0x3892, To: 0x3fc0}, -+ 165: {From: 0x38a0, To: 0x45f}, -+ 166: {From: 0x38a5, To: 0x39d7}, -+ 167: {From: 0x38b4, To: 0x1fa4}, -+ 168: {From: 0x38b5, To: 0x2e9a}, -+ 169: {From: 0x38fa, To: 0x38f1}, -+ 170: {From: 0x395c, To: 0x47e}, -+ 171: {From: 0x3b4e, To: 0xd91}, -+ 172: {From: 0x3b78, To: 0x137}, -+ 173: {From: 0x3c99, To: 0x4bc}, -+ 174: {From: 0x3fbd, To: 0x100}, -+ 175: {From: 0x4208, To: 0xa91}, -+ 176: {From: 0x42be, To: 0x573}, -+ 177: {From: 0x42f9, To: 0x3f60}, -+ 178: {From: 0x4378, To: 0x25a}, -+ 179: {From: 0x43b8, To: 0xe6c}, -+ 180: {From: 0x43cd, To: 0x10f}, -+ 181: {From: 0x43d4, To: 0x4848}, -+ 182: {From: 0x44af, To: 0x3322}, -+ 183: {From: 0x44e3, To: 0x512}, -+ 184: {From: 0x45ca, To: 0x2409}, -+ 185: {From: 0x45dd, To: 0x26dc}, -+ 186: {From: 0x4610, To: 0x48ae}, -+ 187: {From: 0x46ae, To: 0x46a0}, -+ 188: {From: 0x473e, To: 0x4745}, -+ 189: {From: 0x4817, To: 0x3503}, -+ 190: {From: 0x483b, To: 0x208b}, -+ 191: {From: 0x4916, To: 0x31f}, -+ 192: {From: 0x49a7, To: 0x523}, - } - --// Size: 179 bytes, 179 elements --var AliasTypes = [179]AliasType{ -+// Size: 193 bytes, 193 elements -+var AliasTypes = [193]AliasType{ - // Entry 0 - 3F -- 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2, -- 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0, 0, 2, -- 1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, -- 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, -+ 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 0, 0, -+ 1, 2, 1, 1, 2, 0, 0, 1, 0, 1, 2, 1, 1, 0, 0, 0, -+ 0, 2, 1, 1, 0, 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, -+ 1, 1, 1, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 1, 0, 1, - // Entry 40 - 7F -- 2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, -- 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, -- 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, 1, 1, 0, 1, -- 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, -+ 1, 2, 2, 0, 0, 1, 2, 0, 1, 0, 1, 1, 1, 1, 0, 0, -+ 2, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 0, -+ 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, - // Entry 80 - BF -- 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 2, -- 1, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, -- 0, 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, -- 0, 1, 1, -+ 1, 0, 0, 1, 0, 2, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, -+ 0, 1, 1, 2, 0, 0, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, -+ 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 0, -+ 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, -+ // Entry C0 - FF -+ 1, - } - - const ( -- _Latn = 90 -+ _Latn = 91 - _Hani = 57 - _Hans = 59 - _Hant = 60 -- _Qaaa = 147 -- _Qaai = 155 -- _Qabx = 196 -- _Zinh = 252 -- _Zyyy = 257 -- _Zzzz = 258 -+ _Qaaa = 149 -+ _Qaai = 157 -+ _Qabx = 198 -+ _Zinh = 255 -+ _Zyyy = 260 -+ _Zzzz = 261 - ) - - // script is an alphabetically sorted list of ISO 15924 codes. The index - // of the script in the string, divided by 4, is the internal scriptID. --const script tag.Index = "" + // Size: 1040 bytes -+const script tag.Index = "" + // Size: 1052 bytes - "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" + - "BrahBraiBugiBuhdCakmCansCariChamCherChrsCirtCoptCpmnCprtCyrlCyrsDevaDiak" + - "DogrDsrtDuplEgydEgyhEgypElbaElymEthiGeokGeorGlagGongGonmGothGranGrekGujr" + - "GuruHanbHangHaniHanoHansHantHatrHebrHiraHluwHmngHmnpHrktHungIndsItalJamo" + -- "JavaJpanJurcKaliKanaKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatfLatg" + -- "LatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedfMend" + -- "MercMeroMlymModiMongMoonMrooMteiMultMymrNandNarbNbatNewaNkdbNkgbNkooNshu" + -- "OgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlvPhnxPiqd" + -- "PlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaamQaanQaao" + -- "QaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabeQabfQabg" + -- "QabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabwQabxRanj" + -- "RjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogdSogoSora" + -- "SoyoSundSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglg" + -- "ThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsuxYeziYiiiZanb" + -- "ZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" -+ "JavaJpanJurcKaliKanaKawiKharKhmrKhojKitlKitsKndaKoreKpelKthiLanaLaooLatf" + -+ "LatgLatnLekeLepcLimbLinaLinbLisuLomaLyciLydiMahjMakaMandManiMarcMayaMedf" + -+ "MendMercMeroMlymModiMongMoonMrooMteiMultMymrNagmNandNarbNbatNewaNkdbNkgb" + -+ "NkooNshuOgamOlckOrkhOryaOsgeOsmaOugrPalmPaucPcunPelmPermPhagPhliPhlpPhlv" + -+ "PhnxPiqdPlrdPrtiPsinQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaam" + -+ "QaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabe" + -+ "QabfQabgQabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabw" + -+ "QabxRanjRjngRohgRoroRunrSamrSaraSarbSaurSgnwShawShrdShuiSiddSindSinhSogd" + -+ "SogoSoraSoyoSundSunuSyloSyrcSyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTelu" + -+ "TengTfngTglgThaaThaiTibtTirhTnsaTotoUgarVaiiVispVithWaraWchoWoleXpeoXsux" + -+ "YeziYiiiZanbZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff\xff" - - // suppressScript is an index from langID to the dominant script for that language, - // if it exists. If a script is given, it should be suppressed from the language tag. -@@ -824,7 +840,7 @@ var suppressScript = [1330]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -833,7 +849,7 @@ var suppressScript = [1330]uint8{ - // Entry 40 - 7F - 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -846,53 +862,53 @@ var suppressScript = [1330]uint8{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry C0 - FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 100 - 13F -- 0x5a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, -+ 0x5b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0xea, 0x00, 0x00, 0x00, 0x00, 0xec, 0x00, 0x00, -+ 0xed, 0x00, 0x00, 0x00, 0x00, 0xef, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x5a, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x5b, 0x00, 0x5b, 0x00, - // Entry 140 - 17F -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, - 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -- 0x00, 0x5a, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, -+ 0x00, 0x5b, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x5b, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 180 - 1BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x5a, 0x35, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x5b, 0x35, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x22, 0x00, - // Entry 1C0 - 1FF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x5a, 0x00, 0x5a, 0x5a, 0x00, 0x08, -+ 0x00, 0x5b, 0x5b, 0x00, 0x5b, 0x5b, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x5a, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, -+ 0x5b, 0x5b, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, - // Entry 200 - 23F - 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -903,9 +919,9 @@ var suppressScript = [1330]uint8{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 240 - 27F -- 0x00, 0x00, 0x20, 0x00, 0x00, 0x5a, 0x00, 0x00, -- 0x00, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x52, 0x00, 0x00, 0x53, 0x00, 0x22, 0x00, -+ 0x00, 0x00, 0x20, 0x00, 0x00, 0x5b, 0x00, 0x00, -+ 0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x53, 0x00, 0x00, 0x54, 0x00, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -913,93 +929,93 @@ var suppressScript = [1330]uint8{ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 280 - 2BF - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, -- 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, -+ 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 2C0 - 2FF -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, - // Entry 300 - 33F -- 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x5a, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x5b, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -+ 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, - // Entry 340 - 37F -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, -- 0x5a, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x5a, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5a, 0x00, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, -+ 0x5b, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x5b, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x5b, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 380 - 3BF -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x83, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, - // Entry 3C0 - 3FF -- 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x20, 0x00, 0x00, 0x5a, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x20, 0x00, 0x00, 0x5b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 400 - 43F -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, -- 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -- 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0xd6, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, -+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, -+ 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, - // Entry 440 - 47F -- 0x00, 0x00, 0x00, 0x00, 0x5a, 0x5a, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x5b, 0x5b, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0xe6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0xe6, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x2c, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, -+ 0x00, 0xe9, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x2c, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, - // Entry 480 - 4BF -- 0x5a, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x5a, 0x00, -+ 0x5b, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x5b, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 4C0 - 4FF -- 0x5a, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, -+ 0x5b, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 500 - 53F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -1007,7 +1023,7 @@ var suppressScript = [1330]uint8{ - 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, - 0x00, 0x00, - } - -@@ -1016,16 +1032,16 @@ const ( - _419 = 31 - _BR = 65 - _CA = 73 -- _ES = 110 -- _GB = 123 -- _MD = 188 -- _PT = 238 -- _UK = 306 -- _US = 309 -- _ZZ = 357 -- _XA = 323 -- _XC = 325 -- _XK = 333 -+ _ES = 111 -+ _GB = 124 -+ _MD = 189 -+ _PT = 239 -+ _UK = 307 -+ _US = 310 -+ _ZZ = 358 -+ _XA = 324 -+ _XC = 326 -+ _XK = 334 - ) - - // isoRegionOffset needs to be added to the index of regionISO to obtain the regionID -@@ -1034,8 +1050,8 @@ const ( - const isoRegionOffset = 32 - - // regionTypes defines the status of a region for various standards. --// Size: 358 bytes, 358 elements --var regionTypes = [358]uint8{ -+// Size: 359 bytes, 359 elements -+var regionTypes = [359]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -@@ -1048,45 +1064,45 @@ var regionTypes = [358]uint8{ - // Entry 40 - 7F - 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, -- 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, -- 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, -- 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, -+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x04, 0x06, -+ 0x04, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x04, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, - 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x00, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry 80 - BF - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - // Entry C0 - FF -- 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, -- 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, -- 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, -- 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, -+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x00, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, -+ 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x00, 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - // Entry 100 - 13F -- 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, -+ 0x05, 0x05, 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, -+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, - 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, 0x06, -- 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, -+ 0x06, 0x06, 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, -+ 0x06, 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, - // Entry 140 - 17F -- 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, -+ 0x06, 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, -- 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, -- 0x04, 0x06, 0x06, 0x04, 0x06, 0x05, -+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, -+ 0x06, 0x04, 0x06, 0x06, 0x04, 0x06, 0x05, - } - - // regionISO holds a list of alphabetically sorted 2-letter ISO region codes. -@@ -1094,27 +1110,27 @@ var regionTypes = [358]uint8{ - // - [A-Z}{2}: the first letter of the 2-letter code plus these two - // letters form the 3-letter ISO code. - // - 0, n: index into altRegionISO3. --const regionISO tag.Index = "" + // Size: 1308 bytes -+const regionISO tag.Index = "" + // Size: 1312 bytes - "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" + - "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" + - "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" + -- "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" + -- "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSMFORO" + -- "FQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGR" + -- "RCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSR" + -- "IMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00" + -- "\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTU" + -- "LUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQ" + -- "MRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOOR" + -- "NPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00" + -- "\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTT" + -- "QU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYC" + -- "SDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYR" + -- "SZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTV" + -- "UVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVU" + -- "UTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXO" + -- "OOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAF" + -- "ZMMBZRARZWWEZZZZ\xff\xff\xff\xff" -+ "CQ CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADO" + -+ "OMDYHYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSM" + -+ "FOROFQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQ" + -+ "NQGRRCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERL" + -+ "ILSRIMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM" + -+ "\x00\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSO" + -+ "LTTULUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNP" + -+ "MQTQMRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLD" + -+ "NOORNPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM" + -+ "\x00\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSS" + -+ "QTTTQU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLB" + -+ "SCYCSDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXM" + -+ "SYYRSZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTT" + -+ "TOTVUVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVN" + -+ "NMVUUTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXN" + -+ "NNXOOOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUG" + -+ "ZAAFZMMBZRARZWWEZZZZ\xff\xff\xff\xff" - - // altRegionISO3 holds a list of 3-letter region codes that cannot be - // mapped to 2-letter codes using the default algorithm. This is a short list. -@@ -1124,38 +1140,38 @@ const altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN" - // of the 3-letter ISO codes in altRegionISO3. - // Size: 22 bytes, 11 elements - var altRegionIDs = [11]uint16{ -- 0x0057, 0x0070, 0x0088, 0x00a8, 0x00aa, 0x00ad, 0x00ea, 0x0105, -- 0x0121, 0x015f, 0x00dc, -+ 0x0058, 0x0071, 0x0089, 0x00a9, 0x00ab, 0x00ae, 0x00eb, 0x0106, -+ 0x0122, 0x0160, 0x00dd, - } - - // Size: 80 bytes, 20 elements - var regionOldMap = [20]FromTo{ -- 0: {From: 0x44, To: 0xc4}, -- 1: {From: 0x58, To: 0xa7}, -- 2: {From: 0x5f, To: 0x60}, -- 3: {From: 0x66, To: 0x3b}, -- 4: {From: 0x79, To: 0x78}, -- 5: {From: 0x93, To: 0x37}, -- 6: {From: 0xa3, To: 0x133}, -- 7: {From: 0xc1, To: 0x133}, -- 8: {From: 0xd7, To: 0x13f}, -- 9: {From: 0xdc, To: 0x2b}, -- 10: {From: 0xef, To: 0x133}, -- 11: {From: 0xf2, To: 0xe2}, -- 12: {From: 0xfc, To: 0x70}, -- 13: {From: 0x103, To: 0x164}, -- 14: {From: 0x12a, To: 0x126}, -- 15: {From: 0x132, To: 0x7b}, -- 16: {From: 0x13a, To: 0x13e}, -- 17: {From: 0x141, To: 0x133}, -- 18: {From: 0x15d, To: 0x15e}, -- 19: {From: 0x163, To: 0x4b}, -+ 0: {From: 0x44, To: 0xc5}, -+ 1: {From: 0x59, To: 0xa8}, -+ 2: {From: 0x60, To: 0x61}, -+ 3: {From: 0x67, To: 0x3b}, -+ 4: {From: 0x7a, To: 0x79}, -+ 5: {From: 0x94, To: 0x37}, -+ 6: {From: 0xa4, To: 0x134}, -+ 7: {From: 0xc2, To: 0x134}, -+ 8: {From: 0xd8, To: 0x140}, -+ 9: {From: 0xdd, To: 0x2b}, -+ 10: {From: 0xf0, To: 0x134}, -+ 11: {From: 0xf3, To: 0xe3}, -+ 12: {From: 0xfd, To: 0x71}, -+ 13: {From: 0x104, To: 0x165}, -+ 14: {From: 0x12b, To: 0x127}, -+ 15: {From: 0x133, To: 0x7c}, -+ 16: {From: 0x13b, To: 0x13f}, -+ 17: {From: 0x142, To: 0x134}, -+ 18: {From: 0x15e, To: 0x15f}, -+ 19: {From: 0x164, To: 0x4b}, - } - - // m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are - // codes indicating collections of regions. --// Size: 716 bytes, 358 elements --var m49 = [358]int16{ -+// Size: 718 bytes, 359 elements -+var m49 = [359]int16{ - // Entry 0 - 3F - 0, 1, 2, 3, 5, 9, 11, 13, - 14, 15, 17, 18, 19, 21, 29, 30, -@@ -1168,45 +1184,45 @@ var m49 = [358]int16{ - // Entry 40 - 7F - 535, 76, 44, 64, 104, 74, 72, 112, - 84, 124, 166, 180, 140, 178, 756, 384, -- 184, 152, 120, 156, 170, 0, 188, 891, -- 296, 192, 132, 531, 162, 196, 203, 278, -- 276, 0, 262, 208, 212, 214, 204, 12, -- 0, 218, 233, 818, 732, 232, 724, 231, -- 967, 0, 246, 242, 238, 583, 234, 0, -- 250, 249, 266, 826, 308, 268, 254, 831, -+ 184, 152, 120, 156, 170, 0, 0, 188, -+ 891, 296, 192, 132, 531, 162, 196, 203, -+ 278, 276, 0, 262, 208, 212, 214, 204, -+ 12, 0, 218, 233, 818, 732, 232, 724, -+ 231, 967, 0, 246, 242, 238, 583, 234, -+ 0, 250, 249, 266, 826, 308, 268, 254, - // Entry 80 - BF -- 288, 292, 304, 270, 324, 312, 226, 300, -- 239, 320, 316, 624, 328, 344, 334, 340, -- 191, 332, 348, 854, 0, 360, 372, 376, -- 833, 356, 86, 368, 364, 352, 380, 832, -- 388, 400, 392, 581, 404, 417, 116, 296, -- 174, 659, 408, 410, 414, 136, 398, 418, -- 422, 662, 438, 144, 430, 426, 440, 442, -- 428, 434, 504, 492, 498, 499, 663, 450, -+ 831, 288, 292, 304, 270, 324, 312, 226, -+ 300, 239, 320, 316, 624, 328, 344, 334, -+ 340, 191, 332, 348, 854, 0, 360, 372, -+ 376, 833, 356, 86, 368, 364, 352, 380, -+ 832, 388, 400, 392, 581, 404, 417, 116, -+ 296, 174, 659, 408, 410, 414, 136, 398, -+ 418, 422, 662, 438, 144, 430, 426, 440, -+ 442, 428, 434, 504, 492, 498, 499, 663, - // Entry C0 - FF -- 584, 581, 807, 466, 104, 496, 446, 580, -- 474, 478, 500, 470, 480, 462, 454, 484, -- 458, 508, 516, 540, 562, 574, 566, 548, -- 558, 528, 578, 524, 10, 520, 536, 570, -- 554, 512, 591, 0, 604, 258, 598, 608, -- 586, 616, 666, 612, 630, 275, 620, 581, -- 585, 600, 591, 634, 959, 960, 961, 962, -- 963, 964, 965, 966, 967, 968, 969, 970, -+ 450, 584, 581, 807, 466, 104, 496, 446, -+ 580, 474, 478, 500, 470, 480, 462, 454, -+ 484, 458, 508, 516, 540, 562, 574, 566, -+ 548, 558, 528, 578, 524, 10, 520, 536, -+ 570, 554, 512, 591, 0, 604, 258, 598, -+ 608, 586, 616, 666, 612, 630, 275, 620, -+ 581, 585, 600, 591, 634, 959, 960, 961, -+ 962, 963, 964, 965, 966, 967, 968, 969, - // Entry 100 - 13F -- 971, 972, 638, 716, 642, 688, 643, 646, -- 682, 90, 690, 729, 752, 702, 654, 705, -- 744, 703, 694, 674, 686, 706, 740, 728, -- 678, 810, 222, 534, 760, 748, 0, 796, -- 148, 260, 768, 764, 762, 772, 626, 795, -- 788, 776, 626, 792, 780, 798, 158, 834, -- 804, 800, 826, 581, 0, 840, 858, 860, -- 336, 670, 704, 862, 92, 850, 704, 548, -+ 970, 971, 972, 638, 716, 642, 688, 643, -+ 646, 682, 90, 690, 729, 752, 702, 654, -+ 705, 744, 703, 694, 674, 686, 706, 740, -+ 728, 678, 810, 222, 534, 760, 748, 0, -+ 796, 148, 260, 768, 764, 762, 772, 626, -+ 795, 788, 776, 626, 792, 780, 798, 158, -+ 834, 804, 800, 826, 581, 0, 840, 858, -+ 860, 336, 670, 704, 862, 92, 850, 704, - // Entry 140 - 17F -- 876, 581, 882, 973, 974, 975, 976, 977, -- 978, 979, 980, 981, 982, 983, 984, 985, -- 986, 987, 988, 989, 990, 991, 992, 993, -- 994, 995, 996, 997, 998, 720, 887, 175, -- 891, 710, 894, 180, 716, 999, -+ 548, 876, 581, 882, 973, 974, 975, 976, -+ 977, 978, 979, 980, 981, 982, 983, 984, -+ 985, 986, 987, 988, 989, 990, 991, 992, -+ 993, 994, 995, 996, 997, 998, 720, 887, -+ 175, 891, 710, 894, 180, 716, 999, - } - - // m49Index gives indexes into fromM49 based on the three most significant bits -@@ -1227,65 +1243,65 @@ var m49Index = [9]int16{ - var fromM49 = [333]uint16{ - // Entry 0 - 3F - 0x0201, 0x0402, 0x0603, 0x0824, 0x0a04, 0x1027, 0x1205, 0x142b, -- 0x1606, 0x1867, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b, -+ 0x1606, 0x1868, 0x1a07, 0x1c08, 0x1e09, 0x202d, 0x220a, 0x240b, - 0x260c, 0x2822, 0x2a0d, 0x302a, 0x3825, 0x3a0e, 0x3c0f, 0x3e32, - 0x402c, 0x4410, 0x4611, 0x482f, 0x4e12, 0x502e, 0x5842, 0x6039, - 0x6435, 0x6628, 0x6834, 0x6a13, 0x6c14, 0x7036, 0x7215, 0x783d, - 0x7a16, 0x8043, 0x883f, 0x8c33, 0x9046, 0x9445, 0x9841, 0xa848, -- 0xac9a, 0xb509, 0xb93c, 0xc03e, 0xc838, 0xd0c4, 0xd83a, 0xe047, -- 0xe8a6, 0xf052, 0xf849, 0x085a, 0x10ad, 0x184c, 0x1c17, 0x1e18, -+ 0xac9b, 0xb50a, 0xb93d, 0xc03e, 0xc838, 0xd0c5, 0xd83a, 0xe047, -+ 0xe8a7, 0xf052, 0xf849, 0x085b, 0x10ae, 0x184c, 0x1c17, 0x1e18, - // Entry 40 - 7F -- 0x20b3, 0x2219, 0x2920, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d, -- 0x3853, 0x3d2e, 0x445c, 0x4c4a, 0x5454, 0x5ca8, 0x5f5f, 0x644d, -- 0x684b, 0x7050, 0x7856, 0x7e90, 0x8059, 0x885d, 0x941e, 0x965e, -- 0x983b, 0xa063, 0xa864, 0xac65, 0xb469, 0xbd1a, 0xc486, 0xcc6f, -- 0xce6f, 0xd06d, 0xd26a, 0xd476, 0xdc74, 0xde88, 0xe473, 0xec72, -- 0xf031, 0xf279, 0xf478, 0xfc7e, 0x04e5, 0x0921, 0x0c62, 0x147a, -- 0x187d, 0x1c83, 0x26ed, 0x2860, 0x2c5f, 0x3060, 0x4080, 0x4881, -- 0x50a7, 0x5887, 0x6082, 0x687c, 0x7085, 0x788a, 0x8089, 0x8884, -+ 0x20b4, 0x2219, 0x2921, 0x2c1a, 0x2e1b, 0x3051, 0x341c, 0x361d, -+ 0x3853, 0x3d2f, 0x445d, 0x4c4a, 0x5454, 0x5ca9, 0x5f60, 0x644d, -+ 0x684b, 0x7050, 0x7857, 0x7e91, 0x805a, 0x885e, 0x941e, 0x965f, -+ 0x983b, 0xa064, 0xa865, 0xac66, 0xb46a, 0xbd1b, 0xc487, 0xcc70, -+ 0xce70, 0xd06e, 0xd26b, 0xd477, 0xdc75, 0xde89, 0xe474, 0xec73, -+ 0xf031, 0xf27a, 0xf479, 0xfc7f, 0x04e6, 0x0922, 0x0c63, 0x147b, -+ 0x187e, 0x1c84, 0x26ee, 0x2861, 0x2c60, 0x3061, 0x4081, 0x4882, -+ 0x50a8, 0x5888, 0x6083, 0x687d, 0x7086, 0x788b, 0x808a, 0x8885, - // Entry 80 - BF -- 0x908c, 0x9891, 0x9c8e, 0xa138, 0xa88f, 0xb08d, 0xb892, 0xc09d, -- 0xc899, 0xd095, 0xd89c, 0xe09b, 0xe896, 0xf097, 0xf89e, 0x004f, -- 0x08a0, 0x10a2, 0x1cae, 0x20a1, 0x28a4, 0x30aa, 0x34ab, 0x3cac, -- 0x42a5, 0x44af, 0x461f, 0x4cb0, 0x54b5, 0x58b8, 0x5cb4, 0x64b9, -- 0x6cb2, 0x70b6, 0x74b7, 0x7cc6, 0x84bf, 0x8cce, 0x94d0, 0x9ccd, -- 0xa4c3, 0xaccb, 0xb4c8, 0xbcc9, 0xc0cc, 0xc8cf, 0xd8bb, 0xe0c5, -- 0xe4bc, 0xe6bd, 0xe8ca, 0xf0ba, 0xf8d1, 0x00e1, 0x08d2, 0x10dd, -- 0x18db, 0x20d9, 0x2429, 0x265b, 0x2a30, 0x2d1b, 0x2e40, 0x30de, -+ 0x908d, 0x9892, 0x9c8f, 0xa139, 0xa890, 0xb08e, 0xb893, 0xc09e, -+ 0xc89a, 0xd096, 0xd89d, 0xe09c, 0xe897, 0xf098, 0xf89f, 0x004f, -+ 0x08a1, 0x10a3, 0x1caf, 0x20a2, 0x28a5, 0x30ab, 0x34ac, 0x3cad, -+ 0x42a6, 0x44b0, 0x461f, 0x4cb1, 0x54b6, 0x58b9, 0x5cb5, 0x64ba, -+ 0x6cb3, 0x70b7, 0x74b8, 0x7cc7, 0x84c0, 0x8ccf, 0x94d1, 0x9cce, -+ 0xa4c4, 0xaccc, 0xb4c9, 0xbcca, 0xc0cd, 0xc8d0, 0xd8bc, 0xe0c6, -+ 0xe4bd, 0xe6be, 0xe8cb, 0xf0bb, 0xf8d2, 0x00e2, 0x08d3, 0x10de, -+ 0x18dc, 0x20da, 0x2429, 0x265c, 0x2a30, 0x2d1c, 0x2e40, 0x30df, - // Entry C0 - FF -- 0x38d3, 0x493f, 0x54e0, 0x5cd8, 0x64d4, 0x6cd6, 0x74df, 0x7cd5, -- 0x84da, 0x88c7, 0x8b33, 0x8e75, 0x90c0, 0x92f0, 0x94e8, 0x9ee2, -- 0xace6, 0xb0f1, 0xb8e4, 0xc0e7, 0xc8eb, 0xd0e9, 0xd8ee, 0xe08b, -- 0xe526, 0xecec, 0xf4f3, 0xfd02, 0x0504, 0x0706, 0x0d07, 0x183c, -- 0x1d0e, 0x26a9, 0x2826, 0x2cb1, 0x2ebe, 0x34ea, 0x3d39, 0x4513, -- 0x4d18, 0x5508, 0x5d14, 0x6105, 0x650a, 0x6d12, 0x7d0d, 0x7f11, -- 0x813e, 0x830f, 0x8515, 0x8d61, 0x9964, 0xa15d, 0xa86e, 0xb117, -- 0xb30b, 0xb86c, 0xc10b, 0xc916, 0xd110, 0xd91d, 0xe10c, 0xe84e, -+ 0x38d4, 0x4940, 0x54e1, 0x5cd9, 0x64d5, 0x6cd7, 0x74e0, 0x7cd6, -+ 0x84db, 0x88c8, 0x8b34, 0x8e76, 0x90c1, 0x92f1, 0x94e9, 0x9ee3, -+ 0xace7, 0xb0f2, 0xb8e5, 0xc0e8, 0xc8ec, 0xd0ea, 0xd8ef, 0xe08c, -+ 0xe527, 0xeced, 0xf4f4, 0xfd03, 0x0505, 0x0707, 0x0d08, 0x183c, -+ 0x1d0f, 0x26aa, 0x2826, 0x2cb2, 0x2ebf, 0x34eb, 0x3d3a, 0x4514, -+ 0x4d19, 0x5509, 0x5d15, 0x6106, 0x650b, 0x6d13, 0x7d0e, 0x7f12, -+ 0x813f, 0x8310, 0x8516, 0x8d62, 0x9965, 0xa15e, 0xa86f, 0xb118, -+ 0xb30c, 0xb86d, 0xc10c, 0xc917, 0xd111, 0xd91e, 0xe10d, 0xe84e, - // Entry 100 - 13F -- 0xf11c, 0xf524, 0xf923, 0x0122, 0x0925, 0x1129, 0x192c, 0x2023, -- 0x2928, 0x312b, 0x3727, 0x391f, 0x3d2d, 0x4131, 0x4930, 0x4ec2, -- 0x5519, 0x646b, 0x747b, 0x7e7f, 0x809f, 0x8298, 0x852f, 0x9135, -- 0xa53d, 0xac37, 0xb536, 0xb937, 0xbd3b, 0xd940, 0xe542, 0xed5e, -- 0xef5e, 0xf657, 0xfd62, 0x7c20, 0x7ef4, 0x80f5, 0x82f6, 0x84f7, -- 0x86f8, 0x88f9, 0x8afa, 0x8cfb, 0x8e70, 0x90fd, 0x92fe, 0x94ff, -- 0x9700, 0x9901, 0x9b43, 0x9d44, 0x9f45, 0xa146, 0xa347, 0xa548, -- 0xa749, 0xa94a, 0xab4b, 0xad4c, 0xaf4d, 0xb14e, 0xb34f, 0xb550, -+ 0xf11d, 0xf525, 0xf924, 0x0123, 0x0926, 0x112a, 0x192d, 0x2023, -+ 0x2929, 0x312c, 0x3728, 0x3920, 0x3d2e, 0x4132, 0x4931, 0x4ec3, -+ 0x551a, 0x646c, 0x747c, 0x7e80, 0x80a0, 0x8299, 0x8530, 0x9136, -+ 0xa53e, 0xac37, 0xb537, 0xb938, 0xbd3c, 0xd941, 0xe543, 0xed5f, -+ 0xef5f, 0xf658, 0xfd63, 0x7c20, 0x7ef5, 0x80f6, 0x82f7, 0x84f8, -+ 0x86f9, 0x88fa, 0x8afb, 0x8cfc, 0x8e71, 0x90fe, 0x92ff, 0x9500, -+ 0x9701, 0x9902, 0x9b44, 0x9d45, 0x9f46, 0xa147, 0xa348, 0xa549, -+ 0xa74a, 0xa94b, 0xab4c, 0xad4d, 0xaf4e, 0xb14f, 0xb350, 0xb551, - // Entry 140 - 17F -- 0xb751, 0xb952, 0xbb53, 0xbd54, 0xbf55, 0xc156, 0xc357, 0xc558, -- 0xc759, 0xc95a, 0xcb5b, 0xcd5c, 0xcf65, -+ 0xb752, 0xb953, 0xbb54, 0xbd55, 0xbf56, 0xc157, 0xc358, 0xc559, -+ 0xc75a, 0xc95b, 0xcb5c, 0xcd5d, 0xcf66, - } - --// Size: 2014 bytes -+// Size: 2128 bytes - var variantIndex = map[string]uint8{ - "1606nict": 0x0, - "1694acad": 0x1, - "1901": 0x2, - "1959acad": 0x3, -- "1994": 0x61, -+ "1994": 0x67, - "1996": 0x4, - "abl1943": 0x5, - "akuapem": 0x6, -- "alalc97": 0x63, -+ "alalc97": 0x69, - "aluku": 0x7, - "ao1990": 0x8, - "aranes": 0x9, -@@ -1299,94 +1315,100 @@ var variantIndex = map[string]uint8{ - "barla": 0x11, - "basiceng": 0x12, - "bauddha": 0x13, -- "biscayan": 0x14, -- "biske": 0x5c, -- "bohoric": 0x15, -- "boont": 0x16, -- "bornholm": 0x17, -- "cisaup": 0x18, -- "colb1945": 0x19, -- "cornu": 0x1a, -- "creiss": 0x1b, -- "dajnko": 0x1c, -- "ekavsk": 0x1d, -- "emodeng": 0x1e, -- "fonipa": 0x64, -- "fonkirsh": 0x65, -- "fonnapa": 0x66, -- "fonupa": 0x67, -- "fonxsamp": 0x68, -- "gascon": 0x1f, -- "grclass": 0x20, -- "grital": 0x21, -- "grmistr": 0x22, -- "hepburn": 0x23, -- "heploc": 0x62, -- "hognorsk": 0x24, -- "hsistemo": 0x25, -- "ijekavsk": 0x26, -- "itihasa": 0x27, -- "ivanchov": 0x28, -- "jauer": 0x29, -- "jyutping": 0x2a, -- "kkcor": 0x2b, -- "kociewie": 0x2c, -- "kscor": 0x2d, -- "laukika": 0x2e, -- "lemosin": 0x2f, -- "lengadoc": 0x30, -- "lipaw": 0x5d, -- "luna1918": 0x31, -- "metelko": 0x32, -- "monoton": 0x33, -- "ndyuka": 0x34, -- "nedis": 0x35, -- "newfound": 0x36, -- "nicard": 0x37, -- "njiva": 0x5e, -- "nulik": 0x38, -- "osojs": 0x5f, -- "oxendict": 0x39, -- "pahawh2": 0x3a, -- "pahawh3": 0x3b, -- "pahawh4": 0x3c, -- "pamaka": 0x3d, -- "peano": 0x3e, -- "petr1708": 0x3f, -- "pinyin": 0x40, -- "polyton": 0x41, -- "provenc": 0x42, -- "puter": 0x43, -- "rigik": 0x44, -- "rozaj": 0x45, -- "rumgr": 0x46, -- "scotland": 0x47, -- "scouse": 0x48, -- "simple": 0x69, -- "solba": 0x60, -- "sotav": 0x49, -- "spanglis": 0x4a, -- "surmiran": 0x4b, -- "sursilv": 0x4c, -- "sutsilv": 0x4d, -- "tarask": 0x4e, -- "tongyong": 0x4f, -- "tunumiit": 0x50, -- "uccor": 0x51, -- "ucrcor": 0x52, -- "ulster": 0x53, -- "unifon": 0x54, -- "vaidika": 0x55, -- "valencia": 0x56, -- "vallader": 0x57, -- "vecdruka": 0x58, -- "vivaraup": 0x59, -- "wadegile": 0x5a, -- "xsistemo": 0x5b, -+ "bciav": 0x14, -+ "bcizbl": 0x15, -+ "biscayan": 0x16, -+ "biske": 0x62, -+ "bohoric": 0x17, -+ "boont": 0x18, -+ "bornholm": 0x19, -+ "cisaup": 0x1a, -+ "colb1945": 0x1b, -+ "cornu": 0x1c, -+ "creiss": 0x1d, -+ "dajnko": 0x1e, -+ "ekavsk": 0x1f, -+ "emodeng": 0x20, -+ "fonipa": 0x6a, -+ "fonkirsh": 0x6b, -+ "fonnapa": 0x6c, -+ "fonupa": 0x6d, -+ "fonxsamp": 0x6e, -+ "gallo": 0x21, -+ "gascon": 0x22, -+ "grclass": 0x23, -+ "grital": 0x24, -+ "grmistr": 0x25, -+ "hepburn": 0x26, -+ "heploc": 0x68, -+ "hognorsk": 0x27, -+ "hsistemo": 0x28, -+ "ijekavsk": 0x29, -+ "itihasa": 0x2a, -+ "ivanchov": 0x2b, -+ "jauer": 0x2c, -+ "jyutping": 0x2d, -+ "kkcor": 0x2e, -+ "kociewie": 0x2f, -+ "kscor": 0x30, -+ "laukika": 0x31, -+ "lemosin": 0x32, -+ "lengadoc": 0x33, -+ "lipaw": 0x63, -+ "ltg1929": 0x34, -+ "ltg2007": 0x35, -+ "luna1918": 0x36, -+ "metelko": 0x37, -+ "monoton": 0x38, -+ "ndyuka": 0x39, -+ "nedis": 0x3a, -+ "newfound": 0x3b, -+ "nicard": 0x3c, -+ "njiva": 0x64, -+ "nulik": 0x3d, -+ "osojs": 0x65, -+ "oxendict": 0x3e, -+ "pahawh2": 0x3f, -+ "pahawh3": 0x40, -+ "pahawh4": 0x41, -+ "pamaka": 0x42, -+ "peano": 0x43, -+ "petr1708": 0x44, -+ "pinyin": 0x45, -+ "polyton": 0x46, -+ "provenc": 0x47, -+ "puter": 0x48, -+ "rigik": 0x49, -+ "rozaj": 0x4a, -+ "rumgr": 0x4b, -+ "scotland": 0x4c, -+ "scouse": 0x4d, -+ "simple": 0x6f, -+ "solba": 0x66, -+ "sotav": 0x4e, -+ "spanglis": 0x4f, -+ "surmiran": 0x50, -+ "sursilv": 0x51, -+ "sutsilv": 0x52, -+ "synnejyl": 0x53, -+ "tarask": 0x54, -+ "tongyong": 0x55, -+ "tunumiit": 0x56, -+ "uccor": 0x57, -+ "ucrcor": 0x58, -+ "ulster": 0x59, -+ "unifon": 0x5a, -+ "vaidika": 0x5b, -+ "valencia": 0x5c, -+ "vallader": 0x5d, -+ "vecdruka": 0x5e, -+ "vivaraup": 0x5f, -+ "wadegile": 0x60, -+ "xsistemo": 0x61, - } - - // variantNumSpecialized is the number of specialized variants in variants. --const variantNumSpecialized = 99 -+const variantNumSpecialized = 105 - - // nRegionGroups is the number of region groups. - const nRegionGroups = 33 -@@ -1398,151 +1420,151 @@ type likelyLangRegion struct { - - // likelyScript is a lookup table, indexed by scriptID, for the most likely - // languages and regions given a script. --// Size: 1040 bytes, 260 elements --var likelyScript = [260]likelyLangRegion{ -- 1: {lang: 0x14e, region: 0x84}, -- 3: {lang: 0x2a2, region: 0x106}, -- 4: {lang: 0x1f, region: 0x99}, -- 5: {lang: 0x3a, region: 0x6b}, -- 7: {lang: 0x3b, region: 0x9c}, -+// Size: 1052 bytes, 263 elements -+var likelyScript = [263]likelyLangRegion{ -+ 1: {lang: 0x14e, region: 0x85}, -+ 3: {lang: 0x2a2, region: 0x107}, -+ 4: {lang: 0x1f, region: 0x9a}, -+ 5: {lang: 0x3a, region: 0x6c}, -+ 7: {lang: 0x3b, region: 0x9d}, - 8: {lang: 0x1d7, region: 0x28}, -- 9: {lang: 0x13, region: 0x9c}, -- 10: {lang: 0x5b, region: 0x95}, -+ 9: {lang: 0x13, region: 0x9d}, -+ 10: {lang: 0x5b, region: 0x96}, - 11: {lang: 0x60, region: 0x52}, -- 12: {lang: 0xb9, region: 0xb4}, -- 13: {lang: 0x63, region: 0x95}, -+ 12: {lang: 0xb9, region: 0xb5}, -+ 13: {lang: 0x63, region: 0x96}, - 14: {lang: 0xa5, region: 0x35}, -- 15: {lang: 0x3e9, region: 0x99}, -- 17: {lang: 0x529, region: 0x12e}, -- 18: {lang: 0x3b1, region: 0x99}, -- 19: {lang: 0x15e, region: 0x78}, -- 20: {lang: 0xc2, region: 0x95}, -- 21: {lang: 0x9d, region: 0xe7}, -+ 15: {lang: 0x3e9, region: 0x9a}, -+ 17: {lang: 0x529, region: 0x12f}, -+ 18: {lang: 0x3b1, region: 0x9a}, -+ 19: {lang: 0x15e, region: 0x79}, -+ 20: {lang: 0xc2, region: 0x96}, -+ 21: {lang: 0x9d, region: 0xe8}, - 22: {lang: 0xdb, region: 0x35}, - 23: {lang: 0xf3, region: 0x49}, -- 24: {lang: 0x4f0, region: 0x12b}, -- 25: {lang: 0xe7, region: 0x13e}, -- 26: {lang: 0xe5, region: 0x135}, -- 29: {lang: 0xf1, region: 0x6b}, -- 31: {lang: 0x1a0, region: 0x5d}, -- 32: {lang: 0x3e2, region: 0x106}, -- 34: {lang: 0x1be, region: 0x99}, -- 38: {lang: 0x15e, region: 0x78}, -- 41: {lang: 0x133, region: 0x6b}, -+ 24: {lang: 0x4f0, region: 0x12c}, -+ 25: {lang: 0xe7, region: 0x13f}, -+ 26: {lang: 0xe5, region: 0x136}, -+ 29: {lang: 0xf1, region: 0x6c}, -+ 31: {lang: 0x1a0, region: 0x5e}, -+ 32: {lang: 0x3e2, region: 0x107}, -+ 34: {lang: 0x1be, region: 0x9a}, -+ 38: {lang: 0x15e, region: 0x79}, -+ 41: {lang: 0x133, region: 0x6c}, - 42: {lang: 0x431, region: 0x27}, -- 44: {lang: 0x27, region: 0x6f}, -- 46: {lang: 0x210, region: 0x7d}, -+ 44: {lang: 0x27, region: 0x70}, -+ 46: {lang: 0x210, region: 0x7e}, - 47: {lang: 0xfe, region: 0x38}, -- 49: {lang: 0x19b, region: 0x99}, -- 50: {lang: 0x19e, region: 0x130}, -- 51: {lang: 0x3e9, region: 0x99}, -- 52: {lang: 0x136, region: 0x87}, -- 53: {lang: 0x1a4, region: 0x99}, -- 54: {lang: 0x39d, region: 0x99}, -- 55: {lang: 0x529, region: 0x12e}, -- 56: {lang: 0x254, region: 0xab}, -+ 49: {lang: 0x19b, region: 0x9a}, -+ 50: {lang: 0x19e, region: 0x131}, -+ 51: {lang: 0x3e9, region: 0x9a}, -+ 52: {lang: 0x136, region: 0x88}, -+ 53: {lang: 0x1a4, region: 0x9a}, -+ 54: {lang: 0x39d, region: 0x9a}, -+ 55: {lang: 0x529, region: 0x12f}, -+ 56: {lang: 0x254, region: 0xac}, - 57: {lang: 0x529, region: 0x53}, -- 58: {lang: 0x1cb, region: 0xe7}, -+ 58: {lang: 0x1cb, region: 0xe8}, - 59: {lang: 0x529, region: 0x53}, -- 60: {lang: 0x529, region: 0x12e}, -- 61: {lang: 0x2fd, region: 0x9b}, -- 62: {lang: 0x1bc, region: 0x97}, -- 63: {lang: 0x200, region: 0xa2}, -- 64: {lang: 0x1c5, region: 0x12b}, -- 65: {lang: 0x1ca, region: 0xaf}, -- 68: {lang: 0x1d5, region: 0x92}, -- 70: {lang: 0x142, region: 0x9e}, -- 71: {lang: 0x254, region: 0xab}, -- 72: {lang: 0x20e, region: 0x95}, -- 73: {lang: 0x200, region: 0xa2}, -- 75: {lang: 0x135, region: 0xc4}, -- 76: {lang: 0x200, region: 0xa2}, -- 77: {lang: 0x3bb, region: 0xe8}, -- 78: {lang: 0x24a, region: 0xa6}, -- 79: {lang: 0x3fa, region: 0x99}, -- 82: {lang: 0x251, region: 0x99}, -- 83: {lang: 0x254, region: 0xab}, -- 85: {lang: 0x88, region: 0x99}, -- 86: {lang: 0x370, region: 0x123}, -- 87: {lang: 0x2b8, region: 0xaf}, -- 92: {lang: 0x29f, region: 0x99}, -- 93: {lang: 0x2a8, region: 0x99}, -- 94: {lang: 0x28f, region: 0x87}, -- 95: {lang: 0x1a0, region: 0x87}, -- 96: {lang: 0x2ac, region: 0x53}, -- 98: {lang: 0x4f4, region: 0x12b}, -- 99: {lang: 0x4f5, region: 0x12b}, -- 100: {lang: 0x1be, region: 0x99}, -- 102: {lang: 0x337, region: 0x9c}, -- 103: {lang: 0x4f7, region: 0x53}, -- 104: {lang: 0xa9, region: 0x53}, -- 107: {lang: 0x2e8, region: 0x112}, -- 108: {lang: 0x4f8, region: 0x10b}, -- 109: {lang: 0x4f8, region: 0x10b}, -- 110: {lang: 0x304, region: 0x99}, -- 111: {lang: 0x31b, region: 0x99}, -- 112: {lang: 0x30b, region: 0x53}, -- 114: {lang: 0x31e, region: 0x35}, -- 115: {lang: 0x30e, region: 0x99}, -- 116: {lang: 0x414, region: 0xe8}, -- 117: {lang: 0x331, region: 0xc4}, -- 119: {lang: 0x4f9, region: 0x108}, -- 120: {lang: 0x3b, region: 0xa1}, -- 121: {lang: 0x353, region: 0xdb}, -- 124: {lang: 0x2d0, region: 0x84}, -- 125: {lang: 0x52a, region: 0x53}, -- 126: {lang: 0x403, region: 0x96}, -- 127: {lang: 0x3ee, region: 0x99}, -- 128: {lang: 0x39b, region: 0xc5}, -- 129: {lang: 0x395, region: 0x99}, -- 130: {lang: 0x399, region: 0x135}, -- 131: {lang: 0x429, region: 0x115}, -- 133: {lang: 0x3b, region: 0x11c}, -- 134: {lang: 0xfd, region: 0xc4}, -- 137: {lang: 0x27d, region: 0x106}, -- 138: {lang: 0x2c9, region: 0x53}, -- 139: {lang: 0x39f, region: 0x9c}, -- 140: {lang: 0x39f, region: 0x53}, -- 142: {lang: 0x3ad, region: 0xb0}, -- 144: {lang: 0x1c6, region: 0x53}, -- 145: {lang: 0x4fd, region: 0x9c}, -- 198: {lang: 0x3cb, region: 0x95}, -- 201: {lang: 0x372, region: 0x10c}, -- 202: {lang: 0x420, region: 0x97}, -- 204: {lang: 0x4ff, region: 0x15e}, -- 205: {lang: 0x3f0, region: 0x99}, -- 206: {lang: 0x45, region: 0x135}, -- 207: {lang: 0x139, region: 0x7b}, -- 208: {lang: 0x3e9, region: 0x99}, -- 210: {lang: 0x3e9, region: 0x99}, -- 211: {lang: 0x3fa, region: 0x99}, -- 212: {lang: 0x40c, region: 0xb3}, -- 215: {lang: 0x433, region: 0x99}, -- 216: {lang: 0xef, region: 0xc5}, -- 217: {lang: 0x43e, region: 0x95}, -- 218: {lang: 0x44d, region: 0x35}, -- 219: {lang: 0x44e, region: 0x9b}, -- 223: {lang: 0x45a, region: 0xe7}, -- 224: {lang: 0x11a, region: 0x99}, -- 225: {lang: 0x45e, region: 0x53}, -- 226: {lang: 0x232, region: 0x53}, -- 227: {lang: 0x450, region: 0x99}, -- 228: {lang: 0x4a5, region: 0x53}, -- 229: {lang: 0x9f, region: 0x13e}, -- 230: {lang: 0x461, region: 0x99}, -- 232: {lang: 0x528, region: 0xba}, -- 233: {lang: 0x153, region: 0xe7}, -- 234: {lang: 0x128, region: 0xcd}, -- 235: {lang: 0x46b, region: 0x123}, -- 236: {lang: 0xa9, region: 0x53}, -- 237: {lang: 0x2ce, region: 0x99}, -- 240: {lang: 0x4ad, region: 0x11c}, -- 241: {lang: 0x4be, region: 0xb4}, -- 244: {lang: 0x1ce, region: 0x99}, -- 247: {lang: 0x3a9, region: 0x9c}, -- 248: {lang: 0x22, region: 0x9b}, -- 250: {lang: 0x1ea, region: 0x53}, -- 251: {lang: 0xef, region: 0xc5}, -+ 60: {lang: 0x529, region: 0x12f}, -+ 61: {lang: 0x2fd, region: 0x9c}, -+ 62: {lang: 0x1bc, region: 0x98}, -+ 63: {lang: 0x200, region: 0xa3}, -+ 64: {lang: 0x1c5, region: 0x12c}, -+ 65: {lang: 0x1ca, region: 0xb0}, -+ 68: {lang: 0x1d5, region: 0x93}, -+ 70: {lang: 0x142, region: 0x9f}, -+ 71: {lang: 0x254, region: 0xac}, -+ 72: {lang: 0x20e, region: 0x96}, -+ 73: {lang: 0x200, region: 0xa3}, -+ 75: {lang: 0x135, region: 0xc5}, -+ 76: {lang: 0x200, region: 0xa3}, -+ 78: {lang: 0x3bb, region: 0xe9}, -+ 79: {lang: 0x24a, region: 0xa7}, -+ 80: {lang: 0x3fa, region: 0x9a}, -+ 83: {lang: 0x251, region: 0x9a}, -+ 84: {lang: 0x254, region: 0xac}, -+ 86: {lang: 0x88, region: 0x9a}, -+ 87: {lang: 0x370, region: 0x124}, -+ 88: {lang: 0x2b8, region: 0xb0}, -+ 93: {lang: 0x29f, region: 0x9a}, -+ 94: {lang: 0x2a8, region: 0x9a}, -+ 95: {lang: 0x28f, region: 0x88}, -+ 96: {lang: 0x1a0, region: 0x88}, -+ 97: {lang: 0x2ac, region: 0x53}, -+ 99: {lang: 0x4f4, region: 0x12c}, -+ 100: {lang: 0x4f5, region: 0x12c}, -+ 101: {lang: 0x1be, region: 0x9a}, -+ 103: {lang: 0x337, region: 0x9d}, -+ 104: {lang: 0x4f7, region: 0x53}, -+ 105: {lang: 0xa9, region: 0x53}, -+ 108: {lang: 0x2e8, region: 0x113}, -+ 109: {lang: 0x4f8, region: 0x10c}, -+ 110: {lang: 0x4f8, region: 0x10c}, -+ 111: {lang: 0x304, region: 0x9a}, -+ 112: {lang: 0x31b, region: 0x9a}, -+ 113: {lang: 0x30b, region: 0x53}, -+ 115: {lang: 0x31e, region: 0x35}, -+ 116: {lang: 0x30e, region: 0x9a}, -+ 117: {lang: 0x414, region: 0xe9}, -+ 118: {lang: 0x331, region: 0xc5}, -+ 121: {lang: 0x4f9, region: 0x109}, -+ 122: {lang: 0x3b, region: 0xa2}, -+ 123: {lang: 0x353, region: 0xdc}, -+ 126: {lang: 0x2d0, region: 0x85}, -+ 127: {lang: 0x52a, region: 0x53}, -+ 128: {lang: 0x403, region: 0x97}, -+ 129: {lang: 0x3ee, region: 0x9a}, -+ 130: {lang: 0x39b, region: 0xc6}, -+ 131: {lang: 0x395, region: 0x9a}, -+ 132: {lang: 0x399, region: 0x136}, -+ 133: {lang: 0x429, region: 0x116}, -+ 135: {lang: 0x3b, region: 0x11d}, -+ 136: {lang: 0xfd, region: 0xc5}, -+ 139: {lang: 0x27d, region: 0x107}, -+ 140: {lang: 0x2c9, region: 0x53}, -+ 141: {lang: 0x39f, region: 0x9d}, -+ 142: {lang: 0x39f, region: 0x53}, -+ 144: {lang: 0x3ad, region: 0xb1}, -+ 146: {lang: 0x1c6, region: 0x53}, -+ 147: {lang: 0x4fd, region: 0x9d}, -+ 200: {lang: 0x3cb, region: 0x96}, -+ 203: {lang: 0x372, region: 0x10d}, -+ 204: {lang: 0x420, region: 0x98}, -+ 206: {lang: 0x4ff, region: 0x15f}, -+ 207: {lang: 0x3f0, region: 0x9a}, -+ 208: {lang: 0x45, region: 0x136}, -+ 209: {lang: 0x139, region: 0x7c}, -+ 210: {lang: 0x3e9, region: 0x9a}, -+ 212: {lang: 0x3e9, region: 0x9a}, -+ 213: {lang: 0x3fa, region: 0x9a}, -+ 214: {lang: 0x40c, region: 0xb4}, -+ 217: {lang: 0x433, region: 0x9a}, -+ 218: {lang: 0xef, region: 0xc6}, -+ 219: {lang: 0x43e, region: 0x96}, -+ 221: {lang: 0x44d, region: 0x35}, -+ 222: {lang: 0x44e, region: 0x9c}, -+ 226: {lang: 0x45a, region: 0xe8}, -+ 227: {lang: 0x11a, region: 0x9a}, -+ 228: {lang: 0x45e, region: 0x53}, -+ 229: {lang: 0x232, region: 0x53}, -+ 230: {lang: 0x450, region: 0x9a}, -+ 231: {lang: 0x4a5, region: 0x53}, -+ 232: {lang: 0x9f, region: 0x13f}, -+ 233: {lang: 0x461, region: 0x9a}, -+ 235: {lang: 0x528, region: 0xbb}, -+ 236: {lang: 0x153, region: 0xe8}, -+ 237: {lang: 0x128, region: 0xce}, -+ 238: {lang: 0x46b, region: 0x124}, -+ 239: {lang: 0xa9, region: 0x53}, -+ 240: {lang: 0x2ce, region: 0x9a}, -+ 243: {lang: 0x4ad, region: 0x11d}, -+ 244: {lang: 0x4be, region: 0xb5}, -+ 247: {lang: 0x1ce, region: 0x9a}, -+ 250: {lang: 0x3a9, region: 0x9d}, -+ 251: {lang: 0x22, region: 0x9c}, -+ 253: {lang: 0x1ea, region: 0x53}, -+ 254: {lang: 0xef, region: 0xc6}, - } - - type likelyScriptRegion struct { -@@ -1557,1423 +1579,1423 @@ type likelyScriptRegion struct { - // of the list in likelyLangList. - // Size: 7980 bytes, 1330 elements - var likelyLang = [1330]likelyScriptRegion{ -- 0: {region: 0x135, script: 0x5a, flags: 0x0}, -- 1: {region: 0x6f, script: 0x5a, flags: 0x0}, -- 2: {region: 0x165, script: 0x5a, flags: 0x0}, -- 3: {region: 0x165, script: 0x5a, flags: 0x0}, -- 4: {region: 0x165, script: 0x5a, flags: 0x0}, -- 5: {region: 0x7d, script: 0x20, flags: 0x0}, -- 6: {region: 0x165, script: 0x5a, flags: 0x0}, -- 7: {region: 0x165, script: 0x20, flags: 0x0}, -- 8: {region: 0x80, script: 0x5a, flags: 0x0}, -- 9: {region: 0x165, script: 0x5a, flags: 0x0}, -- 10: {region: 0x165, script: 0x5a, flags: 0x0}, -- 11: {region: 0x165, script: 0x5a, flags: 0x0}, -- 12: {region: 0x95, script: 0x5a, flags: 0x0}, -- 13: {region: 0x131, script: 0x5a, flags: 0x0}, -- 14: {region: 0x80, script: 0x5a, flags: 0x0}, -- 15: {region: 0x165, script: 0x5a, flags: 0x0}, -- 16: {region: 0x165, script: 0x5a, flags: 0x0}, -- 17: {region: 0x106, script: 0x20, flags: 0x0}, -- 18: {region: 0x165, script: 0x5a, flags: 0x0}, -- 19: {region: 0x9c, script: 0x9, flags: 0x0}, -- 20: {region: 0x128, script: 0x5, flags: 0x0}, -- 21: {region: 0x165, script: 0x5a, flags: 0x0}, -- 22: {region: 0x161, script: 0x5a, flags: 0x0}, -- 23: {region: 0x165, script: 0x5a, flags: 0x0}, -- 24: {region: 0x165, script: 0x5a, flags: 0x0}, -- 25: {region: 0x165, script: 0x5a, flags: 0x0}, -- 26: {region: 0x165, script: 0x5a, flags: 0x0}, -- 27: {region: 0x165, script: 0x5a, flags: 0x0}, -- 28: {region: 0x52, script: 0x5a, flags: 0x0}, -- 29: {region: 0x165, script: 0x5a, flags: 0x0}, -- 30: {region: 0x165, script: 0x5a, flags: 0x0}, -- 31: {region: 0x99, script: 0x4, flags: 0x0}, -- 32: {region: 0x165, script: 0x5a, flags: 0x0}, -- 33: {region: 0x80, script: 0x5a, flags: 0x0}, -- 34: {region: 0x9b, script: 0xf8, flags: 0x0}, -- 35: {region: 0x165, script: 0x5a, flags: 0x0}, -- 36: {region: 0x165, script: 0x5a, flags: 0x0}, -- 37: {region: 0x14d, script: 0x5a, flags: 0x0}, -- 38: {region: 0x106, script: 0x20, flags: 0x0}, -- 39: {region: 0x6f, script: 0x2c, flags: 0x0}, -- 40: {region: 0x165, script: 0x5a, flags: 0x0}, -- 41: {region: 0x165, script: 0x5a, flags: 0x0}, -- 42: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 43: {region: 0x165, script: 0x5a, flags: 0x0}, -- 45: {region: 0x165, script: 0x5a, flags: 0x0}, -- 46: {region: 0x165, script: 0x5a, flags: 0x0}, -- 47: {region: 0x165, script: 0x5a, flags: 0x0}, -- 48: {region: 0x165, script: 0x5a, flags: 0x0}, -- 49: {region: 0x165, script: 0x5a, flags: 0x0}, -- 50: {region: 0x165, script: 0x5a, flags: 0x0}, -- 51: {region: 0x95, script: 0x5a, flags: 0x0}, -- 52: {region: 0x165, script: 0x5, flags: 0x0}, -- 53: {region: 0x122, script: 0x5, flags: 0x0}, -- 54: {region: 0x165, script: 0x5a, flags: 0x0}, -- 55: {region: 0x165, script: 0x5a, flags: 0x0}, -- 56: {region: 0x165, script: 0x5a, flags: 0x0}, -- 57: {region: 0x165, script: 0x5a, flags: 0x0}, -- 58: {region: 0x6b, script: 0x5, flags: 0x0}, -+ 0: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 1: {region: 0x70, script: 0x5b, flags: 0x0}, -+ 2: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 3: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 4: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 5: {region: 0x7e, script: 0x20, flags: 0x0}, -+ 6: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 7: {region: 0x166, script: 0x20, flags: 0x0}, -+ 8: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 9: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 10: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 11: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 12: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 13: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 14: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 15: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 16: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 17: {region: 0x107, script: 0x20, flags: 0x0}, -+ 18: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 19: {region: 0x9d, script: 0x9, flags: 0x0}, -+ 20: {region: 0x129, script: 0x5, flags: 0x0}, -+ 21: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 22: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 23: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 24: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 25: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 26: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 27: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 28: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 29: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 30: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 31: {region: 0x9a, script: 0x4, flags: 0x0}, -+ 32: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 33: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 34: {region: 0x9c, script: 0xfb, flags: 0x0}, -+ 35: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 36: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 37: {region: 0x14e, script: 0x5b, flags: 0x0}, -+ 38: {region: 0x107, script: 0x20, flags: 0x0}, -+ 39: {region: 0x70, script: 0x2c, flags: 0x0}, -+ 40: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 41: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 42: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 43: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 45: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 46: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 47: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 48: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 49: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 50: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 51: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 52: {region: 0x166, script: 0x5, flags: 0x0}, -+ 53: {region: 0x123, script: 0x5, flags: 0x0}, -+ 54: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 55: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 56: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 57: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 58: {region: 0x6c, script: 0x5, flags: 0x0}, - 59: {region: 0x0, script: 0x3, flags: 0x1}, -- 60: {region: 0x165, script: 0x5a, flags: 0x0}, -- 61: {region: 0x51, script: 0x5a, flags: 0x0}, -- 62: {region: 0x3f, script: 0x5a, flags: 0x0}, -- 63: {region: 0x67, script: 0x5, flags: 0x0}, -- 65: {region: 0xba, script: 0x5, flags: 0x0}, -- 66: {region: 0x6b, script: 0x5, flags: 0x0}, -- 67: {region: 0x99, script: 0xe, flags: 0x0}, -- 68: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 69: {region: 0x135, script: 0xce, flags: 0x0}, -- 70: {region: 0x165, script: 0x5a, flags: 0x0}, -- 71: {region: 0x165, script: 0x5a, flags: 0x0}, -- 72: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 73: {region: 0x165, script: 0x5a, flags: 0x0}, -- 74: {region: 0x165, script: 0x5a, flags: 0x0}, -- 75: {region: 0x49, script: 0x5a, flags: 0x0}, -- 76: {region: 0x165, script: 0x5a, flags: 0x0}, -- 77: {region: 0x106, script: 0x20, flags: 0x0}, -- 78: {region: 0x165, script: 0x5, flags: 0x0}, -- 79: {region: 0x165, script: 0x5a, flags: 0x0}, -- 80: {region: 0x165, script: 0x5a, flags: 0x0}, -- 81: {region: 0x165, script: 0x5a, flags: 0x0}, -- 82: {region: 0x99, script: 0x22, flags: 0x0}, -- 83: {region: 0x165, script: 0x5a, flags: 0x0}, -- 84: {region: 0x165, script: 0x5a, flags: 0x0}, -- 85: {region: 0x165, script: 0x5a, flags: 0x0}, -- 86: {region: 0x3f, script: 0x5a, flags: 0x0}, -- 87: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 60: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 61: {region: 0x51, script: 0x5b, flags: 0x0}, -+ 62: {region: 0x3f, script: 0x5b, flags: 0x0}, -+ 63: {region: 0x68, script: 0x5, flags: 0x0}, -+ 65: {region: 0xbb, script: 0x5, flags: 0x0}, -+ 66: {region: 0x6c, script: 0x5, flags: 0x0}, -+ 67: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 68: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 69: {region: 0x136, script: 0xd0, flags: 0x0}, -+ 70: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 71: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 72: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 73: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 74: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 75: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 76: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 77: {region: 0x107, script: 0x20, flags: 0x0}, -+ 78: {region: 0x166, script: 0x5, flags: 0x0}, -+ 79: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 80: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 81: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 82: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 83: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 84: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 85: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 86: {region: 0x3f, script: 0x5b, flags: 0x0}, -+ 87: {region: 0x166, script: 0x5b, flags: 0x0}, - 88: {region: 0x3, script: 0x5, flags: 0x1}, -- 89: {region: 0x106, script: 0x20, flags: 0x0}, -- 90: {region: 0xe8, script: 0x5, flags: 0x0}, -- 91: {region: 0x95, script: 0x5a, flags: 0x0}, -- 92: {region: 0xdb, script: 0x22, flags: 0x0}, -- 93: {region: 0x2e, script: 0x5a, flags: 0x0}, -- 94: {region: 0x52, script: 0x5a, flags: 0x0}, -- 95: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 89: {region: 0x107, script: 0x20, flags: 0x0}, -+ 90: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 91: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 92: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 93: {region: 0x2e, script: 0x5b, flags: 0x0}, -+ 94: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 95: {region: 0x166, script: 0x5b, flags: 0x0}, - 96: {region: 0x52, script: 0xb, flags: 0x0}, -- 97: {region: 0x165, script: 0x5a, flags: 0x0}, -- 98: {region: 0x165, script: 0x5a, flags: 0x0}, -- 99: {region: 0x95, script: 0x5a, flags: 0x0}, -- 100: {region: 0x165, script: 0x5a, flags: 0x0}, -- 101: {region: 0x52, script: 0x5a, flags: 0x0}, -- 102: {region: 0x165, script: 0x5a, flags: 0x0}, -- 103: {region: 0x165, script: 0x5a, flags: 0x0}, -- 104: {region: 0x165, script: 0x5a, flags: 0x0}, -- 105: {region: 0x165, script: 0x5a, flags: 0x0}, -- 106: {region: 0x4f, script: 0x5a, flags: 0x0}, -- 107: {region: 0x165, script: 0x5a, flags: 0x0}, -- 108: {region: 0x165, script: 0x5a, flags: 0x0}, -- 109: {region: 0x165, script: 0x5a, flags: 0x0}, -- 110: {region: 0x165, script: 0x2c, flags: 0x0}, -- 111: {region: 0x165, script: 0x5a, flags: 0x0}, -- 112: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 97: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 98: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 99: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 100: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 101: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 102: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 103: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 104: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 105: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 106: {region: 0x4f, script: 0x5b, flags: 0x0}, -+ 107: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 108: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 109: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 110: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 111: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 112: {region: 0x166, script: 0x5b, flags: 0x0}, - 113: {region: 0x47, script: 0x20, flags: 0x0}, -- 114: {region: 0x165, script: 0x5a, flags: 0x0}, -- 115: {region: 0x165, script: 0x5a, flags: 0x0}, -- 116: {region: 0x10b, script: 0x5, flags: 0x0}, -- 117: {region: 0x162, script: 0x5a, flags: 0x0}, -- 118: {region: 0x165, script: 0x5a, flags: 0x0}, -- 119: {region: 0x95, script: 0x5a, flags: 0x0}, -- 120: {region: 0x165, script: 0x5a, flags: 0x0}, -- 121: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 122: {region: 0x52, script: 0x5a, flags: 0x0}, -- 123: {region: 0x99, script: 0xe3, flags: 0x0}, -- 124: {region: 0xe8, script: 0x5, flags: 0x0}, -- 125: {region: 0x99, script: 0x22, flags: 0x0}, -+ 114: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 115: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 116: {region: 0x10c, script: 0x5, flags: 0x0}, -+ 117: {region: 0x163, script: 0x5b, flags: 0x0}, -+ 118: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 119: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 120: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 121: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 122: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 123: {region: 0x9a, script: 0xe6, flags: 0x0}, -+ 124: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 125: {region: 0x9a, script: 0x22, flags: 0x0}, - 126: {region: 0x38, script: 0x20, flags: 0x0}, -- 127: {region: 0x99, script: 0x22, flags: 0x0}, -- 128: {region: 0xe8, script: 0x5, flags: 0x0}, -- 129: {region: 0x12b, script: 0x34, flags: 0x0}, -- 131: {region: 0x99, script: 0x22, flags: 0x0}, -- 132: {region: 0x165, script: 0x5a, flags: 0x0}, -- 133: {region: 0x99, script: 0x22, flags: 0x0}, -- 134: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 135: {region: 0x165, script: 0x5a, flags: 0x0}, -- 136: {region: 0x99, script: 0x22, flags: 0x0}, -- 137: {region: 0x165, script: 0x5a, flags: 0x0}, -- 138: {region: 0x13f, script: 0x5a, flags: 0x0}, -- 139: {region: 0x165, script: 0x5a, flags: 0x0}, -- 140: {region: 0x165, script: 0x5a, flags: 0x0}, -- 141: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 142: {region: 0x165, script: 0x5a, flags: 0x0}, -- 143: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 144: {region: 0x165, script: 0x5a, flags: 0x0}, -- 145: {region: 0x165, script: 0x5a, flags: 0x0}, -- 146: {region: 0x165, script: 0x5a, flags: 0x0}, -- 147: {region: 0x165, script: 0x2c, flags: 0x0}, -- 148: {region: 0x99, script: 0x22, flags: 0x0}, -- 149: {region: 0x95, script: 0x5a, flags: 0x0}, -- 150: {region: 0x165, script: 0x5a, flags: 0x0}, -- 151: {region: 0x165, script: 0x5a, flags: 0x0}, -- 152: {region: 0x114, script: 0x5a, flags: 0x0}, -- 153: {region: 0x165, script: 0x5a, flags: 0x0}, -- 154: {region: 0x165, script: 0x5a, flags: 0x0}, -- 155: {region: 0x52, script: 0x5a, flags: 0x0}, -- 156: {region: 0x165, script: 0x5a, flags: 0x0}, -- 157: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 158: {region: 0x165, script: 0x5a, flags: 0x0}, -- 159: {region: 0x13e, script: 0xe5, flags: 0x0}, -- 160: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 161: {region: 0x165, script: 0x5a, flags: 0x0}, -- 162: {region: 0x165, script: 0x5a, flags: 0x0}, -- 163: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 164: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 127: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 128: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 129: {region: 0x12c, script: 0x34, flags: 0x0}, -+ 131: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 132: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 133: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 134: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 135: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 136: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 137: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 138: {region: 0x140, script: 0x5b, flags: 0x0}, -+ 139: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 140: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 141: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 142: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 143: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 144: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 145: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 146: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 147: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 148: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 149: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 150: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 151: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 152: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 153: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 154: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 155: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 156: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 157: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 158: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 159: {region: 0x13f, script: 0xe8, flags: 0x0}, -+ 160: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 161: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 162: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 163: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 164: {region: 0x166, script: 0x5b, flags: 0x0}, - 165: {region: 0x35, script: 0xe, flags: 0x0}, -- 166: {region: 0x165, script: 0x5a, flags: 0x0}, -- 167: {region: 0x165, script: 0x5a, flags: 0x0}, -- 168: {region: 0x165, script: 0x5a, flags: 0x0}, -- 169: {region: 0x53, script: 0xec, flags: 0x0}, -- 170: {region: 0x165, script: 0x5a, flags: 0x0}, -- 171: {region: 0x165, script: 0x5a, flags: 0x0}, -- 172: {region: 0x165, script: 0x5a, flags: 0x0}, -- 173: {region: 0x99, script: 0xe, flags: 0x0}, -- 174: {region: 0x165, script: 0x5a, flags: 0x0}, -- 175: {region: 0x9c, script: 0x5, flags: 0x0}, -- 176: {region: 0x165, script: 0x5a, flags: 0x0}, -- 177: {region: 0x4f, script: 0x5a, flags: 0x0}, -- 178: {region: 0x78, script: 0x5a, flags: 0x0}, -- 179: {region: 0x99, script: 0x22, flags: 0x0}, -- 180: {region: 0xe8, script: 0x5, flags: 0x0}, -- 181: {region: 0x99, script: 0x22, flags: 0x0}, -- 182: {region: 0x165, script: 0x5a, flags: 0x0}, -- 183: {region: 0x33, script: 0x5a, flags: 0x0}, -- 184: {region: 0x165, script: 0x5a, flags: 0x0}, -- 185: {region: 0xb4, script: 0xc, flags: 0x0}, -- 186: {region: 0x52, script: 0x5a, flags: 0x0}, -- 187: {region: 0x165, script: 0x2c, flags: 0x0}, -- 188: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 189: {region: 0x165, script: 0x5a, flags: 0x0}, -- 190: {region: 0xe8, script: 0x22, flags: 0x0}, -- 191: {region: 0x106, script: 0x20, flags: 0x0}, -- 192: {region: 0x15f, script: 0x5a, flags: 0x0}, -- 193: {region: 0x165, script: 0x5a, flags: 0x0}, -- 194: {region: 0x95, script: 0x5a, flags: 0x0}, -- 195: {region: 0x165, script: 0x5a, flags: 0x0}, -- 196: {region: 0x52, script: 0x5a, flags: 0x0}, -- 197: {region: 0x165, script: 0x5a, flags: 0x0}, -- 198: {region: 0x165, script: 0x5a, flags: 0x0}, -- 199: {region: 0x165, script: 0x5a, flags: 0x0}, -- 200: {region: 0x86, script: 0x5a, flags: 0x0}, -- 201: {region: 0x165, script: 0x5a, flags: 0x0}, -- 202: {region: 0x165, script: 0x5a, flags: 0x0}, -- 203: {region: 0x165, script: 0x5a, flags: 0x0}, -- 204: {region: 0x165, script: 0x5a, flags: 0x0}, -- 205: {region: 0x6d, script: 0x2c, flags: 0x0}, -- 206: {region: 0x165, script: 0x5a, flags: 0x0}, -- 207: {region: 0x165, script: 0x5a, flags: 0x0}, -- 208: {region: 0x52, script: 0x5a, flags: 0x0}, -- 209: {region: 0x165, script: 0x5a, flags: 0x0}, -- 210: {region: 0x165, script: 0x5a, flags: 0x0}, -- 211: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 212: {region: 0x165, script: 0x5a, flags: 0x0}, -- 213: {region: 0x165, script: 0x5a, flags: 0x0}, -- 214: {region: 0x165, script: 0x5a, flags: 0x0}, -- 215: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 216: {region: 0x165, script: 0x5a, flags: 0x0}, -- 217: {region: 0x165, script: 0x5a, flags: 0x0}, -- 218: {region: 0xd6, script: 0x5a, flags: 0x0}, -+ 166: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 167: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 168: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 169: {region: 0x53, script: 0xef, flags: 0x0}, -+ 170: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 171: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 172: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 173: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 174: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 175: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 176: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 177: {region: 0x4f, script: 0x5b, flags: 0x0}, -+ 178: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 179: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 180: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 181: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 182: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 183: {region: 0x33, script: 0x5b, flags: 0x0}, -+ 184: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 185: {region: 0xb5, script: 0xc, flags: 0x0}, -+ 186: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 187: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 188: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 189: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 190: {region: 0xe9, script: 0x22, flags: 0x0}, -+ 191: {region: 0x107, script: 0x20, flags: 0x0}, -+ 192: {region: 0x160, script: 0x5b, flags: 0x0}, -+ 193: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 194: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 195: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 196: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 197: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 198: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 199: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 200: {region: 0x87, script: 0x5b, flags: 0x0}, -+ 201: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 202: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 203: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 204: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 205: {region: 0x6e, script: 0x2c, flags: 0x0}, -+ 206: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 207: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 208: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 209: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 210: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 211: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 212: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 213: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 214: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 215: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 216: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 217: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 218: {region: 0xd7, script: 0x5b, flags: 0x0}, - 219: {region: 0x35, script: 0x16, flags: 0x0}, -- 220: {region: 0x106, script: 0x20, flags: 0x0}, -- 221: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 222: {region: 0x165, script: 0x5a, flags: 0x0}, -- 223: {region: 0x131, script: 0x5a, flags: 0x0}, -- 224: {region: 0x8a, script: 0x5a, flags: 0x0}, -- 225: {region: 0x75, script: 0x5a, flags: 0x0}, -- 226: {region: 0x106, script: 0x20, flags: 0x0}, -- 227: {region: 0x135, script: 0x5a, flags: 0x0}, -- 228: {region: 0x49, script: 0x5a, flags: 0x0}, -- 229: {region: 0x135, script: 0x1a, flags: 0x0}, -- 230: {region: 0xa6, script: 0x5, flags: 0x0}, -- 231: {region: 0x13e, script: 0x19, flags: 0x0}, -- 232: {region: 0x165, script: 0x5a, flags: 0x0}, -- 233: {region: 0x9b, script: 0x5, flags: 0x0}, -- 234: {region: 0x165, script: 0x5a, flags: 0x0}, -- 235: {region: 0x165, script: 0x5a, flags: 0x0}, -- 236: {region: 0x165, script: 0x5a, flags: 0x0}, -- 237: {region: 0x165, script: 0x5a, flags: 0x0}, -- 238: {region: 0x165, script: 0x5a, flags: 0x0}, -- 239: {region: 0xc5, script: 0xd8, flags: 0x0}, -- 240: {region: 0x78, script: 0x5a, flags: 0x0}, -- 241: {region: 0x6b, script: 0x1d, flags: 0x0}, -- 242: {region: 0xe7, script: 0x5a, flags: 0x0}, -+ 220: {region: 0x107, script: 0x20, flags: 0x0}, -+ 221: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 222: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 223: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 224: {region: 0x8b, script: 0x5b, flags: 0x0}, -+ 225: {region: 0x76, script: 0x5b, flags: 0x0}, -+ 226: {region: 0x107, script: 0x20, flags: 0x0}, -+ 227: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 228: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 229: {region: 0x136, script: 0x1a, flags: 0x0}, -+ 230: {region: 0xa7, script: 0x5, flags: 0x0}, -+ 231: {region: 0x13f, script: 0x19, flags: 0x0}, -+ 232: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 233: {region: 0x9c, script: 0x5, flags: 0x0}, -+ 234: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 235: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 236: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 237: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 238: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 239: {region: 0xc6, script: 0xda, flags: 0x0}, -+ 240: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 241: {region: 0x6c, script: 0x1d, flags: 0x0}, -+ 242: {region: 0xe8, script: 0x5b, flags: 0x0}, - 243: {region: 0x49, script: 0x17, flags: 0x0}, -- 244: {region: 0x130, script: 0x20, flags: 0x0}, -+ 244: {region: 0x131, script: 0x20, flags: 0x0}, - 245: {region: 0x49, script: 0x17, flags: 0x0}, - 246: {region: 0x49, script: 0x17, flags: 0x0}, - 247: {region: 0x49, script: 0x17, flags: 0x0}, - 248: {region: 0x49, script: 0x17, flags: 0x0}, -- 249: {region: 0x10a, script: 0x5a, flags: 0x0}, -- 250: {region: 0x5e, script: 0x5a, flags: 0x0}, -- 251: {region: 0xe9, script: 0x5a, flags: 0x0}, -+ 249: {region: 0x10b, script: 0x5b, flags: 0x0}, -+ 250: {region: 0x5f, script: 0x5b, flags: 0x0}, -+ 251: {region: 0xea, script: 0x5b, flags: 0x0}, - 252: {region: 0x49, script: 0x17, flags: 0x0}, -- 253: {region: 0xc4, script: 0x86, flags: 0x0}, -+ 253: {region: 0xc5, script: 0x88, flags: 0x0}, - 254: {region: 0x8, script: 0x2, flags: 0x1}, -- 255: {region: 0x106, script: 0x20, flags: 0x0}, -- 256: {region: 0x7b, script: 0x5a, flags: 0x0}, -- 257: {region: 0x63, script: 0x5a, flags: 0x0}, -- 258: {region: 0x165, script: 0x5a, flags: 0x0}, -- 259: {region: 0x165, script: 0x5a, flags: 0x0}, -- 260: {region: 0x165, script: 0x5a, flags: 0x0}, -- 261: {region: 0x165, script: 0x5a, flags: 0x0}, -- 262: {region: 0x135, script: 0x5a, flags: 0x0}, -- 263: {region: 0x106, script: 0x20, flags: 0x0}, -- 264: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 265: {region: 0x165, script: 0x5a, flags: 0x0}, -- 266: {region: 0x165, script: 0x5a, flags: 0x0}, -- 267: {region: 0x99, script: 0x5, flags: 0x0}, -- 268: {region: 0x165, script: 0x5a, flags: 0x0}, -- 269: {region: 0x60, script: 0x5a, flags: 0x0}, -- 270: {region: 0x165, script: 0x5a, flags: 0x0}, -- 271: {region: 0x49, script: 0x5a, flags: 0x0}, -- 272: {region: 0x165, script: 0x5a, flags: 0x0}, -- 273: {region: 0x165, script: 0x5a, flags: 0x0}, -- 274: {region: 0x165, script: 0x5a, flags: 0x0}, -- 275: {region: 0x165, script: 0x5, flags: 0x0}, -- 276: {region: 0x49, script: 0x5a, flags: 0x0}, -- 277: {region: 0x165, script: 0x5a, flags: 0x0}, -- 278: {region: 0x165, script: 0x5a, flags: 0x0}, -- 279: {region: 0xd4, script: 0x5a, flags: 0x0}, -- 280: {region: 0x4f, script: 0x5a, flags: 0x0}, -- 281: {region: 0x165, script: 0x5a, flags: 0x0}, -- 282: {region: 0x99, script: 0x5, flags: 0x0}, -- 283: {region: 0x165, script: 0x5a, flags: 0x0}, -- 284: {region: 0x165, script: 0x5a, flags: 0x0}, -- 285: {region: 0x165, script: 0x5a, flags: 0x0}, -- 286: {region: 0x165, script: 0x2c, flags: 0x0}, -- 287: {region: 0x60, script: 0x5a, flags: 0x0}, -- 288: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 289: {region: 0xd0, script: 0x5a, flags: 0x0}, -- 290: {region: 0x165, script: 0x5a, flags: 0x0}, -- 291: {region: 0xdb, script: 0x22, flags: 0x0}, -- 292: {region: 0x52, script: 0x5a, flags: 0x0}, -- 293: {region: 0x165, script: 0x5a, flags: 0x0}, -- 294: {region: 0x165, script: 0x5a, flags: 0x0}, -- 295: {region: 0x165, script: 0x5a, flags: 0x0}, -- 296: {region: 0xcd, script: 0xea, flags: 0x0}, -- 297: {region: 0x165, script: 0x5a, flags: 0x0}, -- 298: {region: 0x165, script: 0x5a, flags: 0x0}, -- 299: {region: 0x114, script: 0x5a, flags: 0x0}, -- 300: {region: 0x37, script: 0x5a, flags: 0x0}, -- 301: {region: 0x43, script: 0xec, flags: 0x0}, -- 302: {region: 0x165, script: 0x5a, flags: 0x0}, -- 303: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 304: {region: 0x80, script: 0x5a, flags: 0x0}, -- 305: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 306: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 307: {region: 0x6b, script: 0x29, flags: 0x0}, -- 308: {region: 0x165, script: 0x5a, flags: 0x0}, -- 309: {region: 0xc4, script: 0x4b, flags: 0x0}, -- 310: {region: 0x87, script: 0x34, flags: 0x0}, -- 311: {region: 0x165, script: 0x5a, flags: 0x0}, -- 312: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 255: {region: 0x107, script: 0x20, flags: 0x0}, -+ 256: {region: 0x7c, script: 0x5b, flags: 0x0}, -+ 257: {region: 0x64, script: 0x5b, flags: 0x0}, -+ 258: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 259: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 260: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 261: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 262: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 263: {region: 0x107, script: 0x20, flags: 0x0}, -+ 264: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 265: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 266: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 267: {region: 0x9a, script: 0x5, flags: 0x0}, -+ 268: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 269: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 270: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 271: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 272: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 273: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 274: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 275: {region: 0x166, script: 0x5, flags: 0x0}, -+ 276: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 277: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 278: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 279: {region: 0xd5, script: 0x5b, flags: 0x0}, -+ 280: {region: 0x4f, script: 0x5b, flags: 0x0}, -+ 281: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 282: {region: 0x9a, script: 0x5, flags: 0x0}, -+ 283: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 284: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 285: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 286: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 287: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 288: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 289: {region: 0xd1, script: 0x5b, flags: 0x0}, -+ 290: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 291: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 292: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 293: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 294: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 295: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 296: {region: 0xce, script: 0xed, flags: 0x0}, -+ 297: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 298: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 299: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 300: {region: 0x37, script: 0x5b, flags: 0x0}, -+ 301: {region: 0x43, script: 0xef, flags: 0x0}, -+ 302: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 303: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 304: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 305: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 306: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 307: {region: 0x6c, script: 0x29, flags: 0x0}, -+ 308: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 309: {region: 0xc5, script: 0x4b, flags: 0x0}, -+ 310: {region: 0x88, script: 0x34, flags: 0x0}, -+ 311: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 312: {region: 0x166, script: 0x5b, flags: 0x0}, - 313: {region: 0xa, script: 0x2, flags: 0x1}, -- 314: {region: 0x165, script: 0x5a, flags: 0x0}, -- 315: {region: 0x165, script: 0x5a, flags: 0x0}, -- 316: {region: 0x1, script: 0x5a, flags: 0x0}, -- 317: {region: 0x165, script: 0x5a, flags: 0x0}, -- 318: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 319: {region: 0x135, script: 0x5a, flags: 0x0}, -- 320: {region: 0x6a, script: 0x5a, flags: 0x0}, -- 321: {region: 0x165, script: 0x5a, flags: 0x0}, -- 322: {region: 0x9e, script: 0x46, flags: 0x0}, -- 323: {region: 0x165, script: 0x5a, flags: 0x0}, -- 324: {region: 0x165, script: 0x5a, flags: 0x0}, -- 325: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 326: {region: 0x52, script: 0x5a, flags: 0x0}, -- 327: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 328: {region: 0x9c, script: 0x5, flags: 0x0}, -- 329: {region: 0x165, script: 0x5a, flags: 0x0}, -- 330: {region: 0x165, script: 0x5a, flags: 0x0}, -- 331: {region: 0x165, script: 0x5a, flags: 0x0}, -- 332: {region: 0x165, script: 0x5a, flags: 0x0}, -- 333: {region: 0x86, script: 0x5a, flags: 0x0}, -+ 314: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 315: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 316: {region: 0x1, script: 0x5b, flags: 0x0}, -+ 317: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 318: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 319: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 320: {region: 0x6b, script: 0x5b, flags: 0x0}, -+ 321: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 322: {region: 0x9f, script: 0x46, flags: 0x0}, -+ 323: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 324: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 325: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 326: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 327: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 328: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 329: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 330: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 331: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 332: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 333: {region: 0x87, script: 0x5b, flags: 0x0}, - 334: {region: 0xc, script: 0x2, flags: 0x1}, -- 335: {region: 0x165, script: 0x5a, flags: 0x0}, -- 336: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 337: {region: 0x72, script: 0x5a, flags: 0x0}, -- 338: {region: 0x10b, script: 0x5, flags: 0x0}, -- 339: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 340: {region: 0x10c, script: 0x5a, flags: 0x0}, -- 341: {region: 0x73, script: 0x5a, flags: 0x0}, -- 342: {region: 0x165, script: 0x5a, flags: 0x0}, -- 343: {region: 0x165, script: 0x5a, flags: 0x0}, -- 344: {region: 0x76, script: 0x5a, flags: 0x0}, -- 345: {region: 0x165, script: 0x5a, flags: 0x0}, -- 346: {region: 0x3b, script: 0x5a, flags: 0x0}, -- 347: {region: 0x165, script: 0x5a, flags: 0x0}, -- 348: {region: 0x165, script: 0x5a, flags: 0x0}, -- 349: {region: 0x165, script: 0x5a, flags: 0x0}, -- 350: {region: 0x78, script: 0x5a, flags: 0x0}, -- 351: {region: 0x135, script: 0x5a, flags: 0x0}, -- 352: {region: 0x78, script: 0x5a, flags: 0x0}, -- 353: {region: 0x60, script: 0x5a, flags: 0x0}, -- 354: {region: 0x60, script: 0x5a, flags: 0x0}, -+ 335: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 336: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 337: {region: 0x73, script: 0x5b, flags: 0x0}, -+ 338: {region: 0x10c, script: 0x5, flags: 0x0}, -+ 339: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 340: {region: 0x10d, script: 0x5b, flags: 0x0}, -+ 341: {region: 0x74, script: 0x5b, flags: 0x0}, -+ 342: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 343: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 344: {region: 0x77, script: 0x5b, flags: 0x0}, -+ 345: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 346: {region: 0x3b, script: 0x5b, flags: 0x0}, -+ 347: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 348: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 349: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 350: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 351: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 352: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 353: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 354: {region: 0x61, script: 0x5b, flags: 0x0}, - 355: {region: 0x52, script: 0x5, flags: 0x0}, -- 356: {region: 0x140, script: 0x5a, flags: 0x0}, -- 357: {region: 0x165, script: 0x5a, flags: 0x0}, -- 358: {region: 0x84, script: 0x5a, flags: 0x0}, -- 359: {region: 0x165, script: 0x5a, flags: 0x0}, -- 360: {region: 0xd4, script: 0x5a, flags: 0x0}, -- 361: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 362: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 363: {region: 0x165, script: 0x5a, flags: 0x0}, -- 364: {region: 0x10b, script: 0x5a, flags: 0x0}, -- 365: {region: 0xd9, script: 0x5a, flags: 0x0}, -- 366: {region: 0x96, script: 0x5a, flags: 0x0}, -- 367: {region: 0x80, script: 0x5a, flags: 0x0}, -- 368: {region: 0x165, script: 0x5a, flags: 0x0}, -- 369: {region: 0xbc, script: 0x5a, flags: 0x0}, -- 370: {region: 0x165, script: 0x5a, flags: 0x0}, -- 371: {region: 0x165, script: 0x5a, flags: 0x0}, -- 372: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 356: {region: 0x141, script: 0x5b, flags: 0x0}, -+ 357: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 358: {region: 0x85, script: 0x5b, flags: 0x0}, -+ 359: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 360: {region: 0xd5, script: 0x5b, flags: 0x0}, -+ 361: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 362: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 363: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 364: {region: 0x10c, script: 0x5b, flags: 0x0}, -+ 365: {region: 0xda, script: 0x5b, flags: 0x0}, -+ 366: {region: 0x97, script: 0x5b, flags: 0x0}, -+ 367: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 368: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 369: {region: 0xbd, script: 0x5b, flags: 0x0}, -+ 370: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 371: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 372: {region: 0x166, script: 0x5b, flags: 0x0}, - 373: {region: 0x53, script: 0x3b, flags: 0x0}, -- 374: {region: 0x165, script: 0x5a, flags: 0x0}, -- 375: {region: 0x95, script: 0x5a, flags: 0x0}, -- 376: {region: 0x165, script: 0x5a, flags: 0x0}, -- 377: {region: 0x165, script: 0x5a, flags: 0x0}, -- 378: {region: 0x99, script: 0x22, flags: 0x0}, -- 379: {region: 0x165, script: 0x5a, flags: 0x0}, -- 380: {region: 0x9c, script: 0x5, flags: 0x0}, -- 381: {region: 0x7e, script: 0x5a, flags: 0x0}, -- 382: {region: 0x7b, script: 0x5a, flags: 0x0}, -- 383: {region: 0x165, script: 0x5a, flags: 0x0}, -- 384: {region: 0x165, script: 0x5a, flags: 0x0}, -- 385: {region: 0x165, script: 0x5a, flags: 0x0}, -- 386: {region: 0x165, script: 0x5a, flags: 0x0}, -- 387: {region: 0x165, script: 0x5a, flags: 0x0}, -- 388: {region: 0x165, script: 0x5a, flags: 0x0}, -- 389: {region: 0x6f, script: 0x2c, flags: 0x0}, -- 390: {region: 0x165, script: 0x5a, flags: 0x0}, -- 391: {region: 0xdb, script: 0x22, flags: 0x0}, -- 392: {region: 0x165, script: 0x5a, flags: 0x0}, -- 393: {region: 0xa7, script: 0x5a, flags: 0x0}, -- 394: {region: 0x165, script: 0x5a, flags: 0x0}, -- 395: {region: 0xe8, script: 0x5, flags: 0x0}, -- 396: {region: 0x165, script: 0x5a, flags: 0x0}, -- 397: {region: 0xe8, script: 0x5, flags: 0x0}, -- 398: {region: 0x165, script: 0x5a, flags: 0x0}, -- 399: {region: 0x165, script: 0x5a, flags: 0x0}, -- 400: {region: 0x6e, script: 0x5a, flags: 0x0}, -- 401: {region: 0x9c, script: 0x5, flags: 0x0}, -- 402: {region: 0x165, script: 0x5a, flags: 0x0}, -- 403: {region: 0x165, script: 0x2c, flags: 0x0}, -- 404: {region: 0xf1, script: 0x5a, flags: 0x0}, -- 405: {region: 0x165, script: 0x5a, flags: 0x0}, -- 406: {region: 0x165, script: 0x5a, flags: 0x0}, -- 407: {region: 0x165, script: 0x5a, flags: 0x0}, -- 408: {region: 0x165, script: 0x2c, flags: 0x0}, -- 409: {region: 0x165, script: 0x5a, flags: 0x0}, -- 410: {region: 0x99, script: 0x22, flags: 0x0}, -- 411: {region: 0x99, script: 0xe6, flags: 0x0}, -- 412: {region: 0x95, script: 0x5a, flags: 0x0}, -- 413: {region: 0xd9, script: 0x5a, flags: 0x0}, -- 414: {region: 0x130, script: 0x32, flags: 0x0}, -- 415: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 374: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 375: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 376: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 377: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 378: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 379: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 380: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 381: {region: 0x7f, script: 0x5b, flags: 0x0}, -+ 382: {region: 0x7c, script: 0x5b, flags: 0x0}, -+ 383: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 384: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 385: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 386: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 387: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 388: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 389: {region: 0x70, script: 0x2c, flags: 0x0}, -+ 390: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 391: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 392: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 393: {region: 0xa8, script: 0x5b, flags: 0x0}, -+ 394: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 395: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 396: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 397: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 398: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 399: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 400: {region: 0x6f, script: 0x5b, flags: 0x0}, -+ 401: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 402: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 403: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 404: {region: 0xf2, script: 0x5b, flags: 0x0}, -+ 405: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 406: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 407: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 408: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 409: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 410: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 411: {region: 0x9a, script: 0xe9, flags: 0x0}, -+ 412: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 413: {region: 0xda, script: 0x5b, flags: 0x0}, -+ 414: {region: 0x131, script: 0x32, flags: 0x0}, -+ 415: {region: 0x166, script: 0x5b, flags: 0x0}, - 416: {region: 0xe, script: 0x2, flags: 0x1}, -- 417: {region: 0x99, script: 0xe, flags: 0x0}, -- 418: {region: 0x165, script: 0x5a, flags: 0x0}, -- 419: {region: 0x4e, script: 0x5a, flags: 0x0}, -- 420: {region: 0x99, script: 0x35, flags: 0x0}, -- 421: {region: 0x41, script: 0x5a, flags: 0x0}, -- 422: {region: 0x54, script: 0x5a, flags: 0x0}, -- 423: {region: 0x165, script: 0x5a, flags: 0x0}, -- 424: {region: 0x80, script: 0x5a, flags: 0x0}, -- 425: {region: 0x165, script: 0x5a, flags: 0x0}, -- 426: {region: 0x165, script: 0x5a, flags: 0x0}, -- 427: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 428: {region: 0x98, script: 0x5a, flags: 0x0}, -- 429: {region: 0x165, script: 0x5a, flags: 0x0}, -- 430: {region: 0xdb, script: 0x22, flags: 0x0}, -- 431: {region: 0x165, script: 0x5a, flags: 0x0}, -- 432: {region: 0x165, script: 0x5, flags: 0x0}, -- 433: {region: 0x49, script: 0x5a, flags: 0x0}, -- 434: {region: 0x165, script: 0x5, flags: 0x0}, -- 435: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 417: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 418: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 419: {region: 0x4e, script: 0x5b, flags: 0x0}, -+ 420: {region: 0x9a, script: 0x35, flags: 0x0}, -+ 421: {region: 0x41, script: 0x5b, flags: 0x0}, -+ 422: {region: 0x54, script: 0x5b, flags: 0x0}, -+ 423: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 424: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 425: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 426: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 427: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 428: {region: 0x99, script: 0x5b, flags: 0x0}, -+ 429: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 430: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 431: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 432: {region: 0x166, script: 0x5, flags: 0x0}, -+ 433: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 434: {region: 0x166, script: 0x5, flags: 0x0}, -+ 435: {region: 0x166, script: 0x5b, flags: 0x0}, - 436: {region: 0x10, script: 0x3, flags: 0x1}, -- 437: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 437: {region: 0x166, script: 0x5b, flags: 0x0}, - 438: {region: 0x53, script: 0x3b, flags: 0x0}, -- 439: {region: 0x165, script: 0x5a, flags: 0x0}, -- 440: {region: 0x135, script: 0x5a, flags: 0x0}, -+ 439: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 440: {region: 0x136, script: 0x5b, flags: 0x0}, - 441: {region: 0x24, script: 0x5, flags: 0x0}, -- 442: {region: 0x165, script: 0x5a, flags: 0x0}, -- 443: {region: 0x165, script: 0x2c, flags: 0x0}, -- 444: {region: 0x97, script: 0x3e, flags: 0x0}, -- 445: {region: 0x165, script: 0x5a, flags: 0x0}, -- 446: {region: 0x99, script: 0x22, flags: 0x0}, -- 447: {region: 0x165, script: 0x5a, flags: 0x0}, -- 448: {region: 0x73, script: 0x5a, flags: 0x0}, -- 449: {region: 0x165, script: 0x5a, flags: 0x0}, -- 450: {region: 0x165, script: 0x5a, flags: 0x0}, -- 451: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 452: {region: 0x165, script: 0x5a, flags: 0x0}, -- 453: {region: 0x12b, script: 0x40, flags: 0x0}, -- 454: {region: 0x53, script: 0x90, flags: 0x0}, -- 455: {region: 0x165, script: 0x5a, flags: 0x0}, -- 456: {region: 0xe8, script: 0x5, flags: 0x0}, -- 457: {region: 0x99, script: 0x22, flags: 0x0}, -- 458: {region: 0xaf, script: 0x41, flags: 0x0}, -- 459: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 460: {region: 0xe8, script: 0x5, flags: 0x0}, -- 461: {region: 0xe6, script: 0x5a, flags: 0x0}, -- 462: {region: 0x99, script: 0x22, flags: 0x0}, -- 463: {region: 0x99, script: 0x22, flags: 0x0}, -- 464: {region: 0x165, script: 0x5a, flags: 0x0}, -- 465: {region: 0x90, script: 0x5a, flags: 0x0}, -- 466: {region: 0x60, script: 0x5a, flags: 0x0}, -+ 442: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 443: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 444: {region: 0x98, script: 0x3e, flags: 0x0}, -+ 445: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 446: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 447: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 448: {region: 0x74, script: 0x5b, flags: 0x0}, -+ 449: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 450: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 451: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 452: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 453: {region: 0x12c, script: 0x40, flags: 0x0}, -+ 454: {region: 0x53, script: 0x92, flags: 0x0}, -+ 455: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 456: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 457: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 458: {region: 0xb0, script: 0x41, flags: 0x0}, -+ 459: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 460: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 461: {region: 0xe7, script: 0x5b, flags: 0x0}, -+ 462: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 463: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 464: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 465: {region: 0x91, script: 0x5b, flags: 0x0}, -+ 466: {region: 0x61, script: 0x5b, flags: 0x0}, - 467: {region: 0x53, script: 0x3b, flags: 0x0}, -- 468: {region: 0x91, script: 0x5a, flags: 0x0}, -- 469: {region: 0x92, script: 0x5a, flags: 0x0}, -- 470: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 468: {region: 0x92, script: 0x5b, flags: 0x0}, -+ 469: {region: 0x93, script: 0x5b, flags: 0x0}, -+ 470: {region: 0x166, script: 0x5b, flags: 0x0}, - 471: {region: 0x28, script: 0x8, flags: 0x0}, -- 472: {region: 0xd2, script: 0x5a, flags: 0x0}, -- 473: {region: 0x78, script: 0x5a, flags: 0x0}, -- 474: {region: 0x165, script: 0x5a, flags: 0x0}, -- 475: {region: 0x165, script: 0x5a, flags: 0x0}, -- 476: {region: 0xd0, script: 0x5a, flags: 0x0}, -- 477: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 478: {region: 0x165, script: 0x5a, flags: 0x0}, -- 479: {region: 0x165, script: 0x5a, flags: 0x0}, -- 480: {region: 0x165, script: 0x5a, flags: 0x0}, -- 481: {region: 0x95, script: 0x5a, flags: 0x0}, -- 482: {region: 0x165, script: 0x5a, flags: 0x0}, -- 483: {region: 0x165, script: 0x5a, flags: 0x0}, -- 484: {region: 0x165, script: 0x5a, flags: 0x0}, -- 486: {region: 0x122, script: 0x5a, flags: 0x0}, -- 487: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 488: {region: 0x165, script: 0x5a, flags: 0x0}, -- 489: {region: 0x165, script: 0x5a, flags: 0x0}, -- 490: {region: 0x53, script: 0xfa, flags: 0x0}, -- 491: {region: 0x165, script: 0x5a, flags: 0x0}, -- 492: {region: 0x135, script: 0x5a, flags: 0x0}, -- 493: {region: 0x165, script: 0x5a, flags: 0x0}, -- 494: {region: 0x49, script: 0x5a, flags: 0x0}, -- 495: {region: 0x165, script: 0x5a, flags: 0x0}, -- 496: {region: 0x165, script: 0x5a, flags: 0x0}, -- 497: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 498: {region: 0x165, script: 0x5a, flags: 0x0}, -- 499: {region: 0x95, script: 0x5a, flags: 0x0}, -- 500: {region: 0x106, script: 0x20, flags: 0x0}, -- 501: {region: 0x1, script: 0x5a, flags: 0x0}, -- 502: {region: 0x165, script: 0x5a, flags: 0x0}, -- 503: {region: 0x165, script: 0x5a, flags: 0x0}, -- 504: {region: 0x9d, script: 0x5a, flags: 0x0}, -- 505: {region: 0x9e, script: 0x5a, flags: 0x0}, -+ 472: {region: 0xd3, script: 0x5b, flags: 0x0}, -+ 473: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 474: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 475: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 476: {region: 0xd1, script: 0x5b, flags: 0x0}, -+ 477: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 478: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 479: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 480: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 481: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 482: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 483: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 484: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 486: {region: 0x123, script: 0x5b, flags: 0x0}, -+ 487: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 488: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 489: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 490: {region: 0x53, script: 0xfd, flags: 0x0}, -+ 491: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 492: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 493: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 494: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 495: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 496: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 497: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 498: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 499: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 500: {region: 0x107, script: 0x20, flags: 0x0}, -+ 501: {region: 0x1, script: 0x5b, flags: 0x0}, -+ 502: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 503: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 504: {region: 0x9e, script: 0x5b, flags: 0x0}, -+ 505: {region: 0x9f, script: 0x5b, flags: 0x0}, - 506: {region: 0x49, script: 0x17, flags: 0x0}, -- 507: {region: 0x97, script: 0x3e, flags: 0x0}, -- 508: {region: 0x165, script: 0x5a, flags: 0x0}, -- 509: {region: 0x165, script: 0x5a, flags: 0x0}, -- 510: {region: 0x106, script: 0x5a, flags: 0x0}, -- 511: {region: 0x165, script: 0x5a, flags: 0x0}, -- 512: {region: 0xa2, script: 0x49, flags: 0x0}, -- 513: {region: 0x165, script: 0x5a, flags: 0x0}, -- 514: {region: 0xa0, script: 0x5a, flags: 0x0}, -- 515: {region: 0x1, script: 0x5a, flags: 0x0}, -- 516: {region: 0x165, script: 0x5a, flags: 0x0}, -- 517: {region: 0x165, script: 0x5a, flags: 0x0}, -- 518: {region: 0x165, script: 0x5a, flags: 0x0}, -- 519: {region: 0x52, script: 0x5a, flags: 0x0}, -- 520: {region: 0x130, script: 0x3e, flags: 0x0}, -- 521: {region: 0x165, script: 0x5a, flags: 0x0}, -- 522: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 523: {region: 0xdb, script: 0x22, flags: 0x0}, -- 524: {region: 0x165, script: 0x5a, flags: 0x0}, -- 525: {region: 0x63, script: 0x5a, flags: 0x0}, -- 526: {region: 0x95, script: 0x5a, flags: 0x0}, -- 527: {region: 0x95, script: 0x5a, flags: 0x0}, -- 528: {region: 0x7d, script: 0x2e, flags: 0x0}, -- 529: {region: 0x137, script: 0x20, flags: 0x0}, -- 530: {region: 0x67, script: 0x5a, flags: 0x0}, -- 531: {region: 0xc4, script: 0x5a, flags: 0x0}, -- 532: {region: 0x165, script: 0x5a, flags: 0x0}, -- 533: {region: 0x165, script: 0x5a, flags: 0x0}, -- 534: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 535: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 536: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 537: {region: 0x106, script: 0x20, flags: 0x0}, -- 538: {region: 0x165, script: 0x5a, flags: 0x0}, -- 539: {region: 0x165, script: 0x5a, flags: 0x0}, -- 540: {region: 0x165, script: 0x5a, flags: 0x0}, -- 541: {region: 0x165, script: 0x5a, flags: 0x0}, -- 542: {region: 0xd4, script: 0x5, flags: 0x0}, -- 543: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 544: {region: 0x164, script: 0x5a, flags: 0x0}, -- 545: {region: 0x165, script: 0x5a, flags: 0x0}, -- 546: {region: 0x165, script: 0x5a, flags: 0x0}, -- 547: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 548: {region: 0x122, script: 0x5, flags: 0x0}, -- 549: {region: 0x165, script: 0x5a, flags: 0x0}, -- 550: {region: 0x123, script: 0xeb, flags: 0x0}, -- 551: {region: 0x5a, script: 0x5a, flags: 0x0}, -- 552: {region: 0x52, script: 0x5a, flags: 0x0}, -- 553: {region: 0x165, script: 0x5a, flags: 0x0}, -- 554: {region: 0x4f, script: 0x5a, flags: 0x0}, -- 555: {region: 0x99, script: 0x22, flags: 0x0}, -- 556: {region: 0x99, script: 0x22, flags: 0x0}, -- 557: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 558: {region: 0x95, script: 0x5a, flags: 0x0}, -- 559: {region: 0x165, script: 0x5a, flags: 0x0}, -- 560: {region: 0x41, script: 0x5a, flags: 0x0}, -- 561: {region: 0x99, script: 0x5a, flags: 0x0}, -- 562: {region: 0x53, script: 0xe2, flags: 0x0}, -- 563: {region: 0x99, script: 0x22, flags: 0x0}, -- 564: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 565: {region: 0x165, script: 0x5a, flags: 0x0}, -- 566: {region: 0x99, script: 0x75, flags: 0x0}, -- 567: {region: 0xe8, script: 0x5, flags: 0x0}, -- 568: {region: 0x165, script: 0x5a, flags: 0x0}, -- 569: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 570: {region: 0x165, script: 0x5a, flags: 0x0}, -- 571: {region: 0x12b, script: 0x5a, flags: 0x0}, -- 572: {region: 0x165, script: 0x5a, flags: 0x0}, -- 573: {region: 0xd2, script: 0x5a, flags: 0x0}, -- 574: {region: 0x165, script: 0x5a, flags: 0x0}, -- 575: {region: 0xaf, script: 0x57, flags: 0x0}, -- 576: {region: 0x165, script: 0x5a, flags: 0x0}, -- 577: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 507: {region: 0x98, script: 0x3e, flags: 0x0}, -+ 508: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 509: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 510: {region: 0x107, script: 0x5b, flags: 0x0}, -+ 511: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 512: {region: 0xa3, script: 0x49, flags: 0x0}, -+ 513: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 514: {region: 0xa1, script: 0x5b, flags: 0x0}, -+ 515: {region: 0x1, script: 0x5b, flags: 0x0}, -+ 516: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 517: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 518: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 519: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 520: {region: 0x131, script: 0x3e, flags: 0x0}, -+ 521: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 522: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 523: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 524: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 525: {region: 0x64, script: 0x5b, flags: 0x0}, -+ 526: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 527: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 528: {region: 0x7e, script: 0x2e, flags: 0x0}, -+ 529: {region: 0x138, script: 0x20, flags: 0x0}, -+ 530: {region: 0x68, script: 0x5b, flags: 0x0}, -+ 531: {region: 0xc5, script: 0x5b, flags: 0x0}, -+ 532: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 533: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 534: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 535: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 536: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 537: {region: 0x107, script: 0x20, flags: 0x0}, -+ 538: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 539: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 540: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 541: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 542: {region: 0xd5, script: 0x5, flags: 0x0}, -+ 543: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 544: {region: 0x165, script: 0x5b, flags: 0x0}, -+ 545: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 546: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 547: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 548: {region: 0x123, script: 0x5, flags: 0x0}, -+ 549: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 550: {region: 0x124, script: 0xee, flags: 0x0}, -+ 551: {region: 0x5b, script: 0x5b, flags: 0x0}, -+ 552: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 553: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 554: {region: 0x4f, script: 0x5b, flags: 0x0}, -+ 555: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 556: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 557: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 558: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 559: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 560: {region: 0x41, script: 0x5b, flags: 0x0}, -+ 561: {region: 0x9a, script: 0x5b, flags: 0x0}, -+ 562: {region: 0x53, script: 0xe5, flags: 0x0}, -+ 563: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 564: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 565: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 566: {region: 0x9a, script: 0x76, flags: 0x0}, -+ 567: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 568: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 569: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 570: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 571: {region: 0x12c, script: 0x5b, flags: 0x0}, -+ 572: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 573: {region: 0xd3, script: 0x5b, flags: 0x0}, -+ 574: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 575: {region: 0xb0, script: 0x58, flags: 0x0}, -+ 576: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 577: {region: 0x166, script: 0x5b, flags: 0x0}, - 578: {region: 0x13, script: 0x6, flags: 0x1}, -- 579: {region: 0x165, script: 0x5a, flags: 0x0}, -- 580: {region: 0x52, script: 0x5a, flags: 0x0}, -- 581: {region: 0x82, script: 0x5a, flags: 0x0}, -- 582: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 583: {region: 0x165, script: 0x5a, flags: 0x0}, -- 584: {region: 0x165, script: 0x5a, flags: 0x0}, -- 585: {region: 0x165, script: 0x5a, flags: 0x0}, -- 586: {region: 0xa6, script: 0x4e, flags: 0x0}, -- 587: {region: 0x2a, script: 0x5a, flags: 0x0}, -- 588: {region: 0x165, script: 0x5a, flags: 0x0}, -- 589: {region: 0x165, script: 0x5a, flags: 0x0}, -- 590: {region: 0x165, script: 0x5a, flags: 0x0}, -- 591: {region: 0x165, script: 0x5a, flags: 0x0}, -- 592: {region: 0x165, script: 0x5a, flags: 0x0}, -- 593: {region: 0x99, script: 0x52, flags: 0x0}, -- 594: {region: 0x8b, script: 0x5a, flags: 0x0}, -- 595: {region: 0x165, script: 0x5a, flags: 0x0}, -- 596: {region: 0xab, script: 0x53, flags: 0x0}, -- 597: {region: 0x106, script: 0x20, flags: 0x0}, -- 598: {region: 0x99, script: 0x22, flags: 0x0}, -- 599: {region: 0x165, script: 0x5a, flags: 0x0}, -- 600: {region: 0x75, script: 0x5a, flags: 0x0}, -- 601: {region: 0x165, script: 0x5a, flags: 0x0}, -- 602: {region: 0xb4, script: 0x5a, flags: 0x0}, -- 603: {region: 0x165, script: 0x5a, flags: 0x0}, -- 604: {region: 0x165, script: 0x5a, flags: 0x0}, -- 605: {region: 0x165, script: 0x5a, flags: 0x0}, -- 606: {region: 0x165, script: 0x5a, flags: 0x0}, -- 607: {region: 0x165, script: 0x5a, flags: 0x0}, -- 608: {region: 0x165, script: 0x5a, flags: 0x0}, -- 609: {region: 0x165, script: 0x5a, flags: 0x0}, -- 610: {region: 0x165, script: 0x2c, flags: 0x0}, -- 611: {region: 0x165, script: 0x5a, flags: 0x0}, -- 612: {region: 0x106, script: 0x20, flags: 0x0}, -- 613: {region: 0x112, script: 0x5a, flags: 0x0}, -- 614: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 615: {region: 0x106, script: 0x5a, flags: 0x0}, -- 616: {region: 0x165, script: 0x5a, flags: 0x0}, -- 617: {region: 0x99, script: 0x22, flags: 0x0}, -- 618: {region: 0x99, script: 0x5, flags: 0x0}, -- 619: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 620: {region: 0x165, script: 0x5a, flags: 0x0}, -- 621: {region: 0x52, script: 0x5a, flags: 0x0}, -- 622: {region: 0x60, script: 0x5a, flags: 0x0}, -- 623: {region: 0x165, script: 0x5a, flags: 0x0}, -- 624: {region: 0x165, script: 0x5a, flags: 0x0}, -- 625: {region: 0x165, script: 0x2c, flags: 0x0}, -- 626: {region: 0x165, script: 0x5a, flags: 0x0}, -- 627: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 579: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 580: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 581: {region: 0x83, script: 0x5b, flags: 0x0}, -+ 582: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 583: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 584: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 585: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 586: {region: 0xa7, script: 0x4f, flags: 0x0}, -+ 587: {region: 0x2a, script: 0x5b, flags: 0x0}, -+ 588: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 589: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 590: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 591: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 592: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 593: {region: 0x9a, script: 0x53, flags: 0x0}, -+ 594: {region: 0x8c, script: 0x5b, flags: 0x0}, -+ 595: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 596: {region: 0xac, script: 0x54, flags: 0x0}, -+ 597: {region: 0x107, script: 0x20, flags: 0x0}, -+ 598: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 599: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 600: {region: 0x76, script: 0x5b, flags: 0x0}, -+ 601: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 602: {region: 0xb5, script: 0x5b, flags: 0x0}, -+ 603: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 604: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 605: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 606: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 607: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 608: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 609: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 610: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 611: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 612: {region: 0x107, script: 0x20, flags: 0x0}, -+ 613: {region: 0x113, script: 0x5b, flags: 0x0}, -+ 614: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 615: {region: 0x107, script: 0x5b, flags: 0x0}, -+ 616: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 617: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 618: {region: 0x9a, script: 0x5, flags: 0x0}, -+ 619: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 620: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 621: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 622: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 623: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 624: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 625: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 626: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 627: {region: 0x166, script: 0x5b, flags: 0x0}, - 628: {region: 0x19, script: 0x3, flags: 0x1}, -- 629: {region: 0x165, script: 0x5a, flags: 0x0}, -- 630: {region: 0x165, script: 0x5a, flags: 0x0}, -- 631: {region: 0x165, script: 0x5a, flags: 0x0}, -- 632: {region: 0x165, script: 0x5a, flags: 0x0}, -- 633: {region: 0x106, script: 0x20, flags: 0x0}, -- 634: {region: 0x165, script: 0x5a, flags: 0x0}, -- 635: {region: 0x165, script: 0x5a, flags: 0x0}, -- 636: {region: 0x165, script: 0x5a, flags: 0x0}, -- 637: {region: 0x106, script: 0x20, flags: 0x0}, -- 638: {region: 0x165, script: 0x5a, flags: 0x0}, -- 639: {region: 0x95, script: 0x5a, flags: 0x0}, -- 640: {region: 0xe8, script: 0x5, flags: 0x0}, -- 641: {region: 0x7b, script: 0x5a, flags: 0x0}, -- 642: {region: 0x165, script: 0x5a, flags: 0x0}, -- 643: {region: 0x165, script: 0x5a, flags: 0x0}, -- 644: {region: 0x165, script: 0x5a, flags: 0x0}, -- 645: {region: 0x165, script: 0x2c, flags: 0x0}, -- 646: {region: 0x123, script: 0xeb, flags: 0x0}, -- 647: {region: 0xe8, script: 0x5, flags: 0x0}, -- 648: {region: 0x165, script: 0x5a, flags: 0x0}, -- 649: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 629: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 630: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 631: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 632: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 633: {region: 0x107, script: 0x20, flags: 0x0}, -+ 634: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 635: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 636: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 637: {region: 0x107, script: 0x20, flags: 0x0}, -+ 638: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 639: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 640: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 641: {region: 0x7c, script: 0x5b, flags: 0x0}, -+ 642: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 643: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 644: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 645: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 646: {region: 0x124, script: 0xee, flags: 0x0}, -+ 647: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 648: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 649: {region: 0x166, script: 0x5b, flags: 0x0}, - 650: {region: 0x1c, script: 0x5, flags: 0x1}, -- 651: {region: 0x165, script: 0x5a, flags: 0x0}, -- 652: {region: 0x165, script: 0x5a, flags: 0x0}, -- 653: {region: 0x165, script: 0x5a, flags: 0x0}, -- 654: {region: 0x138, script: 0x5a, flags: 0x0}, -- 655: {region: 0x87, script: 0x5e, flags: 0x0}, -- 656: {region: 0x97, script: 0x3e, flags: 0x0}, -- 657: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 658: {region: 0xe8, script: 0x5, flags: 0x0}, -- 659: {region: 0x131, script: 0x5a, flags: 0x0}, -- 660: {region: 0x165, script: 0x5a, flags: 0x0}, -- 661: {region: 0xb7, script: 0x5a, flags: 0x0}, -- 662: {region: 0x106, script: 0x20, flags: 0x0}, -- 663: {region: 0x165, script: 0x5a, flags: 0x0}, -- 664: {region: 0x95, script: 0x5a, flags: 0x0}, -- 665: {region: 0x165, script: 0x5a, flags: 0x0}, -- 666: {region: 0x53, script: 0xeb, flags: 0x0}, -- 667: {region: 0x165, script: 0x5a, flags: 0x0}, -- 668: {region: 0x165, script: 0x5a, flags: 0x0}, -- 669: {region: 0x165, script: 0x5a, flags: 0x0}, -- 670: {region: 0x165, script: 0x5a, flags: 0x0}, -- 671: {region: 0x99, script: 0x5c, flags: 0x0}, -- 672: {region: 0x165, script: 0x5a, flags: 0x0}, -- 673: {region: 0x165, script: 0x5a, flags: 0x0}, -- 674: {region: 0x106, script: 0x20, flags: 0x0}, -- 675: {region: 0x131, script: 0x5a, flags: 0x0}, -- 676: {region: 0x165, script: 0x5a, flags: 0x0}, -- 677: {region: 0xd9, script: 0x5a, flags: 0x0}, -- 678: {region: 0x165, script: 0x5a, flags: 0x0}, -- 679: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 651: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 652: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 653: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 654: {region: 0x139, script: 0x5b, flags: 0x0}, -+ 655: {region: 0x88, script: 0x5f, flags: 0x0}, -+ 656: {region: 0x98, script: 0x3e, flags: 0x0}, -+ 657: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 658: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 659: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 660: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 661: {region: 0xb8, script: 0x5b, flags: 0x0}, -+ 662: {region: 0x107, script: 0x20, flags: 0x0}, -+ 663: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 664: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 665: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 666: {region: 0x53, script: 0xee, flags: 0x0}, -+ 667: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 668: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 669: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 670: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 671: {region: 0x9a, script: 0x5d, flags: 0x0}, -+ 672: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 673: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 674: {region: 0x107, script: 0x20, flags: 0x0}, -+ 675: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 676: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 677: {region: 0xda, script: 0x5b, flags: 0x0}, -+ 678: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 679: {region: 0x166, script: 0x5b, flags: 0x0}, - 680: {region: 0x21, script: 0x2, flags: 0x1}, -- 681: {region: 0x165, script: 0x5a, flags: 0x0}, -- 682: {region: 0x165, script: 0x5a, flags: 0x0}, -- 683: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 684: {region: 0x53, script: 0x60, flags: 0x0}, -- 685: {region: 0x95, script: 0x5a, flags: 0x0}, -- 686: {region: 0x9c, script: 0x5, flags: 0x0}, -- 687: {region: 0x135, script: 0x5a, flags: 0x0}, -- 688: {region: 0x165, script: 0x5a, flags: 0x0}, -- 689: {region: 0x165, script: 0x5a, flags: 0x0}, -- 690: {region: 0x99, script: 0xe6, flags: 0x0}, -- 691: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 692: {region: 0x165, script: 0x5a, flags: 0x0}, -- 693: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 694: {region: 0x165, script: 0x5a, flags: 0x0}, -- 695: {region: 0x165, script: 0x5a, flags: 0x0}, -- 696: {region: 0xaf, script: 0x57, flags: 0x0}, -- 697: {region: 0x165, script: 0x5a, flags: 0x0}, -- 698: {region: 0x165, script: 0x5a, flags: 0x0}, -- 699: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 700: {region: 0x165, script: 0x5a, flags: 0x0}, -- 701: {region: 0x165, script: 0x5a, flags: 0x0}, -- 702: {region: 0x162, script: 0x5a, flags: 0x0}, -- 703: {region: 0x9c, script: 0x5, flags: 0x0}, -- 704: {region: 0xb6, script: 0x5a, flags: 0x0}, -- 705: {region: 0xb8, script: 0x5a, flags: 0x0}, -- 706: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 707: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 708: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 709: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 710: {region: 0x9c, script: 0x5, flags: 0x0}, -- 711: {region: 0xb8, script: 0x5a, flags: 0x0}, -- 712: {region: 0x123, script: 0xeb, flags: 0x0}, -+ 681: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 682: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 683: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 684: {region: 0x53, script: 0x61, flags: 0x0}, -+ 685: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 686: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 687: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 688: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 689: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 690: {region: 0x9a, script: 0xe9, flags: 0x0}, -+ 691: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 692: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 693: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 694: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 695: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 696: {region: 0xb0, script: 0x58, flags: 0x0}, -+ 697: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 698: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 699: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 700: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 701: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 702: {region: 0x163, script: 0x5b, flags: 0x0}, -+ 703: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 704: {region: 0xb7, script: 0x5b, flags: 0x0}, -+ 705: {region: 0xb9, script: 0x5b, flags: 0x0}, -+ 706: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 707: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 708: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 709: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 710: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 711: {region: 0xb9, script: 0x5b, flags: 0x0}, -+ 712: {region: 0x124, script: 0xee, flags: 0x0}, - 713: {region: 0x53, script: 0x3b, flags: 0x0}, -- 714: {region: 0x12b, script: 0x5a, flags: 0x0}, -- 715: {region: 0x95, script: 0x5a, flags: 0x0}, -- 716: {region: 0x52, script: 0x5a, flags: 0x0}, -- 717: {region: 0x99, script: 0x22, flags: 0x0}, -- 718: {region: 0x99, script: 0x22, flags: 0x0}, -- 719: {region: 0x95, script: 0x5a, flags: 0x0}, -+ 714: {region: 0x12c, script: 0x5b, flags: 0x0}, -+ 715: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 716: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 717: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 718: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 719: {region: 0x96, script: 0x5b, flags: 0x0}, - 720: {region: 0x23, script: 0x3, flags: 0x1}, -- 721: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 722: {region: 0x165, script: 0x5a, flags: 0x0}, -- 723: {region: 0xcf, script: 0x5a, flags: 0x0}, -- 724: {region: 0x165, script: 0x5a, flags: 0x0}, -- 725: {region: 0x165, script: 0x5a, flags: 0x0}, -- 726: {region: 0x165, script: 0x5a, flags: 0x0}, -- 727: {region: 0x165, script: 0x5a, flags: 0x0}, -- 728: {region: 0x165, script: 0x5a, flags: 0x0}, -- 729: {region: 0x165, script: 0x5a, flags: 0x0}, -- 730: {region: 0x165, script: 0x5a, flags: 0x0}, -- 731: {region: 0x165, script: 0x5a, flags: 0x0}, -- 732: {region: 0x165, script: 0x5a, flags: 0x0}, -- 733: {region: 0x165, script: 0x5a, flags: 0x0}, -- 734: {region: 0x165, script: 0x5a, flags: 0x0}, -- 735: {region: 0x165, script: 0x5, flags: 0x0}, -- 736: {region: 0x106, script: 0x20, flags: 0x0}, -- 737: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 738: {region: 0x165, script: 0x5a, flags: 0x0}, -- 739: {region: 0x95, script: 0x5a, flags: 0x0}, -- 740: {region: 0x165, script: 0x2c, flags: 0x0}, -- 741: {region: 0x165, script: 0x5a, flags: 0x0}, -- 742: {region: 0x165, script: 0x5a, flags: 0x0}, -- 743: {region: 0x165, script: 0x5a, flags: 0x0}, -- 744: {region: 0x112, script: 0x5a, flags: 0x0}, -- 745: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 746: {region: 0x165, script: 0x5a, flags: 0x0}, -- 747: {region: 0x165, script: 0x5a, flags: 0x0}, -- 748: {region: 0x123, script: 0x5, flags: 0x0}, -- 749: {region: 0xcc, script: 0x5a, flags: 0x0}, -- 750: {region: 0x165, script: 0x5a, flags: 0x0}, -- 751: {region: 0x165, script: 0x5a, flags: 0x0}, -- 752: {region: 0x165, script: 0x5a, flags: 0x0}, -- 753: {region: 0xbf, script: 0x5a, flags: 0x0}, -- 754: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 755: {region: 0x165, script: 0x5a, flags: 0x0}, -- 756: {region: 0x52, script: 0x5a, flags: 0x0}, -- 757: {region: 0xdb, script: 0x22, flags: 0x0}, -- 758: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 759: {region: 0xc0, script: 0x5a, flags: 0x0}, -- 760: {region: 0x165, script: 0x5a, flags: 0x0}, -- 761: {region: 0x165, script: 0x5a, flags: 0x0}, -- 762: {region: 0xe0, script: 0x5a, flags: 0x0}, -- 763: {region: 0x165, script: 0x5a, flags: 0x0}, -- 764: {region: 0x95, script: 0x5a, flags: 0x0}, -- 765: {region: 0x9b, script: 0x3d, flags: 0x0}, -- 766: {region: 0x165, script: 0x5a, flags: 0x0}, -- 767: {region: 0xc2, script: 0x20, flags: 0x0}, -- 768: {region: 0x165, script: 0x5, flags: 0x0}, -- 769: {region: 0x165, script: 0x5a, flags: 0x0}, -- 770: {region: 0x165, script: 0x5a, flags: 0x0}, -- 771: {region: 0x165, script: 0x5a, flags: 0x0}, -- 772: {region: 0x99, script: 0x6e, flags: 0x0}, -- 773: {region: 0x165, script: 0x5a, flags: 0x0}, -- 774: {region: 0x165, script: 0x5a, flags: 0x0}, -- 775: {region: 0x10b, script: 0x5a, flags: 0x0}, -- 776: {region: 0x165, script: 0x5a, flags: 0x0}, -- 777: {region: 0x165, script: 0x5a, flags: 0x0}, -- 778: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 721: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 722: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 723: {region: 0xd0, script: 0x5b, flags: 0x0}, -+ 724: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 725: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 726: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 727: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 728: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 729: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 730: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 731: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 732: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 733: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 734: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 735: {region: 0x166, script: 0x5, flags: 0x0}, -+ 736: {region: 0x107, script: 0x20, flags: 0x0}, -+ 737: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 738: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 739: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 740: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 741: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 742: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 743: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 744: {region: 0x113, script: 0x5b, flags: 0x0}, -+ 745: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 746: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 747: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 748: {region: 0x124, script: 0x5, flags: 0x0}, -+ 749: {region: 0xcd, script: 0x5b, flags: 0x0}, -+ 750: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 751: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 752: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 753: {region: 0xc0, script: 0x5b, flags: 0x0}, -+ 754: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 755: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 756: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 757: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 758: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 759: {region: 0xc1, script: 0x5b, flags: 0x0}, -+ 760: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 761: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 762: {region: 0xe1, script: 0x5b, flags: 0x0}, -+ 763: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 764: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 765: {region: 0x9c, script: 0x3d, flags: 0x0}, -+ 766: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 767: {region: 0xc3, script: 0x20, flags: 0x0}, -+ 768: {region: 0x166, script: 0x5, flags: 0x0}, -+ 769: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 770: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 771: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 772: {region: 0x9a, script: 0x6f, flags: 0x0}, -+ 773: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 774: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 775: {region: 0x10c, script: 0x5b, flags: 0x0}, -+ 776: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 777: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 778: {region: 0x166, script: 0x5b, flags: 0x0}, - 779: {region: 0x26, script: 0x3, flags: 0x1}, -- 780: {region: 0x165, script: 0x5a, flags: 0x0}, -- 781: {region: 0x165, script: 0x5a, flags: 0x0}, -- 782: {region: 0x99, script: 0xe, flags: 0x0}, -- 783: {region: 0xc4, script: 0x75, flags: 0x0}, -- 785: {region: 0x165, script: 0x5a, flags: 0x0}, -- 786: {region: 0x49, script: 0x5a, flags: 0x0}, -- 787: {region: 0x49, script: 0x5a, flags: 0x0}, -- 788: {region: 0x37, script: 0x5a, flags: 0x0}, -- 789: {region: 0x165, script: 0x5a, flags: 0x0}, -- 790: {region: 0x165, script: 0x5a, flags: 0x0}, -- 791: {region: 0x165, script: 0x5a, flags: 0x0}, -- 792: {region: 0x165, script: 0x5a, flags: 0x0}, -- 793: {region: 0x165, script: 0x5a, flags: 0x0}, -- 794: {region: 0x165, script: 0x5a, flags: 0x0}, -- 795: {region: 0x99, script: 0x22, flags: 0x0}, -- 796: {region: 0xdb, script: 0x22, flags: 0x0}, -- 797: {region: 0x106, script: 0x20, flags: 0x0}, -- 798: {region: 0x35, script: 0x72, flags: 0x0}, -+ 780: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 781: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 782: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 783: {region: 0xc5, script: 0x76, flags: 0x0}, -+ 785: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 786: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 787: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 788: {region: 0x37, script: 0x5b, flags: 0x0}, -+ 789: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 790: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 791: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 792: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 793: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 794: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 795: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 796: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 797: {region: 0x107, script: 0x20, flags: 0x0}, -+ 798: {region: 0x35, script: 0x73, flags: 0x0}, - 799: {region: 0x29, script: 0x3, flags: 0x1}, -- 800: {region: 0xcb, script: 0x5a, flags: 0x0}, -- 801: {region: 0x165, script: 0x5a, flags: 0x0}, -- 802: {region: 0x165, script: 0x5a, flags: 0x0}, -- 803: {region: 0x165, script: 0x5a, flags: 0x0}, -- 804: {region: 0x99, script: 0x22, flags: 0x0}, -- 805: {region: 0x52, script: 0x5a, flags: 0x0}, -- 807: {region: 0x165, script: 0x5a, flags: 0x0}, -- 808: {region: 0x135, script: 0x5a, flags: 0x0}, -- 809: {region: 0x165, script: 0x5a, flags: 0x0}, -- 810: {region: 0x165, script: 0x5a, flags: 0x0}, -- 811: {region: 0xe8, script: 0x5, flags: 0x0}, -- 812: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 813: {region: 0x99, script: 0x22, flags: 0x0}, -- 814: {region: 0x95, script: 0x5a, flags: 0x0}, -- 815: {region: 0x164, script: 0x5a, flags: 0x0}, -- 816: {region: 0x165, script: 0x5a, flags: 0x0}, -- 817: {region: 0xc4, script: 0x75, flags: 0x0}, -- 818: {region: 0x165, script: 0x5a, flags: 0x0}, -- 819: {region: 0x165, script: 0x2c, flags: 0x0}, -- 820: {region: 0x106, script: 0x20, flags: 0x0}, -- 821: {region: 0x165, script: 0x5a, flags: 0x0}, -- 822: {region: 0x131, script: 0x5a, flags: 0x0}, -- 823: {region: 0x9c, script: 0x66, flags: 0x0}, -- 824: {region: 0x165, script: 0x5a, flags: 0x0}, -- 825: {region: 0x165, script: 0x5a, flags: 0x0}, -- 826: {region: 0x9c, script: 0x5, flags: 0x0}, -- 827: {region: 0x165, script: 0x5a, flags: 0x0}, -- 828: {region: 0x165, script: 0x5a, flags: 0x0}, -- 829: {region: 0x165, script: 0x5a, flags: 0x0}, -- 830: {region: 0xdd, script: 0x5a, flags: 0x0}, -- 831: {region: 0x165, script: 0x5a, flags: 0x0}, -- 832: {region: 0x165, script: 0x5a, flags: 0x0}, -- 834: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 800: {region: 0xcc, script: 0x5b, flags: 0x0}, -+ 801: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 802: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 803: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 804: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 805: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 807: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 808: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 809: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 810: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 811: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 812: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 813: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 814: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 815: {region: 0x165, script: 0x5b, flags: 0x0}, -+ 816: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 817: {region: 0xc5, script: 0x76, flags: 0x0}, -+ 818: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 819: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 820: {region: 0x107, script: 0x20, flags: 0x0}, -+ 821: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 822: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 823: {region: 0x9d, script: 0x67, flags: 0x0}, -+ 824: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 825: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 826: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 827: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 828: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 829: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 830: {region: 0xde, script: 0x5b, flags: 0x0}, -+ 831: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 832: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 834: {region: 0x166, script: 0x5b, flags: 0x0}, - 835: {region: 0x53, script: 0x3b, flags: 0x0}, -- 836: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 837: {region: 0xd2, script: 0x5a, flags: 0x0}, -- 838: {region: 0x165, script: 0x5a, flags: 0x0}, -- 839: {region: 0xda, script: 0x5a, flags: 0x0}, -- 840: {region: 0x165, script: 0x5a, flags: 0x0}, -- 841: {region: 0x165, script: 0x5a, flags: 0x0}, -- 842: {region: 0x165, script: 0x5a, flags: 0x0}, -- 843: {region: 0xcf, script: 0x5a, flags: 0x0}, -- 844: {region: 0x165, script: 0x5a, flags: 0x0}, -- 845: {region: 0x165, script: 0x5a, flags: 0x0}, -- 846: {region: 0x164, script: 0x5a, flags: 0x0}, -- 847: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 848: {region: 0x60, script: 0x5a, flags: 0x0}, -- 849: {region: 0xdb, script: 0x22, flags: 0x0}, -- 850: {region: 0x165, script: 0x5a, flags: 0x0}, -- 851: {region: 0xdb, script: 0x22, flags: 0x0}, -- 852: {region: 0x165, script: 0x5a, flags: 0x0}, -- 853: {region: 0x165, script: 0x5a, flags: 0x0}, -- 854: {region: 0xd2, script: 0x5a, flags: 0x0}, -- 855: {region: 0x165, script: 0x5a, flags: 0x0}, -- 856: {region: 0x165, script: 0x5a, flags: 0x0}, -- 857: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 858: {region: 0x165, script: 0x5a, flags: 0x0}, -- 859: {region: 0xcf, script: 0x5a, flags: 0x0}, -- 860: {region: 0xcf, script: 0x5a, flags: 0x0}, -- 861: {region: 0x165, script: 0x5a, flags: 0x0}, -- 862: {region: 0x165, script: 0x5a, flags: 0x0}, -- 863: {region: 0x95, script: 0x5a, flags: 0x0}, -- 864: {region: 0x165, script: 0x5a, flags: 0x0}, -- 865: {region: 0xdf, script: 0x5a, flags: 0x0}, -- 866: {region: 0x165, script: 0x5a, flags: 0x0}, -- 867: {region: 0x165, script: 0x5a, flags: 0x0}, -- 868: {region: 0x99, script: 0x5a, flags: 0x0}, -- 869: {region: 0x165, script: 0x5a, flags: 0x0}, -- 870: {region: 0x165, script: 0x5a, flags: 0x0}, -- 871: {region: 0xd9, script: 0x5a, flags: 0x0}, -- 872: {region: 0x52, script: 0x5a, flags: 0x0}, -- 873: {region: 0x165, script: 0x5a, flags: 0x0}, -- 874: {region: 0xda, script: 0x5a, flags: 0x0}, -- 875: {region: 0x165, script: 0x5a, flags: 0x0}, -- 876: {region: 0x52, script: 0x5a, flags: 0x0}, -- 877: {region: 0x165, script: 0x5a, flags: 0x0}, -- 878: {region: 0x165, script: 0x5a, flags: 0x0}, -- 879: {region: 0xda, script: 0x5a, flags: 0x0}, -- 880: {region: 0x123, script: 0x56, flags: 0x0}, -- 881: {region: 0x99, script: 0x22, flags: 0x0}, -- 882: {region: 0x10c, script: 0xc9, flags: 0x0}, -- 883: {region: 0x165, script: 0x5a, flags: 0x0}, -- 884: {region: 0x165, script: 0x5a, flags: 0x0}, -- 885: {region: 0x84, script: 0x7c, flags: 0x0}, -- 886: {region: 0x161, script: 0x5a, flags: 0x0}, -- 887: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 836: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 837: {region: 0xd3, script: 0x5b, flags: 0x0}, -+ 838: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 839: {region: 0xdb, script: 0x5b, flags: 0x0}, -+ 840: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 841: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 842: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 843: {region: 0xd0, script: 0x5b, flags: 0x0}, -+ 844: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 845: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 846: {region: 0x165, script: 0x5b, flags: 0x0}, -+ 847: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 848: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 849: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 850: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 851: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 852: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 853: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 854: {region: 0xd3, script: 0x5b, flags: 0x0}, -+ 855: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 856: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 857: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 858: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 859: {region: 0xd0, script: 0x5b, flags: 0x0}, -+ 860: {region: 0xd0, script: 0x5b, flags: 0x0}, -+ 861: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 862: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 863: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 864: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 865: {region: 0xe0, script: 0x5b, flags: 0x0}, -+ 866: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 867: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 868: {region: 0x9a, script: 0x5b, flags: 0x0}, -+ 869: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 870: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 871: {region: 0xda, script: 0x5b, flags: 0x0}, -+ 872: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 873: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 874: {region: 0xdb, script: 0x5b, flags: 0x0}, -+ 875: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 876: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 877: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 878: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 879: {region: 0xdb, script: 0x5b, flags: 0x0}, -+ 880: {region: 0x124, script: 0x57, flags: 0x0}, -+ 881: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 882: {region: 0x10d, script: 0xcb, flags: 0x0}, -+ 883: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 884: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 885: {region: 0x85, script: 0x7e, flags: 0x0}, -+ 886: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 887: {region: 0x166, script: 0x5b, flags: 0x0}, - 888: {region: 0x49, script: 0x17, flags: 0x0}, -- 889: {region: 0x165, script: 0x5a, flags: 0x0}, -- 890: {region: 0x161, script: 0x5a, flags: 0x0}, -- 891: {region: 0x165, script: 0x5a, flags: 0x0}, -- 892: {region: 0x165, script: 0x5a, flags: 0x0}, -- 893: {region: 0x165, script: 0x5a, flags: 0x0}, -- 894: {region: 0x165, script: 0x5a, flags: 0x0}, -- 895: {region: 0x165, script: 0x5a, flags: 0x0}, -- 896: {region: 0x117, script: 0x5a, flags: 0x0}, -- 897: {region: 0x165, script: 0x5a, flags: 0x0}, -- 898: {region: 0x165, script: 0x5a, flags: 0x0}, -- 899: {region: 0x135, script: 0x5a, flags: 0x0}, -- 900: {region: 0x165, script: 0x5a, flags: 0x0}, -- 901: {region: 0x53, script: 0x5a, flags: 0x0}, -- 902: {region: 0x165, script: 0x5a, flags: 0x0}, -- 903: {region: 0xce, script: 0x5a, flags: 0x0}, -- 904: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 905: {region: 0x131, script: 0x5a, flags: 0x0}, -- 906: {region: 0x80, script: 0x5a, flags: 0x0}, -- 907: {region: 0x78, script: 0x5a, flags: 0x0}, -- 908: {region: 0x165, script: 0x5a, flags: 0x0}, -- 910: {region: 0x165, script: 0x5a, flags: 0x0}, -- 911: {region: 0x165, script: 0x5a, flags: 0x0}, -- 912: {region: 0x6f, script: 0x5a, flags: 0x0}, -- 913: {region: 0x165, script: 0x5a, flags: 0x0}, -- 914: {region: 0x165, script: 0x5a, flags: 0x0}, -- 915: {region: 0x165, script: 0x5a, flags: 0x0}, -- 916: {region: 0x165, script: 0x5a, flags: 0x0}, -- 917: {region: 0x99, script: 0x81, flags: 0x0}, -- 918: {region: 0x165, script: 0x5a, flags: 0x0}, -- 919: {region: 0x165, script: 0x5, flags: 0x0}, -- 920: {region: 0x7d, script: 0x20, flags: 0x0}, -- 921: {region: 0x135, script: 0x82, flags: 0x0}, -- 922: {region: 0x165, script: 0x5, flags: 0x0}, -- 923: {region: 0xc5, script: 0x80, flags: 0x0}, -- 924: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 889: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 890: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 891: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 892: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 893: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 894: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 895: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 896: {region: 0x118, script: 0x5b, flags: 0x0}, -+ 897: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 898: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 899: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 900: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 901: {region: 0x53, script: 0x5b, flags: 0x0}, -+ 902: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 903: {region: 0xcf, script: 0x5b, flags: 0x0}, -+ 904: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 905: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 906: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 907: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 908: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 910: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 911: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 912: {region: 0x70, script: 0x5b, flags: 0x0}, -+ 913: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 914: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 915: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 916: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 917: {region: 0x9a, script: 0x83, flags: 0x0}, -+ 918: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 919: {region: 0x166, script: 0x5, flags: 0x0}, -+ 920: {region: 0x7e, script: 0x20, flags: 0x0}, -+ 921: {region: 0x136, script: 0x84, flags: 0x0}, -+ 922: {region: 0x166, script: 0x5, flags: 0x0}, -+ 923: {region: 0xc6, script: 0x82, flags: 0x0}, -+ 924: {region: 0x166, script: 0x5b, flags: 0x0}, - 925: {region: 0x2c, script: 0x3, flags: 0x1}, -- 926: {region: 0xe7, script: 0x5a, flags: 0x0}, -+ 926: {region: 0xe8, script: 0x5b, flags: 0x0}, - 927: {region: 0x2f, script: 0x2, flags: 0x1}, -- 928: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 929: {region: 0x30, script: 0x5a, flags: 0x0}, -- 930: {region: 0xf0, script: 0x5a, flags: 0x0}, -- 931: {region: 0x165, script: 0x5a, flags: 0x0}, -- 932: {region: 0x78, script: 0x5a, flags: 0x0}, -- 933: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 934: {region: 0x135, script: 0x5a, flags: 0x0}, -- 935: {region: 0x49, script: 0x5a, flags: 0x0}, -- 936: {region: 0x165, script: 0x5a, flags: 0x0}, -- 937: {region: 0x9c, script: 0xf7, flags: 0x0}, -- 938: {region: 0x165, script: 0x5a, flags: 0x0}, -- 939: {region: 0x60, script: 0x5a, flags: 0x0}, -- 940: {region: 0x165, script: 0x5, flags: 0x0}, -- 941: {region: 0xb0, script: 0x8e, flags: 0x0}, -- 943: {region: 0x165, script: 0x5a, flags: 0x0}, -- 944: {region: 0x165, script: 0x5a, flags: 0x0}, -- 945: {region: 0x99, script: 0x12, flags: 0x0}, -- 946: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 947: {region: 0xe9, script: 0x5a, flags: 0x0}, -- 948: {region: 0x165, script: 0x5a, flags: 0x0}, -- 949: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 950: {region: 0x165, script: 0x5a, flags: 0x0}, -- 951: {region: 0x165, script: 0x5a, flags: 0x0}, -- 952: {region: 0x87, script: 0x34, flags: 0x0}, -- 953: {region: 0x75, script: 0x5a, flags: 0x0}, -- 954: {region: 0x165, script: 0x5a, flags: 0x0}, -- 955: {region: 0xe8, script: 0x4d, flags: 0x0}, -- 956: {region: 0x9c, script: 0x5, flags: 0x0}, -- 957: {region: 0x1, script: 0x5a, flags: 0x0}, -+ 928: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 929: {region: 0x30, script: 0x5b, flags: 0x0}, -+ 930: {region: 0xf1, script: 0x5b, flags: 0x0}, -+ 931: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 932: {region: 0x79, script: 0x5b, flags: 0x0}, -+ 933: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 934: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 935: {region: 0x49, script: 0x5b, flags: 0x0}, -+ 936: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 937: {region: 0x9d, script: 0xfa, flags: 0x0}, -+ 938: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 939: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 940: {region: 0x166, script: 0x5, flags: 0x0}, -+ 941: {region: 0xb1, script: 0x90, flags: 0x0}, -+ 943: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 944: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 945: {region: 0x9a, script: 0x12, flags: 0x0}, -+ 946: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 947: {region: 0xea, script: 0x5b, flags: 0x0}, -+ 948: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 949: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 950: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 951: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 952: {region: 0x88, script: 0x34, flags: 0x0}, -+ 953: {region: 0x76, script: 0x5b, flags: 0x0}, -+ 954: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 955: {region: 0xe9, script: 0x4e, flags: 0x0}, -+ 956: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 957: {region: 0x1, script: 0x5b, flags: 0x0}, - 958: {region: 0x24, script: 0x5, flags: 0x0}, -- 959: {region: 0x165, script: 0x5a, flags: 0x0}, -- 960: {region: 0x41, script: 0x5a, flags: 0x0}, -- 961: {region: 0x165, script: 0x5a, flags: 0x0}, -- 962: {region: 0x7a, script: 0x5a, flags: 0x0}, -- 963: {region: 0x165, script: 0x5a, flags: 0x0}, -- 964: {region: 0xe4, script: 0x5a, flags: 0x0}, -- 965: {region: 0x89, script: 0x5a, flags: 0x0}, -- 966: {region: 0x69, script: 0x5a, flags: 0x0}, -- 967: {region: 0x165, script: 0x5a, flags: 0x0}, -- 968: {region: 0x99, script: 0x22, flags: 0x0}, -- 969: {region: 0x165, script: 0x5a, flags: 0x0}, -- 970: {region: 0x102, script: 0x5a, flags: 0x0}, -- 971: {region: 0x95, script: 0x5a, flags: 0x0}, -- 972: {region: 0x165, script: 0x5a, flags: 0x0}, -- 973: {region: 0x165, script: 0x5a, flags: 0x0}, -- 974: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 975: {region: 0x165, script: 0x5, flags: 0x0}, -- 976: {region: 0x99, script: 0x5a, flags: 0x0}, -+ 959: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 960: {region: 0x41, script: 0x5b, flags: 0x0}, -+ 961: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 962: {region: 0x7b, script: 0x5b, flags: 0x0}, -+ 963: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 964: {region: 0xe5, script: 0x5b, flags: 0x0}, -+ 965: {region: 0x8a, script: 0x5b, flags: 0x0}, -+ 966: {region: 0x6a, script: 0x5b, flags: 0x0}, -+ 967: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 968: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 969: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 970: {region: 0x103, script: 0x5b, flags: 0x0}, -+ 971: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 972: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 973: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 974: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 975: {region: 0x166, script: 0x5, flags: 0x0}, -+ 976: {region: 0x9a, script: 0x5b, flags: 0x0}, - 977: {region: 0x31, script: 0x2, flags: 0x1}, -- 978: {region: 0xdb, script: 0x22, flags: 0x0}, -+ 978: {region: 0xdc, script: 0x22, flags: 0x0}, - 979: {region: 0x35, script: 0xe, flags: 0x0}, -- 980: {region: 0x4e, script: 0x5a, flags: 0x0}, -- 981: {region: 0x72, script: 0x5a, flags: 0x0}, -- 982: {region: 0x4e, script: 0x5a, flags: 0x0}, -- 983: {region: 0x9c, script: 0x5, flags: 0x0}, -- 984: {region: 0x10c, script: 0x5a, flags: 0x0}, -- 985: {region: 0x3a, script: 0x5a, flags: 0x0}, -- 986: {region: 0x165, script: 0x5a, flags: 0x0}, -- 987: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 988: {region: 0x104, script: 0x5a, flags: 0x0}, -- 989: {region: 0x95, script: 0x5a, flags: 0x0}, -- 990: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 991: {region: 0x165, script: 0x5a, flags: 0x0}, -- 992: {region: 0x165, script: 0x5a, flags: 0x0}, -- 993: {region: 0x73, script: 0x5a, flags: 0x0}, -- 994: {region: 0x106, script: 0x20, flags: 0x0}, -- 995: {region: 0x130, script: 0x20, flags: 0x0}, -- 996: {region: 0x109, script: 0x5a, flags: 0x0}, -- 997: {region: 0x107, script: 0x5a, flags: 0x0}, -- 998: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 999: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1000: {region: 0xa2, script: 0x4c, flags: 0x0}, -- 1001: {region: 0x99, script: 0x22, flags: 0x0}, -- 1002: {region: 0x80, script: 0x5a, flags: 0x0}, -- 1003: {region: 0x106, script: 0x20, flags: 0x0}, -- 1004: {region: 0xa4, script: 0x5a, flags: 0x0}, -- 1005: {region: 0x95, script: 0x5a, flags: 0x0}, -- 1006: {region: 0x99, script: 0x5a, flags: 0x0}, -- 1007: {region: 0x114, script: 0x5a, flags: 0x0}, -- 1008: {region: 0x99, script: 0xcd, flags: 0x0}, -- 1009: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1010: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1011: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 1012: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 1013: {region: 0x99, script: 0x22, flags: 0x0}, -- 1014: {region: 0x165, script: 0x5, flags: 0x0}, -- 1015: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 1016: {region: 0x7b, script: 0x5a, flags: 0x0}, -- 1017: {region: 0x49, script: 0x5a, flags: 0x0}, -+ 980: {region: 0x4e, script: 0x5b, flags: 0x0}, -+ 981: {region: 0x73, script: 0x5b, flags: 0x0}, -+ 982: {region: 0x4e, script: 0x5b, flags: 0x0}, -+ 983: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 984: {region: 0x10d, script: 0x5b, flags: 0x0}, -+ 985: {region: 0x3a, script: 0x5b, flags: 0x0}, -+ 986: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 987: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 988: {region: 0x105, script: 0x5b, flags: 0x0}, -+ 989: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 990: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 991: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 992: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 993: {region: 0x74, script: 0x5b, flags: 0x0}, -+ 994: {region: 0x107, script: 0x20, flags: 0x0}, -+ 995: {region: 0x131, script: 0x20, flags: 0x0}, -+ 996: {region: 0x10a, script: 0x5b, flags: 0x0}, -+ 997: {region: 0x108, script: 0x5b, flags: 0x0}, -+ 998: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 999: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1000: {region: 0xa3, script: 0x4c, flags: 0x0}, -+ 1001: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1002: {region: 0x81, script: 0x5b, flags: 0x0}, -+ 1003: {region: 0x107, script: 0x20, flags: 0x0}, -+ 1004: {region: 0xa5, script: 0x5b, flags: 0x0}, -+ 1005: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 1006: {region: 0x9a, script: 0x5b, flags: 0x0}, -+ 1007: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 1008: {region: 0x9a, script: 0xcf, flags: 0x0}, -+ 1009: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1010: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1011: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 1012: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 1013: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1014: {region: 0x166, script: 0x5, flags: 0x0}, -+ 1015: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 1016: {region: 0x7c, script: 0x5b, flags: 0x0}, -+ 1017: {region: 0x49, script: 0x5b, flags: 0x0}, - 1018: {region: 0x33, script: 0x4, flags: 0x1}, -- 1019: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 1020: {region: 0x9c, script: 0x5, flags: 0x0}, -- 1021: {region: 0xda, script: 0x5a, flags: 0x0}, -- 1022: {region: 0x4f, script: 0x5a, flags: 0x0}, -- 1023: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 1024: {region: 0xcf, script: 0x5a, flags: 0x0}, -- 1025: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 1026: {region: 0x4c, script: 0x5a, flags: 0x0}, -- 1027: {region: 0x96, script: 0x7e, flags: 0x0}, -- 1028: {region: 0xb6, script: 0x5a, flags: 0x0}, -- 1029: {region: 0x165, script: 0x2c, flags: 0x0}, -- 1030: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1032: {region: 0xba, script: 0xe8, flags: 0x0}, -- 1033: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1034: {region: 0xc4, script: 0x75, flags: 0x0}, -- 1035: {region: 0x165, script: 0x5, flags: 0x0}, -- 1036: {region: 0xb3, script: 0xd4, flags: 0x0}, -- 1037: {region: 0x6f, script: 0x5a, flags: 0x0}, -- 1038: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1039: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1040: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1041: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1042: {region: 0x111, script: 0x5a, flags: 0x0}, -- 1043: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1044: {region: 0xe8, script: 0x5, flags: 0x0}, -- 1045: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1046: {region: 0x10f, script: 0x5a, flags: 0x0}, -- 1047: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1048: {region: 0xe9, script: 0x5a, flags: 0x0}, -- 1049: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1050: {region: 0x95, script: 0x5a, flags: 0x0}, -- 1051: {region: 0x142, script: 0x5a, flags: 0x0}, -- 1052: {region: 0x10c, script: 0x5a, flags: 0x0}, -- 1054: {region: 0x10c, script: 0x5a, flags: 0x0}, -- 1055: {region: 0x72, script: 0x5a, flags: 0x0}, -- 1056: {region: 0x97, script: 0xca, flags: 0x0}, -- 1057: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1058: {region: 0x72, script: 0x5a, flags: 0x0}, -- 1059: {region: 0x164, script: 0x5a, flags: 0x0}, -- 1060: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1061: {region: 0xc3, script: 0x5a, flags: 0x0}, -- 1062: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1063: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1064: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1065: {region: 0x115, script: 0x5a, flags: 0x0}, -- 1066: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1067: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1068: {region: 0x123, script: 0xeb, flags: 0x0}, -- 1069: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1070: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1071: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1072: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1073: {region: 0x27, script: 0x5a, flags: 0x0}, -+ 1019: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 1020: {region: 0x9d, script: 0x5, flags: 0x0}, -+ 1021: {region: 0xdb, script: 0x5b, flags: 0x0}, -+ 1022: {region: 0x4f, script: 0x5b, flags: 0x0}, -+ 1023: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 1024: {region: 0xd0, script: 0x5b, flags: 0x0}, -+ 1025: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 1026: {region: 0x4c, script: 0x5b, flags: 0x0}, -+ 1027: {region: 0x97, script: 0x80, flags: 0x0}, -+ 1028: {region: 0xb7, script: 0x5b, flags: 0x0}, -+ 1029: {region: 0x166, script: 0x2c, flags: 0x0}, -+ 1030: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1032: {region: 0xbb, script: 0xeb, flags: 0x0}, -+ 1033: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1034: {region: 0xc5, script: 0x76, flags: 0x0}, -+ 1035: {region: 0x166, script: 0x5, flags: 0x0}, -+ 1036: {region: 0xb4, script: 0xd6, flags: 0x0}, -+ 1037: {region: 0x70, script: 0x5b, flags: 0x0}, -+ 1038: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1039: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1040: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1041: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1042: {region: 0x112, script: 0x5b, flags: 0x0}, -+ 1043: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1044: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 1045: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1046: {region: 0x110, script: 0x5b, flags: 0x0}, -+ 1047: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1048: {region: 0xea, script: 0x5b, flags: 0x0}, -+ 1049: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1050: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 1051: {region: 0x143, script: 0x5b, flags: 0x0}, -+ 1052: {region: 0x10d, script: 0x5b, flags: 0x0}, -+ 1054: {region: 0x10d, script: 0x5b, flags: 0x0}, -+ 1055: {region: 0x73, script: 0x5b, flags: 0x0}, -+ 1056: {region: 0x98, script: 0xcc, flags: 0x0}, -+ 1057: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1058: {region: 0x73, script: 0x5b, flags: 0x0}, -+ 1059: {region: 0x165, script: 0x5b, flags: 0x0}, -+ 1060: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1061: {region: 0xc4, script: 0x5b, flags: 0x0}, -+ 1062: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1063: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1064: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1065: {region: 0x116, script: 0x5b, flags: 0x0}, -+ 1066: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1067: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1068: {region: 0x124, script: 0xee, flags: 0x0}, -+ 1069: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1070: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1071: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1072: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1073: {region: 0x27, script: 0x5b, flags: 0x0}, - 1074: {region: 0x37, script: 0x5, flags: 0x1}, -- 1075: {region: 0x99, script: 0xd7, flags: 0x0}, -- 1076: {region: 0x116, script: 0x5a, flags: 0x0}, -- 1077: {region: 0x114, script: 0x5a, flags: 0x0}, -- 1078: {region: 0x99, script: 0x22, flags: 0x0}, -- 1079: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1080: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1081: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1082: {region: 0x6d, script: 0x5a, flags: 0x0}, -- 1083: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1084: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1085: {region: 0x60, script: 0x5a, flags: 0x0}, -- 1086: {region: 0x95, script: 0x5a, flags: 0x0}, -- 1087: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1088: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1089: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 1090: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1091: {region: 0x84, script: 0x5a, flags: 0x0}, -- 1092: {region: 0x10c, script: 0x5a, flags: 0x0}, -- 1093: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 1094: {region: 0x15f, script: 0x5, flags: 0x0}, -- 1095: {region: 0x4b, script: 0x5a, flags: 0x0}, -- 1096: {region: 0x60, script: 0x5a, flags: 0x0}, -- 1097: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1098: {region: 0x99, script: 0x22, flags: 0x0}, -- 1099: {region: 0x95, script: 0x5a, flags: 0x0}, -- 1100: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 1075: {region: 0x9a, script: 0xd9, flags: 0x0}, -+ 1076: {region: 0x117, script: 0x5b, flags: 0x0}, -+ 1077: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 1078: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1079: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1080: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1081: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1082: {region: 0x6e, script: 0x5b, flags: 0x0}, -+ 1083: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1084: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1085: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 1086: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 1087: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1088: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1089: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 1090: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1091: {region: 0x85, script: 0x5b, flags: 0x0}, -+ 1092: {region: 0x10d, script: 0x5b, flags: 0x0}, -+ 1093: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 1094: {region: 0x160, script: 0x5, flags: 0x0}, -+ 1095: {region: 0x4b, script: 0x5b, flags: 0x0}, -+ 1096: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 1097: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1098: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1099: {region: 0x96, script: 0x5b, flags: 0x0}, -+ 1100: {region: 0x166, script: 0x5b, flags: 0x0}, - 1101: {region: 0x35, script: 0xe, flags: 0x0}, -- 1102: {region: 0x9b, script: 0xdb, flags: 0x0}, -- 1103: {region: 0xe9, script: 0x5a, flags: 0x0}, -- 1104: {region: 0x99, script: 0xe3, flags: 0x0}, -- 1105: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1106: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1107: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1108: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1109: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1110: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1111: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1112: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1113: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1114: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 1115: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1116: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1117: {region: 0x99, script: 0x52, flags: 0x0}, -- 1118: {region: 0x53, script: 0xe1, flags: 0x0}, -- 1119: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1120: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1121: {region: 0x99, script: 0xe6, flags: 0x0}, -- 1122: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1123: {region: 0x112, script: 0x5a, flags: 0x0}, -- 1124: {region: 0x131, script: 0x5a, flags: 0x0}, -- 1125: {region: 0x126, script: 0x5a, flags: 0x0}, -- 1126: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 1102: {region: 0x9c, script: 0xde, flags: 0x0}, -+ 1103: {region: 0xea, script: 0x5b, flags: 0x0}, -+ 1104: {region: 0x9a, script: 0xe6, flags: 0x0}, -+ 1105: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1106: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1107: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1108: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1109: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1110: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1111: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1112: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1113: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1114: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 1115: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1116: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1117: {region: 0x9a, script: 0x53, flags: 0x0}, -+ 1118: {region: 0x53, script: 0xe4, flags: 0x0}, -+ 1119: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1120: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1121: {region: 0x9a, script: 0xe9, flags: 0x0}, -+ 1122: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1123: {region: 0x113, script: 0x5b, flags: 0x0}, -+ 1124: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 1125: {region: 0x127, script: 0x5b, flags: 0x0}, -+ 1126: {region: 0x166, script: 0x5b, flags: 0x0}, - 1127: {region: 0x3c, script: 0x3, flags: 0x1}, -- 1128: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1129: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1130: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1131: {region: 0x123, script: 0xeb, flags: 0x0}, -- 1132: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1133: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1134: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1135: {region: 0x6f, script: 0x2c, flags: 0x0}, -- 1136: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1137: {region: 0x6d, script: 0x2c, flags: 0x0}, -- 1138: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1139: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1140: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1141: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 1142: {region: 0x127, script: 0x5a, flags: 0x0}, -- 1143: {region: 0x125, script: 0x5a, flags: 0x0}, -- 1144: {region: 0x32, script: 0x5a, flags: 0x0}, -- 1145: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1146: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 1147: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1148: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1149: {region: 0x32, script: 0x5a, flags: 0x0}, -- 1150: {region: 0xd4, script: 0x5a, flags: 0x0}, -- 1151: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1152: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1153: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1154: {region: 0x129, script: 0x5a, flags: 0x0}, -- 1155: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1156: {region: 0xce, script: 0x5a, flags: 0x0}, -- 1157: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1158: {region: 0xe6, script: 0x5a, flags: 0x0}, -- 1159: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1160: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1161: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1162: {region: 0x12b, script: 0x5a, flags: 0x0}, -- 1163: {region: 0x12b, script: 0x5a, flags: 0x0}, -- 1164: {region: 0x12e, script: 0x5a, flags: 0x0}, -- 1165: {region: 0x165, script: 0x5, flags: 0x0}, -- 1166: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1167: {region: 0x87, script: 0x34, flags: 0x0}, -- 1168: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1169: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 1170: {region: 0x43, script: 0xec, flags: 0x0}, -- 1171: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1172: {region: 0x106, script: 0x20, flags: 0x0}, -- 1173: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1174: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1175: {region: 0x131, script: 0x5a, flags: 0x0}, -- 1176: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1177: {region: 0x123, script: 0xeb, flags: 0x0}, -- 1178: {region: 0x32, script: 0x5a, flags: 0x0}, -- 1179: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1180: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1181: {region: 0xce, script: 0x5a, flags: 0x0}, -- 1182: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1183: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1184: {region: 0x12d, script: 0x5a, flags: 0x0}, -- 1185: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1187: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1188: {region: 0xd4, script: 0x5a, flags: 0x0}, -- 1189: {region: 0x53, script: 0xe4, flags: 0x0}, -- 1190: {region: 0xe5, script: 0x5a, flags: 0x0}, -- 1191: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1192: {region: 0x106, script: 0x20, flags: 0x0}, -- 1193: {region: 0xba, script: 0x5a, flags: 0x0}, -- 1194: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1195: {region: 0x106, script: 0x20, flags: 0x0}, -+ 1128: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1129: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1130: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1131: {region: 0x124, script: 0xee, flags: 0x0}, -+ 1132: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1133: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1134: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1135: {region: 0x70, script: 0x2c, flags: 0x0}, -+ 1136: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1137: {region: 0x6e, script: 0x2c, flags: 0x0}, -+ 1138: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1139: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1140: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1141: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 1142: {region: 0x128, script: 0x5b, flags: 0x0}, -+ 1143: {region: 0x126, script: 0x5b, flags: 0x0}, -+ 1144: {region: 0x32, script: 0x5b, flags: 0x0}, -+ 1145: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1146: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 1147: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1148: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1149: {region: 0x32, script: 0x5b, flags: 0x0}, -+ 1150: {region: 0xd5, script: 0x5b, flags: 0x0}, -+ 1151: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1152: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1153: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1154: {region: 0x12a, script: 0x5b, flags: 0x0}, -+ 1155: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1156: {region: 0xcf, script: 0x5b, flags: 0x0}, -+ 1157: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1158: {region: 0xe7, script: 0x5b, flags: 0x0}, -+ 1159: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1160: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1161: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1162: {region: 0x12c, script: 0x5b, flags: 0x0}, -+ 1163: {region: 0x12c, script: 0x5b, flags: 0x0}, -+ 1164: {region: 0x12f, script: 0x5b, flags: 0x0}, -+ 1165: {region: 0x166, script: 0x5, flags: 0x0}, -+ 1166: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1167: {region: 0x88, script: 0x34, flags: 0x0}, -+ 1168: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1169: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 1170: {region: 0x43, script: 0xef, flags: 0x0}, -+ 1171: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1172: {region: 0x107, script: 0x20, flags: 0x0}, -+ 1173: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1174: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1175: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 1176: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1177: {region: 0x124, script: 0xee, flags: 0x0}, -+ 1178: {region: 0x32, script: 0x5b, flags: 0x0}, -+ 1179: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1180: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1181: {region: 0xcf, script: 0x5b, flags: 0x0}, -+ 1182: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1183: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1184: {region: 0x12e, script: 0x5b, flags: 0x0}, -+ 1185: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1187: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1188: {region: 0xd5, script: 0x5b, flags: 0x0}, -+ 1189: {region: 0x53, script: 0xe7, flags: 0x0}, -+ 1190: {region: 0xe6, script: 0x5b, flags: 0x0}, -+ 1191: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1192: {region: 0x107, script: 0x20, flags: 0x0}, -+ 1193: {region: 0xbb, script: 0x5b, flags: 0x0}, -+ 1194: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1195: {region: 0x107, script: 0x20, flags: 0x0}, - 1196: {region: 0x3f, script: 0x4, flags: 0x1}, -- 1197: {region: 0x11c, script: 0xf0, flags: 0x0}, -- 1198: {region: 0x130, script: 0x20, flags: 0x0}, -- 1199: {region: 0x75, script: 0x5a, flags: 0x0}, -- 1200: {region: 0x2a, script: 0x5a, flags: 0x0}, -+ 1197: {region: 0x11d, script: 0xf3, flags: 0x0}, -+ 1198: {region: 0x131, script: 0x20, flags: 0x0}, -+ 1199: {region: 0x76, script: 0x5b, flags: 0x0}, -+ 1200: {region: 0x2a, script: 0x5b, flags: 0x0}, - 1202: {region: 0x43, script: 0x3, flags: 0x1}, -- 1203: {region: 0x99, script: 0xe, flags: 0x0}, -- 1204: {region: 0xe8, script: 0x5, flags: 0x0}, -- 1205: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1206: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1207: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1208: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1209: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1210: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1211: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 1203: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 1204: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 1205: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1206: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1207: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1208: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1209: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1210: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1211: {region: 0x166, script: 0x5b, flags: 0x0}, - 1212: {region: 0x46, script: 0x4, flags: 0x1}, -- 1213: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1214: {region: 0xb4, script: 0xf1, flags: 0x0}, -- 1215: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1216: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1217: {region: 0x9e, script: 0x5a, flags: 0x0}, -- 1218: {region: 0x106, script: 0x5a, flags: 0x0}, -- 1219: {region: 0x13e, script: 0x5a, flags: 0x0}, -- 1220: {region: 0x11b, script: 0x5a, flags: 0x0}, -- 1221: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1222: {region: 0x36, script: 0x5a, flags: 0x0}, -- 1223: {region: 0x60, script: 0x5a, flags: 0x0}, -- 1224: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 1225: {region: 0x1, script: 0x5a, flags: 0x0}, -- 1226: {region: 0x106, script: 0x5a, flags: 0x0}, -- 1227: {region: 0x6a, script: 0x5a, flags: 0x0}, -- 1228: {region: 0x12f, script: 0x5a, flags: 0x0}, -- 1229: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1230: {region: 0x36, script: 0x5a, flags: 0x0}, -- 1231: {region: 0x4e, script: 0x5a, flags: 0x0}, -- 1232: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1233: {region: 0x6f, script: 0x2c, flags: 0x0}, -- 1234: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1235: {region: 0xe7, script: 0x5a, flags: 0x0}, -- 1236: {region: 0x2f, script: 0x5a, flags: 0x0}, -- 1237: {region: 0x99, script: 0xe6, flags: 0x0}, -- 1238: {region: 0x99, script: 0x22, flags: 0x0}, -- 1239: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1240: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1241: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1242: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1243: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1244: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1245: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1246: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1247: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1248: {region: 0x140, script: 0x5a, flags: 0x0}, -- 1249: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1250: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1251: {region: 0xa8, script: 0x5, flags: 0x0}, -- 1252: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1253: {region: 0x114, script: 0x5a, flags: 0x0}, -- 1254: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1255: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1256: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1257: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1258: {region: 0x99, script: 0x22, flags: 0x0}, -+ 1213: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1214: {region: 0xb5, script: 0xf4, flags: 0x0}, -+ 1215: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1216: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1217: {region: 0x9f, script: 0x5b, flags: 0x0}, -+ 1218: {region: 0x107, script: 0x5b, flags: 0x0}, -+ 1219: {region: 0x13f, script: 0x5b, flags: 0x0}, -+ 1220: {region: 0x11c, script: 0x5b, flags: 0x0}, -+ 1221: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1222: {region: 0x36, script: 0x5b, flags: 0x0}, -+ 1223: {region: 0x61, script: 0x5b, flags: 0x0}, -+ 1224: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 1225: {region: 0x1, script: 0x5b, flags: 0x0}, -+ 1226: {region: 0x107, script: 0x5b, flags: 0x0}, -+ 1227: {region: 0x6b, script: 0x5b, flags: 0x0}, -+ 1228: {region: 0x130, script: 0x5b, flags: 0x0}, -+ 1229: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1230: {region: 0x36, script: 0x5b, flags: 0x0}, -+ 1231: {region: 0x4e, script: 0x5b, flags: 0x0}, -+ 1232: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1233: {region: 0x70, script: 0x2c, flags: 0x0}, -+ 1234: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1235: {region: 0xe8, script: 0x5b, flags: 0x0}, -+ 1236: {region: 0x2f, script: 0x5b, flags: 0x0}, -+ 1237: {region: 0x9a, script: 0xe9, flags: 0x0}, -+ 1238: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1239: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1240: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1241: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1242: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1243: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1244: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1245: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1246: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1247: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1248: {region: 0x141, script: 0x5b, flags: 0x0}, -+ 1249: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1250: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1251: {region: 0xa9, script: 0x5, flags: 0x0}, -+ 1252: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1253: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 1254: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1255: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1256: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1257: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1258: {region: 0x9a, script: 0x22, flags: 0x0}, - 1259: {region: 0x53, script: 0x3b, flags: 0x0}, -- 1260: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1261: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1262: {region: 0x41, script: 0x5a, flags: 0x0}, -- 1263: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1264: {region: 0x12b, script: 0x18, flags: 0x0}, -- 1265: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1266: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1267: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1268: {region: 0x12b, script: 0x62, flags: 0x0}, -- 1269: {region: 0x12b, script: 0x63, flags: 0x0}, -- 1270: {region: 0x7d, script: 0x2e, flags: 0x0}, -- 1271: {region: 0x53, script: 0x67, flags: 0x0}, -- 1272: {region: 0x10b, script: 0x6c, flags: 0x0}, -- 1273: {region: 0x108, script: 0x77, flags: 0x0}, -- 1274: {region: 0x99, script: 0x22, flags: 0x0}, -- 1275: {region: 0x131, script: 0x5a, flags: 0x0}, -- 1276: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1277: {region: 0x9c, script: 0x91, flags: 0x0}, -- 1278: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1279: {region: 0x15e, script: 0xcc, flags: 0x0}, -- 1280: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1281: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1282: {region: 0xdb, script: 0x22, flags: 0x0}, -- 1283: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1284: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1285: {region: 0xd1, script: 0x5a, flags: 0x0}, -- 1286: {region: 0x75, script: 0x5a, flags: 0x0}, -- 1287: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1288: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1289: {region: 0x52, script: 0x5a, flags: 0x0}, -- 1290: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1291: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1292: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1293: {region: 0x52, script: 0x5a, flags: 0x0}, -- 1294: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1295: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1296: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1297: {region: 0x165, script: 0x5a, flags: 0x0}, -+ 1260: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1261: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1262: {region: 0x41, script: 0x5b, flags: 0x0}, -+ 1263: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1264: {region: 0x12c, script: 0x18, flags: 0x0}, -+ 1265: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1266: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1267: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1268: {region: 0x12c, script: 0x63, flags: 0x0}, -+ 1269: {region: 0x12c, script: 0x64, flags: 0x0}, -+ 1270: {region: 0x7e, script: 0x2e, flags: 0x0}, -+ 1271: {region: 0x53, script: 0x68, flags: 0x0}, -+ 1272: {region: 0x10c, script: 0x6d, flags: 0x0}, -+ 1273: {region: 0x109, script: 0x79, flags: 0x0}, -+ 1274: {region: 0x9a, script: 0x22, flags: 0x0}, -+ 1275: {region: 0x132, script: 0x5b, flags: 0x0}, -+ 1276: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1277: {region: 0x9d, script: 0x93, flags: 0x0}, -+ 1278: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1279: {region: 0x15f, script: 0xce, flags: 0x0}, -+ 1280: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1281: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1282: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 1283: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1284: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1285: {region: 0xd2, script: 0x5b, flags: 0x0}, -+ 1286: {region: 0x76, script: 0x5b, flags: 0x0}, -+ 1287: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1288: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1289: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 1290: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1291: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1292: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1293: {region: 0x52, script: 0x5b, flags: 0x0}, -+ 1294: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1295: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1296: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1297: {region: 0x166, script: 0x5b, flags: 0x0}, - 1298: {region: 0x1, script: 0x3e, flags: 0x0}, -- 1299: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1300: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1301: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1302: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1303: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1304: {region: 0xd6, script: 0x5a, flags: 0x0}, -- 1305: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1306: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1307: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1308: {region: 0x41, script: 0x5a, flags: 0x0}, -- 1309: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1310: {region: 0xcf, script: 0x5a, flags: 0x0}, -+ 1299: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1300: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1301: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1302: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1303: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1304: {region: 0xd7, script: 0x5b, flags: 0x0}, -+ 1305: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1306: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1307: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1308: {region: 0x41, script: 0x5b, flags: 0x0}, -+ 1309: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1310: {region: 0xd0, script: 0x5b, flags: 0x0}, - 1311: {region: 0x4a, script: 0x3, flags: 0x1}, -- 1312: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1313: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1314: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1315: {region: 0x53, script: 0x5a, flags: 0x0}, -- 1316: {region: 0x10b, script: 0x5a, flags: 0x0}, -- 1318: {region: 0xa8, script: 0x5, flags: 0x0}, -- 1319: {region: 0xd9, script: 0x5a, flags: 0x0}, -- 1320: {region: 0xba, script: 0xe8, flags: 0x0}, -+ 1312: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1313: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1314: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1315: {region: 0x53, script: 0x5b, flags: 0x0}, -+ 1316: {region: 0x10c, script: 0x5b, flags: 0x0}, -+ 1318: {region: 0xa9, script: 0x5, flags: 0x0}, -+ 1319: {region: 0xda, script: 0x5b, flags: 0x0}, -+ 1320: {region: 0xbb, script: 0xeb, flags: 0x0}, - 1321: {region: 0x4d, script: 0x14, flags: 0x1}, -- 1322: {region: 0x53, script: 0x7d, flags: 0x0}, -- 1323: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1324: {region: 0x122, script: 0x5a, flags: 0x0}, -- 1325: {region: 0xd0, script: 0x5a, flags: 0x0}, -- 1326: {region: 0x165, script: 0x5a, flags: 0x0}, -- 1327: {region: 0x161, script: 0x5a, flags: 0x0}, -- 1329: {region: 0x12b, script: 0x5a, flags: 0x0}, -+ 1322: {region: 0x53, script: 0x7f, flags: 0x0}, -+ 1323: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1324: {region: 0x123, script: 0x5b, flags: 0x0}, -+ 1325: {region: 0xd1, script: 0x5b, flags: 0x0}, -+ 1326: {region: 0x166, script: 0x5b, flags: 0x0}, -+ 1327: {region: 0x162, script: 0x5b, flags: 0x0}, -+ 1329: {region: 0x12c, script: 0x5b, flags: 0x0}, - } - - // likelyLangList holds lists info associated with likelyLang. - // Size: 582 bytes, 97 elements - var likelyLangList = [97]likelyScriptRegion{ -- 0: {region: 0x9c, script: 0x7, flags: 0x0}, -- 1: {region: 0xa1, script: 0x78, flags: 0x2}, -- 2: {region: 0x11c, script: 0x85, flags: 0x2}, -- 3: {region: 0x32, script: 0x5a, flags: 0x0}, -- 4: {region: 0x9b, script: 0x5, flags: 0x4}, -- 5: {region: 0x9c, script: 0x5, flags: 0x4}, -- 6: {region: 0x106, script: 0x20, flags: 0x4}, -- 7: {region: 0x9c, script: 0x5, flags: 0x2}, -- 8: {region: 0x106, script: 0x20, flags: 0x0}, -+ 0: {region: 0x9d, script: 0x7, flags: 0x0}, -+ 1: {region: 0xa2, script: 0x7a, flags: 0x2}, -+ 2: {region: 0x11d, script: 0x87, flags: 0x2}, -+ 3: {region: 0x32, script: 0x5b, flags: 0x0}, -+ 4: {region: 0x9c, script: 0x5, flags: 0x4}, -+ 5: {region: 0x9d, script: 0x5, flags: 0x4}, -+ 6: {region: 0x107, script: 0x20, flags: 0x4}, -+ 7: {region: 0x9d, script: 0x5, flags: 0x2}, -+ 8: {region: 0x107, script: 0x20, flags: 0x0}, - 9: {region: 0x38, script: 0x2f, flags: 0x2}, -- 10: {region: 0x135, script: 0x5a, flags: 0x0}, -- 11: {region: 0x7b, script: 0xcf, flags: 0x2}, -- 12: {region: 0x114, script: 0x5a, flags: 0x0}, -- 13: {region: 0x84, script: 0x1, flags: 0x2}, -- 14: {region: 0x5d, script: 0x1f, flags: 0x0}, -- 15: {region: 0x87, script: 0x5f, flags: 0x2}, -- 16: {region: 0xd6, script: 0x5a, flags: 0x0}, -+ 10: {region: 0x136, script: 0x5b, flags: 0x0}, -+ 11: {region: 0x7c, script: 0xd1, flags: 0x2}, -+ 12: {region: 0x115, script: 0x5b, flags: 0x0}, -+ 13: {region: 0x85, script: 0x1, flags: 0x2}, -+ 14: {region: 0x5e, script: 0x1f, flags: 0x0}, -+ 15: {region: 0x88, script: 0x60, flags: 0x2}, -+ 16: {region: 0xd7, script: 0x5b, flags: 0x0}, - 17: {region: 0x52, script: 0x5, flags: 0x4}, -- 18: {region: 0x10b, script: 0x5, flags: 0x4}, -- 19: {region: 0xae, script: 0x20, flags: 0x0}, -+ 18: {region: 0x10c, script: 0x5, flags: 0x4}, -+ 19: {region: 0xaf, script: 0x20, flags: 0x0}, - 20: {region: 0x24, script: 0x5, flags: 0x4}, - 21: {region: 0x53, script: 0x5, flags: 0x4}, -- 22: {region: 0x9c, script: 0x5, flags: 0x4}, -- 23: {region: 0xc5, script: 0x5, flags: 0x4}, -+ 22: {region: 0x9d, script: 0x5, flags: 0x4}, -+ 23: {region: 0xc6, script: 0x5, flags: 0x4}, - 24: {region: 0x53, script: 0x5, flags: 0x2}, -- 25: {region: 0x12b, script: 0x5a, flags: 0x0}, -- 26: {region: 0xb0, script: 0x5, flags: 0x4}, -- 27: {region: 0x9b, script: 0x5, flags: 0x2}, -- 28: {region: 0xa5, script: 0x20, flags: 0x0}, -+ 25: {region: 0x12c, script: 0x5b, flags: 0x0}, -+ 26: {region: 0xb1, script: 0x5, flags: 0x4}, -+ 27: {region: 0x9c, script: 0x5, flags: 0x2}, -+ 28: {region: 0xa6, script: 0x20, flags: 0x0}, - 29: {region: 0x53, script: 0x5, flags: 0x4}, -- 30: {region: 0x12b, script: 0x5a, flags: 0x4}, -+ 30: {region: 0x12c, script: 0x5b, flags: 0x4}, - 31: {region: 0x53, script: 0x5, flags: 0x2}, -- 32: {region: 0x12b, script: 0x5a, flags: 0x2}, -- 33: {region: 0xdb, script: 0x22, flags: 0x0}, -- 34: {region: 0x99, script: 0x5d, flags: 0x2}, -- 35: {region: 0x83, script: 0x5a, flags: 0x0}, -- 36: {region: 0x84, script: 0x7c, flags: 0x4}, -- 37: {region: 0x84, script: 0x7c, flags: 0x2}, -- 38: {region: 0xc5, script: 0x20, flags: 0x0}, -- 39: {region: 0x53, script: 0x70, flags: 0x4}, -- 40: {region: 0x53, script: 0x70, flags: 0x2}, -- 41: {region: 0xd0, script: 0x5a, flags: 0x0}, -+ 32: {region: 0x12c, script: 0x5b, flags: 0x2}, -+ 33: {region: 0xdc, script: 0x22, flags: 0x0}, -+ 34: {region: 0x9a, script: 0x5e, flags: 0x2}, -+ 35: {region: 0x84, script: 0x5b, flags: 0x0}, -+ 36: {region: 0x85, script: 0x7e, flags: 0x4}, -+ 37: {region: 0x85, script: 0x7e, flags: 0x2}, -+ 38: {region: 0xc6, script: 0x20, flags: 0x0}, -+ 39: {region: 0x53, script: 0x71, flags: 0x4}, -+ 40: {region: 0x53, script: 0x71, flags: 0x2}, -+ 41: {region: 0xd1, script: 0x5b, flags: 0x0}, - 42: {region: 0x4a, script: 0x5, flags: 0x4}, -- 43: {region: 0x95, script: 0x5, flags: 0x4}, -- 44: {region: 0x99, script: 0x36, flags: 0x0}, -- 45: {region: 0xe8, script: 0x5, flags: 0x4}, -- 46: {region: 0xe8, script: 0x5, flags: 0x2}, -- 47: {region: 0x9c, script: 0x8b, flags: 0x0}, -- 48: {region: 0x53, script: 0x8c, flags: 0x2}, -- 49: {region: 0xba, script: 0xe8, flags: 0x0}, -- 50: {region: 0xd9, script: 0x5a, flags: 0x4}, -- 51: {region: 0xe8, script: 0x5, flags: 0x0}, -- 52: {region: 0x99, script: 0x22, flags: 0x2}, -- 53: {region: 0x99, script: 0x4f, flags: 0x2}, -- 54: {region: 0x99, script: 0xd3, flags: 0x2}, -- 55: {region: 0x105, script: 0x20, flags: 0x0}, -- 56: {region: 0xbd, script: 0x5a, flags: 0x4}, -- 57: {region: 0x104, script: 0x5a, flags: 0x4}, -- 58: {region: 0x106, script: 0x5a, flags: 0x4}, -- 59: {region: 0x12b, script: 0x5a, flags: 0x4}, -- 60: {region: 0x124, script: 0x20, flags: 0x0}, -- 61: {region: 0xe8, script: 0x5, flags: 0x4}, -- 62: {region: 0xe8, script: 0x5, flags: 0x2}, -+ 43: {region: 0x96, script: 0x5, flags: 0x4}, -+ 44: {region: 0x9a, script: 0x36, flags: 0x0}, -+ 45: {region: 0xe9, script: 0x5, flags: 0x4}, -+ 46: {region: 0xe9, script: 0x5, flags: 0x2}, -+ 47: {region: 0x9d, script: 0x8d, flags: 0x0}, -+ 48: {region: 0x53, script: 0x8e, flags: 0x2}, -+ 49: {region: 0xbb, script: 0xeb, flags: 0x0}, -+ 50: {region: 0xda, script: 0x5b, flags: 0x4}, -+ 51: {region: 0xe9, script: 0x5, flags: 0x0}, -+ 52: {region: 0x9a, script: 0x22, flags: 0x2}, -+ 53: {region: 0x9a, script: 0x50, flags: 0x2}, -+ 54: {region: 0x9a, script: 0xd5, flags: 0x2}, -+ 55: {region: 0x106, script: 0x20, flags: 0x0}, -+ 56: {region: 0xbe, script: 0x5b, flags: 0x4}, -+ 57: {region: 0x105, script: 0x5b, flags: 0x4}, -+ 58: {region: 0x107, script: 0x5b, flags: 0x4}, -+ 59: {region: 0x12c, script: 0x5b, flags: 0x4}, -+ 60: {region: 0x125, script: 0x20, flags: 0x0}, -+ 61: {region: 0xe9, script: 0x5, flags: 0x4}, -+ 62: {region: 0xe9, script: 0x5, flags: 0x2}, - 63: {region: 0x53, script: 0x5, flags: 0x0}, -- 64: {region: 0xae, script: 0x20, flags: 0x4}, -- 65: {region: 0xc5, script: 0x20, flags: 0x4}, -- 66: {region: 0xae, script: 0x20, flags: 0x2}, -- 67: {region: 0x99, script: 0xe, flags: 0x0}, -- 68: {region: 0xdb, script: 0x22, flags: 0x4}, -- 69: {region: 0xdb, script: 0x22, flags: 0x2}, -- 70: {region: 0x137, script: 0x5a, flags: 0x0}, -+ 64: {region: 0xaf, script: 0x20, flags: 0x4}, -+ 65: {region: 0xc6, script: 0x20, flags: 0x4}, -+ 66: {region: 0xaf, script: 0x20, flags: 0x2}, -+ 67: {region: 0x9a, script: 0xe, flags: 0x0}, -+ 68: {region: 0xdc, script: 0x22, flags: 0x4}, -+ 69: {region: 0xdc, script: 0x22, flags: 0x2}, -+ 70: {region: 0x138, script: 0x5b, flags: 0x0}, - 71: {region: 0x24, script: 0x5, flags: 0x4}, - 72: {region: 0x53, script: 0x20, flags: 0x4}, - 73: {region: 0x24, script: 0x5, flags: 0x2}, -- 74: {region: 0x8d, script: 0x3c, flags: 0x0}, -+ 74: {region: 0x8e, script: 0x3c, flags: 0x0}, - 75: {region: 0x53, script: 0x3b, flags: 0x4}, - 76: {region: 0x53, script: 0x3b, flags: 0x2}, - 77: {region: 0x53, script: 0x3b, flags: 0x0}, - 78: {region: 0x2f, script: 0x3c, flags: 0x4}, - 79: {region: 0x3e, script: 0x3c, flags: 0x4}, -- 80: {region: 0x7b, script: 0x3c, flags: 0x4}, -- 81: {region: 0x7e, script: 0x3c, flags: 0x4}, -- 82: {region: 0x8d, script: 0x3c, flags: 0x4}, -- 83: {region: 0x95, script: 0x3c, flags: 0x4}, -- 84: {region: 0xc6, script: 0x3c, flags: 0x4}, -- 85: {region: 0xd0, script: 0x3c, flags: 0x4}, -- 86: {region: 0xe2, script: 0x3c, flags: 0x4}, -- 87: {region: 0xe5, script: 0x3c, flags: 0x4}, -- 88: {region: 0xe7, script: 0x3c, flags: 0x4}, -- 89: {region: 0x116, script: 0x3c, flags: 0x4}, -- 90: {region: 0x123, script: 0x3c, flags: 0x4}, -- 91: {region: 0x12e, script: 0x3c, flags: 0x4}, -- 92: {region: 0x135, script: 0x3c, flags: 0x4}, -- 93: {region: 0x13e, script: 0x3c, flags: 0x4}, -- 94: {region: 0x12e, script: 0x11, flags: 0x2}, -- 95: {region: 0x12e, script: 0x37, flags: 0x2}, -- 96: {region: 0x12e, script: 0x3c, flags: 0x2}, -+ 80: {region: 0x7c, script: 0x3c, flags: 0x4}, -+ 81: {region: 0x7f, script: 0x3c, flags: 0x4}, -+ 82: {region: 0x8e, script: 0x3c, flags: 0x4}, -+ 83: {region: 0x96, script: 0x3c, flags: 0x4}, -+ 84: {region: 0xc7, script: 0x3c, flags: 0x4}, -+ 85: {region: 0xd1, script: 0x3c, flags: 0x4}, -+ 86: {region: 0xe3, script: 0x3c, flags: 0x4}, -+ 87: {region: 0xe6, script: 0x3c, flags: 0x4}, -+ 88: {region: 0xe8, script: 0x3c, flags: 0x4}, -+ 89: {region: 0x117, script: 0x3c, flags: 0x4}, -+ 90: {region: 0x124, script: 0x3c, flags: 0x4}, -+ 91: {region: 0x12f, script: 0x3c, flags: 0x4}, -+ 92: {region: 0x136, script: 0x3c, flags: 0x4}, -+ 93: {region: 0x13f, script: 0x3c, flags: 0x4}, -+ 94: {region: 0x12f, script: 0x11, flags: 0x2}, -+ 95: {region: 0x12f, script: 0x37, flags: 0x2}, -+ 96: {region: 0x12f, script: 0x3c, flags: 0x2}, - } - - type likelyLangScript struct { -@@ -2987,306 +3009,306 @@ type likelyLangScript struct { - // for a given regionID, lang and script are the index and size respectively - // of the list in likelyRegionList. - // TODO: exclude containers and user-definable regions from the list. --// Size: 2148 bytes, 358 elements --var likelyRegion = [358]likelyLangScript{ -- 34: {lang: 0xd7, script: 0x5a, flags: 0x0}, -+// Size: 2154 bytes, 359 elements -+var likelyRegion = [359]likelyLangScript{ -+ 34: {lang: 0xd7, script: 0x5b, flags: 0x0}, - 35: {lang: 0x3a, script: 0x5, flags: 0x0}, - 36: {lang: 0x0, script: 0x2, flags: 0x1}, - 39: {lang: 0x2, script: 0x2, flags: 0x1}, - 40: {lang: 0x4, script: 0x2, flags: 0x1}, -- 42: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 43: {lang: 0x0, script: 0x5a, flags: 0x0}, -- 44: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 45: {lang: 0x41b, script: 0x5a, flags: 0x0}, -- 46: {lang: 0x10d, script: 0x5a, flags: 0x0}, -- 48: {lang: 0x367, script: 0x5a, flags: 0x0}, -- 49: {lang: 0x444, script: 0x5a, flags: 0x0}, -- 50: {lang: 0x58, script: 0x5a, flags: 0x0}, -+ 42: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 43: {lang: 0x0, script: 0x5b, flags: 0x0}, -+ 44: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 45: {lang: 0x41b, script: 0x5b, flags: 0x0}, -+ 46: {lang: 0x10d, script: 0x5b, flags: 0x0}, -+ 48: {lang: 0x367, script: 0x5b, flags: 0x0}, -+ 49: {lang: 0x444, script: 0x5b, flags: 0x0}, -+ 50: {lang: 0x58, script: 0x5b, flags: 0x0}, - 51: {lang: 0x6, script: 0x2, flags: 0x1}, - 53: {lang: 0xa5, script: 0xe, flags: 0x0}, -- 54: {lang: 0x367, script: 0x5a, flags: 0x0}, -- 55: {lang: 0x15e, script: 0x5a, flags: 0x0}, -+ 54: {lang: 0x367, script: 0x5b, flags: 0x0}, -+ 55: {lang: 0x15e, script: 0x5b, flags: 0x0}, - 56: {lang: 0x7e, script: 0x20, flags: 0x0}, - 57: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 58: {lang: 0x3d9, script: 0x5a, flags: 0x0}, -- 59: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 60: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 62: {lang: 0x31f, script: 0x5a, flags: 0x0}, -- 63: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 64: {lang: 0x3a1, script: 0x5a, flags: 0x0}, -- 65: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -+ 58: {lang: 0x3d9, script: 0x5b, flags: 0x0}, -+ 59: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 60: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 62: {lang: 0x31f, script: 0x5b, flags: 0x0}, -+ 63: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 64: {lang: 0x3a1, script: 0x5b, flags: 0x0}, -+ 65: {lang: 0x3c0, script: 0x5b, flags: 0x0}, - 67: {lang: 0x8, script: 0x2, flags: 0x1}, -- 69: {lang: 0x0, script: 0x5a, flags: 0x0}, -+ 69: {lang: 0x0, script: 0x5b, flags: 0x0}, - 71: {lang: 0x71, script: 0x20, flags: 0x0}, - 73: {lang: 0x512, script: 0x3e, flags: 0x2}, - 74: {lang: 0x31f, script: 0x5, flags: 0x2}, -- 75: {lang: 0x445, script: 0x5a, flags: 0x0}, -- 76: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 77: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 78: {lang: 0x10d, script: 0x5a, flags: 0x0}, -- 79: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 81: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 82: {lang: 0x15e, script: 0x5a, flags: 0x0}, -+ 75: {lang: 0x445, script: 0x5b, flags: 0x0}, -+ 76: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 77: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 78: {lang: 0x10d, script: 0x5b, flags: 0x0}, -+ 79: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 81: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 82: {lang: 0x15e, script: 0x5b, flags: 0x0}, - 83: {lang: 0xa, script: 0x4, flags: 0x1}, -- 84: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 85: {lang: 0x0, script: 0x5a, flags: 0x0}, -- 86: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 89: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 90: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 91: {lang: 0x3a1, script: 0x5a, flags: 0x0}, -- 93: {lang: 0xe, script: 0x2, flags: 0x1}, -- 94: {lang: 0xfa, script: 0x5a, flags: 0x0}, -- 96: {lang: 0x10d, script: 0x5a, flags: 0x0}, -- 98: {lang: 0x1, script: 0x5a, flags: 0x0}, -- 99: {lang: 0x101, script: 0x5a, flags: 0x0}, -- 101: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 103: {lang: 0x10, script: 0x2, flags: 0x1}, -- 104: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 105: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 106: {lang: 0x140, script: 0x5a, flags: 0x0}, -- 107: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 84: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 85: {lang: 0x0, script: 0x5b, flags: 0x0}, -+ 87: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 90: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 91: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 92: {lang: 0x3a1, script: 0x5b, flags: 0x0}, -+ 94: {lang: 0xe, script: 0x2, flags: 0x1}, -+ 95: {lang: 0xfa, script: 0x5b, flags: 0x0}, -+ 97: {lang: 0x10d, script: 0x5b, flags: 0x0}, -+ 99: {lang: 0x1, script: 0x5b, flags: 0x0}, -+ 100: {lang: 0x101, script: 0x5b, flags: 0x0}, -+ 102: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 104: {lang: 0x10, script: 0x2, flags: 0x1}, -+ 105: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 106: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 107: {lang: 0x140, script: 0x5b, flags: 0x0}, - 108: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 109: {lang: 0x46f, script: 0x2c, flags: 0x0}, -- 110: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 111: {lang: 0x12, script: 0x2, flags: 0x1}, -- 113: {lang: 0x10d, script: 0x5a, flags: 0x0}, -- 114: {lang: 0x151, script: 0x5a, flags: 0x0}, -- 115: {lang: 0x1c0, script: 0x22, flags: 0x2}, -- 118: {lang: 0x158, script: 0x5a, flags: 0x0}, -- 120: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 122: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 123: {lang: 0x14, script: 0x2, flags: 0x1}, -- 125: {lang: 0x16, script: 0x3, flags: 0x1}, -- 126: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 128: {lang: 0x21, script: 0x5a, flags: 0x0}, -- 130: {lang: 0x245, script: 0x5a, flags: 0x0}, -- 132: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 133: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 134: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 135: {lang: 0x19, script: 0x2, flags: 0x1}, -- 136: {lang: 0x0, script: 0x5a, flags: 0x0}, -- 137: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 139: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 141: {lang: 0x529, script: 0x3c, flags: 0x0}, -- 142: {lang: 0x0, script: 0x5a, flags: 0x0}, -- 143: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 144: {lang: 0x1d1, script: 0x5a, flags: 0x0}, -- 145: {lang: 0x1d4, script: 0x5a, flags: 0x0}, -- 146: {lang: 0x1d5, script: 0x5a, flags: 0x0}, -- 148: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 149: {lang: 0x1b, script: 0x2, flags: 0x1}, -- 151: {lang: 0x1bc, script: 0x3e, flags: 0x0}, -- 153: {lang: 0x1d, script: 0x3, flags: 0x1}, -- 155: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 156: {lang: 0x20, script: 0x2, flags: 0x1}, -- 157: {lang: 0x1f8, script: 0x5a, flags: 0x0}, -- 158: {lang: 0x1f9, script: 0x5a, flags: 0x0}, -- 161: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 162: {lang: 0x200, script: 0x49, flags: 0x0}, -- 164: {lang: 0x445, script: 0x5a, flags: 0x0}, -- 165: {lang: 0x28a, script: 0x20, flags: 0x0}, -- 166: {lang: 0x22, script: 0x3, flags: 0x1}, -- 168: {lang: 0x25, script: 0x2, flags: 0x1}, -- 170: {lang: 0x254, script: 0x53, flags: 0x0}, -- 171: {lang: 0x254, script: 0x53, flags: 0x0}, -- 172: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 174: {lang: 0x3e2, script: 0x20, flags: 0x0}, -- 175: {lang: 0x27, script: 0x2, flags: 0x1}, -- 176: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 178: {lang: 0x10d, script: 0x5a, flags: 0x0}, -- 179: {lang: 0x40c, script: 0xd4, flags: 0x0}, -- 181: {lang: 0x43b, script: 0x5a, flags: 0x0}, -- 182: {lang: 0x2c0, script: 0x5a, flags: 0x0}, -- 183: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 184: {lang: 0x2c7, script: 0x5a, flags: 0x0}, -- 185: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 186: {lang: 0x29, script: 0x2, flags: 0x1}, -- 187: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 188: {lang: 0x2b, script: 0x2, flags: 0x1}, -- 189: {lang: 0x432, script: 0x5a, flags: 0x0}, -- 190: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 191: {lang: 0x2f1, script: 0x5a, flags: 0x0}, -- 194: {lang: 0x2d, script: 0x2, flags: 0x1}, -- 195: {lang: 0xa0, script: 0x5a, flags: 0x0}, -- 196: {lang: 0x2f, script: 0x2, flags: 0x1}, -- 197: {lang: 0x31, script: 0x2, flags: 0x1}, -- 198: {lang: 0x33, script: 0x2, flags: 0x1}, -- 200: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 201: {lang: 0x35, script: 0x2, flags: 0x1}, -- 203: {lang: 0x320, script: 0x5a, flags: 0x0}, -- 204: {lang: 0x37, script: 0x3, flags: 0x1}, -- 205: {lang: 0x128, script: 0xea, flags: 0x0}, -- 207: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 208: {lang: 0x31f, script: 0x5a, flags: 0x0}, -- 209: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 210: {lang: 0x16, script: 0x5a, flags: 0x0}, -- 211: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 212: {lang: 0x1b4, script: 0x5a, flags: 0x0}, -- 214: {lang: 0x1b4, script: 0x5, flags: 0x2}, -- 216: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 217: {lang: 0x367, script: 0x5a, flags: 0x0}, -- 218: {lang: 0x347, script: 0x5a, flags: 0x0}, -- 219: {lang: 0x351, script: 0x22, flags: 0x0}, -- 225: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 226: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 228: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 229: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 230: {lang: 0x486, script: 0x5a, flags: 0x0}, -- 231: {lang: 0x153, script: 0x5a, flags: 0x0}, -- 232: {lang: 0x3a, script: 0x3, flags: 0x1}, -- 233: {lang: 0x3b3, script: 0x5a, flags: 0x0}, -- 234: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 236: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 237: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 238: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 240: {lang: 0x3a2, script: 0x5a, flags: 0x0}, -- 241: {lang: 0x194, script: 0x5a, flags: 0x0}, -- 243: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 258: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 260: {lang: 0x3d, script: 0x2, flags: 0x1}, -- 261: {lang: 0x432, script: 0x20, flags: 0x0}, -- 262: {lang: 0x3f, script: 0x2, flags: 0x1}, -- 263: {lang: 0x3e5, script: 0x5a, flags: 0x0}, -- 264: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 266: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 267: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 268: {lang: 0x41, script: 0x2, flags: 0x1}, -- 271: {lang: 0x416, script: 0x5a, flags: 0x0}, -- 272: {lang: 0x347, script: 0x5a, flags: 0x0}, -- 273: {lang: 0x43, script: 0x2, flags: 0x1}, -- 275: {lang: 0x1f9, script: 0x5a, flags: 0x0}, -- 276: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 277: {lang: 0x429, script: 0x5a, flags: 0x0}, -- 278: {lang: 0x367, script: 0x5a, flags: 0x0}, -- 280: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 282: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 284: {lang: 0x45, script: 0x2, flags: 0x1}, -- 288: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 289: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 290: {lang: 0x47, script: 0x2, flags: 0x1}, -- 291: {lang: 0x49, script: 0x3, flags: 0x1}, -- 292: {lang: 0x4c, script: 0x2, flags: 0x1}, -- 293: {lang: 0x477, script: 0x5a, flags: 0x0}, -- 294: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -- 295: {lang: 0x476, script: 0x5a, flags: 0x0}, -- 296: {lang: 0x4e, script: 0x2, flags: 0x1}, -- 297: {lang: 0x482, script: 0x5a, flags: 0x0}, -- 299: {lang: 0x50, script: 0x4, flags: 0x1}, -- 301: {lang: 0x4a0, script: 0x5a, flags: 0x0}, -- 302: {lang: 0x54, script: 0x2, flags: 0x1}, -- 303: {lang: 0x445, script: 0x5a, flags: 0x0}, -- 304: {lang: 0x56, script: 0x3, flags: 0x1}, -- 305: {lang: 0x445, script: 0x5a, flags: 0x0}, -- 309: {lang: 0x512, script: 0x3e, flags: 0x2}, -- 310: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 311: {lang: 0x4bc, script: 0x5a, flags: 0x0}, -- 312: {lang: 0x1f9, script: 0x5a, flags: 0x0}, -- 315: {lang: 0x13e, script: 0x5a, flags: 0x0}, -- 318: {lang: 0x4c3, script: 0x5a, flags: 0x0}, -- 319: {lang: 0x8a, script: 0x5a, flags: 0x0}, -- 320: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 322: {lang: 0x41b, script: 0x5a, flags: 0x0}, -- 333: {lang: 0x59, script: 0x2, flags: 0x1}, -- 350: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 351: {lang: 0x5b, script: 0x2, flags: 0x1}, -- 356: {lang: 0x423, script: 0x5a, flags: 0x0}, -+ 109: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 110: {lang: 0x46f, script: 0x2c, flags: 0x0}, -+ 111: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 112: {lang: 0x12, script: 0x2, flags: 0x1}, -+ 114: {lang: 0x10d, script: 0x5b, flags: 0x0}, -+ 115: {lang: 0x151, script: 0x5b, flags: 0x0}, -+ 116: {lang: 0x1c0, script: 0x22, flags: 0x2}, -+ 119: {lang: 0x158, script: 0x5b, flags: 0x0}, -+ 121: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 123: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 124: {lang: 0x14, script: 0x2, flags: 0x1}, -+ 126: {lang: 0x16, script: 0x3, flags: 0x1}, -+ 127: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 129: {lang: 0x21, script: 0x5b, flags: 0x0}, -+ 131: {lang: 0x245, script: 0x5b, flags: 0x0}, -+ 133: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 134: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 135: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 136: {lang: 0x19, script: 0x2, flags: 0x1}, -+ 137: {lang: 0x0, script: 0x5b, flags: 0x0}, -+ 138: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 140: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 142: {lang: 0x529, script: 0x3c, flags: 0x0}, -+ 143: {lang: 0x0, script: 0x5b, flags: 0x0}, -+ 144: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 145: {lang: 0x1d1, script: 0x5b, flags: 0x0}, -+ 146: {lang: 0x1d4, script: 0x5b, flags: 0x0}, -+ 147: {lang: 0x1d5, script: 0x5b, flags: 0x0}, -+ 149: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 150: {lang: 0x1b, script: 0x2, flags: 0x1}, -+ 152: {lang: 0x1bc, script: 0x3e, flags: 0x0}, -+ 154: {lang: 0x1d, script: 0x3, flags: 0x1}, -+ 156: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 157: {lang: 0x20, script: 0x2, flags: 0x1}, -+ 158: {lang: 0x1f8, script: 0x5b, flags: 0x0}, -+ 159: {lang: 0x1f9, script: 0x5b, flags: 0x0}, -+ 162: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 163: {lang: 0x200, script: 0x49, flags: 0x0}, -+ 165: {lang: 0x445, script: 0x5b, flags: 0x0}, -+ 166: {lang: 0x28a, script: 0x20, flags: 0x0}, -+ 167: {lang: 0x22, script: 0x3, flags: 0x1}, -+ 169: {lang: 0x25, script: 0x2, flags: 0x1}, -+ 171: {lang: 0x254, script: 0x54, flags: 0x0}, -+ 172: {lang: 0x254, script: 0x54, flags: 0x0}, -+ 173: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 175: {lang: 0x3e2, script: 0x20, flags: 0x0}, -+ 176: {lang: 0x27, script: 0x2, flags: 0x1}, -+ 177: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 179: {lang: 0x10d, script: 0x5b, flags: 0x0}, -+ 180: {lang: 0x40c, script: 0xd6, flags: 0x0}, -+ 182: {lang: 0x43b, script: 0x5b, flags: 0x0}, -+ 183: {lang: 0x2c0, script: 0x5b, flags: 0x0}, -+ 184: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 185: {lang: 0x2c7, script: 0x5b, flags: 0x0}, -+ 186: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 187: {lang: 0x29, script: 0x2, flags: 0x1}, -+ 188: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 189: {lang: 0x2b, script: 0x2, flags: 0x1}, -+ 190: {lang: 0x432, script: 0x5b, flags: 0x0}, -+ 191: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 192: {lang: 0x2f1, script: 0x5b, flags: 0x0}, -+ 195: {lang: 0x2d, script: 0x2, flags: 0x1}, -+ 196: {lang: 0xa0, script: 0x5b, flags: 0x0}, -+ 197: {lang: 0x2f, script: 0x2, flags: 0x1}, -+ 198: {lang: 0x31, script: 0x2, flags: 0x1}, -+ 199: {lang: 0x33, script: 0x2, flags: 0x1}, -+ 201: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 202: {lang: 0x35, script: 0x2, flags: 0x1}, -+ 204: {lang: 0x320, script: 0x5b, flags: 0x0}, -+ 205: {lang: 0x37, script: 0x3, flags: 0x1}, -+ 206: {lang: 0x128, script: 0xed, flags: 0x0}, -+ 208: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 209: {lang: 0x31f, script: 0x5b, flags: 0x0}, -+ 210: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 211: {lang: 0x16, script: 0x5b, flags: 0x0}, -+ 212: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 213: {lang: 0x1b4, script: 0x5b, flags: 0x0}, -+ 215: {lang: 0x1b4, script: 0x5, flags: 0x2}, -+ 217: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 218: {lang: 0x367, script: 0x5b, flags: 0x0}, -+ 219: {lang: 0x347, script: 0x5b, flags: 0x0}, -+ 220: {lang: 0x351, script: 0x22, flags: 0x0}, -+ 226: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 227: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 229: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 230: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 231: {lang: 0x486, script: 0x5b, flags: 0x0}, -+ 232: {lang: 0x153, script: 0x5b, flags: 0x0}, -+ 233: {lang: 0x3a, script: 0x3, flags: 0x1}, -+ 234: {lang: 0x3b3, script: 0x5b, flags: 0x0}, -+ 235: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 237: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 238: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 239: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 241: {lang: 0x3a2, script: 0x5b, flags: 0x0}, -+ 242: {lang: 0x194, script: 0x5b, flags: 0x0}, -+ 244: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 259: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 261: {lang: 0x3d, script: 0x2, flags: 0x1}, -+ 262: {lang: 0x432, script: 0x20, flags: 0x0}, -+ 263: {lang: 0x3f, script: 0x2, flags: 0x1}, -+ 264: {lang: 0x3e5, script: 0x5b, flags: 0x0}, -+ 265: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 267: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 268: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 269: {lang: 0x41, script: 0x2, flags: 0x1}, -+ 272: {lang: 0x416, script: 0x5b, flags: 0x0}, -+ 273: {lang: 0x347, script: 0x5b, flags: 0x0}, -+ 274: {lang: 0x43, script: 0x2, flags: 0x1}, -+ 276: {lang: 0x1f9, script: 0x5b, flags: 0x0}, -+ 277: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 278: {lang: 0x429, script: 0x5b, flags: 0x0}, -+ 279: {lang: 0x367, script: 0x5b, flags: 0x0}, -+ 281: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 283: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 285: {lang: 0x45, script: 0x2, flags: 0x1}, -+ 289: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 290: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 291: {lang: 0x47, script: 0x2, flags: 0x1}, -+ 292: {lang: 0x49, script: 0x3, flags: 0x1}, -+ 293: {lang: 0x4c, script: 0x2, flags: 0x1}, -+ 294: {lang: 0x477, script: 0x5b, flags: 0x0}, -+ 295: {lang: 0x3c0, script: 0x5b, flags: 0x0}, -+ 296: {lang: 0x476, script: 0x5b, flags: 0x0}, -+ 297: {lang: 0x4e, script: 0x2, flags: 0x1}, -+ 298: {lang: 0x482, script: 0x5b, flags: 0x0}, -+ 300: {lang: 0x50, script: 0x4, flags: 0x1}, -+ 302: {lang: 0x4a0, script: 0x5b, flags: 0x0}, -+ 303: {lang: 0x54, script: 0x2, flags: 0x1}, -+ 304: {lang: 0x445, script: 0x5b, flags: 0x0}, -+ 305: {lang: 0x56, script: 0x3, flags: 0x1}, -+ 306: {lang: 0x445, script: 0x5b, flags: 0x0}, -+ 310: {lang: 0x512, script: 0x3e, flags: 0x2}, -+ 311: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 312: {lang: 0x4bc, script: 0x5b, flags: 0x0}, -+ 313: {lang: 0x1f9, script: 0x5b, flags: 0x0}, -+ 316: {lang: 0x13e, script: 0x5b, flags: 0x0}, -+ 319: {lang: 0x4c3, script: 0x5b, flags: 0x0}, -+ 320: {lang: 0x8a, script: 0x5b, flags: 0x0}, -+ 321: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 323: {lang: 0x41b, script: 0x5b, flags: 0x0}, -+ 334: {lang: 0x59, script: 0x2, flags: 0x1}, -+ 351: {lang: 0x3a, script: 0x5, flags: 0x0}, -+ 352: {lang: 0x5b, script: 0x2, flags: 0x1}, -+ 357: {lang: 0x423, script: 0x5b, flags: 0x0}, - } - - // likelyRegionList holds lists info associated with likelyRegion. - // Size: 558 bytes, 93 elements - var likelyRegionList = [93]likelyLangScript{ - 0: {lang: 0x148, script: 0x5, flags: 0x0}, -- 1: {lang: 0x476, script: 0x5a, flags: 0x0}, -- 2: {lang: 0x431, script: 0x5a, flags: 0x0}, -+ 1: {lang: 0x476, script: 0x5b, flags: 0x0}, -+ 2: {lang: 0x431, script: 0x5b, flags: 0x0}, - 3: {lang: 0x2ff, script: 0x20, flags: 0x0}, - 4: {lang: 0x1d7, script: 0x8, flags: 0x0}, -- 5: {lang: 0x274, script: 0x5a, flags: 0x0}, -- 6: {lang: 0xb7, script: 0x5a, flags: 0x0}, -+ 5: {lang: 0x274, script: 0x5b, flags: 0x0}, -+ 6: {lang: 0xb7, script: 0x5b, flags: 0x0}, - 7: {lang: 0x432, script: 0x20, flags: 0x0}, -- 8: {lang: 0x12d, script: 0xec, flags: 0x0}, -+ 8: {lang: 0x12d, script: 0xef, flags: 0x0}, - 9: {lang: 0x351, script: 0x22, flags: 0x0}, - 10: {lang: 0x529, script: 0x3b, flags: 0x0}, - 11: {lang: 0x4ac, script: 0x5, flags: 0x0}, -- 12: {lang: 0x523, script: 0x5a, flags: 0x0}, -- 13: {lang: 0x29a, script: 0xeb, flags: 0x0}, -+ 12: {lang: 0x523, script: 0x5b, flags: 0x0}, -+ 13: {lang: 0x29a, script: 0xee, flags: 0x0}, - 14: {lang: 0x136, script: 0x34, flags: 0x0}, -- 15: {lang: 0x48a, script: 0x5a, flags: 0x0}, -+ 15: {lang: 0x48a, script: 0x5b, flags: 0x0}, - 16: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 17: {lang: 0x15e, script: 0x5a, flags: 0x0}, -+ 17: {lang: 0x15e, script: 0x5b, flags: 0x0}, - 18: {lang: 0x27, script: 0x2c, flags: 0x0}, -- 19: {lang: 0x139, script: 0x5a, flags: 0x0}, -+ 19: {lang: 0x139, script: 0x5b, flags: 0x0}, - 20: {lang: 0x26a, script: 0x5, flags: 0x2}, - 21: {lang: 0x512, script: 0x3e, flags: 0x2}, - 22: {lang: 0x210, script: 0x2e, flags: 0x0}, - 23: {lang: 0x5, script: 0x20, flags: 0x0}, -- 24: {lang: 0x274, script: 0x5a, flags: 0x0}, -+ 24: {lang: 0x274, script: 0x5b, flags: 0x0}, - 25: {lang: 0x136, script: 0x34, flags: 0x0}, - 26: {lang: 0x2ff, script: 0x20, flags: 0x0}, -- 27: {lang: 0x1e1, script: 0x5a, flags: 0x0}, -+ 27: {lang: 0x1e1, script: 0x5b, flags: 0x0}, - 28: {lang: 0x31f, script: 0x5, flags: 0x0}, - 29: {lang: 0x1be, script: 0x22, flags: 0x0}, - 30: {lang: 0x4b4, script: 0x5, flags: 0x0}, -- 31: {lang: 0x236, script: 0x75, flags: 0x0}, -+ 31: {lang: 0x236, script: 0x76, flags: 0x0}, - 32: {lang: 0x148, script: 0x5, flags: 0x0}, -- 33: {lang: 0x476, script: 0x5a, flags: 0x0}, -- 34: {lang: 0x24a, script: 0x4e, flags: 0x0}, -+ 33: {lang: 0x476, script: 0x5b, flags: 0x0}, -+ 34: {lang: 0x24a, script: 0x4f, flags: 0x0}, - 35: {lang: 0xe6, script: 0x5, flags: 0x0}, -- 36: {lang: 0x226, script: 0xeb, flags: 0x0}, -+ 36: {lang: 0x226, script: 0xee, flags: 0x0}, - 37: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 38: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 39: {lang: 0x2b8, script: 0x57, flags: 0x0}, -- 40: {lang: 0x226, script: 0xeb, flags: 0x0}, -+ 38: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 39: {lang: 0x2b8, script: 0x58, flags: 0x0}, -+ 40: {lang: 0x226, script: 0xee, flags: 0x0}, - 41: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 42: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 43: {lang: 0x3dc, script: 0x5a, flags: 0x0}, -+ 42: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 43: {lang: 0x3dc, script: 0x5b, flags: 0x0}, - 44: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 45: {lang: 0x2ff, script: 0x20, flags: 0x0}, -- 46: {lang: 0x431, script: 0x5a, flags: 0x0}, -- 47: {lang: 0x331, script: 0x75, flags: 0x0}, -- 48: {lang: 0x213, script: 0x5a, flags: 0x0}, -+ 46: {lang: 0x431, script: 0x5b, flags: 0x0}, -+ 47: {lang: 0x331, script: 0x76, flags: 0x0}, -+ 48: {lang: 0x213, script: 0x5b, flags: 0x0}, - 49: {lang: 0x30b, script: 0x20, flags: 0x0}, - 50: {lang: 0x242, script: 0x5, flags: 0x0}, - 51: {lang: 0x529, script: 0x3c, flags: 0x0}, -- 52: {lang: 0x3c0, script: 0x5a, flags: 0x0}, -+ 52: {lang: 0x3c0, script: 0x5b, flags: 0x0}, - 53: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 54: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 55: {lang: 0x2ed, script: 0x5a, flags: 0x0}, -+ 54: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 55: {lang: 0x2ed, script: 0x5b, flags: 0x0}, - 56: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 57: {lang: 0x88, script: 0x22, flags: 0x0}, - 58: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 59: {lang: 0x4b4, script: 0x5, flags: 0x0}, - 60: {lang: 0xbe, script: 0x22, flags: 0x0}, -- 61: {lang: 0x3dc, script: 0x5a, flags: 0x0}, -+ 61: {lang: 0x3dc, script: 0x5b, flags: 0x0}, - 62: {lang: 0x7e, script: 0x20, flags: 0x0}, - 63: {lang: 0x3e2, script: 0x20, flags: 0x0}, -- 64: {lang: 0x267, script: 0x5a, flags: 0x0}, -- 65: {lang: 0x444, script: 0x5a, flags: 0x0}, -+ 64: {lang: 0x267, script: 0x5b, flags: 0x0}, -+ 65: {lang: 0x444, script: 0x5b, flags: 0x0}, - 66: {lang: 0x512, script: 0x3e, flags: 0x0}, -- 67: {lang: 0x412, script: 0x5a, flags: 0x0}, -+ 67: {lang: 0x412, script: 0x5b, flags: 0x0}, - 68: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 69: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 70: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 71: {lang: 0x15e, script: 0x5a, flags: 0x0}, -+ 70: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 71: {lang: 0x15e, script: 0x5b, flags: 0x0}, - 72: {lang: 0x35, script: 0x5, flags: 0x0}, -- 73: {lang: 0x46b, script: 0xeb, flags: 0x0}, -+ 73: {lang: 0x46b, script: 0xee, flags: 0x0}, - 74: {lang: 0x2ec, script: 0x5, flags: 0x0}, -- 75: {lang: 0x30f, script: 0x75, flags: 0x0}, -+ 75: {lang: 0x30f, script: 0x76, flags: 0x0}, - 76: {lang: 0x467, script: 0x20, flags: 0x0}, - 77: {lang: 0x148, script: 0x5, flags: 0x0}, - 78: {lang: 0x3a, script: 0x5, flags: 0x0}, -- 79: {lang: 0x15e, script: 0x5a, flags: 0x0}, -- 80: {lang: 0x48a, script: 0x5a, flags: 0x0}, -+ 79: {lang: 0x15e, script: 0x5b, flags: 0x0}, -+ 80: {lang: 0x48a, script: 0x5b, flags: 0x0}, - 81: {lang: 0x58, script: 0x5, flags: 0x0}, - 82: {lang: 0x219, script: 0x20, flags: 0x0}, - 83: {lang: 0x81, script: 0x34, flags: 0x0}, - 84: {lang: 0x529, script: 0x3c, flags: 0x0}, -- 85: {lang: 0x48c, script: 0x5a, flags: 0x0}, -+ 85: {lang: 0x48c, script: 0x5b, flags: 0x0}, - 86: {lang: 0x4ae, script: 0x20, flags: 0x0}, - 87: {lang: 0x512, script: 0x3e, flags: 0x0}, -- 88: {lang: 0x3b3, script: 0x5a, flags: 0x0}, -- 89: {lang: 0x431, script: 0x5a, flags: 0x0}, -+ 88: {lang: 0x3b3, script: 0x5b, flags: 0x0}, -+ 89: {lang: 0x431, script: 0x5b, flags: 0x0}, - 90: {lang: 0x432, script: 0x20, flags: 0x0}, -- 91: {lang: 0x15e, script: 0x5a, flags: 0x0}, -+ 91: {lang: 0x15e, script: 0x5b, flags: 0x0}, - 92: {lang: 0x446, script: 0x5, flags: 0x0}, - } - -@@ -3298,38 +3320,38 @@ type likelyTag struct { - - // Size: 198 bytes, 33 elements - var likelyRegionGroup = [33]likelyTag{ -- 1: {lang: 0x139, region: 0xd6, script: 0x5a}, -- 2: {lang: 0x139, region: 0x135, script: 0x5a}, -- 3: {lang: 0x3c0, region: 0x41, script: 0x5a}, -- 4: {lang: 0x139, region: 0x2f, script: 0x5a}, -- 5: {lang: 0x139, region: 0xd6, script: 0x5a}, -- 6: {lang: 0x13e, region: 0xcf, script: 0x5a}, -- 7: {lang: 0x445, region: 0x12f, script: 0x5a}, -- 8: {lang: 0x3a, region: 0x6b, script: 0x5}, -- 9: {lang: 0x445, region: 0x4b, script: 0x5a}, -- 10: {lang: 0x139, region: 0x161, script: 0x5a}, -- 11: {lang: 0x139, region: 0x135, script: 0x5a}, -- 12: {lang: 0x139, region: 0x135, script: 0x5a}, -- 13: {lang: 0x13e, region: 0x59, script: 0x5a}, -+ 1: {lang: 0x139, region: 0xd7, script: 0x5b}, -+ 2: {lang: 0x139, region: 0x136, script: 0x5b}, -+ 3: {lang: 0x3c0, region: 0x41, script: 0x5b}, -+ 4: {lang: 0x139, region: 0x2f, script: 0x5b}, -+ 5: {lang: 0x139, region: 0xd7, script: 0x5b}, -+ 6: {lang: 0x13e, region: 0xd0, script: 0x5b}, -+ 7: {lang: 0x445, region: 0x130, script: 0x5b}, -+ 8: {lang: 0x3a, region: 0x6c, script: 0x5}, -+ 9: {lang: 0x445, region: 0x4b, script: 0x5b}, -+ 10: {lang: 0x139, region: 0x162, script: 0x5b}, -+ 11: {lang: 0x139, region: 0x136, script: 0x5b}, -+ 12: {lang: 0x139, region: 0x136, script: 0x5b}, -+ 13: {lang: 0x13e, region: 0x5a, script: 0x5b}, - 14: {lang: 0x529, region: 0x53, script: 0x3b}, -- 15: {lang: 0x1be, region: 0x99, script: 0x22}, -- 16: {lang: 0x1e1, region: 0x95, script: 0x5a}, -- 17: {lang: 0x1f9, region: 0x9e, script: 0x5a}, -- 18: {lang: 0x139, region: 0x2f, script: 0x5a}, -- 19: {lang: 0x139, region: 0xe6, script: 0x5a}, -- 20: {lang: 0x139, region: 0x8a, script: 0x5a}, -- 21: {lang: 0x41b, region: 0x142, script: 0x5a}, -+ 15: {lang: 0x1be, region: 0x9a, script: 0x22}, -+ 16: {lang: 0x1e1, region: 0x96, script: 0x5b}, -+ 17: {lang: 0x1f9, region: 0x9f, script: 0x5b}, -+ 18: {lang: 0x139, region: 0x2f, script: 0x5b}, -+ 19: {lang: 0x139, region: 0xe7, script: 0x5b}, -+ 20: {lang: 0x139, region: 0x8b, script: 0x5b}, -+ 21: {lang: 0x41b, region: 0x143, script: 0x5b}, - 22: {lang: 0x529, region: 0x53, script: 0x3b}, -- 23: {lang: 0x4bc, region: 0x137, script: 0x5a}, -- 24: {lang: 0x3a, region: 0x108, script: 0x5}, -- 25: {lang: 0x3e2, region: 0x106, script: 0x20}, -- 26: {lang: 0x3e2, region: 0x106, script: 0x20}, -- 27: {lang: 0x139, region: 0x7b, script: 0x5a}, -- 28: {lang: 0x10d, region: 0x60, script: 0x5a}, -- 29: {lang: 0x139, region: 0xd6, script: 0x5a}, -- 30: {lang: 0x13e, region: 0x1f, script: 0x5a}, -- 31: {lang: 0x139, region: 0x9a, script: 0x5a}, -- 32: {lang: 0x139, region: 0x7b, script: 0x5a}, -+ 23: {lang: 0x4bc, region: 0x138, script: 0x5b}, -+ 24: {lang: 0x3a, region: 0x109, script: 0x5}, -+ 25: {lang: 0x3e2, region: 0x107, script: 0x20}, -+ 26: {lang: 0x3e2, region: 0x107, script: 0x20}, -+ 27: {lang: 0x139, region: 0x7c, script: 0x5b}, -+ 28: {lang: 0x10d, region: 0x61, script: 0x5b}, -+ 29: {lang: 0x139, region: 0xd7, script: 0x5b}, -+ 30: {lang: 0x13e, region: 0x1f, script: 0x5b}, -+ 31: {lang: 0x139, region: 0x9b, script: 0x5b}, -+ 32: {lang: 0x139, region: 0x7c, script: 0x5b}, - } - - // Size: 264 bytes, 33 elements -@@ -3350,8 +3372,8 @@ var regionContainment = [33]uint64{ - // regionInclusion maps region identifiers to sets of regions in regionInclusionBits, - // where each set holds all groupings that are directly connected in a region - // containment graph. --// Size: 358 bytes, 358 elements --var regionInclusion = [358]uint8{ -+// Size: 359 bytes, 359 elements -+var regionInclusion = [359]uint8{ - // Entry 0 - 3F - 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, - 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, -@@ -3364,45 +3386,45 @@ var regionInclusion = [358]uint8{ - // Entry 40 - 7F - 0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33, - 0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d, -- 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x34, 0x23, -- 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, 0x35, -- 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, 0x39, -- 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, 0x2f, -- 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, 0x21, -- 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, 0x2c, -+ 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x21, 0x34, -+ 0x23, 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, -+ 0x35, 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, -+ 0x39, 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, -+ 0x2f, 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, -+ 0x21, 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, - // Entry 80 - BF -- 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, 0x3a, -- 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, 0x34, -- 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, 0x24, -- 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, 0x2c, -- 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, 0x3c, -- 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, 0x31, -- 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, 0x2a, -- 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, 0x2f, -+ 0x2c, 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, -+ 0x3a, 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, -+ 0x34, 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, -+ 0x24, 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, -+ 0x2c, 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, -+ 0x3c, 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, -+ 0x31, 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, -+ 0x2a, 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, - // Entry C0 - FF -- 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, 0x3c, -- 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, 0x34, -- 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, 0x21, -- 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, 0x29, -- 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, 0x31, -- 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, 0x21, -- 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, 0x21, -+ 0x2f, 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, -+ 0x3c, 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, -+ 0x34, 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, -+ 0x21, 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, -+ 0x29, 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, -+ 0x31, 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, -+ 0x21, 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, - // Entry 100 - 13F -- 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, 0x2f, -- 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, 0x3a, -- 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, 0x2f, -- 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, 0x26, -- 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, 0x3d, -- 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, 0x2f, -- 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, 0x3d, -- 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, 0x3b, -+ 0x21, 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, -+ 0x2f, 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, -+ 0x3a, 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, -+ 0x2f, 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, -+ 0x26, 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, -+ 0x3d, 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, -+ 0x2f, 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, -+ 0x3d, 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, - // Entry 140 - 17F -- 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, 0x21, -- 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, 0x21, -+ 0x3b, 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, -+ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, - 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, -- 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, 0x2f, -- 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, -+ 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, -+ 0x2f, 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, - } - - // regionInclusionBits is an array of bit vectors where every vector represents -@@ -3462,11 +3484,11 @@ type parentRel struct { - - // Size: 414 bytes, 5 elements - var parents = [5]parentRel{ -- 0: {lang: 0x139, script: 0x0, maxScript: 0x5a, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5c, 0x5d, 0x61, 0x64, 0x6d, 0x73, 0x74, 0x75, 0x7b, 0x7c, 0x7f, 0x80, 0x81, 0x83, 0x8c, 0x8d, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9f, 0xa0, 0xa4, 0xa7, 0xa9, 0xad, 0xb1, 0xb4, 0xb5, 0xbf, 0xc6, 0xca, 0xcb, 0xcc, 0xce, 0xd0, 0xd2, 0xd5, 0xd6, 0xdd, 0xdf, 0xe0, 0xe6, 0xe7, 0xe8, 0xeb, 0xf0, 0x107, 0x109, 0x10a, 0x10b, 0x10d, 0x10e, 0x112, 0x117, 0x11b, 0x11d, 0x11f, 0x125, 0x129, 0x12c, 0x12d, 0x12f, 0x131, 0x139, 0x13c, 0x13f, 0x142, 0x161, 0x162, 0x164}}, -- 1: {lang: 0x139, script: 0x0, maxScript: 0x5a, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x60, 0x63, 0x72, 0xd9, 0x10c, 0x10f}}, -- 2: {lang: 0x13e, script: 0x0, maxScript: 0x5a, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x56, 0x59, 0x65, 0x69, 0x89, 0x8f, 0xcf, 0xd8, 0xe2, 0xe4, 0xec, 0xf1, 0x11a, 0x135, 0x136, 0x13b}}, -- 3: {lang: 0x3c0, script: 0x0, maxScript: 0x5a, toRegion: 0xee, fromRegion: []uint16{0x2a, 0x4e, 0x5a, 0x86, 0x8b, 0xb7, 0xc6, 0xd1, 0x118, 0x126}}, -- 4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8d, fromRegion: []uint16{0xc6}}, -+ 0: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5d, 0x5e, 0x62, 0x65, 0x6e, 0x74, 0x75, 0x76, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x84, 0x8d, 0x8e, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0xa0, 0xa1, 0xa5, 0xa8, 0xaa, 0xae, 0xb2, 0xb5, 0xb6, 0xc0, 0xc7, 0xcb, 0xcc, 0xcd, 0xcf, 0xd1, 0xd3, 0xd6, 0xd7, 0xde, 0xe0, 0xe1, 0xe7, 0xe8, 0xe9, 0xec, 0xf1, 0x108, 0x10a, 0x10b, 0x10c, 0x10e, 0x10f, 0x113, 0x118, 0x11c, 0x11e, 0x120, 0x126, 0x12a, 0x12d, 0x12e, 0x130, 0x132, 0x13a, 0x13d, 0x140, 0x143, 0x162, 0x163, 0x165}}, -+ 1: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x61, 0x64, 0x73, 0xda, 0x10d, 0x110}}, -+ 2: {lang: 0x13e, script: 0x0, maxScript: 0x5b, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x57, 0x5a, 0x66, 0x6a, 0x8a, 0x90, 0xd0, 0xd9, 0xe3, 0xe5, 0xed, 0xf2, 0x11b, 0x136, 0x137, 0x13c}}, -+ 3: {lang: 0x3c0, script: 0x0, maxScript: 0x5b, toRegion: 0xef, fromRegion: []uint16{0x2a, 0x4e, 0x5b, 0x87, 0x8c, 0xb8, 0xc7, 0xd2, 0x119, 0x127}}, -+ 4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8e, fromRegion: []uint16{0xc7}}, - } - --// Total table size 30244 bytes (29KiB); checksum: B6B15F30 -+// Total table size 30466 bytes (29KiB); checksum: 7544152B -diff --git a/vendor/golang.org/x/text/language/match.go b/vendor/golang.org/x/text/language/match.go -index ee45f494..1153baf2 100644 ---- a/vendor/golang.org/x/text/language/match.go -+++ b/vendor/golang.org/x/text/language/match.go -@@ -434,7 +434,7 @@ func newMatcher(supported []Tag, options []MatchOption) *matcher { - // (their canonicalization simply substitutes a different language code, but - // nothing else), the match confidence is Exact, otherwise it is High. - for i, lm := range language.AliasMap { -- // If deprecated codes match and there is no fiddling with the script or -+ // If deprecated codes match and there is no fiddling with the script - // or region, we consider it an exact match. - conf := Exact - if language.AliasTypes[i] != language.Macro { -diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go -index 34a732b6..a6573dcb 100644 ---- a/vendor/golang.org/x/text/language/tables.go -+++ b/vendor/golang.org/x/text/language/tables.go -@@ -23,31 +23,31 @@ const ( - _419 = 31 - _BR = 65 - _CA = 73 -- _ES = 110 -- _GB = 123 -- _MD = 188 -- _PT = 238 -- _UK = 306 -- _US = 309 -- _ZZ = 357 -- _XA = 323 -- _XC = 325 -- _XK = 333 -+ _ES = 111 -+ _GB = 124 -+ _MD = 189 -+ _PT = 239 -+ _UK = 307 -+ _US = 310 -+ _ZZ = 358 -+ _XA = 324 -+ _XC = 326 -+ _XK = 334 - ) - const ( -- _Latn = 90 -+ _Latn = 91 - _Hani = 57 - _Hans = 59 - _Hant = 60 -- _Qaaa = 147 -- _Qaai = 155 -- _Qabx = 196 -- _Zinh = 252 -- _Zyyy = 257 -- _Zzzz = 258 -+ _Qaaa = 149 -+ _Qaai = 157 -+ _Qabx = 198 -+ _Zinh = 255 -+ _Zyyy = 260 -+ _Zzzz = 261 - ) - --var regionToGroups = []uint8{ // 358 elements -+var regionToGroups = []uint8{ // 359 elements - // Entry 0 - 3F - 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, -@@ -60,51 +60,51 @@ var regionToGroups = []uint8{ // 358 elements - // Entry 40 - 7F - 0x04, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, -- 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x08, -- 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, -+ 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, -+ 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, -+ 0x08, 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, - // Entry 80 - BF -- 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x00, -- 0x00, 0x04, 0x01, 0x00, 0x04, 0x02, 0x00, 0x04, -- 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, -+ 0x00, 0x00, 0x04, 0x01, 0x00, 0x04, 0x02, 0x00, -+ 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, -+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, -+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x00, 0x04, - // Entry C0 - FF -- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, -- 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, -+ 0x01, 0x04, 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x05, 0x00, 0x00, -+ 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - // Entry 100 - 13F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, -- 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x04, 0x00, -- 0x00, 0x04, 0x00, 0x04, 0x04, 0x05, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, -+ 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, -+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, -+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x04, -+ 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x05, 0x00, - // Entry 140 - 17F - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, --} // Size: 382 bytes -+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -+} // Size: 383 bytes - - var paradigmLocales = [][3]uint16{ // 3 elements -- 0: [3]uint16{0x139, 0x0, 0x7b}, -+ 0: [3]uint16{0x139, 0x0, 0x7c}, - 1: [3]uint16{0x13e, 0x0, 0x1f}, -- 2: [3]uint16{0x3c0, 0x41, 0xee}, -+ 2: [3]uint16{0x3c0, 0x41, 0xef}, - } // Size: 42 bytes - - type mutualIntelligibility struct { -@@ -249,30 +249,30 @@ var matchLang = []mutualIntelligibility{ // 113 elements - // matchScript holds pairs of scriptIDs where readers of one script - // can typically also read the other. Each is associated with a confidence. - var matchScript = []scriptIntelligibility{ // 26 elements -- 0: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x5a, haveScript: 0x20, distance: 0x5}, -- 1: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x20, haveScript: 0x5a, distance: 0x5}, -- 2: {wantLang: 0x58, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, -- 3: {wantLang: 0xa5, haveLang: 0x139, wantScript: 0xe, haveScript: 0x5a, distance: 0xa}, -+ 0: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x5b, haveScript: 0x20, distance: 0x5}, -+ 1: {wantLang: 0x432, haveLang: 0x432, wantScript: 0x20, haveScript: 0x5b, distance: 0x5}, -+ 2: {wantLang: 0x58, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa}, -+ 3: {wantLang: 0xa5, haveLang: 0x139, wantScript: 0xe, haveScript: 0x5b, distance: 0xa}, - 4: {wantLang: 0x1d7, haveLang: 0x3e2, wantScript: 0x8, haveScript: 0x20, distance: 0xa}, -- 5: {wantLang: 0x210, haveLang: 0x139, wantScript: 0x2e, haveScript: 0x5a, distance: 0xa}, -- 6: {wantLang: 0x24a, haveLang: 0x139, wantScript: 0x4e, haveScript: 0x5a, distance: 0xa}, -- 7: {wantLang: 0x251, haveLang: 0x139, wantScript: 0x52, haveScript: 0x5a, distance: 0xa}, -- 8: {wantLang: 0x2b8, haveLang: 0x139, wantScript: 0x57, haveScript: 0x5a, distance: 0xa}, -- 9: {wantLang: 0x304, haveLang: 0x139, wantScript: 0x6e, haveScript: 0x5a, distance: 0xa}, -- 10: {wantLang: 0x331, haveLang: 0x139, wantScript: 0x75, haveScript: 0x5a, distance: 0xa}, -- 11: {wantLang: 0x351, haveLang: 0x139, wantScript: 0x22, haveScript: 0x5a, distance: 0xa}, -- 12: {wantLang: 0x395, haveLang: 0x139, wantScript: 0x81, haveScript: 0x5a, distance: 0xa}, -- 13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5a, distance: 0xa}, -- 14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, -- 15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, -- 16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd4, haveScript: 0x5a, distance: 0xa}, -- 17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe3, haveScript: 0x5a, distance: 0xa}, -- 18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5a, distance: 0xa}, -- 19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5a, distance: 0xa}, -- 20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, -- 21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5a, distance: 0xa}, -- 22: {wantLang: 0x4bc, haveLang: 0x3e2, wantScript: 0x5a, haveScript: 0x20, distance: 0xa}, -- 23: {wantLang: 0x512, haveLang: 0x139, wantScript: 0x3e, haveScript: 0x5a, distance: 0xa}, -+ 5: {wantLang: 0x210, haveLang: 0x139, wantScript: 0x2e, haveScript: 0x5b, distance: 0xa}, -+ 6: {wantLang: 0x24a, haveLang: 0x139, wantScript: 0x4f, haveScript: 0x5b, distance: 0xa}, -+ 7: {wantLang: 0x251, haveLang: 0x139, wantScript: 0x53, haveScript: 0x5b, distance: 0xa}, -+ 8: {wantLang: 0x2b8, haveLang: 0x139, wantScript: 0x58, haveScript: 0x5b, distance: 0xa}, -+ 9: {wantLang: 0x304, haveLang: 0x139, wantScript: 0x6f, haveScript: 0x5b, distance: 0xa}, -+ 10: {wantLang: 0x331, haveLang: 0x139, wantScript: 0x76, haveScript: 0x5b, distance: 0xa}, -+ 11: {wantLang: 0x351, haveLang: 0x139, wantScript: 0x22, haveScript: 0x5b, distance: 0xa}, -+ 12: {wantLang: 0x395, haveLang: 0x139, wantScript: 0x83, haveScript: 0x5b, distance: 0xa}, -+ 13: {wantLang: 0x39d, haveLang: 0x139, wantScript: 0x36, haveScript: 0x5b, distance: 0xa}, -+ 14: {wantLang: 0x3be, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa}, -+ 15: {wantLang: 0x3fa, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa}, -+ 16: {wantLang: 0x40c, haveLang: 0x139, wantScript: 0xd6, haveScript: 0x5b, distance: 0xa}, -+ 17: {wantLang: 0x450, haveLang: 0x139, wantScript: 0xe6, haveScript: 0x5b, distance: 0xa}, -+ 18: {wantLang: 0x461, haveLang: 0x139, wantScript: 0xe9, haveScript: 0x5b, distance: 0xa}, -+ 19: {wantLang: 0x46f, haveLang: 0x139, wantScript: 0x2c, haveScript: 0x5b, distance: 0xa}, -+ 20: {wantLang: 0x476, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa}, -+ 21: {wantLang: 0x4b4, haveLang: 0x139, wantScript: 0x5, haveScript: 0x5b, distance: 0xa}, -+ 22: {wantLang: 0x4bc, haveLang: 0x3e2, wantScript: 0x5b, haveScript: 0x20, distance: 0xa}, -+ 23: {wantLang: 0x512, haveLang: 0x139, wantScript: 0x3e, haveScript: 0x5b, distance: 0xa}, - 24: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3b, haveScript: 0x3c, distance: 0xf}, - 25: {wantLang: 0x529, haveLang: 0x529, wantScript: 0x3c, haveScript: 0x3b, distance: 0x13}, - } // Size: 232 bytes -@@ -295,4 +295,4 @@ var matchRegion = []regionIntelligibility{ // 15 elements - 14: {lang: 0x529, script: 0x3c, group: 0x80, distance: 0x5}, - } // Size: 114 bytes - --// Total table size 1472 bytes (1KiB); checksum: F86C669 -+// Total table size 1473 bytes (1KiB); checksum: 7BB90B5C -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/LICENSE -new file mode 100644 -index 00000000..d6456956 ---- /dev/null -+++ b/vendor/google.golang.org/genproto/LICENSE -@@ -0,0 +1,202 @@ -+ -+ Apache License -+ Version 2.0, January 2004 -+ http://www.apache.org/licenses/ -+ -+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -+ -+ 1. Definitions. -+ -+ "License" shall mean the terms and conditions for use, reproduction, -+ and distribution as defined by Sections 1 through 9 of this document. -+ -+ "Licensor" shall mean the copyright owner or entity authorized by -+ the copyright owner that is granting the License. -+ -+ "Legal Entity" shall mean the union of the acting entity and all -+ other entities that control, are controlled by, or are under common -+ control with that entity. For the purposes of this definition, -+ "control" means (i) the power, direct or indirect, to cause the -+ direction or management of such entity, whether by contract or -+ otherwise, or (ii) ownership of fifty percent (50%) or more of the -+ outstanding shares, or (iii) beneficial ownership of such entity. -+ -+ "You" (or "Your") shall mean an individual or Legal Entity -+ exercising permissions granted by this License. -+ -+ "Source" form shall mean the preferred form for making modifications, -+ including but not limited to software source code, documentation -+ source, and configuration files. -+ -+ "Object" form shall mean any form resulting from mechanical -+ transformation or translation of a Source form, including but -+ not limited to compiled object code, generated documentation, -+ and conversions to other media types. -+ -+ "Work" shall mean the work of authorship, whether in Source or -+ Object form, made available under the License, as indicated by a -+ copyright notice that is included in or attached to the work -+ (an example is provided in the Appendix below). -+ -+ "Derivative Works" shall mean any work, whether in Source or Object -+ form, that is based on (or derived from) the Work and for which the -+ editorial revisions, annotations, elaborations, or other modifications -+ represent, as a whole, an original work of authorship. For the purposes -+ of this License, Derivative Works shall not include works that remain -+ separable from, or merely link (or bind by name) to the interfaces of, -+ the Work and Derivative Works thereof. -+ -+ "Contribution" shall mean any work of authorship, including -+ the original version of the Work and any modifications or additions -+ to that Work or Derivative Works thereof, that is intentionally -+ submitted to Licensor for inclusion in the Work by the copyright owner -+ or by an individual or Legal Entity authorized to submit on behalf of -+ the copyright owner. For the purposes of this definition, "submitted" -+ means any form of electronic, verbal, or written communication sent -+ to the Licensor or its representatives, including but not limited to -+ communication on electronic mailing lists, source code control systems, -+ and issue tracking systems that are managed by, or on behalf of, the -+ Licensor for the purpose of discussing and improving the Work, but -+ excluding communication that is conspicuously marked or otherwise -+ designated in writing by the copyright owner as "Not a Contribution." -+ -+ "Contributor" shall mean Licensor and any individual or Legal Entity -+ on behalf of whom a Contribution has been received by Licensor and -+ subsequently incorporated within the Work. -+ -+ 2. Grant of Copyright License. Subject to the terms and conditions of -+ this License, each Contributor hereby grants to You a perpetual, -+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable -+ copyright license to reproduce, prepare Derivative Works of, -+ publicly display, publicly perform, sublicense, and distribute the -+ Work and such Derivative Works in Source or Object form. -+ -+ 3. Grant of Patent License. Subject to the terms and conditions of -+ this License, each Contributor hereby grants to You a perpetual, -+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable -+ (except as stated in this section) patent license to make, have made, -+ use, offer to sell, sell, import, and otherwise transfer the Work, -+ where such license applies only to those patent claims licensable -+ by such Contributor that are necessarily infringed by their -+ Contribution(s) alone or by combination of their Contribution(s) -+ with the Work to which such Contribution(s) was submitted. If You -+ institute patent litigation against any entity (including a -+ cross-claim or counterclaim in a lawsuit) alleging that the Work -+ or a Contribution incorporated within the Work constitutes direct -+ or contributory patent infringement, then any patent licenses -+ granted to You under this License for that Work shall terminate -+ as of the date such litigation is filed. -+ -+ 4. Redistribution. You may reproduce and distribute copies of the -+ Work or Derivative Works thereof in any medium, with or without -+ modifications, and in Source or Object form, provided that You -+ meet the following conditions: -+ -+ (a) You must give any other recipients of the Work or -+ Derivative Works a copy of this License; and -+ -+ (b) You must cause any modified files to carry prominent notices -+ stating that You changed the files; and -+ -+ (c) You must retain, in the Source form of any Derivative Works -+ that You distribute, all copyright, patent, trademark, and -+ attribution notices from the Source form of the Work, -+ excluding those notices that do not pertain to any part of -+ the Derivative Works; and -+ -+ (d) If the Work includes a "NOTICE" text file as part of its -+ distribution, then any Derivative Works that You distribute must -+ include a readable copy of the attribution notices contained -+ within such NOTICE file, excluding those notices that do not -+ pertain to any part of the Derivative Works, in at least one -+ of the following places: within a NOTICE text file distributed -+ as part of the Derivative Works; within the Source form or -+ documentation, if provided along with the Derivative Works; or, -+ within a display generated by the Derivative Works, if and -+ wherever such third-party notices normally appear. The contents -+ of the NOTICE file are for informational purposes only and -+ do not modify the License. You may add Your own attribution -+ notices within Derivative Works that You distribute, alongside -+ or as an addendum to the NOTICE text from the Work, provided -+ that such additional attribution notices cannot be construed -+ as modifying the License. -+ -+ You may add Your own copyright statement to Your modifications and -+ may provide additional or different license terms and conditions -+ for use, reproduction, or distribution of Your modifications, or -+ for any such Derivative Works as a whole, provided Your use, -+ reproduction, and distribution of the Work otherwise complies with -+ the conditions stated in this License. -+ -+ 5. Submission of Contributions. Unless You explicitly state otherwise, -+ any Contribution intentionally submitted for inclusion in the Work -+ by You to the Licensor shall be under the terms and conditions of -+ this License, without any additional terms or conditions. -+ Notwithstanding the above, nothing herein shall supersede or modify -+ the terms of any separate license agreement you may have executed -+ with Licensor regarding such Contributions. -+ -+ 6. Trademarks. This License does not grant permission to use the trade -+ names, trademarks, service marks, or product names of the Licensor, -+ except as required for reasonable and customary use in describing the -+ origin of the Work and reproducing the content of the NOTICE file. -+ -+ 7. Disclaimer of Warranty. Unless required by applicable law or -+ agreed to in writing, Licensor provides the Work (and each -+ Contributor provides its Contributions) on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -+ implied, including, without limitation, any warranties or conditions -+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -+ PARTICULAR PURPOSE. You are solely responsible for determining the -+ appropriateness of using or redistributing the Work and assume any -+ risks associated with Your exercise of permissions under this License. -+ -+ 8. Limitation of Liability. In no event and under no legal theory, -+ whether in tort (including negligence), contract, or otherwise, -+ unless required by applicable law (such as deliberate and grossly -+ negligent acts) or agreed to in writing, shall any Contributor be -+ liable to You for damages, including any direct, indirect, special, -+ incidental, or consequential damages of any character arising as a -+ result of this License or out of the use or inability to use the -+ Work (including but not limited to damages for loss of goodwill, -+ work stoppage, computer failure or malfunction, or any and all -+ other commercial damages or losses), even if such Contributor -+ has been advised of the possibility of such damages. -+ -+ 9. Accepting Warranty or Additional Liability. While redistributing -+ the Work or Derivative Works thereof, You may choose to offer, -+ and charge a fee for, acceptance of support, warranty, indemnity, -+ or other liability obligations and/or rights consistent with this -+ License. However, in accepting such obligations, You may act only -+ on Your own behalf and on Your sole responsibility, not on behalf -+ of any other Contributor, and only if You agree to indemnify, -+ defend, and hold each Contributor harmless for any liability -+ incurred by, or claims asserted against, such Contributor by reason -+ of your accepting any such warranty or additional liability. -+ -+ END OF TERMS AND CONDITIONS -+ -+ APPENDIX: How to apply the Apache License to your work. -+ -+ To apply the Apache License to your work, attach the following -+ boilerplate notice, with the fields enclosed by brackets "[]" -+ replaced with your own identifying information. (Don't include -+ the brackets!) The text should be enclosed in the appropriate -+ comment syntax for the file format. We also recommend that a -+ file or class name and description of purpose be included on the -+ same "printed page" as the copyright notice for easier -+ identification within third-party archives. -+ -+ Copyright [yyyy] [name of copyright owner] -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go -new file mode 100644 -index 00000000..f34a38e4 ---- /dev/null -+++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go -@@ -0,0 +1,201 @@ -+// Copyright 2020 Google LLC -+// -+// 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.26.0 -+// protoc v3.12.2 -+// source: google/rpc/status.proto -+ -+package status -+ -+import ( -+ reflect "reflect" -+ sync "sync" -+ -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ anypb "google.golang.org/protobuf/types/known/anypb" -+) -+ -+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) -+) -+ -+// The `Status` type defines a logical error model that is suitable for -+// different programming environments, including REST APIs and RPC APIs. It is -+// used by [gRPC](https://github.com/grpc). Each `Status` message contains -+// three pieces of data: error code, error message, and error details. -+// -+// You can find out more about this error model and how to work with it in the -+// [API Design Guide](https://cloud.google.com/apis/design/errors). -+type Status struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. -+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` -+ // A developer-facing error message, which should be in English. Any -+ // user-facing error message should be localized and sent in the -+ // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. -+ Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` -+ // A list of messages that carry the error details. There is a common set of -+ // message types for APIs to use. -+ Details []*anypb.Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"` -+} -+ -+func (x *Status) Reset() { -+ *x = Status{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_rpc_status_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *Status) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*Status) ProtoMessage() {} -+ -+func (x *Status) ProtoReflect() protoreflect.Message { -+ mi := &file_google_rpc_status_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 Status.ProtoReflect.Descriptor instead. -+func (*Status) Descriptor() ([]byte, []int) { -+ return file_google_rpc_status_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *Status) GetCode() int32 { -+ if x != nil { -+ return x.Code -+ } -+ return 0 -+} -+ -+func (x *Status) GetMessage() string { -+ if x != nil { -+ return x.Message -+ } -+ return "" -+} -+ -+func (x *Status) GetDetails() []*anypb.Any { -+ if x != nil { -+ return x.Details -+ } -+ return nil -+} -+ -+var File_google_rpc_status_proto protoreflect.FileDescriptor -+ -+var file_google_rpc_status_proto_rawDesc = []byte{ -+ 0x0a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, -+ 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x72, 0x70, 0x63, 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, -+ 0x22, 0x66, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, -+ 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, -+ 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, -+ 0x69, 0x6c, 0x73, 0x18, 0x03, 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, -+ 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x61, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x53, 0x74, 0x61, 0x74, -+ 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, -+ 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, -+ 0x75, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x33, -+} -+ -+var ( -+ file_google_rpc_status_proto_rawDescOnce sync.Once -+ file_google_rpc_status_proto_rawDescData = file_google_rpc_status_proto_rawDesc -+) -+ -+func file_google_rpc_status_proto_rawDescGZIP() []byte { -+ file_google_rpc_status_proto_rawDescOnce.Do(func() { -+ file_google_rpc_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_rpc_status_proto_rawDescData) -+ }) -+ return file_google_rpc_status_proto_rawDescData -+} -+ -+var file_google_rpc_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_google_rpc_status_proto_goTypes = []interface{}{ -+ (*Status)(nil), // 0: google.rpc.Status -+ (*anypb.Any)(nil), // 1: google.protobuf.Any -+} -+var file_google_rpc_status_proto_depIdxs = []int32{ -+ 1, // 0: google.rpc.Status.details:type_name -> google.protobuf.Any -+ 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_google_rpc_status_proto_init() } -+func file_google_rpc_status_proto_init() { -+ if File_google_rpc_status_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_google_rpc_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*Status); 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_google_rpc_status_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_google_rpc_status_proto_goTypes, -+ DependencyIndexes: file_google_rpc_status_proto_depIdxs, -+ MessageInfos: file_google_rpc_status_proto_msgTypes, -+ }.Build() -+ File_google_rpc_status_proto = out.File -+ file_google_rpc_status_proto_rawDesc = nil -+ file_google_rpc_status_proto_goTypes = nil -+ file_google_rpc_status_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/grpc/AUTHORS b/vendor/google.golang.org/grpc/AUTHORS -new file mode 100644 -index 00000000..e491a9e7 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/AUTHORS -@@ -0,0 +1 @@ -+Google Inc. -diff --git a/vendor/google.golang.org/grpc/LICENSE b/vendor/google.golang.org/grpc/LICENSE -new file mode 100644 -index 00000000..d6456956 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/LICENSE -@@ -0,0 +1,202 @@ -+ -+ Apache License -+ Version 2.0, January 2004 -+ http://www.apache.org/licenses/ -+ -+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -+ -+ 1. Definitions. -+ -+ "License" shall mean the terms and conditions for use, reproduction, -+ and distribution as defined by Sections 1 through 9 of this document. -+ -+ "Licensor" shall mean the copyright owner or entity authorized by -+ the copyright owner that is granting the License. -+ -+ "Legal Entity" shall mean the union of the acting entity and all -+ other entities that control, are controlled by, or are under common -+ control with that entity. For the purposes of this definition, -+ "control" means (i) the power, direct or indirect, to cause the -+ direction or management of such entity, whether by contract or -+ otherwise, or (ii) ownership of fifty percent (50%) or more of the -+ outstanding shares, or (iii) beneficial ownership of such entity. -+ -+ "You" (or "Your") shall mean an individual or Legal Entity -+ exercising permissions granted by this License. -+ -+ "Source" form shall mean the preferred form for making modifications, -+ including but not limited to software source code, documentation -+ source, and configuration files. -+ -+ "Object" form shall mean any form resulting from mechanical -+ transformation or translation of a Source form, including but -+ not limited to compiled object code, generated documentation, -+ and conversions to other media types. -+ -+ "Work" shall mean the work of authorship, whether in Source or -+ Object form, made available under the License, as indicated by a -+ copyright notice that is included in or attached to the work -+ (an example is provided in the Appendix below). -+ -+ "Derivative Works" shall mean any work, whether in Source or Object -+ form, that is based on (or derived from) the Work and for which the -+ editorial revisions, annotations, elaborations, or other modifications -+ represent, as a whole, an original work of authorship. For the purposes -+ of this License, Derivative Works shall not include works that remain -+ separable from, or merely link (or bind by name) to the interfaces of, -+ the Work and Derivative Works thereof. -+ -+ "Contribution" shall mean any work of authorship, including -+ the original version of the Work and any modifications or additions -+ to that Work or Derivative Works thereof, that is intentionally -+ submitted to Licensor for inclusion in the Work by the copyright owner -+ or by an individual or Legal Entity authorized to submit on behalf of -+ the copyright owner. For the purposes of this definition, "submitted" -+ means any form of electronic, verbal, or written communication sent -+ to the Licensor or its representatives, including but not limited to -+ communication on electronic mailing lists, source code control systems, -+ and issue tracking systems that are managed by, or on behalf of, the -+ Licensor for the purpose of discussing and improving the Work, but -+ excluding communication that is conspicuously marked or otherwise -+ designated in writing by the copyright owner as "Not a Contribution." -+ -+ "Contributor" shall mean Licensor and any individual or Legal Entity -+ on behalf of whom a Contribution has been received by Licensor and -+ subsequently incorporated within the Work. -+ -+ 2. Grant of Copyright License. Subject to the terms and conditions of -+ this License, each Contributor hereby grants to You a perpetual, -+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable -+ copyright license to reproduce, prepare Derivative Works of, -+ publicly display, publicly perform, sublicense, and distribute the -+ Work and such Derivative Works in Source or Object form. -+ -+ 3. Grant of Patent License. Subject to the terms and conditions of -+ this License, each Contributor hereby grants to You a perpetual, -+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable -+ (except as stated in this section) patent license to make, have made, -+ use, offer to sell, sell, import, and otherwise transfer the Work, -+ where such license applies only to those patent claims licensable -+ by such Contributor that are necessarily infringed by their -+ Contribution(s) alone or by combination of their Contribution(s) -+ with the Work to which such Contribution(s) was submitted. If You -+ institute patent litigation against any entity (including a -+ cross-claim or counterclaim in a lawsuit) alleging that the Work -+ or a Contribution incorporated within the Work constitutes direct -+ or contributory patent infringement, then any patent licenses -+ granted to You under this License for that Work shall terminate -+ as of the date such litigation is filed. -+ -+ 4. Redistribution. You may reproduce and distribute copies of the -+ Work or Derivative Works thereof in any medium, with or without -+ modifications, and in Source or Object form, provided that You -+ meet the following conditions: -+ -+ (a) You must give any other recipients of the Work or -+ Derivative Works a copy of this License; and -+ -+ (b) You must cause any modified files to carry prominent notices -+ stating that You changed the files; and -+ -+ (c) You must retain, in the Source form of any Derivative Works -+ that You distribute, all copyright, patent, trademark, and -+ attribution notices from the Source form of the Work, -+ excluding those notices that do not pertain to any part of -+ the Derivative Works; and -+ -+ (d) If the Work includes a "NOTICE" text file as part of its -+ distribution, then any Derivative Works that You distribute must -+ include a readable copy of the attribution notices contained -+ within such NOTICE file, excluding those notices that do not -+ pertain to any part of the Derivative Works, in at least one -+ of the following places: within a NOTICE text file distributed -+ as part of the Derivative Works; within the Source form or -+ documentation, if provided along with the Derivative Works; or, -+ within a display generated by the Derivative Works, if and -+ wherever such third-party notices normally appear. The contents -+ of the NOTICE file are for informational purposes only and -+ do not modify the License. You may add Your own attribution -+ notices within Derivative Works that You distribute, alongside -+ or as an addendum to the NOTICE text from the Work, provided -+ that such additional attribution notices cannot be construed -+ as modifying the License. -+ -+ You may add Your own copyright statement to Your modifications and -+ may provide additional or different license terms and conditions -+ for use, reproduction, or distribution of Your modifications, or -+ for any such Derivative Works as a whole, provided Your use, -+ reproduction, and distribution of the Work otherwise complies with -+ the conditions stated in this License. -+ -+ 5. Submission of Contributions. Unless You explicitly state otherwise, -+ any Contribution intentionally submitted for inclusion in the Work -+ by You to the Licensor shall be under the terms and conditions of -+ this License, without any additional terms or conditions. -+ Notwithstanding the above, nothing herein shall supersede or modify -+ the terms of any separate license agreement you may have executed -+ with Licensor regarding such Contributions. -+ -+ 6. Trademarks. This License does not grant permission to use the trade -+ names, trademarks, service marks, or product names of the Licensor, -+ except as required for reasonable and customary use in describing the -+ origin of the Work and reproducing the content of the NOTICE file. -+ -+ 7. Disclaimer of Warranty. Unless required by applicable law or -+ agreed to in writing, Licensor provides the Work (and each -+ Contributor provides its Contributions) on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -+ implied, including, without limitation, any warranties or conditions -+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -+ PARTICULAR PURPOSE. You are solely responsible for determining the -+ appropriateness of using or redistributing the Work and assume any -+ risks associated with Your exercise of permissions under this License. -+ -+ 8. Limitation of Liability. In no event and under no legal theory, -+ whether in tort (including negligence), contract, or otherwise, -+ unless required by applicable law (such as deliberate and grossly -+ negligent acts) or agreed to in writing, shall any Contributor be -+ liable to You for damages, including any direct, indirect, special, -+ incidental, or consequential damages of any character arising as a -+ result of this License or out of the use or inability to use the -+ Work (including but not limited to damages for loss of goodwill, -+ work stoppage, computer failure or malfunction, or any and all -+ other commercial damages or losses), even if such Contributor -+ has been advised of the possibility of such damages. -+ -+ 9. Accepting Warranty or Additional Liability. While redistributing -+ the Work or Derivative Works thereof, You may choose to offer, -+ and charge a fee for, acceptance of support, warranty, indemnity, -+ or other liability obligations and/or rights consistent with this -+ License. However, in accepting such obligations, You may act only -+ on Your own behalf and on Your sole responsibility, not on behalf -+ of any other Contributor, and only if You agree to indemnify, -+ defend, and hold each Contributor harmless for any liability -+ incurred by, or claims asserted against, such Contributor by reason -+ of your accepting any such warranty or additional liability. -+ -+ END OF TERMS AND CONDITIONS -+ -+ APPENDIX: How to apply the Apache License to your work. -+ -+ To apply the Apache License to your work, attach the following -+ boilerplate notice, with the fields enclosed by brackets "[]" -+ replaced with your own identifying information. (Don't include -+ the brackets!) The text should be enclosed in the appropriate -+ comment syntax for the file format. We also recommend that a -+ file or class name and description of purpose be included on the -+ same "printed page" as the copyright notice for easier -+ identification within third-party archives. -+ -+ Copyright [yyyy] [name of copyright owner] -+ -+ Licensed under the Apache License, Version 2.0 (the "License"); -+ you may not use this file except in compliance with the License. -+ You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+ Unless required by applicable law or agreed to in writing, software -+ distributed under the License is distributed on an "AS IS" BASIS, -+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ See the License for the specific language governing permissions and -+ limitations under the License. -diff --git a/vendor/google.golang.org/grpc/NOTICE.txt b/vendor/google.golang.org/grpc/NOTICE.txt -new file mode 100644 -index 00000000..53019774 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/NOTICE.txt -@@ -0,0 +1,13 @@ -+Copyright 2014 gRPC authors. -+ -+Licensed under the Apache License, Version 2.0 (the "License"); -+you may not use this file except in compliance with the License. -+You may obtain a copy of the License at -+ -+ http://www.apache.org/licenses/LICENSE-2.0 -+ -+Unless required by applicable law or agreed to in writing, software -+distributed under the License is distributed on an "AS IS" BASIS, -+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+See the License for the specific language governing permissions and -+limitations under the License. -diff --git a/vendor/google.golang.org/grpc/codes/code_string.go b/vendor/google.golang.org/grpc/codes/code_string.go -new file mode 100644 -index 00000000..0b206a57 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/codes/code_string.go -@@ -0,0 +1,62 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package codes -+ -+import "strconv" -+ -+func (c Code) String() string { -+ switch c { -+ case OK: -+ return "OK" -+ case Canceled: -+ return "Canceled" -+ case Unknown: -+ return "Unknown" -+ case InvalidArgument: -+ return "InvalidArgument" -+ case DeadlineExceeded: -+ return "DeadlineExceeded" -+ case NotFound: -+ return "NotFound" -+ case AlreadyExists: -+ return "AlreadyExists" -+ case PermissionDenied: -+ return "PermissionDenied" -+ case ResourceExhausted: -+ return "ResourceExhausted" -+ case FailedPrecondition: -+ return "FailedPrecondition" -+ case Aborted: -+ return "Aborted" -+ case OutOfRange: -+ return "OutOfRange" -+ case Unimplemented: -+ return "Unimplemented" -+ case Internal: -+ return "Internal" -+ case Unavailable: -+ return "Unavailable" -+ case DataLoss: -+ return "DataLoss" -+ case Unauthenticated: -+ return "Unauthenticated" -+ default: -+ return "Code(" + strconv.FormatInt(int64(c), 10) + ")" -+ } -+} -diff --git a/vendor/google.golang.org/grpc/codes/codes.go b/vendor/google.golang.org/grpc/codes/codes.go -new file mode 100644 -index 00000000..11b10618 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/codes/codes.go -@@ -0,0 +1,244 @@ -+/* -+ * -+ * Copyright 2014 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package codes defines the canonical error codes used by gRPC. It is -+// consistent across various languages. -+package codes // import "google.golang.org/grpc/codes" -+ -+import ( -+ "fmt" -+ "strconv" -+) -+ -+// A Code is an unsigned 32-bit error code as defined in the gRPC spec. -+type Code uint32 -+ -+const ( -+ // OK is returned on success. -+ OK Code = 0 -+ -+ // Canceled indicates the operation was canceled (typically by the caller). -+ // -+ // The gRPC framework will generate this error code when cancellation -+ // is requested. -+ Canceled Code = 1 -+ -+ // Unknown error. An example of where this error may be returned is -+ // if a Status value received from another address space belongs to -+ // an error-space that is not known in this address space. Also -+ // errors raised by APIs that do not return enough error information -+ // may be converted to this error. -+ // -+ // The gRPC framework will generate this error code in the above two -+ // mentioned cases. -+ Unknown Code = 2 -+ -+ // InvalidArgument indicates client specified an invalid argument. -+ // Note that this differs from FailedPrecondition. It indicates arguments -+ // that are problematic regardless of the state of the system -+ // (e.g., a malformed file name). -+ // -+ // This error code will not be generated by the gRPC framework. -+ InvalidArgument Code = 3 -+ -+ // DeadlineExceeded means operation expired before completion. -+ // For operations that change the state of the system, this error may be -+ // returned even if the operation has completed successfully. For -+ // example, a successful response from a server could have been delayed -+ // long enough for the deadline to expire. -+ // -+ // The gRPC framework will generate this error code when the deadline is -+ // exceeded. -+ DeadlineExceeded Code = 4 -+ -+ // NotFound means some requested entity (e.g., file or directory) was -+ // not found. -+ // -+ // This error code will not be generated by the gRPC framework. -+ NotFound Code = 5 -+ -+ // AlreadyExists means an attempt to create an entity failed because one -+ // already exists. -+ // -+ // This error code will not be generated by the gRPC framework. -+ AlreadyExists Code = 6 -+ -+ // PermissionDenied indicates the caller does not have permission to -+ // execute the specified operation. It must not be used for rejections -+ // caused by exhausting some resource (use ResourceExhausted -+ // instead for those errors). It must not be -+ // used if the caller cannot be identified (use Unauthenticated -+ // instead for those errors). -+ // -+ // This error code will not be generated by the gRPC core framework, -+ // but expect authentication middleware to use it. -+ PermissionDenied Code = 7 -+ -+ // ResourceExhausted indicates some resource has been exhausted, perhaps -+ // a per-user quota, or perhaps the entire file system is out of space. -+ // -+ // This error code will be generated by the gRPC framework in -+ // out-of-memory and server overload situations, or when a message is -+ // larger than the configured maximum size. -+ ResourceExhausted Code = 8 -+ -+ // FailedPrecondition indicates operation was rejected because the -+ // system is not in a state required for the operation's execution. -+ // For example, directory to be deleted may be non-empty, an rmdir -+ // operation is applied to a non-directory, etc. -+ // -+ // A litmus test that may help a service implementor in deciding -+ // between FailedPrecondition, Aborted, and Unavailable: -+ // (a) Use Unavailable if the client can retry just the failing call. -+ // (b) Use Aborted if the client should retry at a higher-level -+ // (e.g., restarting a read-modify-write sequence). -+ // (c) Use FailedPrecondition if the client should not retry until -+ // the system state has been explicitly fixed. E.g., if an "rmdir" -+ // fails because the directory is non-empty, FailedPrecondition -+ // should be returned since the client should not retry unless -+ // they have first fixed up the directory by deleting files from it. -+ // (d) Use FailedPrecondition if the client performs conditional -+ // REST Get/Update/Delete on a resource and the resource on the -+ // server does not match the condition. E.g., conflicting -+ // read-modify-write on the same resource. -+ // -+ // This error code will not be generated by the gRPC framework. -+ FailedPrecondition Code = 9 -+ -+ // Aborted indicates the operation was aborted, typically due to a -+ // concurrency issue like sequencer check failures, transaction aborts, -+ // etc. -+ // -+ // See litmus test above for deciding between FailedPrecondition, -+ // Aborted, and Unavailable. -+ // -+ // This error code will not be generated by the gRPC framework. -+ Aborted Code = 10 -+ -+ // OutOfRange means operation was attempted past the valid range. -+ // E.g., seeking or reading past end of file. -+ // -+ // Unlike InvalidArgument, this error indicates a problem that may -+ // be fixed if the system state changes. For example, a 32-bit file -+ // system will generate InvalidArgument if asked to read at an -+ // offset that is not in the range [0,2^32-1], but it will generate -+ // OutOfRange if asked to read from an offset past the current -+ // file size. -+ // -+ // There is a fair bit of overlap between FailedPrecondition and -+ // OutOfRange. We recommend using OutOfRange (the more specific -+ // error) when it applies so that callers who are iterating through -+ // a space can easily look for an OutOfRange error to detect when -+ // they are done. -+ // -+ // This error code will not be generated by the gRPC framework. -+ OutOfRange Code = 11 -+ -+ // Unimplemented indicates operation is not implemented or not -+ // supported/enabled in this service. -+ // -+ // This error code will be generated by the gRPC framework. Most -+ // commonly, you will see this error code when a method implementation -+ // is missing on the server. It can also be generated for unknown -+ // compression algorithms or a disagreement as to whether an RPC should -+ // be streaming. -+ Unimplemented Code = 12 -+ -+ // Internal errors. Means some invariants expected by underlying -+ // system has been broken. If you see one of these errors, -+ // something is very broken. -+ // -+ // This error code will be generated by the gRPC framework in several -+ // internal error conditions. -+ Internal Code = 13 -+ -+ // Unavailable indicates the service is currently unavailable. -+ // This is a most likely a transient condition and may be corrected -+ // by retrying with a backoff. Note that it is not always safe to retry -+ // non-idempotent operations. -+ // -+ // See litmus test above for deciding between FailedPrecondition, -+ // Aborted, and Unavailable. -+ // -+ // This error code will be generated by the gRPC framework during -+ // abrupt shutdown of a server process or network connection. -+ Unavailable Code = 14 -+ -+ // DataLoss indicates unrecoverable data loss or corruption. -+ // -+ // This error code will not be generated by the gRPC framework. -+ DataLoss Code = 15 -+ -+ // Unauthenticated indicates the request does not have valid -+ // authentication credentials for the operation. -+ // -+ // The gRPC framework will generate this error code when the -+ // authentication metadata is invalid or a Credentials callback fails, -+ // but also expect authentication middleware to generate it. -+ Unauthenticated Code = 16 -+ -+ _maxCode = 17 -+) -+ -+var strToCode = map[string]Code{ -+ `"OK"`: OK, -+ `"CANCELLED"`:/* [sic] */ Canceled, -+ `"UNKNOWN"`: Unknown, -+ `"INVALID_ARGUMENT"`: InvalidArgument, -+ `"DEADLINE_EXCEEDED"`: DeadlineExceeded, -+ `"NOT_FOUND"`: NotFound, -+ `"ALREADY_EXISTS"`: AlreadyExists, -+ `"PERMISSION_DENIED"`: PermissionDenied, -+ `"RESOURCE_EXHAUSTED"`: ResourceExhausted, -+ `"FAILED_PRECONDITION"`: FailedPrecondition, -+ `"ABORTED"`: Aborted, -+ `"OUT_OF_RANGE"`: OutOfRange, -+ `"UNIMPLEMENTED"`: Unimplemented, -+ `"INTERNAL"`: Internal, -+ `"UNAVAILABLE"`: Unavailable, -+ `"DATA_LOSS"`: DataLoss, -+ `"UNAUTHENTICATED"`: Unauthenticated, -+} -+ -+// UnmarshalJSON unmarshals b into the Code. -+func (c *Code) UnmarshalJSON(b []byte) error { -+ // From json.Unmarshaler: By convention, to approximate the behavior of -+ // Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as -+ // a no-op. -+ if string(b) == "null" { -+ return nil -+ } -+ if c == nil { -+ return fmt.Errorf("nil receiver passed to UnmarshalJSON") -+ } -+ -+ if ci, err := strconv.ParseUint(string(b), 10, 32); err == nil { -+ if ci >= _maxCode { -+ return fmt.Errorf("invalid code: %q", ci) -+ } -+ -+ *c = Code(ci) -+ return nil -+ } -+ -+ if jc, ok := strToCode[string(b)]; ok { -+ *c = jc -+ return nil -+ } -+ return fmt.Errorf("invalid code: %q", string(b)) -+} -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -new file mode 100644 -index 00000000..e5c6513e ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -0,0 +1,166 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package status implements errors returned by gRPC. These errors are -+// serialized and transmitted on the wire between server and client, and allow -+// for additional data to be transmitted via the Details field in the status -+// proto. gRPC service handlers should return an error created by this -+// package, and gRPC clients should expect a corresponding error to be -+// returned from the RPC call. -+// -+// This package upholds the invariants that a non-nil error may not -+// contain an OK code, and an OK code must result in a nil error. -+package status -+ -+import ( -+ "errors" -+ "fmt" -+ -+ "github.com/golang/protobuf/proto" -+ "github.com/golang/protobuf/ptypes" -+ spb "google.golang.org/genproto/googleapis/rpc/status" -+ "google.golang.org/grpc/codes" -+) -+ -+// Status represents an RPC status code, message, and details. It is immutable -+// and should be created with New, Newf, or FromProto. -+type Status struct { -+ s *spb.Status -+} -+ -+// New returns a Status representing c and msg. -+func New(c codes.Code, msg string) *Status { -+ return &Status{s: &spb.Status{Code: int32(c), Message: msg}} -+} -+ -+// Newf returns New(c, fmt.Sprintf(format, a...)). -+func Newf(c codes.Code, format string, a ...interface{}) *Status { -+ return New(c, fmt.Sprintf(format, a...)) -+} -+ -+// FromProto returns a Status representing s. -+func FromProto(s *spb.Status) *Status { -+ return &Status{s: proto.Clone(s).(*spb.Status)} -+} -+ -+// Err returns an error representing c and msg. If c is OK, returns nil. -+func Err(c codes.Code, msg string) error { -+ return New(c, msg).Err() -+} -+ -+// Errorf returns Error(c, fmt.Sprintf(format, a...)). -+func Errorf(c codes.Code, format string, a ...interface{}) error { -+ return Err(c, fmt.Sprintf(format, a...)) -+} -+ -+// Code returns the status code contained in s. -+func (s *Status) Code() codes.Code { -+ if s == nil || s.s == nil { -+ return codes.OK -+ } -+ return codes.Code(s.s.Code) -+} -+ -+// Message returns the message contained in s. -+func (s *Status) Message() string { -+ if s == nil || s.s == nil { -+ return "" -+ } -+ return s.s.Message -+} -+ -+// Proto returns s's status as an spb.Status proto message. -+func (s *Status) Proto() *spb.Status { -+ if s == nil { -+ return nil -+ } -+ return proto.Clone(s.s).(*spb.Status) -+} -+ -+// Err returns an immutable error representing s; returns nil if s.Code() is OK. -+func (s *Status) Err() error { -+ if s.Code() == codes.OK { -+ return nil -+ } -+ return &Error{s: s} -+} -+ -+// WithDetails returns a new status with the provided details messages appended to the status. -+// If any errors are encountered, it returns nil and the first error encountered. -+func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { -+ if s.Code() == codes.OK { -+ return nil, errors.New("no error details for status with code OK") -+ } -+ // s.Code() != OK implies that s.Proto() != nil. -+ p := s.Proto() -+ for _, detail := range details { -+ any, err := ptypes.MarshalAny(detail) -+ if err != nil { -+ return nil, err -+ } -+ p.Details = append(p.Details, any) -+ } -+ return &Status{s: p}, nil -+} -+ -+// Details returns a slice of details messages attached to the status. -+// If a detail cannot be decoded, the error is returned in place of the detail. -+func (s *Status) Details() []interface{} { -+ if s == nil || s.s == nil { -+ return nil -+ } -+ details := make([]interface{}, 0, len(s.s.Details)) -+ for _, any := range s.s.Details { -+ detail := &ptypes.DynamicAny{} -+ if err := ptypes.UnmarshalAny(any, detail); err != nil { -+ details = append(details, err) -+ continue -+ } -+ details = append(details, detail.Message) -+ } -+ return details -+} -+ -+func (s *Status) String() string { -+ return fmt.Sprintf("rpc error: code = %s desc = %s", s.Code(), s.Message()) -+} -+ -+// Error wraps a pointer of a status proto. It implements error and Status, -+// and a nil *Error should never be returned by this package. -+type Error struct { -+ s *Status -+} -+ -+func (e *Error) Error() string { -+ return e.s.String() -+} -+ -+// GRPCStatus returns the Status represented by se. -+func (e *Error) GRPCStatus() *Status { -+ return e.s -+} -+ -+// Is implements future error.Is functionality. -+// A Error is equivalent if the code and message are identical. -+func (e *Error) Is(target error) bool { -+ tse, ok := target.(*Error) -+ if !ok { -+ return false -+ } -+ return proto.Equal(e.s.s, tse.s.s) -+} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -new file mode 100644 -index 00000000..6d163b6e ---- /dev/null -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -0,0 +1,135 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package status implements errors returned by gRPC. These errors are -+// serialized and transmitted on the wire between server and client, and allow -+// for additional data to be transmitted via the Details field in the status -+// proto. gRPC service handlers should return an error created by this -+// package, and gRPC clients should expect a corresponding error to be -+// returned from the RPC call. -+// -+// This package upholds the invariants that a non-nil error may not -+// contain an OK code, and an OK code must result in a nil error. -+package status -+ -+import ( -+ "context" -+ "errors" -+ "fmt" -+ -+ spb "google.golang.org/genproto/googleapis/rpc/status" -+ -+ "google.golang.org/grpc/codes" -+ "google.golang.org/grpc/internal/status" -+) -+ -+// Status references google.golang.org/grpc/internal/status. It represents an -+// RPC status code, message, and details. It is immutable and should be -+// created with New, Newf, or FromProto. -+// https://godoc.org/google.golang.org/grpc/internal/status -+type Status = status.Status -+ -+// New returns a Status representing c and msg. -+func New(c codes.Code, msg string) *Status { -+ return status.New(c, msg) -+} -+ -+// Newf returns New(c, fmt.Sprintf(format, a...)). -+func Newf(c codes.Code, format string, a ...interface{}) *Status { -+ return New(c, fmt.Sprintf(format, a...)) -+} -+ -+// Error returns an error representing c and msg. If c is OK, returns nil. -+func Error(c codes.Code, msg string) error { -+ return New(c, msg).Err() -+} -+ -+// Errorf returns Error(c, fmt.Sprintf(format, a...)). -+func Errorf(c codes.Code, format string, a ...interface{}) error { -+ return Error(c, fmt.Sprintf(format, a...)) -+} -+ -+// ErrorProto returns an error representing s. If s.Code is OK, returns nil. -+func ErrorProto(s *spb.Status) error { -+ return FromProto(s).Err() -+} -+ -+// FromProto returns a Status representing s. -+func FromProto(s *spb.Status) *Status { -+ return status.FromProto(s) -+} -+ -+// FromError returns a Status representation of err. -+// -+// - If err was produced by this package or implements the method `GRPCStatus() -+// *Status`, the appropriate Status is returned. -+// -+// - If err is nil, a Status is returned with codes.OK and no message. -+// -+// - Otherwise, err is an error not compatible with this package. In this -+// case, a Status is returned with codes.Unknown and err's Error() message, -+// and ok is false. -+func FromError(err error) (s *Status, ok bool) { -+ if err == nil { -+ return nil, true -+ } -+ if se, ok := err.(interface { -+ GRPCStatus() *Status -+ }); ok { -+ return se.GRPCStatus(), true -+ } -+ return New(codes.Unknown, err.Error()), false -+} -+ -+// Convert is a convenience function which removes the need to handle the -+// boolean return value from FromError. -+func Convert(err error) *Status { -+ s, _ := FromError(err) -+ return s -+} -+ -+// Code returns the Code of the error if it is a Status error, codes.OK if err -+// is nil, or codes.Unknown otherwise. -+func Code(err error) codes.Code { -+ // Don't use FromError to avoid allocation of OK status. -+ if err == nil { -+ return codes.OK -+ } -+ if se, ok := err.(interface { -+ GRPCStatus() *Status -+ }); ok { -+ return se.GRPCStatus().Code() -+ } -+ return codes.Unknown -+} -+ -+// FromContextError converts a context error or wrapped context error into a -+// Status. It returns a Status with codes.OK if err is nil, or a Status with -+// codes.Unknown if err is non-nil and not a context error. -+func FromContextError(err error) *Status { -+ if err == nil { -+ return nil -+ } -+ if errors.Is(err, context.DeadlineExceeded) { -+ return New(codes.DeadlineExceeded, err.Error()) -+ } -+ if errors.Is(err, context.Canceled) { -+ return New(codes.Canceled, err.Error()) -+ } -+ return New(codes.Unknown, err.Error()) -+} -diff --git a/vendor/google.golang.org/protobuf/LICENSE b/vendor/google.golang.org/protobuf/LICENSE -new file mode 100644 -index 00000000..49ea0f92 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/LICENSE -@@ -0,0 +1,27 @@ -+Copyright (c) 2018 The Go Authors. All rights reserved. -+ -+Redistribution and use in source and binary forms, with or without -+modification, are permitted provided that the following conditions are -+met: -+ -+ * Redistributions of source code must retain the above copyright -+notice, this list of conditions and the following disclaimer. -+ * Redistributions in binary form must reproduce the above -+copyright notice, this list of conditions and the following disclaimer -+in the documentation and/or other materials provided with the -+distribution. -+ * Neither the name of Google Inc. nor the names of its -+contributors may be used to endorse or promote products derived from -+this software without specific prior written permission. -+ -+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -diff --git a/vendor/google.golang.org/protobuf/PATENTS b/vendor/google.golang.org/protobuf/PATENTS -new file mode 100644 -index 00000000..73309904 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/PATENTS -@@ -0,0 +1,22 @@ -+Additional IP Rights Grant (Patents) -+ -+"This implementation" means the copyrightable works distributed by -+Google as part of the Go project. -+ -+Google 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, -+transfer and otherwise run, modify and propagate the contents of this -+implementation of Go, where such license applies only to those patent -+claims, both currently owned or controlled by Google and acquired in -+the future, licensable by Google that are necessarily infringed by this -+implementation of Go. This grant does not include claims that would be -+infringed only as a consequence of further modification of this -+implementation. If you or your agent or exclusive licensee institute or -+order or agree to the institution of patent litigation against any -+entity (including a cross-claim or counterclaim in a lawsuit) alleging -+that this implementation of Go or any code incorporated within this -+implementation of Go constitutes direct or contributory patent -+infringement, or inducement of patent infringement, then any patent -+rights granted to you under this License for this implementation of Go -+shall terminate as of the date such litigation is filed. -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -new file mode 100644 -index 00000000..4921b2d4 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -0,0 +1,770 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package prototext -+ -+import ( -+ "fmt" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/encoding/text" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/internal/set" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// Unmarshal reads the given []byte into the given proto.Message. -+// The provided message must be mutable (e.g., a non-nil pointer to a message). -+func Unmarshal(b []byte, m proto.Message) error { -+ return UnmarshalOptions{}.Unmarshal(b, m) -+} -+ -+// UnmarshalOptions is a configurable textproto format unmarshaler. -+type UnmarshalOptions struct { -+ pragma.NoUnkeyedLiterals -+ -+ // AllowPartial accepts input for messages that will result in missing -+ // required fields. If AllowPartial is false (the default), Unmarshal will -+ // return error if there are any missing required fields. -+ AllowPartial bool -+ -+ // DiscardUnknown specifies whether to ignore unknown fields when parsing. -+ // An unknown field is any field whose field name or field number does not -+ // resolve to any known or extension field in the message. -+ // By default, unmarshal rejects unknown fields as an error. -+ DiscardUnknown bool -+ -+ // Resolver is used for looking up types when unmarshaling -+ // google.protobuf.Any messages or extension fields. -+ // If nil, this defaults to using protoregistry.GlobalTypes. -+ Resolver interface { -+ protoregistry.MessageTypeResolver -+ protoregistry.ExtensionTypeResolver -+ } -+} -+ -+// Unmarshal reads the given []byte and populates the given proto.Message -+// using options in the UnmarshalOptions object. -+// The provided message must be mutable (e.g., a non-nil pointer to a message). -+func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -+ return o.unmarshal(b, m) -+} -+ -+// unmarshal is a centralized function that all unmarshal operations go through. -+// For profiling purposes, avoid changing the name of this function or -+// introducing other code paths for unmarshal that do not go through this. -+func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error { -+ proto.Reset(m) -+ -+ if o.Resolver == nil { -+ o.Resolver = protoregistry.GlobalTypes -+ } -+ -+ dec := decoder{text.NewDecoder(b), o} -+ if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil { -+ return err -+ } -+ if o.AllowPartial { -+ return nil -+ } -+ return proto.CheckInitialized(m) -+} -+ -+type decoder struct { -+ *text.Decoder -+ opts UnmarshalOptions -+} -+ -+// newError returns an error object with position info. -+func (d decoder) newError(pos int, f string, x ...interface{}) error { -+ line, column := d.Position(pos) -+ head := fmt.Sprintf("(line %d:%d): ", line, column) -+ return errors.New(head+f, x...) -+} -+ -+// unexpectedTokenError returns a syntax error for the given unexpected token. -+func (d decoder) unexpectedTokenError(tok text.Token) error { -+ return d.syntaxError(tok.Pos(), "unexpected token: %s", tok.RawString()) -+} -+ -+// syntaxError returns a syntax error for given position. -+func (d decoder) syntaxError(pos int, f string, x ...interface{}) error { -+ line, column := d.Position(pos) -+ head := fmt.Sprintf("syntax error (line %d:%d): ", line, column) -+ return errors.New(head+f, x...) -+} -+ -+// unmarshalMessage unmarshals into the given protoreflect.Message. -+func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error { -+ messageDesc := m.Descriptor() -+ if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { -+ return errors.New("no support for proto1 MessageSets") -+ } -+ -+ if messageDesc.FullName() == genid.Any_message_fullname { -+ return d.unmarshalAny(m, checkDelims) -+ } -+ -+ if checkDelims { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ -+ if tok.Kind() != text.MessageOpen { -+ return d.unexpectedTokenError(tok) -+ } -+ } -+ -+ var seenNums set.Ints -+ var seenOneofs set.Ints -+ fieldDescs := messageDesc.Fields() -+ -+ for { -+ // Read field name. -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch typ := tok.Kind(); typ { -+ case text.Name: -+ // Continue below. -+ case text.EOF: -+ if checkDelims { -+ return text.ErrUnexpectedEOF -+ } -+ return nil -+ default: -+ if checkDelims && typ == text.MessageClose { -+ return nil -+ } -+ return d.unexpectedTokenError(tok) -+ } -+ -+ // Resolve the field descriptor. -+ var name protoreflect.Name -+ var fd protoreflect.FieldDescriptor -+ var xt protoreflect.ExtensionType -+ var xtErr error -+ var isFieldNumberName bool -+ -+ switch tok.NameKind() { -+ case text.IdentName: -+ name = protoreflect.Name(tok.IdentName()) -+ fd = fieldDescs.ByTextName(string(name)) -+ -+ case text.TypeName: -+ // Handle extensions only. This code path is not for Any. -+ xt, xtErr = d.opts.Resolver.FindExtensionByName(protoreflect.FullName(tok.TypeName())) -+ -+ case text.FieldNumber: -+ isFieldNumberName = true -+ num := protoreflect.FieldNumber(tok.FieldNumber()) -+ if !num.IsValid() { -+ return d.newError(tok.Pos(), "invalid field number: %d", num) -+ } -+ fd = fieldDescs.ByNumber(num) -+ if fd == nil { -+ xt, xtErr = d.opts.Resolver.FindExtensionByNumber(messageDesc.FullName(), num) -+ } -+ } -+ -+ if xt != nil { -+ fd = xt.TypeDescriptor() -+ if !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() { -+ return d.newError(tok.Pos(), "message %v cannot be extended by %v", messageDesc.FullName(), fd.FullName()) -+ } -+ } else if xtErr != nil && xtErr != protoregistry.NotFound { -+ return d.newError(tok.Pos(), "unable to resolve [%s]: %v", tok.RawString(), xtErr) -+ } -+ if flags.ProtoLegacy { -+ if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { -+ fd = nil // reset since the weak reference is not linked in -+ } -+ } -+ -+ // Handle unknown fields. -+ if fd == nil { -+ if d.opts.DiscardUnknown || messageDesc.ReservedNames().Has(name) { -+ d.skipValue() -+ continue -+ } -+ return d.newError(tok.Pos(), "unknown field: %v", tok.RawString()) -+ } -+ -+ // Handle fields identified by field number. -+ if isFieldNumberName { -+ // TODO: Add an option to permit parsing field numbers. -+ // -+ // This requires careful thought as the MarshalOptions.EmitUnknown -+ // option allows formatting unknown fields as the field number and the -+ // best-effort textual representation of the field value. In that case, -+ // it may not be possible to unmarshal the value from a parser that does -+ // have information about the unknown field. -+ return d.newError(tok.Pos(), "cannot specify field by number: %v", tok.RawString()) -+ } -+ -+ switch { -+ case fd.IsList(): -+ kind := fd.Kind() -+ if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() { -+ return d.syntaxError(tok.Pos(), "missing field separator :") -+ } -+ -+ list := m.Mutable(fd).List() -+ if err := d.unmarshalList(fd, list); err != nil { -+ return err -+ } -+ -+ case fd.IsMap(): -+ mmap := m.Mutable(fd).Map() -+ if err := d.unmarshalMap(fd, mmap); err != nil { -+ return err -+ } -+ -+ default: -+ kind := fd.Kind() -+ if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() { -+ return d.syntaxError(tok.Pos(), "missing field separator :") -+ } -+ -+ // If field is a oneof, check if it has already been set. -+ if od := fd.ContainingOneof(); od != nil { -+ idx := uint64(od.Index()) -+ if seenOneofs.Has(idx) { -+ return d.newError(tok.Pos(), "error parsing %q, oneof %v is already set", tok.RawString(), od.FullName()) -+ } -+ seenOneofs.Set(idx) -+ } -+ -+ num := uint64(fd.Number()) -+ if seenNums.Has(num) { -+ return d.newError(tok.Pos(), "non-repeated field %q is repeated", tok.RawString()) -+ } -+ -+ if err := d.unmarshalSingular(fd, m); err != nil { -+ return err -+ } -+ seenNums.Set(num) -+ } -+ } -+ -+ return nil -+} -+ -+// unmarshalSingular unmarshals a non-repeated field value specified by the -+// given FieldDescriptor. -+func (d decoder) unmarshalSingular(fd protoreflect.FieldDescriptor, m protoreflect.Message) error { -+ var val protoreflect.Value -+ var err error -+ switch fd.Kind() { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ val = m.NewField(fd) -+ err = d.unmarshalMessage(val.Message(), true) -+ default: -+ val, err = d.unmarshalScalar(fd) -+ } -+ if err == nil { -+ m.Set(fd, val) -+ } -+ return err -+} -+ -+// unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the -+// given FieldDescriptor. -+func (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { -+ tok, err := d.Read() -+ if err != nil { -+ return protoreflect.Value{}, err -+ } -+ -+ if tok.Kind() != text.Scalar { -+ return protoreflect.Value{}, d.unexpectedTokenError(tok) -+ } -+ -+ kind := fd.Kind() -+ switch kind { -+ case protoreflect.BoolKind: -+ if b, ok := tok.Bool(); ok { -+ return protoreflect.ValueOfBool(b), nil -+ } -+ -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: -+ if n, ok := tok.Int32(); ok { -+ return protoreflect.ValueOfInt32(n), nil -+ } -+ -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ if n, ok := tok.Int64(); ok { -+ return protoreflect.ValueOfInt64(n), nil -+ } -+ -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: -+ if n, ok := tok.Uint32(); ok { -+ return protoreflect.ValueOfUint32(n), nil -+ } -+ -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ if n, ok := tok.Uint64(); ok { -+ return protoreflect.ValueOfUint64(n), nil -+ } -+ -+ case protoreflect.FloatKind: -+ if n, ok := tok.Float32(); ok { -+ return protoreflect.ValueOfFloat32(n), nil -+ } -+ -+ case protoreflect.DoubleKind: -+ if n, ok := tok.Float64(); ok { -+ return protoreflect.ValueOfFloat64(n), nil -+ } -+ -+ case protoreflect.StringKind: -+ if s, ok := tok.String(); ok { -+ if strs.EnforceUTF8(fd) && !utf8.ValidString(s) { -+ return protoreflect.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8") -+ } -+ return protoreflect.ValueOfString(s), nil -+ } -+ -+ case protoreflect.BytesKind: -+ if b, ok := tok.String(); ok { -+ return protoreflect.ValueOfBytes([]byte(b)), nil -+ } -+ -+ case protoreflect.EnumKind: -+ if lit, ok := tok.Enum(); ok { -+ // Lookup EnumNumber based on name. -+ if enumVal := fd.Enum().Values().ByName(protoreflect.Name(lit)); enumVal != nil { -+ return protoreflect.ValueOfEnum(enumVal.Number()), nil -+ } -+ } -+ if num, ok := tok.Int32(); ok { -+ return protoreflect.ValueOfEnum(protoreflect.EnumNumber(num)), nil -+ } -+ -+ default: -+ panic(fmt.Sprintf("invalid scalar kind %v", kind)) -+ } -+ -+ return protoreflect.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) -+} -+ -+// unmarshalList unmarshals into given protoreflect.List. A list value can -+// either be in [] syntax or simply just a single scalar/message value. -+func (d decoder) unmarshalList(fd protoreflect.FieldDescriptor, list protoreflect.List) error { -+ tok, err := d.Peek() -+ if err != nil { -+ return err -+ } -+ -+ switch fd.Kind() { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ switch tok.Kind() { -+ case text.ListOpen: -+ d.Read() -+ for { -+ tok, err := d.Peek() -+ if err != nil { -+ return err -+ } -+ -+ switch tok.Kind() { -+ case text.ListClose: -+ d.Read() -+ return nil -+ case text.MessageOpen: -+ pval := list.NewElement() -+ if err := d.unmarshalMessage(pval.Message(), true); err != nil { -+ return err -+ } -+ list.Append(pval) -+ default: -+ return d.unexpectedTokenError(tok) -+ } -+ } -+ -+ case text.MessageOpen: -+ pval := list.NewElement() -+ if err := d.unmarshalMessage(pval.Message(), true); err != nil { -+ return err -+ } -+ list.Append(pval) -+ return nil -+ } -+ -+ default: -+ switch tok.Kind() { -+ case text.ListOpen: -+ d.Read() -+ for { -+ tok, err := d.Peek() -+ if err != nil { -+ return err -+ } -+ -+ switch tok.Kind() { -+ case text.ListClose: -+ d.Read() -+ return nil -+ case text.Scalar: -+ pval, err := d.unmarshalScalar(fd) -+ if err != nil { -+ return err -+ } -+ list.Append(pval) -+ default: -+ return d.unexpectedTokenError(tok) -+ } -+ } -+ -+ case text.Scalar: -+ pval, err := d.unmarshalScalar(fd) -+ if err != nil { -+ return err -+ } -+ list.Append(pval) -+ return nil -+ } -+ } -+ -+ return d.unexpectedTokenError(tok) -+} -+ -+// unmarshalMap unmarshals into given protoreflect.Map. A map value is a -+// textproto message containing {key: , value: }. -+func (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error { -+ // Determine ahead whether map entry is a scalar type or a message type in -+ // order to call the appropriate unmarshalMapValue func inside -+ // unmarshalMapEntry. -+ var unmarshalMapValue func() (protoreflect.Value, error) -+ switch fd.MapValue().Kind() { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ unmarshalMapValue = func() (protoreflect.Value, error) { -+ pval := mmap.NewValue() -+ if err := d.unmarshalMessage(pval.Message(), true); err != nil { -+ return protoreflect.Value{}, err -+ } -+ return pval, nil -+ } -+ default: -+ unmarshalMapValue = func() (protoreflect.Value, error) { -+ return d.unmarshalScalar(fd.MapValue()) -+ } -+ } -+ -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch tok.Kind() { -+ case text.MessageOpen: -+ return d.unmarshalMapEntry(fd, mmap, unmarshalMapValue) -+ -+ case text.ListOpen: -+ for { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch tok.Kind() { -+ case text.ListClose: -+ return nil -+ case text.MessageOpen: -+ if err := d.unmarshalMapEntry(fd, mmap, unmarshalMapValue); err != nil { -+ return err -+ } -+ default: -+ return d.unexpectedTokenError(tok) -+ } -+ } -+ -+ default: -+ return d.unexpectedTokenError(tok) -+ } -+} -+ -+// unmarshalMap unmarshals into given protoreflect.Map. A map value is a -+// textproto message containing {key: , value: }. -+func (d decoder) unmarshalMapEntry(fd protoreflect.FieldDescriptor, mmap protoreflect.Map, unmarshalMapValue func() (protoreflect.Value, error)) error { -+ var key protoreflect.MapKey -+ var pval protoreflect.Value -+Loop: -+ for { -+ // Read field name. -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch tok.Kind() { -+ case text.Name: -+ if tok.NameKind() != text.IdentName { -+ if !d.opts.DiscardUnknown { -+ return d.newError(tok.Pos(), "unknown map entry field %q", tok.RawString()) -+ } -+ d.skipValue() -+ continue Loop -+ } -+ // Continue below. -+ case text.MessageClose: -+ break Loop -+ default: -+ return d.unexpectedTokenError(tok) -+ } -+ -+ switch name := protoreflect.Name(tok.IdentName()); name { -+ case genid.MapEntry_Key_field_name: -+ if !tok.HasSeparator() { -+ return d.syntaxError(tok.Pos(), "missing field separator :") -+ } -+ if key.IsValid() { -+ return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) -+ } -+ val, err := d.unmarshalScalar(fd.MapKey()) -+ if err != nil { -+ return err -+ } -+ key = val.MapKey() -+ -+ case genid.MapEntry_Value_field_name: -+ if kind := fd.MapValue().Kind(); (kind != protoreflect.MessageKind) && (kind != protoreflect.GroupKind) { -+ if !tok.HasSeparator() { -+ return d.syntaxError(tok.Pos(), "missing field separator :") -+ } -+ } -+ if pval.IsValid() { -+ return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) -+ } -+ pval, err = unmarshalMapValue() -+ if err != nil { -+ return err -+ } -+ -+ default: -+ if !d.opts.DiscardUnknown { -+ return d.newError(tok.Pos(), "unknown map entry field %q", name) -+ } -+ d.skipValue() -+ } -+ } -+ -+ if !key.IsValid() { -+ key = fd.MapKey().Default().MapKey() -+ } -+ if !pval.IsValid() { -+ switch fd.MapValue().Kind() { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ // If value field is not set for message/group types, construct an -+ // empty one as default. -+ pval = mmap.NewValue() -+ default: -+ pval = fd.MapValue().Default() -+ } -+ } -+ mmap.Set(key, pval) -+ return nil -+} -+ -+// unmarshalAny unmarshals an Any textproto. It can either be in expanded form -+// or non-expanded form. -+func (d decoder) unmarshalAny(m protoreflect.Message, checkDelims bool) error { -+ var typeURL string -+ var bValue []byte -+ var seenTypeUrl bool -+ var seenValue bool -+ var isExpanded bool -+ -+ if checkDelims { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ -+ if tok.Kind() != text.MessageOpen { -+ return d.unexpectedTokenError(tok) -+ } -+ } -+ -+Loop: -+ for { -+ // Read field name. Can only have 3 possible field names, i.e. type_url, -+ // value and type URL name inside []. -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ if typ := tok.Kind(); typ != text.Name { -+ if checkDelims { -+ if typ == text.MessageClose { -+ break Loop -+ } -+ } else if typ == text.EOF { -+ break Loop -+ } -+ return d.unexpectedTokenError(tok) -+ } -+ -+ switch tok.NameKind() { -+ case text.IdentName: -+ // Both type_url and value fields require field separator :. -+ if !tok.HasSeparator() { -+ return d.syntaxError(tok.Pos(), "missing field separator :") -+ } -+ -+ switch name := protoreflect.Name(tok.IdentName()); name { -+ case genid.Any_TypeUrl_field_name: -+ if seenTypeUrl { -+ return d.newError(tok.Pos(), "duplicate %v field", genid.Any_TypeUrl_field_fullname) -+ } -+ if isExpanded { -+ return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) -+ } -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ var ok bool -+ typeURL, ok = tok.String() -+ if !ok { -+ return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_TypeUrl_field_fullname, tok.RawString()) -+ } -+ seenTypeUrl = true -+ -+ case genid.Any_Value_field_name: -+ if seenValue { -+ return d.newError(tok.Pos(), "duplicate %v field", genid.Any_Value_field_fullname) -+ } -+ if isExpanded { -+ return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) -+ } -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ s, ok := tok.String() -+ if !ok { -+ return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_Value_field_fullname, tok.RawString()) -+ } -+ bValue = []byte(s) -+ seenValue = true -+ -+ default: -+ if !d.opts.DiscardUnknown { -+ return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) -+ } -+ } -+ -+ case text.TypeName: -+ if isExpanded { -+ return d.newError(tok.Pos(), "cannot have more than one type") -+ } -+ if seenTypeUrl { -+ return d.newError(tok.Pos(), "conflict with type_url field") -+ } -+ typeURL = tok.TypeName() -+ var err error -+ bValue, err = d.unmarshalExpandedAny(typeURL, tok.Pos()) -+ if err != nil { -+ return err -+ } -+ isExpanded = true -+ -+ default: -+ if !d.opts.DiscardUnknown { -+ return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) -+ } -+ } -+ } -+ -+ fds := m.Descriptor().Fields() -+ if len(typeURL) > 0 { -+ m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), protoreflect.ValueOfString(typeURL)) -+ } -+ if len(bValue) > 0 { -+ m.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(bValue)) -+ } -+ return nil -+} -+ -+func (d decoder) unmarshalExpandedAny(typeURL string, pos int) ([]byte, error) { -+ mt, err := d.opts.Resolver.FindMessageByURL(typeURL) -+ if err != nil { -+ return nil, d.newError(pos, "unable to resolve message [%v]: %v", typeURL, err) -+ } -+ // Create new message for the embedded message type and unmarshal the value -+ // field into it. -+ m := mt.New() -+ if err := d.unmarshalMessage(m, true); err != nil { -+ return nil, err -+ } -+ // Serialize the embedded message and return the resulting bytes. -+ b, err := proto.MarshalOptions{ -+ AllowPartial: true, // Never check required fields inside an Any. -+ Deterministic: true, -+ }.Marshal(m.Interface()) -+ if err != nil { -+ return nil, d.newError(pos, "error in marshaling message into Any.value: %v", err) -+ } -+ return b, nil -+} -+ -+// skipValue makes the decoder parse a field value in order to advance the read -+// to the next field. It relies on Read returning an error if the types are not -+// in valid sequence. -+func (d decoder) skipValue() error { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ // Only need to continue reading for messages and lists. -+ switch tok.Kind() { -+ case text.MessageOpen: -+ return d.skipMessageValue() -+ -+ case text.ListOpen: -+ for { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch tok.Kind() { -+ case text.ListClose: -+ return nil -+ case text.MessageOpen: -+ return d.skipMessageValue() -+ default: -+ // Skip items. This will not validate whether skipped values are -+ // of the same type or not, same behavior as C++ -+ // TextFormat::Parser::AllowUnknownField(true) version 3.8.0. -+ } -+ } -+ } -+ return nil -+} -+ -+// skipMessageValue makes the decoder parse and skip over all fields in a -+// message. It assumes that the previous read type is MessageOpen. -+func (d decoder) skipMessageValue() error { -+ for { -+ tok, err := d.Read() -+ if err != nil { -+ return err -+ } -+ switch tok.Kind() { -+ case text.MessageClose: -+ return nil -+ case text.Name: -+ if err := d.skipValue(); err != nil { -+ return err -+ } -+ } -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/doc.go b/vendor/google.golang.org/protobuf/encoding/prototext/doc.go -new file mode 100644 -index 00000000..162b4f98 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/doc.go -@@ -0,0 +1,7 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package prototext marshals and unmarshals protocol buffer messages as the -+// textproto format. -+package prototext -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -new file mode 100644 -index 00000000..ebf6c652 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -0,0 +1,370 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package prototext -+ -+import ( -+ "fmt" -+ "strconv" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/encoding/text" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/order" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+const defaultIndent = " " -+ -+// Format formats the message as a multiline string. -+// This function is only intended for human consumption and ignores errors. -+// Do not depend on the output being stable. It may change over time across -+// different versions of the program. -+func Format(m proto.Message) string { -+ return MarshalOptions{Multiline: true}.Format(m) -+} -+ -+// Marshal writes the given proto.Message in textproto format using default -+// options. Do not depend on the output being stable. It may change over time -+// across different versions of the program. -+func Marshal(m proto.Message) ([]byte, error) { -+ return MarshalOptions{}.Marshal(m) -+} -+ -+// MarshalOptions is a configurable text format marshaler. -+type MarshalOptions struct { -+ pragma.NoUnkeyedLiterals -+ -+ // Multiline specifies whether the marshaler should format the output in -+ // indented-form with every textual element on a new line. -+ // If Indent is an empty string, then an arbitrary indent is chosen. -+ Multiline bool -+ -+ // Indent specifies the set of indentation characters to use in a multiline -+ // formatted output such that every entry is preceded by Indent and -+ // terminated by a newline. If non-empty, then Multiline is treated as true. -+ // Indent can only be composed of space or tab characters. -+ Indent string -+ -+ // EmitASCII specifies whether to format strings and bytes as ASCII only -+ // as opposed to using UTF-8 encoding when possible. -+ EmitASCII bool -+ -+ // allowInvalidUTF8 specifies whether to permit the encoding of strings -+ // with invalid UTF-8. This is unexported as it is intended to only -+ // be specified by the Format method. -+ allowInvalidUTF8 bool -+ -+ // AllowPartial allows messages that have missing required fields to marshal -+ // without returning an error. If AllowPartial is false (the default), -+ // Marshal will return error if there are any missing required fields. -+ AllowPartial bool -+ -+ // EmitUnknown specifies whether to emit unknown fields in the output. -+ // If specified, the unmarshaler may be unable to parse the output. -+ // The default is to exclude unknown fields. -+ EmitUnknown bool -+ -+ // Resolver is used for looking up types when expanding google.protobuf.Any -+ // messages. If nil, this defaults to using protoregistry.GlobalTypes. -+ Resolver interface { -+ protoregistry.ExtensionTypeResolver -+ protoregistry.MessageTypeResolver -+ } -+} -+ -+// Format formats the message as a string. -+// This method is only intended for human consumption and ignores errors. -+// Do not depend on the output being stable. It may change over time across -+// different versions of the program. -+func (o MarshalOptions) Format(m proto.Message) string { -+ if m == nil || !m.ProtoReflect().IsValid() { -+ return "" // invalid syntax, but okay since this is for debugging -+ } -+ o.allowInvalidUTF8 = true -+ o.AllowPartial = true -+ o.EmitUnknown = true -+ b, _ := o.Marshal(m) -+ return string(b) -+} -+ -+// Marshal writes the given proto.Message in textproto format using options in -+// MarshalOptions object. Do not depend on the output being stable. It may -+// change over time across different versions of the program. -+func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -+ return o.marshal(m) -+} -+ -+// marshal is a centralized function that all marshal operations go through. -+// For profiling purposes, avoid changing the name of this function or -+// introducing other code paths for marshal that do not go through this. -+func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+ var delims = [2]byte{'{', '}'} -+ -+ if o.Multiline && o.Indent == "" { -+ o.Indent = defaultIndent -+ } -+ if o.Resolver == nil { -+ o.Resolver = protoregistry.GlobalTypes -+ } -+ -+ internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ if err != nil { -+ return nil, err -+ } -+ -+ // Treat nil message interface as an empty message, -+ // in which case there is nothing to output. -+ if m == nil { -+ return []byte{}, nil -+ } -+ -+ enc := encoder{internalEnc, o} -+ err = enc.marshalMessage(m.ProtoReflect(), false) -+ if err != nil { -+ return nil, err -+ } -+ out := enc.Bytes() -+ if len(o.Indent) > 0 && len(out) > 0 { -+ out = append(out, '\n') -+ } -+ if o.AllowPartial { -+ return out, nil -+ } -+ return out, proto.CheckInitialized(m) -+} -+ -+type encoder struct { -+ *text.Encoder -+ opts MarshalOptions -+} -+ -+// marshalMessage marshals the given protoreflect.Message. -+func (e encoder) marshalMessage(m protoreflect.Message, inclDelims bool) error { -+ messageDesc := m.Descriptor() -+ if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { -+ return errors.New("no support for proto1 MessageSets") -+ } -+ -+ if inclDelims { -+ e.StartMessage() -+ defer e.EndMessage() -+ } -+ -+ // Handle Any expansion. -+ if messageDesc.FullName() == genid.Any_message_fullname { -+ if e.marshalAny(m) { -+ return nil -+ } -+ // If unable to expand, continue on to marshal Any as a regular message. -+ } -+ -+ // Marshal fields. -+ var err error -+ order.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ if err = e.marshalField(fd.TextName(), v, fd); err != nil { -+ return false -+ } -+ return true -+ }) -+ if err != nil { -+ return err -+ } -+ -+ // Marshal unknown fields. -+ if e.opts.EmitUnknown { -+ e.marshalUnknown(m.GetUnknown()) -+ } -+ -+ return nil -+} -+ -+// marshalField marshals the given field with protoreflect.Value. -+func (e encoder) marshalField(name string, val protoreflect.Value, fd protoreflect.FieldDescriptor) error { -+ switch { -+ case fd.IsList(): -+ return e.marshalList(name, val.List(), fd) -+ case fd.IsMap(): -+ return e.marshalMap(name, val.Map(), fd) -+ default: -+ e.WriteName(name) -+ return e.marshalSingular(val, fd) -+ } -+} -+ -+// marshalSingular marshals the given non-repeated field value. This includes -+// all scalar types, enums, messages, and groups. -+func (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error { -+ kind := fd.Kind() -+ switch kind { -+ case protoreflect.BoolKind: -+ e.WriteBool(val.Bool()) -+ -+ case protoreflect.StringKind: -+ s := val.String() -+ if !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) { -+ return errors.InvalidUTF8(string(fd.FullName())) -+ } -+ e.WriteString(s) -+ -+ case protoreflect.Int32Kind, protoreflect.Int64Kind, -+ protoreflect.Sint32Kind, protoreflect.Sint64Kind, -+ protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind: -+ e.WriteInt(val.Int()) -+ -+ case protoreflect.Uint32Kind, protoreflect.Uint64Kind, -+ protoreflect.Fixed32Kind, protoreflect.Fixed64Kind: -+ e.WriteUint(val.Uint()) -+ -+ case protoreflect.FloatKind: -+ // Encoder.WriteFloat handles the special numbers NaN and infinites. -+ e.WriteFloat(val.Float(), 32) -+ -+ case protoreflect.DoubleKind: -+ // Encoder.WriteFloat handles the special numbers NaN and infinites. -+ e.WriteFloat(val.Float(), 64) -+ -+ case protoreflect.BytesKind: -+ e.WriteString(string(val.Bytes())) -+ -+ case protoreflect.EnumKind: -+ num := val.Enum() -+ if desc := fd.Enum().Values().ByNumber(num); desc != nil { -+ e.WriteLiteral(string(desc.Name())) -+ } else { -+ // Use numeric value if there is no enum description. -+ e.WriteInt(int64(num)) -+ } -+ -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return e.marshalMessage(val.Message(), true) -+ -+ default: -+ panic(fmt.Sprintf("%v has unknown kind: %v", fd.FullName(), kind)) -+ } -+ return nil -+} -+ -+// marshalList marshals the given protoreflect.List as multiple name-value fields. -+func (e encoder) marshalList(name string, list protoreflect.List, fd protoreflect.FieldDescriptor) error { -+ size := list.Len() -+ for i := 0; i < size; i++ { -+ e.WriteName(name) -+ if err := e.marshalSingular(list.Get(i), fd); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+// marshalMap marshals the given protoreflect.Map as multiple name-value fields. -+func (e encoder) marshalMap(name string, mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error { -+ var err error -+ order.RangeEntries(mmap, order.GenericKeyOrder, func(key protoreflect.MapKey, val protoreflect.Value) bool { -+ e.WriteName(name) -+ e.StartMessage() -+ defer e.EndMessage() -+ -+ e.WriteName(string(genid.MapEntry_Key_field_name)) -+ err = e.marshalSingular(key.Value(), fd.MapKey()) -+ if err != nil { -+ return false -+ } -+ -+ e.WriteName(string(genid.MapEntry_Value_field_name)) -+ err = e.marshalSingular(val, fd.MapValue()) -+ if err != nil { -+ return false -+ } -+ return true -+ }) -+ return err -+} -+ -+// marshalUnknown parses the given []byte and marshals fields out. -+// This function assumes proper encoding in the given []byte. -+func (e encoder) marshalUnknown(b []byte) { -+ const dec = 10 -+ const hex = 16 -+ for len(b) > 0 { -+ num, wtype, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ e.WriteName(strconv.FormatInt(int64(num), dec)) -+ -+ switch wtype { -+ case protowire.VarintType: -+ var v uint64 -+ v, n = protowire.ConsumeVarint(b) -+ e.WriteUint(v) -+ case protowire.Fixed32Type: -+ var v uint32 -+ v, n = protowire.ConsumeFixed32(b) -+ e.WriteLiteral("0x" + strconv.FormatUint(uint64(v), hex)) -+ case protowire.Fixed64Type: -+ var v uint64 -+ v, n = protowire.ConsumeFixed64(b) -+ e.WriteLiteral("0x" + strconv.FormatUint(v, hex)) -+ case protowire.BytesType: -+ var v []byte -+ v, n = protowire.ConsumeBytes(b) -+ e.WriteString(string(v)) -+ case protowire.StartGroupType: -+ e.StartMessage() -+ var v []byte -+ v, n = protowire.ConsumeGroup(num, b) -+ e.marshalUnknown(v) -+ e.EndMessage() -+ default: -+ panic(fmt.Sprintf("prototext: error parsing unknown field wire type: %v", wtype)) -+ } -+ -+ b = b[n:] -+ } -+} -+ -+// marshalAny marshals the given google.protobuf.Any message in expanded form. -+// It returns true if it was able to marshal, else false. -+func (e encoder) marshalAny(any protoreflect.Message) bool { -+ // Construct the embedded message. -+ fds := any.Descriptor().Fields() -+ fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) -+ typeURL := any.Get(fdType).String() -+ mt, err := e.opts.Resolver.FindMessageByURL(typeURL) -+ if err != nil { -+ return false -+ } -+ m := mt.New().Interface() -+ -+ // Unmarshal bytes into embedded message. -+ fdValue := fds.ByNumber(genid.Any_Value_field_number) -+ value := any.Get(fdValue) -+ err = proto.UnmarshalOptions{ -+ AllowPartial: true, -+ Resolver: e.opts.Resolver, -+ }.Unmarshal(value.Bytes(), m) -+ if err != nil { -+ return false -+ } -+ -+ // Get current encoder position. If marshaling fails, reset encoder output -+ // back to this position. -+ pos := e.Snapshot() -+ -+ // Field name is the proto field name enclosed in []. -+ e.WriteName("[" + typeURL + "]") -+ err = e.marshalMessage(m.ProtoReflect(), true) -+ if err != nil { -+ e.Reset(pos) -+ return false -+ } -+ return true -+} -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -new file mode 100644 -index 00000000..f4b4686c ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -0,0 +1,547 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protowire parses and formats the raw wire encoding. -+// See https://protobuf.dev/programming-guides/encoding. -+// -+// For marshaling and unmarshaling entire protobuf messages, -+// use the "google.golang.org/protobuf/proto" package instead. -+package protowire -+ -+import ( -+ "io" -+ "math" -+ "math/bits" -+ -+ "google.golang.org/protobuf/internal/errors" -+) -+ -+// Number represents the field number. -+type Number int32 -+ -+const ( -+ MinValidNumber Number = 1 -+ FirstReservedNumber Number = 19000 -+ LastReservedNumber Number = 19999 -+ MaxValidNumber Number = 1<<29 - 1 -+ DefaultRecursionLimit = 10000 -+) -+ -+// IsValid reports whether the field number is semantically valid. -+func (n Number) IsValid() bool { -+ return MinValidNumber <= n && n <= MaxValidNumber -+} -+ -+// Type represents the wire type. -+type Type int8 -+ -+const ( -+ VarintType Type = 0 -+ Fixed32Type Type = 5 -+ Fixed64Type Type = 1 -+ BytesType Type = 2 -+ StartGroupType Type = 3 -+ EndGroupType Type = 4 -+) -+ -+const ( -+ _ = -iota -+ errCodeTruncated -+ errCodeFieldNumber -+ errCodeOverflow -+ errCodeReserved -+ errCodeEndGroup -+ errCodeRecursionDepth -+) -+ -+var ( -+ errFieldNumber = errors.New("invalid field number") -+ errOverflow = errors.New("variable length integer overflow") -+ errReserved = errors.New("cannot parse reserved wire type") -+ errEndGroup = errors.New("mismatching end group marker") -+ errParse = errors.New("parse error") -+) -+ -+// ParseError converts an error code into an error value. -+// This returns nil if n is a non-negative number. -+func ParseError(n int) error { -+ if n >= 0 { -+ return nil -+ } -+ switch n { -+ case errCodeTruncated: -+ return io.ErrUnexpectedEOF -+ case errCodeFieldNumber: -+ return errFieldNumber -+ case errCodeOverflow: -+ return errOverflow -+ case errCodeReserved: -+ return errReserved -+ case errCodeEndGroup: -+ return errEndGroup -+ default: -+ return errParse -+ } -+} -+ -+// ConsumeField parses an entire field record (both tag and value) and returns -+// the field number, the wire type, and the total length. -+// This returns a negative length upon an error (see ParseError). -+// -+// The total length includes the tag header and the end group marker (if the -+// field is a group). -+func ConsumeField(b []byte) (Number, Type, int) { -+ num, typ, n := ConsumeTag(b) -+ if n < 0 { -+ return 0, 0, n // forward error code -+ } -+ m := ConsumeFieldValue(num, typ, b[n:]) -+ if m < 0 { -+ return 0, 0, m // forward error code -+ } -+ return num, typ, n + m -+} -+ -+// ConsumeFieldValue parses a field value and returns its length. -+// This assumes that the field Number and wire Type have already been parsed. -+// This returns a negative length upon an error (see ParseError). -+// -+// When parsing a group, the length includes the end group marker and -+// the end group is verified to match the starting field number. -+func ConsumeFieldValue(num Number, typ Type, b []byte) (n int) { -+ return consumeFieldValueD(num, typ, b, DefaultRecursionLimit) -+} -+ -+func consumeFieldValueD(num Number, typ Type, b []byte, depth int) (n int) { -+ switch typ { -+ case VarintType: -+ _, n = ConsumeVarint(b) -+ return n -+ case Fixed32Type: -+ _, n = ConsumeFixed32(b) -+ return n -+ case Fixed64Type: -+ _, n = ConsumeFixed64(b) -+ return n -+ case BytesType: -+ _, n = ConsumeBytes(b) -+ return n -+ case StartGroupType: -+ if depth < 0 { -+ return errCodeRecursionDepth -+ } -+ n0 := len(b) -+ for { -+ num2, typ2, n := ConsumeTag(b) -+ if n < 0 { -+ return n // forward error code -+ } -+ b = b[n:] -+ if typ2 == EndGroupType { -+ if num != num2 { -+ return errCodeEndGroup -+ } -+ return n0 - len(b) -+ } -+ -+ n = consumeFieldValueD(num2, typ2, b, depth-1) -+ if n < 0 { -+ return n // forward error code -+ } -+ b = b[n:] -+ } -+ case EndGroupType: -+ return errCodeEndGroup -+ default: -+ return errCodeReserved -+ } -+} -+ -+// AppendTag encodes num and typ as a varint-encoded tag and appends it to b. -+func AppendTag(b []byte, num Number, typ Type) []byte { -+ return AppendVarint(b, EncodeTag(num, typ)) -+} -+ -+// ConsumeTag parses b as a varint-encoded tag, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeTag(b []byte) (Number, Type, int) { -+ v, n := ConsumeVarint(b) -+ if n < 0 { -+ return 0, 0, n // forward error code -+ } -+ num, typ := DecodeTag(v) -+ if num < MinValidNumber { -+ return 0, 0, errCodeFieldNumber -+ } -+ return num, typ, n -+} -+ -+func SizeTag(num Number) int { -+ return SizeVarint(EncodeTag(num, 0)) // wire type has no effect on size -+} -+ -+// AppendVarint appends v to b as a varint-encoded uint64. -+func AppendVarint(b []byte, v uint64) []byte { -+ switch { -+ case v < 1<<7: -+ b = append(b, byte(v)) -+ case v < 1<<14: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte(v>>7)) -+ case v < 1<<21: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte(v>>14)) -+ case v < 1<<28: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte(v>>21)) -+ case v < 1<<35: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte(v>>28)) -+ case v < 1<<42: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte((v>>28)&0x7f|0x80), -+ byte(v>>35)) -+ case v < 1<<49: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte((v>>28)&0x7f|0x80), -+ byte((v>>35)&0x7f|0x80), -+ byte(v>>42)) -+ case v < 1<<56: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte((v>>28)&0x7f|0x80), -+ byte((v>>35)&0x7f|0x80), -+ byte((v>>42)&0x7f|0x80), -+ byte(v>>49)) -+ case v < 1<<63: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte((v>>28)&0x7f|0x80), -+ byte((v>>35)&0x7f|0x80), -+ byte((v>>42)&0x7f|0x80), -+ byte((v>>49)&0x7f|0x80), -+ byte(v>>56)) -+ default: -+ b = append(b, -+ byte((v>>0)&0x7f|0x80), -+ byte((v>>7)&0x7f|0x80), -+ byte((v>>14)&0x7f|0x80), -+ byte((v>>21)&0x7f|0x80), -+ byte((v>>28)&0x7f|0x80), -+ byte((v>>35)&0x7f|0x80), -+ byte((v>>42)&0x7f|0x80), -+ byte((v>>49)&0x7f|0x80), -+ byte((v>>56)&0x7f|0x80), -+ 1) -+ } -+ return b -+} -+ -+// ConsumeVarint parses b as a varint-encoded uint64, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeVarint(b []byte) (v uint64, n int) { -+ var y uint64 -+ if len(b) <= 0 { -+ return 0, errCodeTruncated -+ } -+ v = uint64(b[0]) -+ if v < 0x80 { -+ return v, 1 -+ } -+ v -= 0x80 -+ -+ if len(b) <= 1 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[1]) -+ v += y << 7 -+ if y < 0x80 { -+ return v, 2 -+ } -+ v -= 0x80 << 7 -+ -+ if len(b) <= 2 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[2]) -+ v += y << 14 -+ if y < 0x80 { -+ return v, 3 -+ } -+ v -= 0x80 << 14 -+ -+ if len(b) <= 3 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[3]) -+ v += y << 21 -+ if y < 0x80 { -+ return v, 4 -+ } -+ v -= 0x80 << 21 -+ -+ if len(b) <= 4 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[4]) -+ v += y << 28 -+ if y < 0x80 { -+ return v, 5 -+ } -+ v -= 0x80 << 28 -+ -+ if len(b) <= 5 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[5]) -+ v += y << 35 -+ if y < 0x80 { -+ return v, 6 -+ } -+ v -= 0x80 << 35 -+ -+ if len(b) <= 6 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[6]) -+ v += y << 42 -+ if y < 0x80 { -+ return v, 7 -+ } -+ v -= 0x80 << 42 -+ -+ if len(b) <= 7 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[7]) -+ v += y << 49 -+ if y < 0x80 { -+ return v, 8 -+ } -+ v -= 0x80 << 49 -+ -+ if len(b) <= 8 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[8]) -+ v += y << 56 -+ if y < 0x80 { -+ return v, 9 -+ } -+ v -= 0x80 << 56 -+ -+ if len(b) <= 9 { -+ return 0, errCodeTruncated -+ } -+ y = uint64(b[9]) -+ v += y << 63 -+ if y < 2 { -+ return v, 10 -+ } -+ return 0, errCodeOverflow -+} -+ -+// SizeVarint returns the encoded size of a varint. -+// The size is guaranteed to be within 1 and 10, inclusive. -+func SizeVarint(v uint64) int { -+ // This computes 1 + (bits.Len64(v)-1)/7. -+ // 9/64 is a good enough approximation of 1/7 -+ return int(9*uint32(bits.Len64(v))+64) / 64 -+} -+ -+// AppendFixed32 appends v to b as a little-endian uint32. -+func AppendFixed32(b []byte, v uint32) []byte { -+ return append(b, -+ byte(v>>0), -+ byte(v>>8), -+ byte(v>>16), -+ byte(v>>24)) -+} -+ -+// ConsumeFixed32 parses b as a little-endian uint32, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeFixed32(b []byte) (v uint32, n int) { -+ if len(b) < 4 { -+ return 0, errCodeTruncated -+ } -+ v = uint32(b[0])<<0 | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 -+ return v, 4 -+} -+ -+// SizeFixed32 returns the encoded size of a fixed32; which is always 4. -+func SizeFixed32() int { -+ return 4 -+} -+ -+// AppendFixed64 appends v to b as a little-endian uint64. -+func AppendFixed64(b []byte, v uint64) []byte { -+ return append(b, -+ byte(v>>0), -+ byte(v>>8), -+ byte(v>>16), -+ byte(v>>24), -+ byte(v>>32), -+ byte(v>>40), -+ byte(v>>48), -+ byte(v>>56)) -+} -+ -+// ConsumeFixed64 parses b as a little-endian uint64, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeFixed64(b []byte) (v uint64, n int) { -+ if len(b) < 8 { -+ return 0, errCodeTruncated -+ } -+ v = uint64(b[0])<<0 | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 -+ return v, 8 -+} -+ -+// SizeFixed64 returns the encoded size of a fixed64; which is always 8. -+func SizeFixed64() int { -+ return 8 -+} -+ -+// AppendBytes appends v to b as a length-prefixed bytes value. -+func AppendBytes(b []byte, v []byte) []byte { -+ return append(AppendVarint(b, uint64(len(v))), v...) -+} -+ -+// ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeBytes(b []byte) (v []byte, n int) { -+ m, n := ConsumeVarint(b) -+ if n < 0 { -+ return nil, n // forward error code -+ } -+ if m > uint64(len(b[n:])) { -+ return nil, errCodeTruncated -+ } -+ return b[n:][:m], n + int(m) -+} -+ -+// SizeBytes returns the encoded size of a length-prefixed bytes value, -+// given only the length. -+func SizeBytes(n int) int { -+ return SizeVarint(uint64(n)) + n -+} -+ -+// AppendString appends v to b as a length-prefixed bytes value. -+func AppendString(b []byte, v string) []byte { -+ return append(AppendVarint(b, uint64(len(v))), v...) -+} -+ -+// ConsumeString parses b as a length-prefixed bytes value, reporting its length. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeString(b []byte) (v string, n int) { -+ bb, n := ConsumeBytes(b) -+ return string(bb), n -+} -+ -+// AppendGroup appends v to b as group value, with a trailing end group marker. -+// The value v must not contain the end marker. -+func AppendGroup(b []byte, num Number, v []byte) []byte { -+ return AppendVarint(append(b, v...), EncodeTag(num, EndGroupType)) -+} -+ -+// ConsumeGroup parses b as a group value until the trailing end group marker, -+// and verifies that the end marker matches the provided num. The value v -+// does not contain the end marker, while the length does contain the end marker. -+// This returns a negative length upon an error (see ParseError). -+func ConsumeGroup(num Number, b []byte) (v []byte, n int) { -+ n = ConsumeFieldValue(num, StartGroupType, b) -+ if n < 0 { -+ return nil, n // forward error code -+ } -+ b = b[:n] -+ -+ // Truncate off end group marker, but need to handle denormalized varints. -+ // Assuming end marker is never 0 (which is always the case since -+ // EndGroupType is non-zero), we can truncate all trailing bytes where the -+ // lower 7 bits are all zero (implying that the varint is denormalized). -+ for len(b) > 0 && b[len(b)-1]&0x7f == 0 { -+ b = b[:len(b)-1] -+ } -+ b = b[:len(b)-SizeTag(num)] -+ return b, n -+} -+ -+// SizeGroup returns the encoded size of a group, given only the length. -+func SizeGroup(num Number, n int) int { -+ return n + SizeTag(num) -+} -+ -+// DecodeTag decodes the field Number and wire Type from its unified form. -+// The Number is -1 if the decoded field number overflows int32. -+// Other than overflow, this does not check for field number validity. -+func DecodeTag(x uint64) (Number, Type) { -+ // NOTE: MessageSet allows for larger field numbers than normal. -+ if x>>3 > uint64(math.MaxInt32) { -+ return -1, 0 -+ } -+ return Number(x >> 3), Type(x & 7) -+} -+ -+// EncodeTag encodes the field Number and wire Type into its unified form. -+func EncodeTag(num Number, typ Type) uint64 { -+ return uint64(num)<<3 | uint64(typ&7) -+} -+ -+// DecodeZigZag decodes a zig-zag-encoded uint64 as an int64. -+// -+// Input: {…, 5, 3, 1, 0, 2, 4, 6, …} -+// Output: {…, -3, -2, -1, 0, +1, +2, +3, …} -+func DecodeZigZag(x uint64) int64 { -+ return int64(x>>1) ^ int64(x)<<63>>63 -+} -+ -+// EncodeZigZag encodes an int64 as a zig-zag-encoded uint64. -+// -+// Input: {…, -3, -2, -1, 0, +1, +2, +3, …} -+// Output: {…, 5, 3, 1, 0, 2, 4, 6, …} -+func EncodeZigZag(x int64) uint64 { -+ return uint64(x<<1) ^ uint64(x>>63) -+} -+ -+// DecodeBool decodes a uint64 as a bool. -+// -+// Input: { 0, 1, 2, …} -+// Output: {false, true, true, …} -+func DecodeBool(x uint64) bool { -+ return x != 0 -+} -+ -+// EncodeBool encodes a bool as a uint64. -+// -+// Input: {false, true} -+// Output: { 0, 1} -+func EncodeBool(x bool) uint64 { -+ if x { -+ return 1 -+ } -+ return 0 -+} -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -new file mode 100644 -index 00000000..db5248e1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -0,0 +1,318 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package descfmt provides functionality to format descriptors. -+package descfmt -+ -+import ( -+ "fmt" -+ "io" -+ "reflect" -+ "strconv" -+ "strings" -+ -+ "google.golang.org/protobuf/internal/detrand" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type list interface { -+ Len() int -+ pragma.DoNotImplement -+} -+ -+func FormatList(s fmt.State, r rune, vs list) { -+ io.WriteString(s, formatListOpt(vs, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+} -+func formatListOpt(vs list, isRoot, allowMulti bool) string { -+ start, end := "[", "]" -+ if isRoot { -+ var name string -+ switch vs.(type) { -+ case protoreflect.Names: -+ name = "Names" -+ case protoreflect.FieldNumbers: -+ name = "FieldNumbers" -+ case protoreflect.FieldRanges: -+ name = "FieldRanges" -+ case protoreflect.EnumRanges: -+ name = "EnumRanges" -+ case protoreflect.FileImports: -+ name = "FileImports" -+ case protoreflect.Descriptor: -+ name = reflect.ValueOf(vs).MethodByName("Get").Type().Out(0).Name() + "s" -+ default: -+ name = reflect.ValueOf(vs).Elem().Type().Name() -+ } -+ start, end = name+"{", "}" -+ } -+ -+ var ss []string -+ switch vs := vs.(type) { -+ case protoreflect.Names: -+ for i := 0; i < vs.Len(); i++ { -+ ss = append(ss, fmt.Sprint(vs.Get(i))) -+ } -+ return start + joinStrings(ss, false) + end -+ case protoreflect.FieldNumbers: -+ for i := 0; i < vs.Len(); i++ { -+ ss = append(ss, fmt.Sprint(vs.Get(i))) -+ } -+ return start + joinStrings(ss, false) + end -+ case protoreflect.FieldRanges: -+ for i := 0; i < vs.Len(); i++ { -+ r := vs.Get(i) -+ if r[0]+1 == r[1] { -+ ss = append(ss, fmt.Sprintf("%d", r[0])) -+ } else { -+ ss = append(ss, fmt.Sprintf("%d:%d", r[0], r[1])) // enum ranges are end exclusive -+ } -+ } -+ return start + joinStrings(ss, false) + end -+ case protoreflect.EnumRanges: -+ for i := 0; i < vs.Len(); i++ { -+ r := vs.Get(i) -+ if r[0] == r[1] { -+ ss = append(ss, fmt.Sprintf("%d", r[0])) -+ } else { -+ ss = append(ss, fmt.Sprintf("%d:%d", r[0], int64(r[1])+1)) // enum ranges are end inclusive -+ } -+ } -+ return start + joinStrings(ss, false) + end -+ case protoreflect.FileImports: -+ for i := 0; i < vs.Len(); i++ { -+ var rs records -+ rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ ss = append(ss, "{"+rs.Join()+"}") -+ } -+ return start + joinStrings(ss, allowMulti) + end -+ default: -+ _, isEnumValue := vs.(protoreflect.EnumValueDescriptors) -+ for i := 0; i < vs.Len(); i++ { -+ m := reflect.ValueOf(vs).MethodByName("Get") -+ v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ } -+ return start + joinStrings(ss, allowMulti && isEnumValue) + end -+ } -+} -+ -+// descriptorAccessors is a list of accessors to print for each descriptor. -+// -+// Do not print all accessors since some contain redundant information, -+// while others are pointers that we do not want to follow since the descriptor -+// is actually a cyclic graph. -+// -+// Using a list allows us to print the accessors in a sensible order. -+var descriptorAccessors = map[reflect.Type][]string{ -+ reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -+ reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -+ reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -+ reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -+ reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -+ reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -+ reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -+ reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+} -+ -+func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+} -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ rv := reflect.ValueOf(t) -+ rt := rv.MethodByName("ProtoType").Type().In(0) -+ -+ start, end := "{", "}" -+ if isRoot { -+ start = rt.Name() + "{" -+ } -+ -+ _, isFile := t.(protoreflect.FileDescriptor) -+ rs := records{allowMulti: allowMulti} -+ if t.IsPlaceholder() { -+ if isFile { -+ rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ } else { -+ rs.Append(rv, "FullName", "IsPlaceholder") -+ } -+ } else { -+ switch { -+ case isFile: -+ rs.Append(rv, "Syntax") -+ case isRoot: -+ rs.Append(rv, "Syntax", "FullName") -+ default: -+ rs.Append(rv, "Name") -+ } -+ switch t := t.(type) { -+ case protoreflect.FieldDescriptor: -+ for _, s := range descriptorAccessors[rt] { -+ switch s { -+ case "MapKey": -+ if k := t.MapKey(); k != nil { -+ rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -+ } -+ case "MapValue": -+ if v := t.MapValue(); v != nil { -+ switch v.Kind() { -+ case protoreflect.EnumKind: -+ rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ default: -+ rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ } -+ } -+ case "ContainingOneof": -+ if od := t.ContainingOneof(); od != nil { -+ rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ } -+ case "ContainingMessage": -+ if t.IsExtension() { -+ rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ } -+ case "Message": -+ if !t.IsMap() { -+ rs.Append(rv, s) -+ } -+ default: -+ rs.Append(rv, s) -+ } -+ } -+ case protoreflect.OneofDescriptor: -+ var ss []string -+ fs := t.Fields() -+ for i := 0; i < fs.Len(); i++ { -+ ss = append(ss, string(fs.Get(i).Name())) -+ } -+ if len(ss) > 0 { -+ rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ } -+ default: -+ rs.Append(rv, descriptorAccessors[rt]...) -+ } -+ if rv.MethodByName("GoType").IsValid() { -+ rs.Append(rv, "GoType") -+ } -+ } -+ return start + rs.Join() + end -+} -+ -+type records struct { -+ recs [][2]string -+ allowMulti bool -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...string) { -+ for _, a := range accessors { -+ var rv reflect.Value -+ if m := v.MethodByName(a); m.IsValid() { -+ rv = m.Call(nil)[0] -+ } -+ if v.Kind() == reflect.Struct && !rv.IsValid() { -+ rv = v.FieldByName(a) -+ } -+ if !rv.IsValid() { -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ } -+ if _, ok := rv.Interface().(protoreflect.Value); ok { -+ rv = rv.MethodByName("Interface").Call(nil)[0] -+ if !rv.IsNil() { -+ rv = rv.Elem() -+ } -+ } -+ -+ // Ignore zero values. -+ var isZero bool -+ switch rv.Kind() { -+ case reflect.Interface, reflect.Slice: -+ isZero = rv.IsNil() -+ case reflect.Bool: -+ isZero = rv.Bool() == false -+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: -+ isZero = rv.Int() == 0 -+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: -+ isZero = rv.Uint() == 0 -+ case reflect.String: -+ isZero = rv.String() == "" -+ } -+ if n, ok := rv.Interface().(list); ok { -+ isZero = n.Len() == 0 -+ } -+ if isZero { -+ continue -+ } -+ -+ // Format the value. -+ var s string -+ v := rv.Interface() -+ switch v := v.(type) { -+ case list: -+ s = formatListOpt(v, false, rs.allowMulti) -+ case protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor: -+ s = string(v.(protoreflect.Descriptor).Name()) -+ case protoreflect.Descriptor: -+ s = string(v.FullName()) -+ case string: -+ s = strconv.Quote(v) -+ case []byte: -+ s = fmt.Sprintf("%q", v) -+ default: -+ s = fmt.Sprint(v) -+ } -+ rs.recs = append(rs.recs, [2]string{a, s}) -+ } -+} -+ -+func (rs *records) Join() string { -+ var ss []string -+ -+ // In single line mode, simply join all records with commas. -+ if !rs.allowMulti { -+ for _, r := range rs.recs { -+ ss = append(ss, r[0]+formatColon(0)+r[1]) -+ } -+ return joinStrings(ss, false) -+ } -+ -+ // In allowMulti line mode, align single line records for more readable output. -+ var maxLen int -+ flush := func(i int) { -+ for _, r := range rs.recs[len(ss):i] { -+ ss = append(ss, r[0]+formatColon(maxLen-len(r[0]))+r[1]) -+ } -+ maxLen = 0 -+ } -+ for i, r := range rs.recs { -+ if isMulti := strings.Contains(r[1], "\n"); isMulti { -+ flush(i) -+ ss = append(ss, r[0]+formatColon(0)+strings.Join(strings.Split(r[1], "\n"), "\n\t")) -+ } else if maxLen < len(r[0]) { -+ maxLen = len(r[0]) -+ } -+ } -+ flush(len(rs.recs)) -+ return joinStrings(ss, true) -+} -+ -+func formatColon(padding int) string { -+ // Deliberately introduce instability into the debug output to -+ // discourage users from performing string comparisons. -+ // This provides us flexibility to change the output in the future. -+ if detrand.Bool() { -+ return ":" + strings.Repeat(" ", 1+padding) // use non-breaking spaces (U+00a0) -+ } else { -+ return ":" + strings.Repeat(" ", 1+padding) // use regular spaces (U+0020) -+ } -+} -+ -+func joinStrings(ss []string, isMulti bool) string { -+ if len(ss) == 0 { -+ return "" -+ } -+ if isMulti { -+ return "\n\t" + strings.Join(ss, "\n\t") + "\n" -+ } -+ return strings.Join(ss, ", ") -+} -diff --git a/vendor/google.golang.org/protobuf/internal/descopts/options.go b/vendor/google.golang.org/protobuf/internal/descopts/options.go -new file mode 100644 -index 00000000..8401be8c ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/descopts/options.go -@@ -0,0 +1,29 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package descopts contains the nil pointers to concrete descriptor options. -+// -+// This package exists as a form of reverse dependency injection so that certain -+// packages (e.g., internal/filedesc and internal/filetype can avoid a direct -+// dependency on the descriptor proto package). -+package descopts -+ -+import pref "google.golang.org/protobuf/reflect/protoreflect" -+ -+// These variables are set by the init function in descriptor.pb.go via logic -+// in internal/filetype. In other words, so long as the descriptor proto package -+// is linked in, these variables will be populated. -+// -+// Each variable is populated with a nil pointer to the options struct. -+var ( -+ File pref.ProtoMessage -+ Enum pref.ProtoMessage -+ EnumValue pref.ProtoMessage -+ Message pref.ProtoMessage -+ Field pref.ProtoMessage -+ Oneof pref.ProtoMessage -+ ExtensionRange pref.ProtoMessage -+ Service pref.ProtoMessage -+ Method pref.ProtoMessage -+) -diff --git a/vendor/google.golang.org/protobuf/internal/detrand/rand.go b/vendor/google.golang.org/protobuf/internal/detrand/rand.go -new file mode 100644 -index 00000000..49c8676d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/detrand/rand.go -@@ -0,0 +1,69 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package detrand provides deterministically random functionality. -+// -+// The pseudo-randomness of these functions is seeded by the program binary -+// itself and guarantees that the output does not change within a program, -+// while ensuring that the output is unstable across different builds. -+package detrand -+ -+import ( -+ "encoding/binary" -+ "hash/fnv" -+ "os" -+) -+ -+// Disable disables detrand such that all functions returns the zero value. -+// This function is not concurrent-safe and must be called during program init. -+func Disable() { -+ randSeed = 0 -+} -+ -+// Bool returns a deterministically random boolean. -+func Bool() bool { -+ return randSeed%2 == 1 -+} -+ -+// Intn returns a deterministically random integer between 0 and n-1, inclusive. -+func Intn(n int) int { -+ if n <= 0 { -+ panic("must be positive") -+ } -+ return int(randSeed % uint64(n)) -+} -+ -+// randSeed is a best-effort at an approximate hash of the Go binary. -+var randSeed = binaryHash() -+ -+func binaryHash() uint64 { -+ // Open the Go binary. -+ s, err := os.Executable() -+ if err != nil { -+ return 0 -+ } -+ f, err := os.Open(s) -+ if err != nil { -+ return 0 -+ } -+ defer f.Close() -+ -+ // Hash the size and several samples of the Go binary. -+ const numSamples = 8 -+ var buf [64]byte -+ h := fnv.New64() -+ fi, err := f.Stat() -+ if err != nil { -+ return 0 -+ } -+ binary.LittleEndian.PutUint64(buf[:8], uint64(fi.Size())) -+ h.Write(buf[:8]) -+ for i := int64(0); i < numSamples; i++ { -+ if _, err := f.ReadAt(buf[:], i*fi.Size()/numSamples); err != nil { -+ return 0 -+ } -+ h.Write(buf[:]) -+ } -+ return h.Sum64() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go b/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go -new file mode 100644 -index 00000000..328dc733 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go -@@ -0,0 +1,213 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package defval marshals and unmarshals textual forms of default values. -+// -+// This package handles both the form historically used in Go struct field tags -+// and also the form used by google.protobuf.FieldDescriptorProto.default_value -+// since they differ in superficial ways. -+package defval -+ -+import ( -+ "fmt" -+ "math" -+ "strconv" -+ -+ ptext "google.golang.org/protobuf/internal/encoding/text" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// Format is the serialization format used to represent the default value. -+type Format int -+ -+const ( -+ _ Format = iota -+ -+ // Descriptor uses the serialization format that protoc uses with the -+ // google.protobuf.FieldDescriptorProto.default_value field. -+ Descriptor -+ -+ // GoTag uses the historical serialization format in Go struct field tags. -+ GoTag -+) -+ -+// Unmarshal deserializes the default string s according to the given kind k. -+// When k is an enum, a list of enum value descriptors must be provided. -+func Unmarshal(s string, k protoreflect.Kind, evs protoreflect.EnumValueDescriptors, f Format) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { -+ switch k { -+ case protoreflect.BoolKind: -+ if f == GoTag { -+ switch s { -+ case "1": -+ return protoreflect.ValueOfBool(true), nil, nil -+ case "0": -+ return protoreflect.ValueOfBool(false), nil, nil -+ } -+ } else { -+ switch s { -+ case "true": -+ return protoreflect.ValueOfBool(true), nil, nil -+ case "false": -+ return protoreflect.ValueOfBool(false), nil, nil -+ } -+ } -+ case protoreflect.EnumKind: -+ if f == GoTag { -+ // Go tags use the numeric form of the enum value. -+ if n, err := strconv.ParseInt(s, 10, 32); err == nil { -+ if ev := evs.ByNumber(protoreflect.EnumNumber(n)); ev != nil { -+ return protoreflect.ValueOfEnum(ev.Number()), ev, nil -+ } -+ } -+ } else { -+ // Descriptor default_value use the enum identifier. -+ ev := evs.ByName(protoreflect.Name(s)) -+ if ev != nil { -+ return protoreflect.ValueOfEnum(ev.Number()), ev, nil -+ } -+ } -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: -+ if v, err := strconv.ParseInt(s, 10, 32); err == nil { -+ return protoreflect.ValueOfInt32(int32(v)), nil, nil -+ } -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ if v, err := strconv.ParseInt(s, 10, 64); err == nil { -+ return protoreflect.ValueOfInt64(int64(v)), nil, nil -+ } -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: -+ if v, err := strconv.ParseUint(s, 10, 32); err == nil { -+ return protoreflect.ValueOfUint32(uint32(v)), nil, nil -+ } -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ if v, err := strconv.ParseUint(s, 10, 64); err == nil { -+ return protoreflect.ValueOfUint64(uint64(v)), nil, nil -+ } -+ case protoreflect.FloatKind, protoreflect.DoubleKind: -+ var v float64 -+ var err error -+ switch s { -+ case "-inf": -+ v = math.Inf(-1) -+ case "inf": -+ v = math.Inf(+1) -+ case "nan": -+ v = math.NaN() -+ default: -+ v, err = strconv.ParseFloat(s, 64) -+ } -+ if err == nil { -+ if k == protoreflect.FloatKind { -+ return protoreflect.ValueOfFloat32(float32(v)), nil, nil -+ } else { -+ return protoreflect.ValueOfFloat64(float64(v)), nil, nil -+ } -+ } -+ case protoreflect.StringKind: -+ // String values are already unescaped and can be used as is. -+ return protoreflect.ValueOfString(s), nil, nil -+ case protoreflect.BytesKind: -+ if b, ok := unmarshalBytes(s); ok { -+ return protoreflect.ValueOfBytes(b), nil, nil -+ } -+ } -+ return protoreflect.Value{}, nil, errors.New("could not parse value for %v: %q", k, s) -+} -+ -+// Marshal serializes v as the default string according to the given kind k. -+// When specifying the Descriptor format for an enum kind, the associated -+// enum value descriptor must be provided. -+func Marshal(v protoreflect.Value, ev protoreflect.EnumValueDescriptor, k protoreflect.Kind, f Format) (string, error) { -+ switch k { -+ case protoreflect.BoolKind: -+ if f == GoTag { -+ if v.Bool() { -+ return "1", nil -+ } else { -+ return "0", nil -+ } -+ } else { -+ if v.Bool() { -+ return "true", nil -+ } else { -+ return "false", nil -+ } -+ } -+ case protoreflect.EnumKind: -+ if f == GoTag { -+ return strconv.FormatInt(int64(v.Enum()), 10), nil -+ } else { -+ return string(ev.Name()), nil -+ } -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ return strconv.FormatInt(v.Int(), 10), nil -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ return strconv.FormatUint(v.Uint(), 10), nil -+ case protoreflect.FloatKind, protoreflect.DoubleKind: -+ f := v.Float() -+ switch { -+ case math.IsInf(f, -1): -+ return "-inf", nil -+ case math.IsInf(f, +1): -+ return "inf", nil -+ case math.IsNaN(f): -+ return "nan", nil -+ default: -+ if k == protoreflect.FloatKind { -+ return strconv.FormatFloat(f, 'g', -1, 32), nil -+ } else { -+ return strconv.FormatFloat(f, 'g', -1, 64), nil -+ } -+ } -+ case protoreflect.StringKind: -+ // String values are serialized as is without any escaping. -+ return v.String(), nil -+ case protoreflect.BytesKind: -+ if s, ok := marshalBytes(v.Bytes()); ok { -+ return s, nil -+ } -+ } -+ return "", errors.New("could not format value for %v: %v", k, v) -+} -+ -+// unmarshalBytes deserializes bytes by applying C unescaping. -+func unmarshalBytes(s string) ([]byte, bool) { -+ // Bytes values use the same escaping as the text format, -+ // however they lack the surrounding double quotes. -+ v, err := ptext.UnmarshalString(`"` + s + `"`) -+ if err != nil { -+ return nil, false -+ } -+ return []byte(v), true -+} -+ -+// marshalBytes serializes bytes by using C escaping. -+// To match the exact output of protoc, this is identical to the -+// CEscape function in strutil.cc of the protoc source code. -+func marshalBytes(b []byte) (string, bool) { -+ var s []byte -+ for _, c := range b { -+ switch c { -+ case '\n': -+ s = append(s, `\n`...) -+ case '\r': -+ s = append(s, `\r`...) -+ case '\t': -+ s = append(s, `\t`...) -+ case '"': -+ s = append(s, `\"`...) -+ case '\'': -+ s = append(s, `\'`...) -+ case '\\': -+ s = append(s, `\\`...) -+ default: -+ if printableASCII := c >= 0x20 && c <= 0x7e; printableASCII { -+ s = append(s, c) -+ } else { -+ s = append(s, fmt.Sprintf(`\%03o`, c)...) -+ } -+ } -+ } -+ return string(s), true -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go b/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go -new file mode 100644 -index 00000000..a6693f0a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go -@@ -0,0 +1,242 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package messageset encodes and decodes the obsolete MessageSet wire format. -+package messageset -+ -+import ( -+ "math" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// The MessageSet wire format is equivalent to a message defined as follows, -+// where each Item defines an extension field with a field number of 'type_id' -+// and content of 'message'. MessageSet extensions must be non-repeated message -+// fields. -+// -+// message MessageSet { -+// repeated group Item = 1 { -+// required int32 type_id = 2; -+// required string message = 3; -+// } -+// } -+const ( -+ FieldItem = protowire.Number(1) -+ FieldTypeID = protowire.Number(2) -+ FieldMessage = protowire.Number(3) -+) -+ -+// ExtensionName is the field name for extensions of MessageSet. -+// -+// A valid MessageSet extension must be of the form: -+// -+// message MyMessage { -+// extend proto2.bridge.MessageSet { -+// optional MyMessage message_set_extension = 1234; -+// } -+// ... -+// } -+const ExtensionName = "message_set_extension" -+ -+// IsMessageSet returns whether the message uses the MessageSet wire format. -+func IsMessageSet(md protoreflect.MessageDescriptor) bool { -+ xmd, ok := md.(interface{ IsMessageSet() bool }) -+ return ok && xmd.IsMessageSet() -+} -+ -+// IsMessageSetExtension reports this field properly extends a MessageSet. -+func IsMessageSetExtension(fd protoreflect.FieldDescriptor) bool { -+ switch { -+ case fd.Name() != ExtensionName: -+ return false -+ case !IsMessageSet(fd.ContainingMessage()): -+ return false -+ case fd.FullName().Parent() != fd.Message().FullName(): -+ return false -+ } -+ return true -+} -+ -+// SizeField returns the size of a MessageSet item field containing an extension -+// with the given field number, not counting the contents of the message subfield. -+func SizeField(num protowire.Number) int { -+ return 2*protowire.SizeTag(FieldItem) + protowire.SizeTag(FieldTypeID) + protowire.SizeVarint(uint64(num)) -+} -+ -+// Unmarshal parses a MessageSet. -+// -+// It calls fn with the type ID and value of each item in the MessageSet. -+// Unknown fields are discarded. -+// -+// If wantLen is true, the item values include the varint length prefix. -+// This is ugly, but simplifies the fast-path decoder in internal/impl. -+func Unmarshal(b []byte, wantLen bool, fn func(typeID protowire.Number, value []byte) error) error { -+ for len(b) > 0 { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return protowire.ParseError(n) -+ } -+ b = b[n:] -+ if num != FieldItem || wtyp != protowire.StartGroupType { -+ n := protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return protowire.ParseError(n) -+ } -+ b = b[n:] -+ continue -+ } -+ typeID, value, n, err := ConsumeFieldValue(b, wantLen) -+ if err != nil { -+ return err -+ } -+ b = b[n:] -+ if typeID == 0 { -+ continue -+ } -+ if err := fn(typeID, value); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+// ConsumeFieldValue parses b as a MessageSet item field value until and including -+// the trailing end group marker. It assumes the start group tag has already been parsed. -+// It returns the contents of the type_id and message subfields and the total -+// item length. -+// -+// If wantLen is true, the returned message value includes the length prefix. -+func ConsumeFieldValue(b []byte, wantLen bool) (typeid protowire.Number, message []byte, n int, err error) { -+ ilen := len(b) -+ for { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return 0, nil, 0, protowire.ParseError(n) -+ } -+ b = b[n:] -+ switch { -+ case num == FieldItem && wtyp == protowire.EndGroupType: -+ if wantLen && len(message) == 0 { -+ // The message field was missing, which should never happen. -+ // Be prepared for this case anyway. -+ message = protowire.AppendVarint(message, 0) -+ } -+ return typeid, message, ilen - len(b), nil -+ case num == FieldTypeID && wtyp == protowire.VarintType: -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, nil, 0, protowire.ParseError(n) -+ } -+ b = b[n:] -+ if v < 1 || v > math.MaxInt32 { -+ return 0, nil, 0, errors.New("invalid type_id in message set") -+ } -+ typeid = protowire.Number(v) -+ case num == FieldMessage && wtyp == protowire.BytesType: -+ m, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, nil, 0, protowire.ParseError(n) -+ } -+ if message == nil { -+ if wantLen { -+ message = b[:n:n] -+ } else { -+ message = m[:len(m):len(m)] -+ } -+ } else { -+ // This case should never happen in practice, but handle it for -+ // correctness: The MessageSet item contains multiple message -+ // fields, which need to be merged. -+ // -+ // In the case where we're returning the length, this becomes -+ // quite inefficient since we need to strip the length off -+ // the existing data and reconstruct it with the combined length. -+ if wantLen { -+ _, nn := protowire.ConsumeVarint(message) -+ m0 := message[nn:] -+ message = nil -+ message = protowire.AppendVarint(message, uint64(len(m0)+len(m))) -+ message = append(message, m0...) -+ message = append(message, m...) -+ } else { -+ message = append(message, m...) -+ } -+ } -+ b = b[n:] -+ default: -+ // We have no place to put it, so we just ignore unknown fields. -+ n := protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return 0, nil, 0, protowire.ParseError(n) -+ } -+ b = b[n:] -+ } -+ } -+} -+ -+// AppendFieldStart appends the start of a MessageSet item field containing -+// an extension with the given number. The caller must add the message -+// subfield (including the tag). -+func AppendFieldStart(b []byte, num protowire.Number) []byte { -+ b = protowire.AppendTag(b, FieldItem, protowire.StartGroupType) -+ b = protowire.AppendTag(b, FieldTypeID, protowire.VarintType) -+ b = protowire.AppendVarint(b, uint64(num)) -+ return b -+} -+ -+// AppendFieldEnd appends the trailing end group marker for a MessageSet item field. -+func AppendFieldEnd(b []byte) []byte { -+ return protowire.AppendTag(b, FieldItem, protowire.EndGroupType) -+} -+ -+// SizeUnknown returns the size of an unknown fields section in MessageSet format. -+// -+// See AppendUnknown. -+func SizeUnknown(unknown []byte) (size int) { -+ for len(unknown) > 0 { -+ num, typ, n := protowire.ConsumeTag(unknown) -+ if n < 0 || typ != protowire.BytesType { -+ return 0 -+ } -+ unknown = unknown[n:] -+ _, n = protowire.ConsumeBytes(unknown) -+ if n < 0 { -+ return 0 -+ } -+ unknown = unknown[n:] -+ size += SizeField(num) + protowire.SizeTag(FieldMessage) + n -+ } -+ return size -+} -+ -+// AppendUnknown appends unknown fields to b in MessageSet format. -+// -+// For historic reasons, unresolved items in a MessageSet are stored in a -+// message's unknown fields section in non-MessageSet format. That is, an -+// unknown item with typeID T and value V appears in the unknown fields as -+// a field with number T and value V. -+// -+// This function converts the unknown fields back into MessageSet form. -+func AppendUnknown(b, unknown []byte) ([]byte, error) { -+ for len(unknown) > 0 { -+ num, typ, n := protowire.ConsumeTag(unknown) -+ if n < 0 || typ != protowire.BytesType { -+ return nil, errors.New("invalid data in message set unknown fields") -+ } -+ unknown = unknown[n:] -+ _, n = protowire.ConsumeBytes(unknown) -+ if n < 0 { -+ return nil, errors.New("invalid data in message set unknown fields") -+ } -+ b = AppendFieldStart(b, num) -+ b = protowire.AppendTag(b, FieldMessage, protowire.BytesType) -+ b = append(b, unknown[:n]...) -+ b = AppendFieldEnd(b) -+ unknown = unknown[n:] -+ } -+ return b, nil -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go -new file mode 100644 -index 00000000..373d2083 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go -@@ -0,0 +1,207 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package tag marshals and unmarshals the legacy struct tags as generated -+// by historical versions of protoc-gen-go. -+package tag -+ -+import ( -+ "reflect" -+ "strconv" -+ "strings" -+ -+ "google.golang.org/protobuf/internal/encoding/defval" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var byteType = reflect.TypeOf(byte(0)) -+ -+// Unmarshal decodes the tag into a prototype.Field. -+// -+// The goType is needed to determine the original protoreflect.Kind since the -+// tag does not record sufficient information to determine that. -+// The type is the underlying field type (e.g., a repeated field may be -+// represented by []T, but the Go type passed in is just T). -+// A list of enum value descriptors must be provided for enum fields. -+// This does not populate the Enum or Message (except for weak message). -+// -+// This function is a best effort attempt; parsing errors are ignored. -+func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { -+ f := new(filedesc.Field) -+ f.L0.ParentFile = filedesc.SurrogateProto2 -+ for len(tag) > 0 { -+ i := strings.IndexByte(tag, ',') -+ if i < 0 { -+ i = len(tag) -+ } -+ switch s := tag[:i]; { -+ case strings.HasPrefix(s, "name="): -+ f.L0.FullName = protoreflect.FullName(s[len("name="):]) -+ case strings.Trim(s, "0123456789") == "": -+ n, _ := strconv.ParseUint(s, 10, 32) -+ f.L1.Number = protoreflect.FieldNumber(n) -+ case s == "opt": -+ f.L1.Cardinality = protoreflect.Optional -+ case s == "req": -+ f.L1.Cardinality = protoreflect.Required -+ case s == "rep": -+ f.L1.Cardinality = protoreflect.Repeated -+ case s == "varint": -+ switch goType.Kind() { -+ case reflect.Bool: -+ f.L1.Kind = protoreflect.BoolKind -+ case reflect.Int32: -+ f.L1.Kind = protoreflect.Int32Kind -+ case reflect.Int64: -+ f.L1.Kind = protoreflect.Int64Kind -+ case reflect.Uint32: -+ f.L1.Kind = protoreflect.Uint32Kind -+ case reflect.Uint64: -+ f.L1.Kind = protoreflect.Uint64Kind -+ } -+ case s == "zigzag32": -+ if goType.Kind() == reflect.Int32 { -+ f.L1.Kind = protoreflect.Sint32Kind -+ } -+ case s == "zigzag64": -+ if goType.Kind() == reflect.Int64 { -+ f.L1.Kind = protoreflect.Sint64Kind -+ } -+ case s == "fixed32": -+ switch goType.Kind() { -+ case reflect.Int32: -+ f.L1.Kind = protoreflect.Sfixed32Kind -+ case reflect.Uint32: -+ f.L1.Kind = protoreflect.Fixed32Kind -+ case reflect.Float32: -+ f.L1.Kind = protoreflect.FloatKind -+ } -+ case s == "fixed64": -+ switch goType.Kind() { -+ case reflect.Int64: -+ f.L1.Kind = protoreflect.Sfixed64Kind -+ case reflect.Uint64: -+ f.L1.Kind = protoreflect.Fixed64Kind -+ case reflect.Float64: -+ f.L1.Kind = protoreflect.DoubleKind -+ } -+ case s == "bytes": -+ switch { -+ case goType.Kind() == reflect.String: -+ f.L1.Kind = protoreflect.StringKind -+ case goType.Kind() == reflect.Slice && goType.Elem() == byteType: -+ f.L1.Kind = protoreflect.BytesKind -+ default: -+ f.L1.Kind = protoreflect.MessageKind -+ } -+ case s == "group": -+ f.L1.Kind = protoreflect.GroupKind -+ case strings.HasPrefix(s, "enum="): -+ f.L1.Kind = protoreflect.EnumKind -+ case strings.HasPrefix(s, "json="): -+ jsonName := s[len("json="):] -+ if jsonName != strs.JSONCamelCase(string(f.L0.FullName.Name())) { -+ f.L1.StringName.InitJSON(jsonName) -+ } -+ case s == "packed": -+ f.L1.HasPacked = true -+ f.L1.IsPacked = true -+ case strings.HasPrefix(s, "weak="): -+ f.L1.IsWeak = true -+ f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) -+ case strings.HasPrefix(s, "def="): -+ // The default tag is special in that everything afterwards is the -+ // default regardless of the presence of commas. -+ s, i = tag[len("def="):], len(tag) -+ v, ev, _ := defval.Unmarshal(s, f.L1.Kind, evs, defval.GoTag) -+ f.L1.Default = filedesc.DefaultValue(v, ev) -+ case s == "proto3": -+ f.L0.ParentFile = filedesc.SurrogateProto3 -+ } -+ tag = strings.TrimPrefix(tag[i:], ",") -+ } -+ -+ // The generator uses the group message name instead of the field name. -+ // We obtain the real field name by lowercasing the group name. -+ if f.L1.Kind == protoreflect.GroupKind { -+ f.L0.FullName = protoreflect.FullName(strings.ToLower(string(f.L0.FullName))) -+ } -+ return f -+} -+ -+// Marshal encodes the protoreflect.FieldDescriptor as a tag. -+// -+// The enumName must be provided if the kind is an enum. -+// Historically, the formulation of the enum "name" was the proto package -+// dot-concatenated with the generated Go identifier for the enum type. -+// Depending on the context on how Marshal is called, there are different ways -+// through which that information is determined. As such it is the caller's -+// responsibility to provide a function to obtain that information. -+func Marshal(fd protoreflect.FieldDescriptor, enumName string) string { -+ var tag []string -+ switch fd.Kind() { -+ case protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Uint64Kind: -+ tag = append(tag, "varint") -+ case protoreflect.Sint32Kind: -+ tag = append(tag, "zigzag32") -+ case protoreflect.Sint64Kind: -+ tag = append(tag, "zigzag64") -+ case protoreflect.Sfixed32Kind, protoreflect.Fixed32Kind, protoreflect.FloatKind: -+ tag = append(tag, "fixed32") -+ case protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind, protoreflect.DoubleKind: -+ tag = append(tag, "fixed64") -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind: -+ tag = append(tag, "bytes") -+ case protoreflect.GroupKind: -+ tag = append(tag, "group") -+ } -+ tag = append(tag, strconv.Itoa(int(fd.Number()))) -+ switch fd.Cardinality() { -+ case protoreflect.Optional: -+ tag = append(tag, "opt") -+ case protoreflect.Required: -+ tag = append(tag, "req") -+ case protoreflect.Repeated: -+ tag = append(tag, "rep") -+ } -+ if fd.IsPacked() { -+ tag = append(tag, "packed") -+ } -+ name := string(fd.Name()) -+ if fd.Kind() == protoreflect.GroupKind { -+ // The name of the FieldDescriptor for a group field is -+ // lowercased. To find the original capitalization, we -+ // look in the field's MessageType. -+ name = string(fd.Message().Name()) -+ } -+ tag = append(tag, "name="+name) -+ if jsonName := fd.JSONName(); jsonName != "" && jsonName != name && !fd.IsExtension() { -+ // NOTE: The jsonName != name condition is suspect, but it preserve -+ // the exact same semantics from the previous generator. -+ tag = append(tag, "json="+jsonName) -+ } -+ if fd.IsWeak() { -+ tag = append(tag, "weak="+string(fd.Message().FullName())) -+ } -+ // The previous implementation does not tag extension fields as proto3, -+ // even when the field is defined in a proto3 file. Match that behavior -+ // for consistency. -+ if fd.Syntax() == protoreflect.Proto3 && !fd.IsExtension() { -+ tag = append(tag, "proto3") -+ } -+ if fd.Kind() == protoreflect.EnumKind && enumName != "" { -+ tag = append(tag, "enum="+enumName) -+ } -+ if fd.ContainingOneof() != nil { -+ tag = append(tag, "oneof") -+ } -+ // This must appear last in the tag, since commas in strings aren't escaped. -+ if fd.HasDefault() { -+ def, _ := defval.Marshal(fd.Default(), fd.DefaultEnumValue(), fd.Kind(), defval.GoTag) -+ tag = append(tag, "def="+def) -+ } -+ return strings.Join(tag, ",") -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go -new file mode 100644 -index 00000000..87853e78 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go -@@ -0,0 +1,686 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package text -+ -+import ( -+ "bytes" -+ "fmt" -+ "io" -+ "strconv" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/internal/errors" -+) -+ -+// Decoder is a token-based textproto decoder. -+type Decoder struct { -+ // lastCall is last method called, either readCall or peekCall. -+ // Initial value is readCall. -+ lastCall call -+ -+ // lastToken contains the last read token. -+ lastToken Token -+ -+ // lastErr contains the last read error. -+ lastErr error -+ -+ // openStack is a stack containing the byte characters for MessageOpen and -+ // ListOpen kinds. The top of stack represents the message or the list that -+ // the current token is nested in. An empty stack means the current token is -+ // at the top level message. The characters '{' and '<' both represent the -+ // MessageOpen kind. -+ openStack []byte -+ -+ // orig is used in reporting line and column. -+ orig []byte -+ // in contains the unconsumed input. -+ in []byte -+} -+ -+// NewDecoder returns a Decoder to read the given []byte. -+func NewDecoder(b []byte) *Decoder { -+ return &Decoder{orig: b, in: b} -+} -+ -+// ErrUnexpectedEOF means that EOF was encountered in the middle of the input. -+var ErrUnexpectedEOF = errors.New("%v", io.ErrUnexpectedEOF) -+ -+// call specifies which Decoder method was invoked. -+type call uint8 -+ -+const ( -+ readCall call = iota -+ peekCall -+) -+ -+// Peek looks ahead and returns the next token and error without advancing a read. -+func (d *Decoder) Peek() (Token, error) { -+ defer func() { d.lastCall = peekCall }() -+ if d.lastCall == readCall { -+ d.lastToken, d.lastErr = d.Read() -+ } -+ return d.lastToken, d.lastErr -+} -+ -+// Read returns the next token. -+// It will return an error if there is no valid token. -+func (d *Decoder) Read() (Token, error) { -+ defer func() { d.lastCall = readCall }() -+ if d.lastCall == peekCall { -+ return d.lastToken, d.lastErr -+ } -+ -+ tok, err := d.parseNext(d.lastToken.kind) -+ if err != nil { -+ return Token{}, err -+ } -+ -+ switch tok.kind { -+ case comma, semicolon: -+ tok, err = d.parseNext(tok.kind) -+ if err != nil { -+ return Token{}, err -+ } -+ } -+ d.lastToken = tok -+ return tok, nil -+} -+ -+const ( -+ mismatchedFmt = "mismatched close character %q" -+ unexpectedFmt = "unexpected character %q" -+) -+ -+// parseNext parses the next Token based on given last kind. -+func (d *Decoder) parseNext(lastKind Kind) (Token, error) { -+ // Trim leading spaces. -+ d.consume(0) -+ isEOF := false -+ if len(d.in) == 0 { -+ isEOF = true -+ } -+ -+ switch lastKind { -+ case EOF: -+ return d.consumeToken(EOF, 0, 0), nil -+ -+ case bof: -+ // Start of top level message. Next token can be EOF or Name. -+ if isEOF { -+ return d.consumeToken(EOF, 0, 0), nil -+ } -+ return d.parseFieldName() -+ -+ case Name: -+ // Next token can be MessageOpen, ListOpen or Scalar. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case '{', '<': -+ d.pushOpenStack(ch) -+ return d.consumeToken(MessageOpen, 1, 0), nil -+ case '[': -+ d.pushOpenStack(ch) -+ return d.consumeToken(ListOpen, 1, 0), nil -+ default: -+ return d.parseScalar() -+ } -+ -+ case Scalar: -+ openKind, closeCh := d.currentOpenKind() -+ switch openKind { -+ case bof: -+ // Top level message. -+ // Next token can be EOF, comma, semicolon or Name. -+ if isEOF { -+ return d.consumeToken(EOF, 0, 0), nil -+ } -+ switch d.in[0] { -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ case MessageOpen: -+ // Next token can be MessageClose, comma, semicolon or Name. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(MessageClose, 1, 0), nil -+ case otherCloseChar[closeCh]: -+ return Token{}, d.newSyntaxError(mismatchedFmt, ch) -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ case ListOpen: -+ // Next token can be ListClose or comma. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case ']': -+ d.popOpenStack() -+ return d.consumeToken(ListClose, 1, 0), nil -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ default: -+ return Token{}, d.newSyntaxError(unexpectedFmt, ch) -+ } -+ } -+ -+ case MessageOpen: -+ // Next token can be MessageClose or Name. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ _, closeCh := d.currentOpenKind() -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(MessageClose, 1, 0), nil -+ case otherCloseChar[closeCh]: -+ return Token{}, d.newSyntaxError(mismatchedFmt, ch) -+ default: -+ return d.parseFieldName() -+ } -+ -+ case MessageClose: -+ openKind, closeCh := d.currentOpenKind() -+ switch openKind { -+ case bof: -+ // Top level message. -+ // Next token can be EOF, comma, semicolon or Name. -+ if isEOF { -+ return d.consumeToken(EOF, 0, 0), nil -+ } -+ switch ch := d.in[0]; ch { -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ case MessageOpen: -+ // Next token can be MessageClose, comma, semicolon or Name. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(MessageClose, 1, 0), nil -+ case otherCloseChar[closeCh]: -+ return Token{}, d.newSyntaxError(mismatchedFmt, ch) -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ case ListOpen: -+ // Next token can be ListClose or comma -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(ListClose, 1, 0), nil -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ default: -+ return Token{}, d.newSyntaxError(unexpectedFmt, ch) -+ } -+ } -+ -+ case ListOpen: -+ // Next token can be ListClose, MessageStart or Scalar. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case ']': -+ d.popOpenStack() -+ return d.consumeToken(ListClose, 1, 0), nil -+ case '{', '<': -+ d.pushOpenStack(ch) -+ return d.consumeToken(MessageOpen, 1, 0), nil -+ default: -+ return d.parseScalar() -+ } -+ -+ case ListClose: -+ openKind, closeCh := d.currentOpenKind() -+ switch openKind { -+ case bof: -+ // Top level message. -+ // Next token can be EOF, comma, semicolon or Name. -+ if isEOF { -+ return d.consumeToken(EOF, 0, 0), nil -+ } -+ switch ch := d.in[0]; ch { -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ case MessageOpen: -+ // Next token can be MessageClose, comma, semicolon or Name. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(MessageClose, 1, 0), nil -+ case otherCloseChar[closeCh]: -+ return Token{}, d.newSyntaxError(mismatchedFmt, ch) -+ case ',': -+ return d.consumeToken(comma, 1, 0), nil -+ case ';': -+ return d.consumeToken(semicolon, 1, 0), nil -+ default: -+ return d.parseFieldName() -+ } -+ -+ default: -+ // It is not possible to have this case. Let it panic below. -+ } -+ -+ case comma, semicolon: -+ openKind, closeCh := d.currentOpenKind() -+ switch openKind { -+ case bof: -+ // Top level message. Next token can be EOF or Name. -+ if isEOF { -+ return d.consumeToken(EOF, 0, 0), nil -+ } -+ return d.parseFieldName() -+ -+ case MessageOpen: -+ // Next token can be MessageClose or Name. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case closeCh: -+ d.popOpenStack() -+ return d.consumeToken(MessageClose, 1, 0), nil -+ case otherCloseChar[closeCh]: -+ return Token{}, d.newSyntaxError(mismatchedFmt, ch) -+ default: -+ return d.parseFieldName() -+ } -+ -+ case ListOpen: -+ if lastKind == semicolon { -+ // It is not be possible to have this case as logic here -+ // should not have produced a semicolon Token when inside a -+ // list. Let it panic below. -+ break -+ } -+ // Next token can be MessageOpen or Scalar. -+ if isEOF { -+ return Token{}, ErrUnexpectedEOF -+ } -+ switch ch := d.in[0]; ch { -+ case '{', '<': -+ d.pushOpenStack(ch) -+ return d.consumeToken(MessageOpen, 1, 0), nil -+ default: -+ return d.parseScalar() -+ } -+ } -+ } -+ -+ line, column := d.Position(len(d.orig) - len(d.in)) -+ panic(fmt.Sprintf("Decoder.parseNext: bug at handling line %d:%d with lastKind=%v", line, column, lastKind)) -+} -+ -+var otherCloseChar = map[byte]byte{ -+ '}': '>', -+ '>': '}', -+} -+ -+// currentOpenKind indicates whether current position is inside a message, list -+// or top-level message by returning MessageOpen, ListOpen or bof respectively. -+// If the returned kind is either a MessageOpen or ListOpen, it also returns the -+// corresponding closing character. -+func (d *Decoder) currentOpenKind() (Kind, byte) { -+ if len(d.openStack) == 0 { -+ return bof, 0 -+ } -+ openCh := d.openStack[len(d.openStack)-1] -+ switch openCh { -+ case '{': -+ return MessageOpen, '}' -+ case '<': -+ return MessageOpen, '>' -+ case '[': -+ return ListOpen, ']' -+ } -+ panic(fmt.Sprintf("Decoder: openStack contains invalid byte %c", openCh)) -+} -+ -+func (d *Decoder) pushOpenStack(ch byte) { -+ d.openStack = append(d.openStack, ch) -+} -+ -+func (d *Decoder) popOpenStack() { -+ d.openStack = d.openStack[:len(d.openStack)-1] -+} -+ -+// parseFieldName parses field name and separator. -+func (d *Decoder) parseFieldName() (tok Token, err error) { -+ defer func() { -+ if err == nil && d.tryConsumeChar(':') { -+ tok.attrs |= hasSeparator -+ } -+ }() -+ -+ // Extension or Any type URL. -+ if d.in[0] == '[' { -+ return d.parseTypeName() -+ } -+ -+ // Identifier. -+ if size := parseIdent(d.in, false); size > 0 { -+ return d.consumeToken(Name, size, uint8(IdentName)), nil -+ } -+ -+ // Field number. Identify if input is a valid number that is not negative -+ // and is decimal integer within 32-bit range. -+ if num := parseNumber(d.in); num.size > 0 { -+ str := num.string(d.in) -+ if !num.neg && num.kind == numDec { -+ if _, err := strconv.ParseInt(str, 10, 32); err == nil { -+ return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil -+ } -+ } -+ return Token{}, d.newSyntaxError("invalid field number: %s", str) -+ } -+ -+ return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in)) -+} -+ -+// parseTypeName parses Any type URL or extension field name. The name is -+// enclosed in [ and ] characters. The C++ parser does not handle many legal URL -+// strings. This implementation is more liberal and allows for the pattern -+// ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed -+// in between [ ], '.', '/' and the sub names. -+func (d *Decoder) parseTypeName() (Token, error) { -+ startPos := len(d.orig) - len(d.in) -+ // Use alias s to advance first in order to use d.in for error handling. -+ // Caller already checks for [ as first character. -+ s := consume(d.in[1:], 0) -+ if len(s) == 0 { -+ return Token{}, ErrUnexpectedEOF -+ } -+ -+ var name []byte -+ for len(s) > 0 && isTypeNameChar(s[0]) { -+ name = append(name, s[0]) -+ s = s[1:] -+ } -+ s = consume(s, 0) -+ -+ var closed bool -+ for len(s) > 0 && !closed { -+ switch { -+ case s[0] == ']': -+ s = s[1:] -+ closed = true -+ -+ case s[0] == '/', s[0] == '.': -+ if len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') { -+ return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s", -+ d.orig[startPos:len(d.orig)-len(s)+1]) -+ } -+ name = append(name, s[0]) -+ s = s[1:] -+ s = consume(s, 0) -+ for len(s) > 0 && isTypeNameChar(s[0]) { -+ name = append(name, s[0]) -+ s = s[1:] -+ } -+ s = consume(s, 0) -+ -+ default: -+ return Token{}, d.newSyntaxError( -+ "invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1]) -+ } -+ } -+ -+ if !closed { -+ return Token{}, ErrUnexpectedEOF -+ } -+ -+ // First character cannot be '.'. Last character cannot be '.' or '/'. -+ size := len(name) -+ if size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' { -+ return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s", -+ d.orig[startPos:len(d.orig)-len(s)]) -+ } -+ -+ d.in = s -+ endPos := len(d.orig) - len(d.in) -+ d.consume(0) -+ -+ return Token{ -+ kind: Name, -+ attrs: uint8(TypeName), -+ pos: startPos, -+ raw: d.orig[startPos:endPos], -+ str: string(name), -+ }, nil -+} -+ -+func isTypeNameChar(b byte) bool { -+ return (b == '-' || b == '_' || -+ ('0' <= b && b <= '9') || -+ ('a' <= b && b <= 'z') || -+ ('A' <= b && b <= 'Z')) -+} -+ -+func isWhiteSpace(b byte) bool { -+ switch b { -+ case ' ', '\n', '\r', '\t': -+ return true -+ default: -+ return false -+ } -+} -+ -+// parseIdent parses an unquoted proto identifier and returns size. -+// If allowNeg is true, it allows '-' to be the first character in the -+// identifier. This is used when parsing literal values like -infinity, etc. -+// Regular expression matches an identifier: `^[_a-zA-Z][_a-zA-Z0-9]*` -+func parseIdent(input []byte, allowNeg bool) int { -+ var size int -+ -+ s := input -+ if len(s) == 0 { -+ return 0 -+ } -+ -+ if allowNeg && s[0] == '-' { -+ s = s[1:] -+ size++ -+ if len(s) == 0 { -+ return 0 -+ } -+ } -+ -+ switch { -+ case s[0] == '_', -+ 'a' <= s[0] && s[0] <= 'z', -+ 'A' <= s[0] && s[0] <= 'Z': -+ s = s[1:] -+ size++ -+ default: -+ return 0 -+ } -+ -+ for len(s) > 0 && (s[0] == '_' || -+ 'a' <= s[0] && s[0] <= 'z' || -+ 'A' <= s[0] && s[0] <= 'Z' || -+ '0' <= s[0] && s[0] <= '9') { -+ s = s[1:] -+ size++ -+ } -+ -+ if len(s) > 0 && !isDelim(s[0]) { -+ return 0 -+ } -+ -+ return size -+} -+ -+// parseScalar parses for a string, literal or number value. -+func (d *Decoder) parseScalar() (Token, error) { -+ if d.in[0] == '"' || d.in[0] == '\'' { -+ return d.parseStringValue() -+ } -+ -+ if tok, ok := d.parseLiteralValue(); ok { -+ return tok, nil -+ } -+ -+ if tok, ok := d.parseNumberValue(); ok { -+ return tok, nil -+ } -+ -+ return Token{}, d.newSyntaxError("invalid scalar value: %s", errId(d.in)) -+} -+ -+// parseLiteralValue parses a literal value. A literal value is used for -+// bools, special floats and enums. This function simply identifies that the -+// field value is a literal. -+func (d *Decoder) parseLiteralValue() (Token, bool) { -+ size := parseIdent(d.in, true) -+ if size == 0 { -+ return Token{}, false -+ } -+ return d.consumeToken(Scalar, size, literalValue), true -+} -+ -+// consumeToken constructs a Token for given Kind from d.in and consumes given -+// size-length from it. -+func (d *Decoder) consumeToken(kind Kind, size int, attrs uint8) Token { -+ // Important to compute raw and pos before consuming. -+ tok := Token{ -+ kind: kind, -+ attrs: attrs, -+ pos: len(d.orig) - len(d.in), -+ raw: d.in[:size], -+ } -+ d.consume(size) -+ return tok -+} -+ -+// newSyntaxError returns a syntax error with line and column information for -+// current position. -+func (d *Decoder) newSyntaxError(f string, x ...interface{}) error { -+ e := errors.New(f, x...) -+ line, column := d.Position(len(d.orig) - len(d.in)) -+ return errors.New("syntax error (line %d:%d): %v", line, column, e) -+} -+ -+// Position returns line and column number of given index of the original input. -+// It will panic if index is out of range. -+func (d *Decoder) Position(idx int) (line int, column int) { -+ b := d.orig[:idx] -+ line = bytes.Count(b, []byte("\n")) + 1 -+ if i := bytes.LastIndexByte(b, '\n'); i >= 0 { -+ b = b[i+1:] -+ } -+ column = utf8.RuneCount(b) + 1 // ignore multi-rune characters -+ return line, column -+} -+ -+func (d *Decoder) tryConsumeChar(c byte) bool { -+ if len(d.in) > 0 && d.in[0] == c { -+ d.consume(1) -+ return true -+ } -+ return false -+} -+ -+// consume consumes n bytes of input and any subsequent whitespace or comments. -+func (d *Decoder) consume(n int) { -+ d.in = consume(d.in, n) -+ return -+} -+ -+// consume consumes n bytes of input and any subsequent whitespace or comments. -+func consume(b []byte, n int) []byte { -+ b = b[n:] -+ for len(b) > 0 { -+ switch b[0] { -+ case ' ', '\n', '\r', '\t': -+ b = b[1:] -+ case '#': -+ if i := bytes.IndexByte(b, '\n'); i >= 0 { -+ b = b[i+len("\n"):] -+ } else { -+ b = nil -+ } -+ default: -+ return b -+ } -+ } -+ return b -+} -+ -+// errId extracts a byte sequence that looks like an invalid ID -+// (for the purposes of error reporting). -+func errId(seq []byte) []byte { -+ const maxLen = 32 -+ for i := 0; i < len(seq); { -+ if i > maxLen { -+ return append(seq[:i:i], "…"...) -+ } -+ r, size := utf8.DecodeRune(seq[i:]) -+ if r > utf8.RuneSelf || (r != '/' && isDelim(byte(r))) { -+ if i == 0 { -+ // Either the first byte is invalid UTF-8 or a -+ // delimiter, or the first rune is non-ASCII. -+ // Return it as-is. -+ i = size -+ } -+ return seq[:i:i] -+ } -+ i += size -+ } -+ // No delimiter found. -+ return seq -+} -+ -+// isDelim returns true if given byte is a delimiter character. -+func isDelim(c byte) bool { -+ return !(c == '-' || c == '+' || c == '.' || c == '_' || -+ ('a' <= c && c <= 'z') || -+ ('A' <= c && c <= 'Z') || -+ ('0' <= c && c <= '9')) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go -new file mode 100644 -index 00000000..45c81f02 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go -@@ -0,0 +1,211 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package text -+ -+// parseNumberValue parses a number from the input and returns a Token object. -+func (d *Decoder) parseNumberValue() (Token, bool) { -+ in := d.in -+ num := parseNumber(in) -+ if num.size == 0 { -+ return Token{}, false -+ } -+ numAttrs := num.kind -+ if num.neg { -+ numAttrs |= isNegative -+ } -+ tok := Token{ -+ kind: Scalar, -+ attrs: numberValue, -+ pos: len(d.orig) - len(d.in), -+ raw: d.in[:num.size], -+ str: num.string(d.in), -+ numAttrs: numAttrs, -+ } -+ d.consume(num.size) -+ return tok, true -+} -+ -+const ( -+ numDec uint8 = (1 << iota) / 2 -+ numHex -+ numOct -+ numFloat -+) -+ -+// number is the result of parsing out a valid number from parseNumber. It -+// contains data for doing float or integer conversion via the strconv package -+// in conjunction with the input bytes. -+type number struct { -+ kind uint8 -+ neg bool -+ size int -+ // if neg, this is the length of whitespace and comments between -+ // the minus sign and the rest fo the number literal -+ sep int -+} -+ -+func (num number) string(data []byte) string { -+ strSize := num.size -+ last := num.size - 1 -+ if num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') { -+ strSize = last -+ } -+ if num.neg && num.sep > 0 { -+ // strip whitespace/comments between negative sign and the rest -+ strLen := strSize - num.sep -+ str := make([]byte, strLen) -+ str[0] = data[0] -+ copy(str[1:], data[num.sep+1:strSize]) -+ return string(str) -+ } -+ return string(data[:strSize]) -+ -+} -+ -+// parseNumber constructs a number object from given input. It allows for the -+// following patterns: -+// -+// integer: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*) -+// float: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?) -+// -+// It also returns the number of parsed bytes for the given number, 0 if it is -+// not a number. -+func parseNumber(input []byte) number { -+ kind := numDec -+ var size int -+ var neg bool -+ -+ s := input -+ if len(s) == 0 { -+ return number{} -+ } -+ -+ // Optional - -+ var sep int -+ if s[0] == '-' { -+ neg = true -+ s = s[1:] -+ size++ -+ // Consume any whitespace or comments between the -+ // negative sign and the rest of the number -+ lenBefore := len(s) -+ s = consume(s, 0) -+ sep = lenBefore - len(s) -+ size += sep -+ if len(s) == 0 { -+ return number{} -+ } -+ } -+ -+ switch { -+ case s[0] == '0': -+ if len(s) > 1 { -+ switch { -+ case s[1] == 'x' || s[1] == 'X': -+ // Parse as hex number. -+ kind = numHex -+ n := 2 -+ s = s[2:] -+ for len(s) > 0 && (('0' <= s[0] && s[0] <= '9') || -+ ('a' <= s[0] && s[0] <= 'f') || -+ ('A' <= s[0] && s[0] <= 'F')) { -+ s = s[1:] -+ n++ -+ } -+ if n == 2 { -+ return number{} -+ } -+ size += n -+ -+ case '0' <= s[1] && s[1] <= '7': -+ // Parse as octal number. -+ kind = numOct -+ n := 2 -+ s = s[2:] -+ for len(s) > 0 && '0' <= s[0] && s[0] <= '7' { -+ s = s[1:] -+ n++ -+ } -+ size += n -+ } -+ -+ if kind&(numHex|numOct) > 0 { -+ if len(s) > 0 && !isDelim(s[0]) { -+ return number{} -+ } -+ return number{kind: kind, neg: neg, size: size, sep: sep} -+ } -+ } -+ s = s[1:] -+ size++ -+ -+ case '1' <= s[0] && s[0] <= '9': -+ n := 1 -+ s = s[1:] -+ for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { -+ s = s[1:] -+ n++ -+ } -+ size += n -+ -+ case s[0] == '.': -+ // Set kind to numFloat to signify the intent to parse as float. And -+ // that it needs to have other digits after '.'. -+ kind = numFloat -+ -+ default: -+ return number{} -+ } -+ -+ // . followed by 0 or more digits. -+ if len(s) > 0 && s[0] == '.' { -+ n := 1 -+ s = s[1:] -+ // If decimal point was before any digits, it should be followed by -+ // other digits. -+ if len(s) == 0 && kind == numFloat { -+ return number{} -+ } -+ for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { -+ s = s[1:] -+ n++ -+ } -+ size += n -+ kind = numFloat -+ } -+ -+ // e or E followed by an optional - or + and 1 or more digits. -+ if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { -+ kind = numFloat -+ s = s[1:] -+ n := 1 -+ if s[0] == '+' || s[0] == '-' { -+ s = s[1:] -+ n++ -+ if len(s) == 0 { -+ return number{} -+ } -+ } -+ for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { -+ s = s[1:] -+ n++ -+ } -+ size += n -+ } -+ -+ // Optional suffix f or F for floats. -+ if len(s) > 0 && (s[0] == 'f' || s[0] == 'F') { -+ kind = numFloat -+ s = s[1:] -+ size++ -+ } -+ -+ // Check that next byte is a delimiter or it is at the end. -+ if len(s) > 0 && !isDelim(s[0]) { -+ return number{} -+ } -+ -+ return number{kind: kind, neg: neg, size: size, sep: sep} -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go -new file mode 100644 -index 00000000..d4d34902 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_string.go -@@ -0,0 +1,161 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package text -+ -+import ( -+ "bytes" -+ "strconv" -+ "strings" -+ "unicode" -+ "unicode/utf16" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/internal/strs" -+) -+ -+// parseStringValue parses string field token. -+// This differs from parseString since the text format allows -+// multiple back-to-back string literals where they are semantically treated -+// as a single large string with all values concatenated. -+// -+// E.g., `"foo" "bar" "baz"` => "foobarbaz" -+func (d *Decoder) parseStringValue() (Token, error) { -+ // Note that the ending quote is sufficient to unambiguously mark the end -+ // of a string. Thus, the text grammar does not require intervening -+ // whitespace or control characters in-between strings. -+ // Thus, the following is valid: -+ // `"foo"'bar'"baz"` => "foobarbaz" -+ in0 := d.in -+ var ss []string -+ for len(d.in) > 0 && (d.in[0] == '"' || d.in[0] == '\'') { -+ s, err := d.parseString() -+ if err != nil { -+ return Token{}, err -+ } -+ ss = append(ss, s) -+ } -+ // d.in already points to the end of the value at this point. -+ return Token{ -+ kind: Scalar, -+ attrs: stringValue, -+ pos: len(d.orig) - len(in0), -+ raw: in0[:len(in0)-len(d.in)], -+ str: strings.Join(ss, ""), -+ }, nil -+} -+ -+// parseString parses a string value enclosed in " or '. -+func (d *Decoder) parseString() (string, error) { -+ in := d.in -+ if len(in) == 0 { -+ return "", ErrUnexpectedEOF -+ } -+ quote := in[0] -+ in = in[1:] -+ i := indexNeedEscapeInBytes(in) -+ in, out := in[i:], in[:i:i] // set cap to prevent mutations -+ for len(in) > 0 { -+ switch r, n := utf8.DecodeRune(in); { -+ case r == utf8.RuneError && n == 1: -+ return "", d.newSyntaxError("invalid UTF-8 detected") -+ case r == 0 || r == '\n': -+ return "", d.newSyntaxError("invalid character %q in string", r) -+ case r == rune(quote): -+ in = in[1:] -+ d.consume(len(d.in) - len(in)) -+ return string(out), nil -+ case r == '\\': -+ if len(in) < 2 { -+ return "", ErrUnexpectedEOF -+ } -+ switch r := in[1]; r { -+ case '"', '\'', '\\', '?': -+ in, out = in[2:], append(out, r) -+ case 'a': -+ in, out = in[2:], append(out, '\a') -+ case 'b': -+ in, out = in[2:], append(out, '\b') -+ case 'n': -+ in, out = in[2:], append(out, '\n') -+ case 'r': -+ in, out = in[2:], append(out, '\r') -+ case 't': -+ in, out = in[2:], append(out, '\t') -+ case 'v': -+ in, out = in[2:], append(out, '\v') -+ case 'f': -+ in, out = in[2:], append(out, '\f') -+ case '0', '1', '2', '3', '4', '5', '6', '7': -+ // One, two, or three octal characters. -+ n := len(in[1:]) - len(bytes.TrimLeft(in[1:], "01234567")) -+ if n > 3 { -+ n = 3 -+ } -+ v, err := strconv.ParseUint(string(in[1:1+n]), 8, 8) -+ if err != nil { -+ return "", d.newSyntaxError("invalid octal escape code %q in string", in[:1+n]) -+ } -+ in, out = in[1+n:], append(out, byte(v)) -+ case 'x': -+ // One or two hexadecimal characters. -+ n := len(in[2:]) - len(bytes.TrimLeft(in[2:], "0123456789abcdefABCDEF")) -+ if n > 2 { -+ n = 2 -+ } -+ v, err := strconv.ParseUint(string(in[2:2+n]), 16, 8) -+ if err != nil { -+ return "", d.newSyntaxError("invalid hex escape code %q in string", in[:2+n]) -+ } -+ in, out = in[2+n:], append(out, byte(v)) -+ case 'u', 'U': -+ // Four or eight hexadecimal characters -+ n := 6 -+ if r == 'U' { -+ n = 10 -+ } -+ if len(in) < n { -+ return "", ErrUnexpectedEOF -+ } -+ v, err := strconv.ParseUint(string(in[2:n]), 16, 32) -+ if utf8.MaxRune < v || err != nil { -+ return "", d.newSyntaxError("invalid Unicode escape code %q in string", in[:n]) -+ } -+ in = in[n:] -+ -+ r := rune(v) -+ if utf16.IsSurrogate(r) { -+ if len(in) < 6 { -+ return "", ErrUnexpectedEOF -+ } -+ v, err := strconv.ParseUint(string(in[2:6]), 16, 16) -+ r = utf16.DecodeRune(r, rune(v)) -+ if in[0] != '\\' || in[1] != 'u' || r == unicode.ReplacementChar || err != nil { -+ return "", d.newSyntaxError("invalid Unicode escape code %q in string", in[:6]) -+ } -+ in = in[6:] -+ } -+ out = append(out, string(r)...) -+ default: -+ return "", d.newSyntaxError("invalid escape code %q in string", in[:2]) -+ } -+ default: -+ i := indexNeedEscapeInBytes(in[n:]) -+ in, out = in[n+i:], append(out, in[:n+i]...) -+ } -+ } -+ return "", ErrUnexpectedEOF -+} -+ -+// indexNeedEscapeInString returns the index of the character that needs -+// escaping. If no characters need escaping, this returns the input length. -+func indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) } -+ -+// UnmarshalString returns an unescaped string given a textproto string value. -+// String value needs to contain single or double quotes. This is only used by -+// internal/encoding/defval package for unmarshaling bytes. -+func UnmarshalString(s string) (string, error) { -+ d := NewDecoder([]byte(s)) -+ return d.parseString() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go -new file mode 100644 -index 00000000..83d2b0d5 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode_token.go -@@ -0,0 +1,373 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package text -+ -+import ( -+ "bytes" -+ "fmt" -+ "math" -+ "strconv" -+ "strings" -+ -+ "google.golang.org/protobuf/internal/flags" -+) -+ -+// Kind represents a token kind expressible in the textproto format. -+type Kind uint8 -+ -+// Kind values. -+const ( -+ Invalid Kind = iota -+ EOF -+ Name // Name indicates the field name. -+ Scalar // Scalar are scalar values, e.g. "string", 47, ENUM_LITERAL, true. -+ MessageOpen -+ MessageClose -+ ListOpen -+ ListClose -+ -+ // comma and semi-colon are only for parsing in between values and should not be exposed. -+ comma -+ semicolon -+ -+ // bof indicates beginning of file, which is the default token -+ // kind at the beginning of parsing. -+ bof = Invalid -+) -+ -+func (t Kind) String() string { -+ switch t { -+ case Invalid: -+ return "" -+ case EOF: -+ return "eof" -+ case Scalar: -+ return "scalar" -+ case Name: -+ return "name" -+ case MessageOpen: -+ return "{" -+ case MessageClose: -+ return "}" -+ case ListOpen: -+ return "[" -+ case ListClose: -+ return "]" -+ case comma: -+ return "," -+ case semicolon: -+ return ";" -+ default: -+ return fmt.Sprintf("", uint8(t)) -+ } -+} -+ -+// NameKind represents different types of field names. -+type NameKind uint8 -+ -+// NameKind values. -+const ( -+ IdentName NameKind = iota + 1 -+ TypeName -+ FieldNumber -+) -+ -+func (t NameKind) String() string { -+ switch t { -+ case IdentName: -+ return "IdentName" -+ case TypeName: -+ return "TypeName" -+ case FieldNumber: -+ return "FieldNumber" -+ default: -+ return fmt.Sprintf("", uint8(t)) -+ } -+} -+ -+// Bit mask in Token.attrs to indicate if a Name token is followed by the -+// separator char ':'. The field name separator char is optional for message -+// field or repeated message field, but required for all other types. Decoder -+// simply indicates whether a Name token is followed by separator or not. It is -+// up to the prototext package to validate. -+const hasSeparator = 1 << 7 -+ -+// Scalar value types. -+const ( -+ numberValue = iota + 1 -+ stringValue -+ literalValue -+) -+ -+// Bit mask in Token.numAttrs to indicate that the number is a negative. -+const isNegative = 1 << 7 -+ -+// Token provides a parsed token kind and value. Values are provided by the -+// different accessor methods. -+type Token struct { -+ // Kind of the Token object. -+ kind Kind -+ // attrs contains metadata for the following Kinds: -+ // Name: hasSeparator bit and one of NameKind. -+ // Scalar: one of numberValue, stringValue, literalValue. -+ attrs uint8 -+ // numAttrs contains metadata for numberValue: -+ // - highest bit is whether negative or positive. -+ // - lower bits indicate one of numDec, numHex, numOct, numFloat. -+ numAttrs uint8 -+ // pos provides the position of the token in the original input. -+ pos int -+ // raw bytes of the serialized token. -+ // This is a subslice into the original input. -+ raw []byte -+ // str contains parsed string for the following: -+ // - stringValue of Scalar kind -+ // - numberValue of Scalar kind -+ // - TypeName of Name kind -+ str string -+} -+ -+// Kind returns the token kind. -+func (t Token) Kind() Kind { -+ return t.kind -+} -+ -+// RawString returns the read value in string. -+func (t Token) RawString() string { -+ return string(t.raw) -+} -+ -+// Pos returns the token position from the input. -+func (t Token) Pos() int { -+ return t.pos -+} -+ -+// NameKind returns IdentName, TypeName or FieldNumber. -+// It panics if type is not Name. -+func (t Token) NameKind() NameKind { -+ if t.kind == Name { -+ return NameKind(t.attrs &^ hasSeparator) -+ } -+ panic(fmt.Sprintf("Token is not a Name type: %s", t.kind)) -+} -+ -+// HasSeparator returns true if the field name is followed by the separator char -+// ':', else false. It panics if type is not Name. -+func (t Token) HasSeparator() bool { -+ if t.kind == Name { -+ return t.attrs&hasSeparator != 0 -+ } -+ panic(fmt.Sprintf("Token is not a Name type: %s", t.kind)) -+} -+ -+// IdentName returns the value for IdentName type. -+func (t Token) IdentName() string { -+ if t.kind == Name && t.attrs&uint8(IdentName) != 0 { -+ return string(t.raw) -+ } -+ panic(fmt.Sprintf("Token is not an IdentName: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) -+} -+ -+// TypeName returns the value for TypeName type. -+func (t Token) TypeName() string { -+ if t.kind == Name && t.attrs&uint8(TypeName) != 0 { -+ return t.str -+ } -+ panic(fmt.Sprintf("Token is not a TypeName: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) -+} -+ -+// FieldNumber returns the value for FieldNumber type. It returns a -+// non-negative int32 value. Caller will still need to validate for the correct -+// field number range. -+func (t Token) FieldNumber() int32 { -+ if t.kind != Name || t.attrs&uint8(FieldNumber) == 0 { -+ panic(fmt.Sprintf("Token is not a FieldNumber: %s:%s", t.kind, NameKind(t.attrs&^hasSeparator))) -+ } -+ // Following should not return an error as it had already been called right -+ // before this Token was constructed. -+ num, _ := strconv.ParseInt(string(t.raw), 10, 32) -+ return int32(num) -+} -+ -+// String returns the string value for a Scalar type. -+func (t Token) String() (string, bool) { -+ if t.kind != Scalar || t.attrs != stringValue { -+ return "", false -+ } -+ return t.str, true -+} -+ -+// Enum returns the literal value for a Scalar type for use as enum literals. -+func (t Token) Enum() (string, bool) { -+ if t.kind != Scalar || t.attrs != literalValue || (len(t.raw) > 0 && t.raw[0] == '-') { -+ return "", false -+ } -+ return string(t.raw), true -+} -+ -+// Bool returns the bool value for a Scalar type. -+func (t Token) Bool() (bool, bool) { -+ if t.kind != Scalar { -+ return false, false -+ } -+ switch t.attrs { -+ case literalValue: -+ if b, ok := boolLits[string(t.raw)]; ok { -+ return b, true -+ } -+ case numberValue: -+ // Unsigned integer representation of 0 or 1 is permitted: 00, 0x0, 01, -+ // 0x1, etc. -+ n, err := strconv.ParseUint(t.str, 0, 64) -+ if err == nil { -+ switch n { -+ case 0: -+ return false, true -+ case 1: -+ return true, true -+ } -+ } -+ } -+ return false, false -+} -+ -+// These exact boolean literals are the ones supported in C++. -+var boolLits = map[string]bool{ -+ "t": true, -+ "true": true, -+ "True": true, -+ "f": false, -+ "false": false, -+ "False": false, -+} -+ -+// Uint64 returns the uint64 value for a Scalar type. -+func (t Token) Uint64() (uint64, bool) { -+ if t.kind != Scalar || t.attrs != numberValue || -+ t.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 { -+ return 0, false -+ } -+ n, err := strconv.ParseUint(t.str, 0, 64) -+ if err != nil { -+ return 0, false -+ } -+ return n, true -+} -+ -+// Uint32 returns the uint32 value for a Scalar type. -+func (t Token) Uint32() (uint32, bool) { -+ if t.kind != Scalar || t.attrs != numberValue || -+ t.numAttrs&isNegative > 0 || t.numAttrs&numFloat > 0 { -+ return 0, false -+ } -+ n, err := strconv.ParseUint(t.str, 0, 32) -+ if err != nil { -+ return 0, false -+ } -+ return uint32(n), true -+} -+ -+// Int64 returns the int64 value for a Scalar type. -+func (t Token) Int64() (int64, bool) { -+ if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 { -+ return 0, false -+ } -+ if n, err := strconv.ParseInt(t.str, 0, 64); err == nil { -+ return n, true -+ } -+ // C++ accepts large positive hex numbers as negative values. -+ // This feature is here for proto1 backwards compatibility purposes. -+ if flags.ProtoLegacy && (t.numAttrs == numHex) { -+ if n, err := strconv.ParseUint(t.str, 0, 64); err == nil { -+ return int64(n), true -+ } -+ } -+ return 0, false -+} -+ -+// Int32 returns the int32 value for a Scalar type. -+func (t Token) Int32() (int32, bool) { -+ if t.kind != Scalar || t.attrs != numberValue || t.numAttrs&numFloat > 0 { -+ return 0, false -+ } -+ if n, err := strconv.ParseInt(t.str, 0, 32); err == nil { -+ return int32(n), true -+ } -+ // C++ accepts large positive hex numbers as negative values. -+ // This feature is here for proto1 backwards compatibility purposes. -+ if flags.ProtoLegacy && (t.numAttrs == numHex) { -+ if n, err := strconv.ParseUint(t.str, 0, 32); err == nil { -+ return int32(n), true -+ } -+ } -+ return 0, false -+} -+ -+// Float64 returns the float64 value for a Scalar type. -+func (t Token) Float64() (float64, bool) { -+ if t.kind != Scalar { -+ return 0, false -+ } -+ switch t.attrs { -+ case literalValue: -+ if f, ok := floatLits[strings.ToLower(string(t.raw))]; ok { -+ return f, true -+ } -+ case numberValue: -+ n, err := strconv.ParseFloat(t.str, 64) -+ if err == nil { -+ return n, true -+ } -+ nerr := err.(*strconv.NumError) -+ if nerr.Err == strconv.ErrRange { -+ return n, true -+ } -+ } -+ return 0, false -+} -+ -+// Float32 returns the float32 value for a Scalar type. -+func (t Token) Float32() (float32, bool) { -+ if t.kind != Scalar { -+ return 0, false -+ } -+ switch t.attrs { -+ case literalValue: -+ if f, ok := floatLits[strings.ToLower(string(t.raw))]; ok { -+ return float32(f), true -+ } -+ case numberValue: -+ n, err := strconv.ParseFloat(t.str, 64) -+ if err == nil { -+ // Overflows are treated as (-)infinity. -+ return float32(n), true -+ } -+ nerr := err.(*strconv.NumError) -+ if nerr.Err == strconv.ErrRange { -+ return float32(n), true -+ } -+ } -+ return 0, false -+} -+ -+// These are the supported float literals which C++ permits case-insensitive -+// variants of these. -+var floatLits = map[string]float64{ -+ "nan": math.NaN(), -+ "inf": math.Inf(1), -+ "infinity": math.Inf(1), -+ "-inf": math.Inf(-1), -+ "-infinity": math.Inf(-1), -+} -+ -+// TokenEquals returns true if given Tokens are equal, else false. -+func TokenEquals(x, y Token) bool { -+ return x.kind == y.kind && -+ x.attrs == y.attrs && -+ x.numAttrs == y.numAttrs && -+ x.pos == y.pos && -+ bytes.Equal(x.raw, y.raw) && -+ x.str == y.str -+} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go b/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go -new file mode 100644 -index 00000000..7ae6c2a3 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go -@@ -0,0 +1,29 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package text implements the text format for protocol buffers. -+// This package has no semantic understanding for protocol buffers and is only -+// a parser and composer for the format. -+// -+// There is no formal specification for the protobuf text format, as such the -+// C++ implementation (see google::protobuf::TextFormat) is the reference -+// implementation of the text format. -+// -+// This package is neither a superset nor a subset of the C++ implementation. -+// This implementation permits a more liberal grammar in some cases to be -+// backwards compatible with the historical Go implementation. -+// Future parsings unique to Go should not be added. -+// Some grammars allowed by the C++ implementation are deliberately -+// not implemented here because they are considered a bug by the protobuf team -+// and should not be replicated. -+// -+// The Go implementation should implement a sufficient amount of the C++ -+// grammar such that the default text serialization by C++ can be parsed by Go. -+// However, just because the C++ parser accepts some input does not mean that -+// the Go implementation should as well. -+// -+// The text format is almost a superset of JSON except: -+// - message keys are not quoted strings, but identifiers -+// - the top-level value must be a message without the delimiters -+package text -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -new file mode 100644 -index 00000000..da289ccc ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -0,0 +1,270 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package text -+ -+import ( -+ "math" -+ "math/bits" -+ "strconv" -+ "strings" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/internal/detrand" -+ "google.golang.org/protobuf/internal/errors" -+) -+ -+// encType represents an encoding type. -+type encType uint8 -+ -+const ( -+ _ encType = (1 << iota) / 2 -+ name -+ scalar -+ messageOpen -+ messageClose -+) -+ -+// Encoder provides methods to write out textproto constructs and values. The user is -+// responsible for producing valid sequences of constructs and values. -+type Encoder struct { -+ encoderState -+ -+ indent string -+ delims [2]byte -+ outputASCII bool -+} -+ -+type encoderState struct { -+ lastType encType -+ indents []byte -+ out []byte -+} -+ -+// NewEncoder returns an Encoder. -+// -+// If indent is a non-empty string, it causes every entry in a List or Message -+// to be preceded by the indent and trailed by a newline. -+// -+// If delims is not the zero value, it controls the delimiter characters used -+// for messages (e.g., "{}" vs "<>"). -+// -+// If outputASCII is true, strings will be serialized in such a way that -+// multi-byte UTF-8 sequences are escaped. This property ensures that the -+// overall output is ASCII (as opposed to UTF-8). -+func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{} -+ if len(indent) > 0 { -+ if strings.Trim(indent, " \t") != "" { -+ return nil, errors.New("indent may only be composed of space and tab characters") -+ } -+ e.indent = indent -+ } -+ switch delims { -+ case [2]byte{0, 0}: -+ e.delims = [2]byte{'{', '}'} -+ case [2]byte{'{', '}'}, [2]byte{'<', '>'}: -+ e.delims = delims -+ default: -+ return nil, errors.New("delimiters may only be \"{}\" or \"<>\"") -+ } -+ e.outputASCII = outputASCII -+ -+ return e, nil -+} -+ -+// Bytes returns the content of the written bytes. -+func (e *Encoder) Bytes() []byte { -+ return e.out -+} -+ -+// StartMessage writes out the '{' or '<' symbol. -+func (e *Encoder) StartMessage() { -+ e.prepareNext(messageOpen) -+ e.out = append(e.out, e.delims[0]) -+} -+ -+// EndMessage writes out the '}' or '>' symbol. -+func (e *Encoder) EndMessage() { -+ e.prepareNext(messageClose) -+ e.out = append(e.out, e.delims[1]) -+} -+ -+// WriteName writes out the field name and the separator ':'. -+func (e *Encoder) WriteName(s string) { -+ e.prepareNext(name) -+ e.out = append(e.out, s...) -+ e.out = append(e.out, ':') -+} -+ -+// WriteBool writes out the given boolean value. -+func (e *Encoder) WriteBool(b bool) { -+ if b { -+ e.WriteLiteral("true") -+ } else { -+ e.WriteLiteral("false") -+ } -+} -+ -+// WriteString writes out the given string value. -+func (e *Encoder) WriteString(s string) { -+ e.prepareNext(scalar) -+ e.out = appendString(e.out, s, e.outputASCII) -+} -+ -+func appendString(out []byte, in string, outputASCII bool) []byte { -+ out = append(out, '"') -+ i := indexNeedEscapeInString(in) -+ in, out = in[i:], append(out, in[:i]...) -+ for len(in) > 0 { -+ switch r, n := utf8.DecodeRuneInString(in); { -+ case r == utf8.RuneError && n == 1: -+ // We do not report invalid UTF-8 because strings in the text format -+ // are used to represent both the proto string and bytes type. -+ r = rune(in[0]) -+ fallthrough -+ case r < ' ' || r == '"' || r == '\\' || r == 0x7f: -+ out = append(out, '\\') -+ switch r { -+ case '"', '\\': -+ out = append(out, byte(r)) -+ case '\n': -+ out = append(out, 'n') -+ case '\r': -+ out = append(out, 'r') -+ case '\t': -+ out = append(out, 't') -+ default: -+ out = append(out, 'x') -+ out = append(out, "00"[1+(bits.Len32(uint32(r))-1)/4:]...) -+ out = strconv.AppendUint(out, uint64(r), 16) -+ } -+ in = in[n:] -+ case r >= utf8.RuneSelf && (outputASCII || r <= 0x009f): -+ out = append(out, '\\') -+ if r <= math.MaxUint16 { -+ out = append(out, 'u') -+ out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...) -+ out = strconv.AppendUint(out, uint64(r), 16) -+ } else { -+ out = append(out, 'U') -+ out = append(out, "00000000"[1+(bits.Len32(uint32(r))-1)/4:]...) -+ out = strconv.AppendUint(out, uint64(r), 16) -+ } -+ in = in[n:] -+ default: -+ i := indexNeedEscapeInString(in[n:]) -+ in, out = in[n+i:], append(out, in[:n+i]...) -+ } -+ } -+ out = append(out, '"') -+ return out -+} -+ -+// indexNeedEscapeInString returns the index of the character that needs -+// escaping. If no characters need escaping, this returns the input length. -+func indexNeedEscapeInString(s string) int { -+ for i := 0; i < len(s); i++ { -+ if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= 0x7f { -+ return i -+ } -+ } -+ return len(s) -+} -+ -+// WriteFloat writes out the given float value for given bitSize. -+func (e *Encoder) WriteFloat(n float64, bitSize int) { -+ e.prepareNext(scalar) -+ e.out = appendFloat(e.out, n, bitSize) -+} -+ -+func appendFloat(out []byte, n float64, bitSize int) []byte { -+ switch { -+ case math.IsNaN(n): -+ return append(out, "nan"...) -+ case math.IsInf(n, +1): -+ return append(out, "inf"...) -+ case math.IsInf(n, -1): -+ return append(out, "-inf"...) -+ default: -+ return strconv.AppendFloat(out, n, 'g', -1, bitSize) -+ } -+} -+ -+// WriteInt writes out the given signed integer value. -+func (e *Encoder) WriteInt(n int64) { -+ e.prepareNext(scalar) -+ e.out = append(e.out, strconv.FormatInt(n, 10)...) -+} -+ -+// WriteUint writes out the given unsigned integer value. -+func (e *Encoder) WriteUint(n uint64) { -+ e.prepareNext(scalar) -+ e.out = append(e.out, strconv.FormatUint(n, 10)...) -+} -+ -+// WriteLiteral writes out the given string as a literal value without quotes. -+// This is used for writing enum literal strings. -+func (e *Encoder) WriteLiteral(s string) { -+ e.prepareNext(scalar) -+ e.out = append(e.out, s...) -+} -+ -+// prepareNext adds possible space and indentation for the next value based -+// on last encType and indent option. It also updates e.lastType to next. -+func (e *Encoder) prepareNext(next encType) { -+ defer func() { -+ e.lastType = next -+ }() -+ -+ // Single line. -+ if len(e.indent) == 0 { -+ // Add space after each field before the next one. -+ if e.lastType&(scalar|messageClose) != 0 && next == name { -+ e.out = append(e.out, ' ') -+ // Add a random extra space to make output unstable. -+ if detrand.Bool() { -+ e.out = append(e.out, ' ') -+ } -+ } -+ return -+ } -+ -+ // Multi-line. -+ switch { -+ case e.lastType == name: -+ e.out = append(e.out, ' ') -+ // Add a random extra space after name: to make output unstable. -+ if detrand.Bool() { -+ e.out = append(e.out, ' ') -+ } -+ -+ case e.lastType == messageOpen && next != messageClose: -+ e.indents = append(e.indents, e.indent...) -+ e.out = append(e.out, '\n') -+ e.out = append(e.out, e.indents...) -+ -+ case e.lastType&(scalar|messageClose) != 0: -+ if next == messageClose { -+ e.indents = e.indents[:len(e.indents)-len(e.indent)] -+ } -+ e.out = append(e.out, '\n') -+ e.out = append(e.out, e.indents...) -+ } -+} -+ -+// Snapshot returns the current snapshot for use in Reset. -+func (e *Encoder) Snapshot() encoderState { -+ return e.encoderState -+} -+ -+// Reset resets the Encoder to the given encoderState from a Snapshot. -+func (e *Encoder) Reset(es encoderState) { -+ e.encoderState = es -+} -+ -+// AppendString appends the escaped form of the input string to b. -+func AppendString(b []byte, s string) []byte { -+ return appendString(b, s, false) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/errors/errors.go b/vendor/google.golang.org/protobuf/internal/errors/errors.go -new file mode 100644 -index 00000000..20c17b35 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/errors/errors.go -@@ -0,0 +1,89 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package errors implements functions to manipulate errors. -+package errors -+ -+import ( -+ "errors" -+ "fmt" -+ -+ "google.golang.org/protobuf/internal/detrand" -+) -+ -+// Error is a sentinel matching all errors produced by this package. -+var Error = errors.New("protobuf error") -+ -+// New formats a string according to the format specifier and arguments and -+// returns an error that has a "proto" prefix. -+func New(f string, x ...interface{}) error { -+ return &prefixError{s: format(f, x...)} -+} -+ -+type prefixError struct{ s string } -+ -+var prefix = func() string { -+ // Deliberately introduce instability into the error message string to -+ // discourage users from performing error string comparisons. -+ if detrand.Bool() { -+ return "proto: " // use non-breaking spaces (U+00a0) -+ } else { -+ return "proto: " // use regular spaces (U+0020) -+ } -+}() -+ -+func (e *prefixError) Error() string { -+ return prefix + e.s -+} -+ -+func (e *prefixError) Unwrap() error { -+ return Error -+} -+ -+// Wrap returns an error that has a "proto" prefix, the formatted string described -+// by the format specifier and arguments, and a suffix of err. The error wraps err. -+func Wrap(err error, f string, x ...interface{}) error { -+ return &wrapError{ -+ s: format(f, x...), -+ err: err, -+ } -+} -+ -+type wrapError struct { -+ s string -+ err error -+} -+ -+func (e *wrapError) Error() string { -+ return format("%v%v: %v", prefix, e.s, e.err) -+} -+ -+func (e *wrapError) Unwrap() error { -+ return e.err -+} -+ -+func (e *wrapError) Is(target error) bool { -+ return target == Error -+} -+ -+func format(f string, x ...interface{}) string { -+ // avoid "proto: " prefix when chaining -+ for i := 0; i < len(x); i++ { -+ switch e := x[i].(type) { -+ case *prefixError: -+ x[i] = e.s -+ case *wrapError: -+ x[i] = format("%v: %v", e.s, e.err) -+ } -+ } -+ return fmt.Sprintf(f, x...) -+} -+ -+func InvalidUTF8(name string) error { -+ return New("field %v contains invalid UTF-8", name) -+} -+ -+func RequiredNotSet(name string) error { -+ return New("required field %v not set", name) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/errors/is_go112.go b/vendor/google.golang.org/protobuf/internal/errors/is_go112.go -new file mode 100644 -index 00000000..fbcd3492 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/errors/is_go112.go -@@ -0,0 +1,40 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !go1.13 -+// +build !go1.13 -+ -+package errors -+ -+import "reflect" -+ -+// Is is a copy of Go 1.13's errors.Is for use with older Go versions. -+func Is(err, target error) bool { -+ if target == nil { -+ return err == target -+ } -+ -+ isComparable := reflect.TypeOf(target).Comparable() -+ for { -+ if isComparable && err == target { -+ return true -+ } -+ if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) { -+ return true -+ } -+ if err = unwrap(err); err == nil { -+ return false -+ } -+ } -+} -+ -+func unwrap(err error) error { -+ u, ok := err.(interface { -+ Unwrap() error -+ }) -+ if !ok { -+ return nil -+ } -+ return u.Unwrap() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/errors/is_go113.go b/vendor/google.golang.org/protobuf/internal/errors/is_go113.go -new file mode 100644 -index 00000000..5e72f1cd ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/errors/is_go113.go -@@ -0,0 +1,13 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build go1.13 -+// +build go1.13 -+ -+package errors -+ -+import "errors" -+ -+// Is is errors.Is. -+func Is(err, target error) bool { return errors.Is(err, target) } -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/build.go b/vendor/google.golang.org/protobuf/internal/filedesc/build.go -new file mode 100644 -index 00000000..7cac1c19 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/build.go -@@ -0,0 +1,157 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package filedesc provides functionality for constructing descriptors. -+// -+// The types in this package implement interfaces in the protoreflect package -+// related to protobuf descripriptors. -+package filedesc -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// Builder construct a protoreflect.FileDescriptor from the raw descriptor. -+type Builder struct { -+ // GoPackagePath is the Go package path that is invoking this builder. -+ GoPackagePath string -+ -+ // RawDescriptor is the wire-encoded bytes of FileDescriptorProto -+ // and must be populated. -+ RawDescriptor []byte -+ -+ // NumEnums is the total number of enums declared in the file. -+ NumEnums int32 -+ // NumMessages is the total number of messages declared in the file. -+ // It includes the implicit message declarations for map entries. -+ NumMessages int32 -+ // NumExtensions is the total number of extensions declared in the file. -+ NumExtensions int32 -+ // NumServices is the total number of services declared in the file. -+ NumServices int32 -+ -+ // TypeResolver resolves extension field types for descriptor options. -+ // If nil, it uses protoregistry.GlobalTypes. -+ TypeResolver interface { -+ protoregistry.ExtensionTypeResolver -+ } -+ -+ // FileRegistry is use to lookup file, enum, and message dependencies. -+ // Once constructed, the file descriptor is registered here. -+ // If nil, it uses protoregistry.GlobalFiles. -+ FileRegistry interface { -+ FindFileByPath(string) (protoreflect.FileDescriptor, error) -+ FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -+ RegisterFile(protoreflect.FileDescriptor) error -+ } -+} -+ -+// resolverByIndex is an interface Builder.FileRegistry may implement. -+// If so, it permits looking up an enum or message dependency based on the -+// sub-list and element index into filetype.Builder.DependencyIndexes. -+type resolverByIndex interface { -+ FindEnumByIndex(int32, int32, []Enum, []Message) protoreflect.EnumDescriptor -+ FindMessageByIndex(int32, int32, []Enum, []Message) protoreflect.MessageDescriptor -+} -+ -+// Indexes of each sub-list in filetype.Builder.DependencyIndexes. -+const ( -+ listFieldDeps int32 = iota -+ listExtTargets -+ listExtDeps -+ listMethInDeps -+ listMethOutDeps -+) -+ -+// Out is the output of the Builder. -+type Out struct { -+ File protoreflect.FileDescriptor -+ -+ // Enums is all enum descriptors in "flattened ordering". -+ Enums []Enum -+ // Messages is all message descriptors in "flattened ordering". -+ // It includes the implicit message declarations for map entries. -+ Messages []Message -+ // Extensions is all extension descriptors in "flattened ordering". -+ Extensions []Extension -+ // Service is all service descriptors in "flattened ordering". -+ Services []Service -+} -+ -+// Build constructs a FileDescriptor given the parameters set in Builder. -+// It assumes that the inputs are well-formed and panics if any inconsistencies -+// are encountered. -+// -+// If NumEnums+NumMessages+NumExtensions+NumServices is zero, -+// then Build automatically derives them from the raw descriptor. -+func (db Builder) Build() (out Out) { -+ // Populate the counts if uninitialized. -+ if db.NumEnums+db.NumMessages+db.NumExtensions+db.NumServices == 0 { -+ db.unmarshalCounts(db.RawDescriptor, true) -+ } -+ -+ // Initialize resolvers and registries if unpopulated. -+ if db.TypeResolver == nil { -+ db.TypeResolver = protoregistry.GlobalTypes -+ } -+ if db.FileRegistry == nil { -+ db.FileRegistry = protoregistry.GlobalFiles -+ } -+ -+ fd := newRawFile(db) -+ out.File = fd -+ out.Enums = fd.allEnums -+ out.Messages = fd.allMessages -+ out.Extensions = fd.allExtensions -+ out.Services = fd.allServices -+ -+ if err := db.FileRegistry.RegisterFile(fd); err != nil { -+ panic(err) -+ } -+ return out -+} -+ -+// unmarshalCounts counts the number of enum, message, extension, and service -+// declarations in the raw message, which is either a FileDescriptorProto -+// or a MessageDescriptorProto depending on whether isFile is set. -+func (db *Builder) unmarshalCounts(b []byte, isFile bool) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ if isFile { -+ switch num { -+ case genid.FileDescriptorProto_EnumType_field_number: -+ db.NumEnums++ -+ case genid.FileDescriptorProto_MessageType_field_number: -+ db.unmarshalCounts(v, false) -+ db.NumMessages++ -+ case genid.FileDescriptorProto_Extension_field_number: -+ db.NumExtensions++ -+ case genid.FileDescriptorProto_Service_field_number: -+ db.NumServices++ -+ } -+ } else { -+ switch num { -+ case genid.DescriptorProto_EnumType_field_number: -+ db.NumEnums++ -+ case genid.DescriptorProto_NestedType_field_number: -+ db.unmarshalCounts(v, false) -+ db.NumMessages++ -+ case genid.DescriptorProto_Extension_field_number: -+ db.NumExtensions++ -+ } -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -new file mode 100644 -index 00000000..7c3689ba ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -0,0 +1,633 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "bytes" -+ "fmt" -+ "sync" -+ "sync/atomic" -+ -+ "google.golang.org/protobuf/internal/descfmt" -+ "google.golang.org/protobuf/internal/descopts" -+ "google.golang.org/protobuf/internal/encoding/defval" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// The types in this file may have a suffix: -+// • L0: Contains fields common to all descriptors (except File) and -+// must be initialized up front. -+// • L1: Contains fields specific to a descriptor and -+// must be initialized up front. -+// • L2: Contains fields that are lazily initialized when constructing -+// from the raw file descriptor. When constructing as a literal, the L2 -+// fields must be initialized up front. -+// -+// The types are exported so that packages like reflect/protodesc can -+// directly construct descriptors. -+ -+type ( -+ File struct { -+ fileRaw -+ L1 FileL1 -+ -+ once uint32 // atomically set if L2 is valid -+ mu sync.Mutex // protects L2 -+ L2 *FileL2 -+ } -+ FileL1 struct { -+ Syntax protoreflect.Syntax -+ Path string -+ Package protoreflect.FullName -+ -+ Enums Enums -+ Messages Messages -+ Extensions Extensions -+ Services Services -+ } -+ FileL2 struct { -+ Options func() protoreflect.ProtoMessage -+ Imports FileImports -+ Locations SourceLocations -+ } -+) -+ -+func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -+func (fd *File) Parent() protoreflect.Descriptor { return nil } -+func (fd *File) Index() int { return 0 } -+func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } -+func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } -+func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } -+func (fd *File) IsPlaceholder() bool { return false } -+func (fd *File) Options() protoreflect.ProtoMessage { -+ if f := fd.lazyInit().Options; f != nil { -+ return f() -+ } -+ return descopts.File -+} -+func (fd *File) Path() string { return fd.L1.Path } -+func (fd *File) Package() protoreflect.FullName { return fd.L1.Package } -+func (fd *File) Imports() protoreflect.FileImports { return &fd.lazyInit().Imports } -+func (fd *File) Enums() protoreflect.EnumDescriptors { return &fd.L1.Enums } -+func (fd *File) Messages() protoreflect.MessageDescriptors { return &fd.L1.Messages } -+func (fd *File) Extensions() protoreflect.ExtensionDescriptors { return &fd.L1.Extensions } -+func (fd *File) Services() protoreflect.ServiceDescriptors { return &fd.L1.Services } -+func (fd *File) SourceLocations() protoreflect.SourceLocations { return &fd.lazyInit().Locations } -+func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } -+func (fd *File) ProtoType(protoreflect.FileDescriptor) {} -+func (fd *File) ProtoInternal(pragma.DoNotImplement) {} -+ -+func (fd *File) lazyInit() *FileL2 { -+ if atomic.LoadUint32(&fd.once) == 0 { -+ fd.lazyInitOnce() -+ } -+ return fd.L2 -+} -+ -+func (fd *File) lazyInitOnce() { -+ fd.mu.Lock() -+ if fd.L2 == nil { -+ fd.lazyRawInit() // recursively initializes all L2 structures -+ } -+ atomic.StoreUint32(&fd.once, 1) -+ fd.mu.Unlock() -+} -+ -+// GoPackagePath is a pseudo-internal API for determining the Go package path -+// that this file descriptor is declared in. -+// -+// WARNING: This method is exempt from the compatibility promise and may be -+// removed in the future without warning. -+func (fd *File) GoPackagePath() string { -+ return fd.builder.GoPackagePath -+} -+ -+type ( -+ Enum struct { -+ Base -+ L1 EnumL1 -+ L2 *EnumL2 // protected by fileDesc.once -+ } -+ EnumL1 struct { -+ eagerValues bool // controls whether EnumL2.Values is already populated -+ } -+ EnumL2 struct { -+ Options func() protoreflect.ProtoMessage -+ Values EnumValues -+ ReservedNames Names -+ ReservedRanges EnumRanges -+ } -+ -+ EnumValue struct { -+ Base -+ L1 EnumValueL1 -+ } -+ EnumValueL1 struct { -+ Options func() protoreflect.ProtoMessage -+ Number protoreflect.EnumNumber -+ } -+) -+ -+func (ed *Enum) Options() protoreflect.ProtoMessage { -+ if f := ed.lazyInit().Options; f != nil { -+ return f() -+ } -+ return descopts.Enum -+} -+func (ed *Enum) Values() protoreflect.EnumValueDescriptors { -+ if ed.L1.eagerValues { -+ return &ed.L2.Values -+ } -+ return &ed.lazyInit().Values -+} -+func (ed *Enum) ReservedNames() protoreflect.Names { return &ed.lazyInit().ReservedNames } -+func (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges } -+func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } -+func (ed *Enum) ProtoType(protoreflect.EnumDescriptor) {} -+func (ed *Enum) lazyInit() *EnumL2 { -+ ed.L0.ParentFile.lazyInit() // implicitly initializes L2 -+ return ed.L2 -+} -+ -+func (ed *EnumValue) Options() protoreflect.ProtoMessage { -+ if f := ed.L1.Options; f != nil { -+ return f() -+ } -+ return descopts.EnumValue -+} -+func (ed *EnumValue) Number() protoreflect.EnumNumber { return ed.L1.Number } -+func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } -+func (ed *EnumValue) ProtoType(protoreflect.EnumValueDescriptor) {} -+ -+type ( -+ Message struct { -+ Base -+ L1 MessageL1 -+ L2 *MessageL2 // protected by fileDesc.once -+ } -+ MessageL1 struct { -+ Enums Enums -+ Messages Messages -+ Extensions Extensions -+ IsMapEntry bool // promoted from google.protobuf.MessageOptions -+ IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ } -+ MessageL2 struct { -+ Options func() protoreflect.ProtoMessage -+ Fields Fields -+ Oneofs Oneofs -+ ReservedNames Names -+ ReservedRanges FieldRanges -+ RequiredNumbers FieldNumbers // must be consistent with Fields.Cardinality -+ ExtensionRanges FieldRanges -+ ExtensionRangeOptions []func() protoreflect.ProtoMessage // must be same length as ExtensionRanges -+ } -+ -+ Field struct { -+ Base -+ L1 FieldL1 -+ } -+ FieldL1 struct { -+ Options func() protoreflect.ProtoMessage -+ Number protoreflect.FieldNumber -+ Cardinality protoreflect.Cardinality // must be consistent with Message.RequiredNumbers -+ Kind protoreflect.Kind -+ StringName stringName -+ IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto -+ IsWeak bool // promoted from google.protobuf.FieldOptions -+ HasPacked bool // promoted from google.protobuf.FieldOptions -+ IsPacked bool // promoted from google.protobuf.FieldOptions -+ HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions -+ EnforceUTF8 bool // promoted from google.protobuf.FieldOptions -+ Default defaultValue -+ ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields -+ Enum protoreflect.EnumDescriptor -+ Message protoreflect.MessageDescriptor -+ } -+ -+ Oneof struct { -+ Base -+ L1 OneofL1 -+ } -+ OneofL1 struct { -+ Options func() protoreflect.ProtoMessage -+ Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ } -+) -+ -+func (md *Message) Options() protoreflect.ProtoMessage { -+ if f := md.lazyInit().Options; f != nil { -+ return f() -+ } -+ return descopts.Message -+} -+func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry } -+func (md *Message) Fields() protoreflect.FieldDescriptors { return &md.lazyInit().Fields } -+func (md *Message) Oneofs() protoreflect.OneofDescriptors { return &md.lazyInit().Oneofs } -+func (md *Message) ReservedNames() protoreflect.Names { return &md.lazyInit().ReservedNames } -+func (md *Message) ReservedRanges() protoreflect.FieldRanges { return &md.lazyInit().ReservedRanges } -+func (md *Message) RequiredNumbers() protoreflect.FieldNumbers { return &md.lazyInit().RequiredNumbers } -+func (md *Message) ExtensionRanges() protoreflect.FieldRanges { return &md.lazyInit().ExtensionRanges } -+func (md *Message) ExtensionRangeOptions(i int) protoreflect.ProtoMessage { -+ if f := md.lazyInit().ExtensionRangeOptions[i]; f != nil { -+ return f() -+ } -+ return descopts.ExtensionRange -+} -+func (md *Message) Enums() protoreflect.EnumDescriptors { return &md.L1.Enums } -+func (md *Message) Messages() protoreflect.MessageDescriptors { return &md.L1.Messages } -+func (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions } -+func (md *Message) ProtoType(protoreflect.MessageDescriptor) {} -+func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } -+func (md *Message) lazyInit() *MessageL2 { -+ md.L0.ParentFile.lazyInit() // implicitly initializes L2 -+ return md.L2 -+} -+ -+// IsMessageSet is a pseudo-internal API for checking whether a message -+// should serialize in the proto1 message format. -+// -+// WARNING: This method is exempt from the compatibility promise and may be -+// removed in the future without warning. -+func (md *Message) IsMessageSet() bool { -+ return md.L1.IsMessageSet -+} -+ -+func (fd *Field) Options() protoreflect.ProtoMessage { -+ if f := fd.L1.Options; f != nil { -+ return f() -+ } -+ return descopts.Field -+} -+func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } -+func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } -+func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) HasPresence() bool { -+ return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+} -+func (fd *Field) HasOptionalKeyword() bool { -+ return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional -+} -+func (fd *Field) IsPacked() bool { -+ if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ default: -+ return true -+ } -+ } -+ return fd.L1.IsPacked -+} -+func (fd *Field) IsExtension() bool { return false } -+func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } -+func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() } -+func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() } -+func (fd *Field) MapKey() protoreflect.FieldDescriptor { -+ if !fd.IsMap() { -+ return nil -+ } -+ return fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number) -+} -+func (fd *Field) MapValue() protoreflect.FieldDescriptor { -+ if !fd.IsMap() { -+ return nil -+ } -+ return fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number) -+} -+func (fd *Field) HasDefault() bool { return fd.L1.Default.has } -+func (fd *Field) Default() protoreflect.Value { return fd.L1.Default.get(fd) } -+func (fd *Field) DefaultEnumValue() protoreflect.EnumValueDescriptor { return fd.L1.Default.enum } -+func (fd *Field) ContainingOneof() protoreflect.OneofDescriptor { return fd.L1.ContainingOneof } -+func (fd *Field) ContainingMessage() protoreflect.MessageDescriptor { -+ return fd.L0.Parent.(protoreflect.MessageDescriptor) -+} -+func (fd *Field) Enum() protoreflect.EnumDescriptor { -+ return fd.L1.Enum -+} -+func (fd *Field) Message() protoreflect.MessageDescriptor { -+ if fd.L1.IsWeak { -+ if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil { -+ return d.(protoreflect.MessageDescriptor) -+ } -+ } -+ return fd.L1.Message -+} -+func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } -+func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} -+ -+// EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8 -+// validation for the string field. This exists for Google-internal use only -+// since proto3 did not enforce UTF-8 validity prior to the open-source release. -+// If this method does not exist, the default is to enforce valid UTF-8. -+// -+// WARNING: This method is exempt from the compatibility promise and may be -+// removed in the future without warning. -+func (fd *Field) EnforceUTF8() bool { -+ if fd.L1.HasEnforceUTF8 { -+ return fd.L1.EnforceUTF8 -+ } -+ return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 -+} -+ -+func (od *Oneof) IsSynthetic() bool { -+ return od.L0.ParentFile.L1.Syntax == protoreflect.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword() -+} -+func (od *Oneof) Options() protoreflect.ProtoMessage { -+ if f := od.L1.Options; f != nil { -+ return f() -+ } -+ return descopts.Oneof -+} -+func (od *Oneof) Fields() protoreflect.FieldDescriptors { return &od.L1.Fields } -+func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) } -+func (od *Oneof) ProtoType(protoreflect.OneofDescriptor) {} -+ -+type ( -+ Extension struct { -+ Base -+ L1 ExtensionL1 -+ L2 *ExtensionL2 // protected by fileDesc.once -+ } -+ ExtensionL1 struct { -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ } -+ ExtensionL2 struct { -+ Options func() protoreflect.ProtoMessage -+ StringName stringName -+ IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto -+ IsPacked bool // promoted from google.protobuf.FieldOptions -+ Default defaultValue -+ Enum protoreflect.EnumDescriptor -+ Message protoreflect.MessageDescriptor -+ } -+) -+ -+func (xd *Extension) Options() protoreflect.ProtoMessage { -+ if f := xd.lazyInit().Options; f != nil { -+ return f() -+ } -+ return descopts.Field -+} -+func (xd *Extension) Number() protoreflect.FieldNumber { return xd.L1.Number } -+func (xd *Extension) Cardinality() protoreflect.Cardinality { return xd.L1.Cardinality } -+func (xd *Extension) Kind() protoreflect.Kind { return xd.L1.Kind } -+func (xd *Extension) HasJSONName() bool { return xd.lazyInit().StringName.hasJSON } -+func (xd *Extension) JSONName() string { return xd.lazyInit().StringName.getJSON(xd) } -+func (xd *Extension) TextName() string { return xd.lazyInit().StringName.getText(xd) } -+func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != protoreflect.Repeated } -+func (xd *Extension) HasOptionalKeyword() bool { -+ return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional -+} -+func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } -+func (xd *Extension) IsExtension() bool { return true } -+func (xd *Extension) IsWeak() bool { return false } -+func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated } -+func (xd *Extension) IsMap() bool { return false } -+func (xd *Extension) MapKey() protoreflect.FieldDescriptor { return nil } -+func (xd *Extension) MapValue() protoreflect.FieldDescriptor { return nil } -+func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has } -+func (xd *Extension) Default() protoreflect.Value { return xd.lazyInit().Default.get(xd) } -+func (xd *Extension) DefaultEnumValue() protoreflect.EnumValueDescriptor { -+ return xd.lazyInit().Default.enum -+} -+func (xd *Extension) ContainingOneof() protoreflect.OneofDescriptor { return nil } -+func (xd *Extension) ContainingMessage() protoreflect.MessageDescriptor { return xd.L1.Extendee } -+func (xd *Extension) Enum() protoreflect.EnumDescriptor { return xd.lazyInit().Enum } -+func (xd *Extension) Message() protoreflect.MessageDescriptor { return xd.lazyInit().Message } -+func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) } -+func (xd *Extension) ProtoType(protoreflect.FieldDescriptor) {} -+func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {} -+func (xd *Extension) lazyInit() *ExtensionL2 { -+ xd.L0.ParentFile.lazyInit() // implicitly initializes L2 -+ return xd.L2 -+} -+ -+type ( -+ Service struct { -+ Base -+ L1 ServiceL1 -+ L2 *ServiceL2 // protected by fileDesc.once -+ } -+ ServiceL1 struct{} -+ ServiceL2 struct { -+ Options func() protoreflect.ProtoMessage -+ Methods Methods -+ } -+ -+ Method struct { -+ Base -+ L1 MethodL1 -+ } -+ MethodL1 struct { -+ Options func() protoreflect.ProtoMessage -+ Input protoreflect.MessageDescriptor -+ Output protoreflect.MessageDescriptor -+ IsStreamingClient bool -+ IsStreamingServer bool -+ } -+) -+ -+func (sd *Service) Options() protoreflect.ProtoMessage { -+ if f := sd.lazyInit().Options; f != nil { -+ return f() -+ } -+ return descopts.Service -+} -+func (sd *Service) Methods() protoreflect.MethodDescriptors { return &sd.lazyInit().Methods } -+func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) } -+func (sd *Service) ProtoType(protoreflect.ServiceDescriptor) {} -+func (sd *Service) ProtoInternal(pragma.DoNotImplement) {} -+func (sd *Service) lazyInit() *ServiceL2 { -+ sd.L0.ParentFile.lazyInit() // implicitly initializes L2 -+ return sd.L2 -+} -+ -+func (md *Method) Options() protoreflect.ProtoMessage { -+ if f := md.L1.Options; f != nil { -+ return f() -+ } -+ return descopts.Method -+} -+func (md *Method) Input() protoreflect.MessageDescriptor { return md.L1.Input } -+func (md *Method) Output() protoreflect.MessageDescriptor { return md.L1.Output } -+func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient } -+func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer } -+func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } -+func (md *Method) ProtoType(protoreflect.MethodDescriptor) {} -+func (md *Method) ProtoInternal(pragma.DoNotImplement) {} -+ -+// Surrogate files are can be used to create standalone descriptors -+// where the syntax is only information derived from the parent file. -+var ( -+ SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} -+ SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} -+) -+ -+type ( -+ Base struct { -+ L0 BaseL0 -+ } -+ BaseL0 struct { -+ FullName protoreflect.FullName // must be populated -+ ParentFile *File // must be populated -+ Parent protoreflect.Descriptor -+ Index int -+ } -+) -+ -+func (d *Base) Name() protoreflect.Name { return d.L0.FullName.Name() } -+func (d *Base) FullName() protoreflect.FullName { return d.L0.FullName } -+func (d *Base) ParentFile() protoreflect.FileDescriptor { -+ if d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 { -+ return nil // surrogate files are not real parents -+ } -+ return d.L0.ParentFile -+} -+func (d *Base) Parent() protoreflect.Descriptor { return d.L0.Parent } -+func (d *Base) Index() int { return d.L0.Index } -+func (d *Base) Syntax() protoreflect.Syntax { return d.L0.ParentFile.Syntax() } -+func (d *Base) IsPlaceholder() bool { return false } -+func (d *Base) ProtoInternal(pragma.DoNotImplement) {} -+ -+type stringName struct { -+ hasJSON bool -+ once sync.Once -+ nameJSON string -+ nameText string -+} -+ -+// InitJSON initializes the name. It is exported for use by other internal packages. -+func (s *stringName) InitJSON(name string) { -+ s.hasJSON = true -+ s.nameJSON = name -+} -+ -+func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { -+ s.once.Do(func() { -+ if fd.IsExtension() { -+ // For extensions, JSON and text are formatted the same way. -+ var name string -+ if messageset.IsMessageSetExtension(fd) { -+ name = string("[" + fd.FullName().Parent() + "]") -+ } else { -+ name = string("[" + fd.FullName() + "]") -+ } -+ s.nameJSON = name -+ s.nameText = name -+ } else { -+ // Format the JSON name. -+ if !s.hasJSON { -+ s.nameJSON = strs.JSONCamelCase(string(fd.Name())) -+ } -+ -+ // Format the text name. -+ s.nameText = string(fd.Name()) -+ if fd.Kind() == protoreflect.GroupKind { -+ s.nameText = string(fd.Message().Name()) -+ } -+ } -+ }) -+ return s -+} -+ -+func (s *stringName) getJSON(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameJSON } -+func (s *stringName) getText(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameText } -+ -+func DefaultValue(v protoreflect.Value, ev protoreflect.EnumValueDescriptor) defaultValue { -+ dv := defaultValue{has: v.IsValid(), val: v, enum: ev} -+ if b, ok := v.Interface().([]byte); ok { -+ // Store a copy of the default bytes, so that we can detect -+ // accidental mutations of the original value. -+ dv.bytes = append([]byte(nil), b...) -+ } -+ return dv -+} -+ -+func unmarshalDefault(b []byte, k protoreflect.Kind, pf *File, ed protoreflect.EnumDescriptor) defaultValue { -+ var evs protoreflect.EnumValueDescriptors -+ if k == protoreflect.EnumKind { -+ // If the enum is declared within the same file, be careful not to -+ // blindly call the Values method, lest we bind ourselves in a deadlock. -+ if e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf { -+ evs = &e.L2.Values -+ } else { -+ evs = ed.Values() -+ } -+ -+ // If we are unable to resolve the enum dependency, use a placeholder -+ // enum value since we will not be able to parse the default value. -+ if ed.IsPlaceholder() && protoreflect.Name(b).IsValid() { -+ v := protoreflect.ValueOfEnum(0) -+ ev := PlaceholderEnumValue(ed.FullName().Parent().Append(protoreflect.Name(b))) -+ return DefaultValue(v, ev) -+ } -+ } -+ -+ v, ev, err := defval.Unmarshal(string(b), k, evs, defval.Descriptor) -+ if err != nil { -+ panic(err) -+ } -+ return DefaultValue(v, ev) -+} -+ -+type defaultValue struct { -+ has bool -+ val protoreflect.Value -+ enum protoreflect.EnumValueDescriptor -+ bytes []byte -+} -+ -+func (dv *defaultValue) get(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ // Return the zero value as the default if unpopulated. -+ if !dv.has { -+ if fd.Cardinality() == protoreflect.Repeated { -+ return protoreflect.Value{} -+ } -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ return protoreflect.ValueOfBool(false) -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: -+ return protoreflect.ValueOfInt32(0) -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ return protoreflect.ValueOfInt64(0) -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: -+ return protoreflect.ValueOfUint32(0) -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ return protoreflect.ValueOfUint64(0) -+ case protoreflect.FloatKind: -+ return protoreflect.ValueOfFloat32(0) -+ case protoreflect.DoubleKind: -+ return protoreflect.ValueOfFloat64(0) -+ case protoreflect.StringKind: -+ return protoreflect.ValueOfString("") -+ case protoreflect.BytesKind: -+ return protoreflect.ValueOfBytes(nil) -+ case protoreflect.EnumKind: -+ if evs := fd.Enum().Values(); evs.Len() > 0 { -+ return protoreflect.ValueOfEnum(evs.Get(0).Number()) -+ } -+ return protoreflect.ValueOfEnum(0) -+ } -+ } -+ -+ if len(dv.bytes) > 0 && !bytes.Equal(dv.bytes, dv.val.Bytes()) { -+ // TODO: Avoid panic if we're running with the race detector -+ // and instead spawn a goroutine that periodically resets -+ // this value back to the original to induce a race. -+ panic(fmt.Sprintf("detected mutation on the default bytes for %v", fd.FullName())) -+ } -+ return dv.val -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -new file mode 100644 -index 00000000..4a1584c9 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -0,0 +1,471 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "sync" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// fileRaw is a data struct used when initializing a file descriptor from -+// a raw FileDescriptorProto. -+type fileRaw struct { -+ builder Builder -+ allEnums []Enum -+ allMessages []Message -+ allExtensions []Extension -+ allServices []Service -+} -+ -+func newRawFile(db Builder) *File { -+ fd := &File{fileRaw: fileRaw{builder: db}} -+ fd.initDecls(db.NumEnums, db.NumMessages, db.NumExtensions, db.NumServices) -+ fd.unmarshalSeed(db.RawDescriptor) -+ -+ // Extended message targets are eagerly resolved since registration -+ // needs this information at program init time. -+ for i := range fd.allExtensions { -+ xd := &fd.allExtensions[i] -+ xd.L1.Extendee = fd.resolveMessageDependency(xd.L1.Extendee, listExtTargets, int32(i)) -+ } -+ -+ fd.checkDecls() -+ return fd -+} -+ -+// initDecls pre-allocates slices for the exact number of enums, messages -+// (including map entries), extensions, and services declared in the proto file. -+// This is done to avoid regrowing the slice, which would change the address -+// for any previously seen declaration. -+// -+// The alloc methods "allocates" slices by pulling from the capacity. -+func (fd *File) initDecls(numEnums, numMessages, numExtensions, numServices int32) { -+ fd.allEnums = make([]Enum, 0, numEnums) -+ fd.allMessages = make([]Message, 0, numMessages) -+ fd.allExtensions = make([]Extension, 0, numExtensions) -+ fd.allServices = make([]Service, 0, numServices) -+} -+ -+func (fd *File) allocEnums(n int) []Enum { -+ total := len(fd.allEnums) -+ es := fd.allEnums[total : total+n] -+ fd.allEnums = fd.allEnums[:total+n] -+ return es -+} -+func (fd *File) allocMessages(n int) []Message { -+ total := len(fd.allMessages) -+ ms := fd.allMessages[total : total+n] -+ fd.allMessages = fd.allMessages[:total+n] -+ return ms -+} -+func (fd *File) allocExtensions(n int) []Extension { -+ total := len(fd.allExtensions) -+ xs := fd.allExtensions[total : total+n] -+ fd.allExtensions = fd.allExtensions[:total+n] -+ return xs -+} -+func (fd *File) allocServices(n int) []Service { -+ total := len(fd.allServices) -+ xs := fd.allServices[total : total+n] -+ fd.allServices = fd.allServices[:total+n] -+ return xs -+} -+ -+// checkDecls performs a sanity check that the expected number of expected -+// declarations matches the number that were found in the descriptor proto. -+func (fd *File) checkDecls() { -+ switch { -+ case len(fd.allEnums) != cap(fd.allEnums): -+ case len(fd.allMessages) != cap(fd.allMessages): -+ case len(fd.allExtensions) != cap(fd.allExtensions): -+ case len(fd.allServices) != cap(fd.allServices): -+ default: -+ return -+ } -+ panic("mismatching cardinality") -+} -+ -+func (fd *File) unmarshalSeed(b []byte) { -+ sb := getBuilder() -+ defer putBuilder(sb) -+ -+ var prevField protoreflect.FieldNumber -+ var numEnums, numMessages, numExtensions, numServices int -+ var posEnums, posMessages, posExtensions, posServices int -+ b0 := b -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Syntax_field_number: -+ switch string(v) { -+ case "proto2": -+ fd.L1.Syntax = protoreflect.Proto2 -+ case "proto3": -+ fd.L1.Syntax = protoreflect.Proto3 -+ default: -+ panic("invalid syntax") -+ } -+ case genid.FileDescriptorProto_Name_field_number: -+ fd.L1.Path = sb.MakeString(v) -+ case genid.FileDescriptorProto_Package_field_number: -+ fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_EnumType_field_number: -+ if prevField != genid.FileDescriptorProto_EnumType_field_number { -+ if numEnums > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posEnums = len(b0) - len(b) - n - m -+ } -+ numEnums++ -+ case genid.FileDescriptorProto_MessageType_field_number: -+ if prevField != genid.FileDescriptorProto_MessageType_field_number { -+ if numMessages > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posMessages = len(b0) - len(b) - n - m -+ } -+ numMessages++ -+ case genid.FileDescriptorProto_Extension_field_number: -+ if prevField != genid.FileDescriptorProto_Extension_field_number { -+ if numExtensions > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posExtensions = len(b0) - len(b) - n - m -+ } -+ numExtensions++ -+ case genid.FileDescriptorProto_Service_field_number: -+ if prevField != genid.FileDescriptorProto_Service_field_number { -+ if numServices > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posServices = len(b0) - len(b) - n - m -+ } -+ numServices++ -+ } -+ prevField = num -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ prevField = -1 // ignore known field numbers of unknown wire type -+ } -+ } -+ -+ // If syntax is missing, it is assumed to be proto2. -+ if fd.L1.Syntax == 0 { -+ fd.L1.Syntax = protoreflect.Proto2 -+ } -+ -+ // Must allocate all declarations before parsing each descriptor type -+ // to ensure we handled all descriptors in "flattened ordering". -+ if numEnums > 0 { -+ fd.L1.Enums.List = fd.allocEnums(numEnums) -+ } -+ if numMessages > 0 { -+ fd.L1.Messages.List = fd.allocMessages(numMessages) -+ } -+ if numExtensions > 0 { -+ fd.L1.Extensions.List = fd.allocExtensions(numExtensions) -+ } -+ if numServices > 0 { -+ fd.L1.Services.List = fd.allocServices(numServices) -+ } -+ -+ if numEnums > 0 { -+ b := b0[posEnums:] -+ for i := range fd.L1.Enums.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ fd.L1.Enums.List[i].unmarshalSeed(v, sb, fd, fd, i) -+ b = b[n+m:] -+ } -+ } -+ if numMessages > 0 { -+ b := b0[posMessages:] -+ for i := range fd.L1.Messages.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ fd.L1.Messages.List[i].unmarshalSeed(v, sb, fd, fd, i) -+ b = b[n+m:] -+ } -+ } -+ if numExtensions > 0 { -+ b := b0[posExtensions:] -+ for i := range fd.L1.Extensions.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ fd.L1.Extensions.List[i].unmarshalSeed(v, sb, fd, fd, i) -+ b = b[n+m:] -+ } -+ } -+ if numServices > 0 { -+ b := b0[posServices:] -+ for i := range fd.L1.Services.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ fd.L1.Services.List[i].unmarshalSeed(v, sb, fd, fd, i) -+ b = b[n+m:] -+ } -+ } -+} -+ -+func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ ed.L0.ParentFile = pf -+ ed.L0.Parent = pd -+ ed.L0.Index = i -+ -+ var numValues int -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumDescriptorProto_Name_field_number: -+ ed.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.EnumDescriptorProto_Value_field_number: -+ numValues++ -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ -+ // Only construct enum value descriptors for top-level enums since -+ // they are needed for registration. -+ if pd != pf { -+ return -+ } -+ ed.L1.eagerValues = true -+ ed.L2 = new(EnumL2) -+ ed.L2.Values.List = make([]EnumValue, numValues) -+ for i := 0; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumDescriptorProto_Value_field_number: -+ ed.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i) -+ i++ -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ md.L0.ParentFile = pf -+ md.L0.Parent = pd -+ md.L0.Index = i -+ -+ var prevField protoreflect.FieldNumber -+ var numEnums, numMessages, numExtensions int -+ var posEnums, posMessages, posExtensions int -+ b0 := b -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.DescriptorProto_Name_field_number: -+ md.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.DescriptorProto_EnumType_field_number: -+ if prevField != genid.DescriptorProto_EnumType_field_number { -+ if numEnums > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posEnums = len(b0) - len(b) - n - m -+ } -+ numEnums++ -+ case genid.DescriptorProto_NestedType_field_number: -+ if prevField != genid.DescriptorProto_NestedType_field_number { -+ if numMessages > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posMessages = len(b0) - len(b) - n - m -+ } -+ numMessages++ -+ case genid.DescriptorProto_Extension_field_number: -+ if prevField != genid.DescriptorProto_Extension_field_number { -+ if numExtensions > 0 { -+ panic("non-contiguous repeated field") -+ } -+ posExtensions = len(b0) - len(b) - n - m -+ } -+ numExtensions++ -+ case genid.DescriptorProto_Options_field_number: -+ md.unmarshalSeedOptions(v) -+ } -+ prevField = num -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ prevField = -1 // ignore known field numbers of unknown wire type -+ } -+ } -+ -+ // Must allocate all declarations before parsing each descriptor type -+ // to ensure we handled all descriptors in "flattened ordering". -+ if numEnums > 0 { -+ md.L1.Enums.List = pf.allocEnums(numEnums) -+ } -+ if numMessages > 0 { -+ md.L1.Messages.List = pf.allocMessages(numMessages) -+ } -+ if numExtensions > 0 { -+ md.L1.Extensions.List = pf.allocExtensions(numExtensions) -+ } -+ -+ if numEnums > 0 { -+ b := b0[posEnums:] -+ for i := range md.L1.Enums.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ md.L1.Enums.List[i].unmarshalSeed(v, sb, pf, md, i) -+ b = b[n+m:] -+ } -+ } -+ if numMessages > 0 { -+ b := b0[posMessages:] -+ for i := range md.L1.Messages.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ md.L1.Messages.List[i].unmarshalSeed(v, sb, pf, md, i) -+ b = b[n+m:] -+ } -+ } -+ if numExtensions > 0 { -+ b := b0[posExtensions:] -+ for i := range md.L1.Extensions.List { -+ _, n := protowire.ConsumeVarint(b) -+ v, m := protowire.ConsumeBytes(b[n:]) -+ md.L1.Extensions.List[i].unmarshalSeed(v, sb, pf, md, i) -+ b = b[n+m:] -+ } -+ } -+} -+ -+func (md *Message) unmarshalSeedOptions(b []byte) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_MapEntry_field_number: -+ md.L1.IsMapEntry = protowire.DecodeBool(v) -+ case genid.MessageOptions_MessageSetWireFormat_field_number: -+ md.L1.IsMessageSet = protowire.DecodeBool(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ xd.L0.ParentFile = pf -+ xd.L0.Parent = pd -+ xd.L0.Index = i -+ -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_Number_field_number: -+ xd.L1.Number = protoreflect.FieldNumber(v) -+ case genid.FieldDescriptorProto_Label_field_number: -+ xd.L1.Cardinality = protoreflect.Cardinality(v) -+ case genid.FieldDescriptorProto_Type_field_number: -+ xd.L1.Kind = protoreflect.Kind(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_Name_field_number: -+ xd.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.FieldDescriptorProto_Extendee_field_number: -+ xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ sd.L0.ParentFile = pf -+ sd.L0.Parent = pd -+ sd.L0.Index = i -+ -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.ServiceDescriptorProto_Name_field_number: -+ sd.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+var nameBuilderPool = sync.Pool{ -+ New: func() interface{} { return new(strs.Builder) }, -+} -+ -+func getBuilder() *strs.Builder { -+ return nameBuilderPool.Get().(*strs.Builder) -+} -+func putBuilder(b *strs.Builder) { -+ nameBuilderPool.Put(b) -+} -+ -+// makeFullName converts b to a protoreflect.FullName, -+// where b must start with a leading dot. -+func makeFullName(sb *strs.Builder, b []byte) protoreflect.FullName { -+ if len(b) == 0 || b[0] != '.' { -+ panic("name reference must be fully qualified") -+ } -+ return protoreflect.FullName(sb.MakeString(b[1:])) -+} -+ -+func appendFullName(sb *strs.Builder, prefix protoreflect.FullName, suffix []byte) protoreflect.FullName { -+ return sb.AppendFullName(prefix, protoreflect.Name(strs.UnsafeString(suffix))) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -new file mode 100644 -index 00000000..736a19a7 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -0,0 +1,704 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "reflect" -+ "sync" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/descopts" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+func (fd *File) lazyRawInit() { -+ fd.unmarshalFull(fd.builder.RawDescriptor) -+ fd.resolveMessages() -+ fd.resolveExtensions() -+ fd.resolveServices() -+} -+ -+func (file *File) resolveMessages() { -+ var depIdx int32 -+ for i := range file.allMessages { -+ md := &file.allMessages[i] -+ -+ // Resolve message field dependencies. -+ for j := range md.L2.Fields.List { -+ fd := &md.L2.Fields.List[j] -+ -+ // Weak fields are resolved upon actual use. -+ if fd.L1.IsWeak { -+ continue -+ } -+ -+ // Resolve message field dependency. -+ switch fd.L1.Kind { -+ case protoreflect.EnumKind: -+ fd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx) -+ depIdx++ -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ fd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx) -+ depIdx++ -+ } -+ -+ // Default is resolved here since it depends on Enum being resolved. -+ if v := fd.L1.Default.val; v.IsValid() { -+ fd.L1.Default = unmarshalDefault(v.Bytes(), fd.L1.Kind, file, fd.L1.Enum) -+ } -+ } -+ } -+} -+ -+func (file *File) resolveExtensions() { -+ var depIdx int32 -+ for i := range file.allExtensions { -+ xd := &file.allExtensions[i] -+ -+ // Resolve extension field dependency. -+ switch xd.L1.Kind { -+ case protoreflect.EnumKind: -+ xd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx) -+ depIdx++ -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ xd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx) -+ depIdx++ -+ } -+ -+ // Default is resolved here since it depends on Enum being resolved. -+ if v := xd.L2.Default.val; v.IsValid() { -+ xd.L2.Default = unmarshalDefault(v.Bytes(), xd.L1.Kind, file, xd.L2.Enum) -+ } -+ } -+} -+ -+func (file *File) resolveServices() { -+ var depIdx int32 -+ for i := range file.allServices { -+ sd := &file.allServices[i] -+ -+ // Resolve method dependencies. -+ for j := range sd.L2.Methods.List { -+ md := &sd.L2.Methods.List[j] -+ md.L1.Input = file.resolveMessageDependency(md.L1.Input, listMethInDeps, depIdx) -+ md.L1.Output = file.resolveMessageDependency(md.L1.Output, listMethOutDeps, depIdx) -+ depIdx++ -+ } -+ } -+} -+ -+func (file *File) resolveEnumDependency(ed protoreflect.EnumDescriptor, i, j int32) protoreflect.EnumDescriptor { -+ r := file.builder.FileRegistry -+ if r, ok := r.(resolverByIndex); ok { -+ if ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil { -+ return ed2 -+ } -+ } -+ for i := range file.allEnums { -+ if ed2 := &file.allEnums[i]; ed2.L0.FullName == ed.FullName() { -+ return ed2 -+ } -+ } -+ if d, _ := r.FindDescriptorByName(ed.FullName()); d != nil { -+ return d.(protoreflect.EnumDescriptor) -+ } -+ return ed -+} -+ -+func (file *File) resolveMessageDependency(md protoreflect.MessageDescriptor, i, j int32) protoreflect.MessageDescriptor { -+ r := file.builder.FileRegistry -+ if r, ok := r.(resolverByIndex); ok { -+ if md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil { -+ return md2 -+ } -+ } -+ for i := range file.allMessages { -+ if md2 := &file.allMessages[i]; md2.L0.FullName == md.FullName() { -+ return md2 -+ } -+ } -+ if d, _ := r.FindDescriptorByName(md.FullName()); d != nil { -+ return d.(protoreflect.MessageDescriptor) -+ } -+ return md -+} -+ -+func (fd *File) unmarshalFull(b []byte) { -+ sb := getBuilder() -+ defer putBuilder(sb) -+ -+ var enumIdx, messageIdx, extensionIdx, serviceIdx int -+ var rawOptions []byte -+ fd.L2 = new(FileL2) -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_PublicDependency_field_number: -+ fd.L2.Imports[v].IsPublic = true -+ case genid.FileDescriptorProto_WeakDependency_field_number: -+ fd.L2.Imports[v].IsWeak = true -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Dependency_field_number: -+ path := sb.MakeString(v) -+ imp, _ := fd.builder.FileRegistry.FindFileByPath(path) -+ if imp == nil { -+ imp = PlaceholderFile(path) -+ } -+ fd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp}) -+ case genid.FileDescriptorProto_EnumType_field_number: -+ fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb) -+ enumIdx++ -+ case genid.FileDescriptorProto_MessageType_field_number: -+ fd.L1.Messages.List[messageIdx].unmarshalFull(v, sb) -+ messageIdx++ -+ case genid.FileDescriptorProto_Extension_field_number: -+ fd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) -+ extensionIdx++ -+ case genid.FileDescriptorProto_Service_field_number: -+ fd.L1.Services.List[serviceIdx].unmarshalFull(v, sb) -+ serviceIdx++ -+ case genid.FileDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ fd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions) -+} -+ -+func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) { -+ var rawValues [][]byte -+ var rawOptions []byte -+ if !ed.L1.eagerValues { -+ ed.L2 = new(EnumL2) -+ } -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumDescriptorProto_Value_field_number: -+ rawValues = append(rawValues, v) -+ case genid.EnumDescriptorProto_ReservedName_field_number: -+ ed.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v))) -+ case genid.EnumDescriptorProto_ReservedRange_field_number: -+ ed.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v)) -+ case genid.EnumDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ if !ed.L1.eagerValues && len(rawValues) > 0 { -+ ed.L2.Values.List = make([]EnumValue, len(rawValues)) -+ for i, b := range rawValues { -+ ed.L2.Values.List[i].unmarshalFull(b, sb, ed.L0.ParentFile, ed, i) -+ } -+ } -+ ed.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions) -+} -+ -+func unmarshalEnumReservedRange(b []byte) (r [2]protoreflect.EnumNumber) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumDescriptorProto_EnumReservedRange_Start_field_number: -+ r[0] = protoreflect.EnumNumber(v) -+ case genid.EnumDescriptorProto_EnumReservedRange_End_field_number: -+ r[1] = protoreflect.EnumNumber(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ return r -+} -+ -+func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ vd.L0.ParentFile = pf -+ vd.L0.Parent = pd -+ vd.L0.Index = i -+ -+ var rawOptions []byte -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumValueDescriptorProto_Number_field_number: -+ vd.L1.Number = protoreflect.EnumNumber(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.EnumValueDescriptorProto_Name_field_number: -+ // NOTE: Enum values are in the same scope as the enum parent. -+ vd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v) -+ case genid.EnumValueDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ vd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.EnumValue, rawOptions) -+} -+ -+func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) { -+ var rawFields, rawOneofs [][]byte -+ var enumIdx, messageIdx, extensionIdx int -+ var rawOptions []byte -+ md.L2 = new(MessageL2) -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.DescriptorProto_Field_field_number: -+ rawFields = append(rawFields, v) -+ case genid.DescriptorProto_OneofDecl_field_number: -+ rawOneofs = append(rawOneofs, v) -+ case genid.DescriptorProto_ReservedName_field_number: -+ md.L2.ReservedNames.List = append(md.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v))) -+ case genid.DescriptorProto_ReservedRange_field_number: -+ md.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v)) -+ case genid.DescriptorProto_ExtensionRange_field_number: -+ r, rawOptions := unmarshalMessageExtensionRange(v) -+ opts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions) -+ md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r) -+ md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts) -+ case genid.DescriptorProto_EnumType_field_number: -+ md.L1.Enums.List[enumIdx].unmarshalFull(v, sb) -+ enumIdx++ -+ case genid.DescriptorProto_NestedType_field_number: -+ md.L1.Messages.List[messageIdx].unmarshalFull(v, sb) -+ messageIdx++ -+ case genid.DescriptorProto_Extension_field_number: -+ md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) -+ extensionIdx++ -+ case genid.DescriptorProto_Options_field_number: -+ md.unmarshalOptions(v) -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ if len(rawFields) > 0 || len(rawOneofs) > 0 { -+ md.L2.Fields.List = make([]Field, len(rawFields)) -+ md.L2.Oneofs.List = make([]Oneof, len(rawOneofs)) -+ for i, b := range rawFields { -+ fd := &md.L2.Fields.List[i] -+ fd.unmarshalFull(b, sb, md.L0.ParentFile, md, i) -+ if fd.L1.Cardinality == protoreflect.Required { -+ md.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number) -+ } -+ } -+ for i, b := range rawOneofs { -+ od := &md.L2.Oneofs.List[i] -+ od.unmarshalFull(b, sb, md.L0.ParentFile, md, i) -+ } -+ } -+ md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions) -+} -+ -+func (md *Message) unmarshalOptions(b []byte) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_MapEntry_field_number: -+ md.L1.IsMapEntry = protowire.DecodeBool(v) -+ case genid.MessageOptions_MessageSetWireFormat_field_number: -+ md.L1.IsMessageSet = protowire.DecodeBool(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.DescriptorProto_ReservedRange_Start_field_number: -+ r[0] = protoreflect.FieldNumber(v) -+ case genid.DescriptorProto_ReservedRange_End_field_number: -+ r[1] = protoreflect.FieldNumber(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ return r -+} -+ -+func unmarshalMessageExtensionRange(b []byte) (r [2]protoreflect.FieldNumber, rawOptions []byte) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.DescriptorProto_ExtensionRange_Start_field_number: -+ r[0] = protoreflect.FieldNumber(v) -+ case genid.DescriptorProto_ExtensionRange_End_field_number: -+ r[1] = protoreflect.FieldNumber(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.DescriptorProto_ExtensionRange_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ return r, rawOptions -+} -+ -+func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ fd.L0.ParentFile = pf -+ fd.L0.Parent = pd -+ fd.L0.Index = i -+ -+ var rawTypeName []byte -+ var rawOptions []byte -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_Number_field_number: -+ fd.L1.Number = protoreflect.FieldNumber(v) -+ case genid.FieldDescriptorProto_Label_field_number: -+ fd.L1.Cardinality = protoreflect.Cardinality(v) -+ case genid.FieldDescriptorProto_Type_field_number: -+ fd.L1.Kind = protoreflect.Kind(v) -+ case genid.FieldDescriptorProto_OneofIndex_field_number: -+ // In Message.unmarshalFull, we allocate slices for both -+ // the field and oneof descriptors before unmarshaling either -+ // of them. This ensures pointers to slice elements are stable. -+ od := &pd.(*Message).L2.Oneofs.List[v] -+ od.L1.Fields.List = append(od.L1.Fields.List, fd) -+ if fd.L1.ContainingOneof != nil { -+ panic("oneof type already set") -+ } -+ fd.L1.ContainingOneof = od -+ case genid.FieldDescriptorProto_Proto3Optional_field_number: -+ fd.L1.IsProto3Optional = protowire.DecodeBool(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_Name_field_number: -+ fd.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.FieldDescriptorProto_JsonName_field_number: -+ fd.L1.StringName.InitJSON(sb.MakeString(v)) -+ case genid.FieldDescriptorProto_DefaultValue_field_number: -+ fd.L1.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages -+ case genid.FieldDescriptorProto_TypeName_field_number: -+ rawTypeName = v -+ case genid.FieldDescriptorProto_Options_field_number: -+ fd.unmarshalOptions(v) -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ if rawTypeName != nil { -+ name := makeFullName(sb, rawTypeName) -+ switch fd.L1.Kind { -+ case protoreflect.EnumKind: -+ fd.L1.Enum = PlaceholderEnum(name) -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ fd.L1.Message = PlaceholderMessage(name) -+ } -+ } -+ fd.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Field, rawOptions) -+} -+ -+func (fd *Field) unmarshalOptions(b []byte) { -+ const FieldOptions_EnforceUTF8 = 13 -+ -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Packed_field_number: -+ fd.L1.HasPacked = true -+ fd.L1.IsPacked = protowire.DecodeBool(v) -+ case genid.FieldOptions_Weak_field_number: -+ fd.L1.IsWeak = protowire.DecodeBool(v) -+ case FieldOptions_EnforceUTF8: -+ fd.L1.HasEnforceUTF8 = true -+ fd.L1.EnforceUTF8 = protowire.DecodeBool(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ od.L0.ParentFile = pf -+ od.L0.Parent = pd -+ od.L0.Index = i -+ -+ var rawOptions []byte -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.OneofDescriptorProto_Name_field_number: -+ od.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.OneofDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ od.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Oneof, rawOptions) -+} -+ -+func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { -+ var rawTypeName []byte -+ var rawOptions []byte -+ xd.L2 = new(ExtensionL2) -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_Proto3Optional_field_number: -+ xd.L2.IsProto3Optional = protowire.DecodeBool(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldDescriptorProto_JsonName_field_number: -+ xd.L2.StringName.InitJSON(sb.MakeString(v)) -+ case genid.FieldDescriptorProto_DefaultValue_field_number: -+ xd.L2.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions -+ case genid.FieldDescriptorProto_TypeName_field_number: -+ rawTypeName = v -+ case genid.FieldDescriptorProto_Options_field_number: -+ xd.unmarshalOptions(v) -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ if rawTypeName != nil { -+ name := makeFullName(sb, rawTypeName) -+ switch xd.L1.Kind { -+ case protoreflect.EnumKind: -+ xd.L2.Enum = PlaceholderEnum(name) -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ xd.L2.Message = PlaceholderMessage(name) -+ } -+ } -+ xd.L2.Options = xd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Field, rawOptions) -+} -+ -+func (xd *Extension) unmarshalOptions(b []byte) { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Packed_field_number: -+ xd.L2.IsPacked = protowire.DecodeBool(v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ -+func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { -+ var rawMethods [][]byte -+ var rawOptions []byte -+ sd.L2 = new(ServiceL2) -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.ServiceDescriptorProto_Method_field_number: -+ rawMethods = append(rawMethods, v) -+ case genid.ServiceDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ if len(rawMethods) > 0 { -+ sd.L2.Methods.List = make([]Method, len(rawMethods)) -+ for i, b := range rawMethods { -+ sd.L2.Methods.List[i].unmarshalFull(b, sb, sd.L0.ParentFile, sd, i) -+ } -+ } -+ sd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions) -+} -+ -+func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { -+ md.L0.ParentFile = pf -+ md.L0.Parent = pd -+ md.L0.Index = i -+ -+ var rawOptions []byte -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.MethodDescriptorProto_ClientStreaming_field_number: -+ md.L1.IsStreamingClient = protowire.DecodeBool(v) -+ case genid.MethodDescriptorProto_ServerStreaming_field_number: -+ md.L1.IsStreamingServer = protowire.DecodeBool(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MethodDescriptorProto_Name_field_number: -+ md.L0.FullName = appendFullName(sb, pd.FullName(), v) -+ case genid.MethodDescriptorProto_InputType_field_number: -+ md.L1.Input = PlaceholderMessage(makeFullName(sb, v)) -+ case genid.MethodDescriptorProto_OutputType_field_number: -+ md.L1.Output = PlaceholderMessage(makeFullName(sb, v)) -+ case genid.MethodDescriptorProto_Options_field_number: -+ rawOptions = appendOptions(rawOptions, v) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+ md.L1.Options = pf.builder.optionsUnmarshaler(&descopts.Method, rawOptions) -+} -+ -+// appendOptions appends src to dst, where the returned slice is never nil. -+// This is necessary to distinguish between empty and unpopulated options. -+func appendOptions(dst, src []byte) []byte { -+ if dst == nil { -+ dst = []byte{} -+ } -+ return append(dst, src...) -+} -+ -+// optionsUnmarshaler constructs a lazy unmarshal function for an options message. -+// -+// The type of message to unmarshal to is passed as a pointer since the -+// vars in descopts may not yet be populated at the time this function is called. -+func (db *Builder) optionsUnmarshaler(p *protoreflect.ProtoMessage, b []byte) func() protoreflect.ProtoMessage { -+ if b == nil { -+ return nil -+ } -+ var opts protoreflect.ProtoMessage -+ var once sync.Once -+ return func() protoreflect.ProtoMessage { -+ once.Do(func() { -+ if *p == nil { -+ panic("Descriptor.Options called without importing the descriptor package") -+ } -+ opts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(protoreflect.ProtoMessage) -+ if err := (proto.UnmarshalOptions{ -+ AllowPartial: true, -+ Resolver: db.TypeResolver, -+ }).Unmarshal(b, opts); err != nil { -+ panic(err) -+ } -+ }) -+ return opts -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go -new file mode 100644 -index 00000000..e3b6587d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go -@@ -0,0 +1,457 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ "math" -+ "sort" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/genid" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/descfmt" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type FileImports []protoreflect.FileImport -+ -+func (p *FileImports) Len() int { return len(*p) } -+func (p *FileImports) Get(i int) protoreflect.FileImport { return (*p)[i] } -+func (p *FileImports) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *FileImports) ProtoInternal(pragma.DoNotImplement) {} -+ -+type Names struct { -+ List []protoreflect.Name -+ once sync.Once -+ has map[protoreflect.Name]int // protected by once -+} -+ -+func (p *Names) Len() int { return len(p.List) } -+func (p *Names) Get(i int) protoreflect.Name { return p.List[i] } -+func (p *Names) Has(s protoreflect.Name) bool { return p.lazyInit().has[s] > 0 } -+func (p *Names) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *Names) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Names) lazyInit() *Names { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.has = make(map[protoreflect.Name]int, len(p.List)) -+ for _, s := range p.List { -+ p.has[s] = p.has[s] + 1 -+ } -+ } -+ }) -+ return p -+} -+ -+// CheckValid reports any errors with the set of names with an error message -+// that completes the sentence: "ranges is invalid because it has ..." -+func (p *Names) CheckValid() error { -+ for s, n := range p.lazyInit().has { -+ switch { -+ case n > 1: -+ return errors.New("duplicate name: %q", s) -+ case false && !s.IsValid(): -+ // NOTE: The C++ implementation does not validate the identifier. -+ // See https://github.com/protocolbuffers/protobuf/issues/6335. -+ return errors.New("invalid name: %q", s) -+ } -+ } -+ return nil -+} -+ -+type EnumRanges struct { -+ List [][2]protoreflect.EnumNumber // start inclusive; end inclusive -+ once sync.Once -+ sorted [][2]protoreflect.EnumNumber // protected by once -+} -+ -+func (p *EnumRanges) Len() int { return len(p.List) } -+func (p *EnumRanges) Get(i int) [2]protoreflect.EnumNumber { return p.List[i] } -+func (p *EnumRanges) Has(n protoreflect.EnumNumber) bool { -+ for ls := p.lazyInit().sorted; len(ls) > 0; { -+ i := len(ls) / 2 -+ switch r := enumRange(ls[i]); { -+ case n < r.Start(): -+ ls = ls[:i] // search lower -+ case n > r.End(): -+ ls = ls[i+1:] // search upper -+ default: -+ return true -+ } -+ } -+ return false -+} -+func (p *EnumRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *EnumRanges) ProtoInternal(pragma.DoNotImplement) {} -+func (p *EnumRanges) lazyInit() *EnumRanges { -+ p.once.Do(func() { -+ p.sorted = append(p.sorted, p.List...) -+ sort.Slice(p.sorted, func(i, j int) bool { -+ return p.sorted[i][0] < p.sorted[j][0] -+ }) -+ }) -+ return p -+} -+ -+// CheckValid reports any errors with the set of names with an error message -+// that completes the sentence: "ranges is invalid because it has ..." -+func (p *EnumRanges) CheckValid() error { -+ var rp enumRange -+ for i, r := range p.lazyInit().sorted { -+ r := enumRange(r) -+ switch { -+ case !(r.Start() <= r.End()): -+ return errors.New("invalid range: %v", r) -+ case !(rp.End() < r.Start()) && i > 0: -+ return errors.New("overlapping ranges: %v with %v", rp, r) -+ } -+ rp = r -+ } -+ return nil -+} -+ -+type enumRange [2]protoreflect.EnumNumber -+ -+func (r enumRange) Start() protoreflect.EnumNumber { return r[0] } // inclusive -+func (r enumRange) End() protoreflect.EnumNumber { return r[1] } // inclusive -+func (r enumRange) String() string { -+ if r.Start() == r.End() { -+ return fmt.Sprintf("%d", r.Start()) -+ } -+ return fmt.Sprintf("%d to %d", r.Start(), r.End()) -+} -+ -+type FieldRanges struct { -+ List [][2]protoreflect.FieldNumber // start inclusive; end exclusive -+ once sync.Once -+ sorted [][2]protoreflect.FieldNumber // protected by once -+} -+ -+func (p *FieldRanges) Len() int { return len(p.List) } -+func (p *FieldRanges) Get(i int) [2]protoreflect.FieldNumber { return p.List[i] } -+func (p *FieldRanges) Has(n protoreflect.FieldNumber) bool { -+ for ls := p.lazyInit().sorted; len(ls) > 0; { -+ i := len(ls) / 2 -+ switch r := fieldRange(ls[i]); { -+ case n < r.Start(): -+ ls = ls[:i] // search lower -+ case n > r.End(): -+ ls = ls[i+1:] // search upper -+ default: -+ return true -+ } -+ } -+ return false -+} -+func (p *FieldRanges) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *FieldRanges) ProtoInternal(pragma.DoNotImplement) {} -+func (p *FieldRanges) lazyInit() *FieldRanges { -+ p.once.Do(func() { -+ p.sorted = append(p.sorted, p.List...) -+ sort.Slice(p.sorted, func(i, j int) bool { -+ return p.sorted[i][0] < p.sorted[j][0] -+ }) -+ }) -+ return p -+} -+ -+// CheckValid reports any errors with the set of ranges with an error message -+// that completes the sentence: "ranges is invalid because it has ..." -+func (p *FieldRanges) CheckValid(isMessageSet bool) error { -+ var rp fieldRange -+ for i, r := range p.lazyInit().sorted { -+ r := fieldRange(r) -+ switch { -+ case !isValidFieldNumber(r.Start(), isMessageSet): -+ return errors.New("invalid field number: %d", r.Start()) -+ case !isValidFieldNumber(r.End(), isMessageSet): -+ return errors.New("invalid field number: %d", r.End()) -+ case !(r.Start() <= r.End()): -+ return errors.New("invalid range: %v", r) -+ case !(rp.End() < r.Start()) && i > 0: -+ return errors.New("overlapping ranges: %v with %v", rp, r) -+ } -+ rp = r -+ } -+ return nil -+} -+ -+// isValidFieldNumber reports whether the field number is valid. -+// Unlike the FieldNumber.IsValid method, it allows ranges that cover the -+// reserved number range. -+func isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool { -+ return protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet) -+} -+ -+// CheckOverlap reports an error if p and q overlap. -+func (p *FieldRanges) CheckOverlap(q *FieldRanges) error { -+ rps := p.lazyInit().sorted -+ rqs := q.lazyInit().sorted -+ for pi, qi := 0, 0; pi < len(rps) && qi < len(rqs); { -+ rp := fieldRange(rps[pi]) -+ rq := fieldRange(rqs[qi]) -+ if !(rp.End() < rq.Start() || rq.End() < rp.Start()) { -+ return errors.New("overlapping ranges: %v with %v", rp, rq) -+ } -+ if rp.Start() < rq.Start() { -+ pi++ -+ } else { -+ qi++ -+ } -+ } -+ return nil -+} -+ -+type fieldRange [2]protoreflect.FieldNumber -+ -+func (r fieldRange) Start() protoreflect.FieldNumber { return r[0] } // inclusive -+func (r fieldRange) End() protoreflect.FieldNumber { return r[1] - 1 } // inclusive -+func (r fieldRange) String() string { -+ if r.Start() == r.End() { -+ return fmt.Sprintf("%d", r.Start()) -+ } -+ return fmt.Sprintf("%d to %d", r.Start(), r.End()) -+} -+ -+type FieldNumbers struct { -+ List []protoreflect.FieldNumber -+ once sync.Once -+ has map[protoreflect.FieldNumber]struct{} // protected by once -+} -+ -+func (p *FieldNumbers) Len() int { return len(p.List) } -+func (p *FieldNumbers) Get(i int) protoreflect.FieldNumber { return p.List[i] } -+func (p *FieldNumbers) Has(n protoreflect.FieldNumber) bool { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.has = make(map[protoreflect.FieldNumber]struct{}, len(p.List)) -+ for _, n := range p.List { -+ p.has[n] = struct{}{} -+ } -+ } -+ }) -+ _, ok := p.has[n] -+ return ok -+} -+func (p *FieldNumbers) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {} -+ -+type OneofFields struct { -+ List []protoreflect.FieldDescriptor -+ once sync.Once -+ byName map[protoreflect.Name]protoreflect.FieldDescriptor // protected by once -+ byJSON map[string]protoreflect.FieldDescriptor // protected by once -+ byText map[string]protoreflect.FieldDescriptor // protected by once -+ byNum map[protoreflect.FieldNumber]protoreflect.FieldDescriptor // protected by once -+} -+ -+func (p *OneofFields) Len() int { return len(p.List) } -+func (p *OneofFields) Get(i int) protoreflect.FieldDescriptor { return p.List[i] } -+func (p *OneofFields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor { -+ return p.lazyInit().byName[s] -+} -+func (p *OneofFields) ByJSONName(s string) protoreflect.FieldDescriptor { -+ return p.lazyInit().byJSON[s] -+} -+func (p *OneofFields) ByTextName(s string) protoreflect.FieldDescriptor { -+ return p.lazyInit().byText[s] -+} -+func (p *OneofFields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { -+ return p.lazyInit().byNum[n] -+} -+func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -+func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {} -+ -+func (p *OneofFields) lazyInit() *OneofFields { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]protoreflect.FieldDescriptor, len(p.List)) -+ p.byJSON = make(map[string]protoreflect.FieldDescriptor, len(p.List)) -+ p.byText = make(map[string]protoreflect.FieldDescriptor, len(p.List)) -+ p.byNum = make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, len(p.List)) -+ for _, f := range p.List { -+ // Field names and numbers are guaranteed to be unique. -+ p.byName[f.Name()] = f -+ p.byJSON[f.JSONName()] = f -+ p.byText[f.TextName()] = f -+ p.byNum[f.Number()] = f -+ } -+ } -+ }) -+ return p -+} -+ -+type SourceLocations struct { -+ // List is a list of SourceLocations. -+ // The SourceLocation.Next field does not need to be populated -+ // as it will be lazily populated upon first need. -+ List []protoreflect.SourceLocation -+ -+ // File is the parent file descriptor that these locations are relative to. -+ // If non-nil, ByDescriptor verifies that the provided descriptor -+ // is a child of this file descriptor. -+ File protoreflect.FileDescriptor -+ -+ once sync.Once -+ byPath map[pathKey]int -+} -+ -+func (p *SourceLocations) Len() int { return len(p.List) } -+func (p *SourceLocations) Get(i int) protoreflect.SourceLocation { return p.lazyInit().List[i] } -+func (p *SourceLocations) byKey(k pathKey) protoreflect.SourceLocation { -+ if i, ok := p.lazyInit().byPath[k]; ok { -+ return p.List[i] -+ } -+ return protoreflect.SourceLocation{} -+} -+func (p *SourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation { -+ return p.byKey(newPathKey(path)) -+} -+func (p *SourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation { -+ if p.File != nil && desc != nil && p.File != desc.ParentFile() { -+ return protoreflect.SourceLocation{} // mismatching parent files -+ } -+ var pathArr [16]int32 -+ path := pathArr[:0] -+ for { -+ switch desc.(type) { -+ case protoreflect.FileDescriptor: -+ // Reverse the path since it was constructed in reverse. -+ for i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 { -+ path[i], path[j] = path[j], path[i] -+ } -+ return p.byKey(newPathKey(path)) -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.FileDescriptor: -+ path = append(path, int32(genid.FileDescriptorProto_MessageType_field_number)) -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(genid.DescriptorProto_NestedType_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ case protoreflect.FieldDescriptor: -+ isExtension := desc.(protoreflect.FieldDescriptor).IsExtension() -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ if isExtension { -+ switch desc.(type) { -+ case protoreflect.FileDescriptor: -+ path = append(path, int32(genid.FileDescriptorProto_Extension_field_number)) -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(genid.DescriptorProto_Extension_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ } else { -+ switch desc.(type) { -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(genid.DescriptorProto_Field_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ } -+ case protoreflect.OneofDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(genid.DescriptorProto_OneofDecl_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ case protoreflect.EnumDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.FileDescriptor: -+ path = append(path, int32(genid.FileDescriptorProto_EnumType_field_number)) -+ case protoreflect.MessageDescriptor: -+ path = append(path, int32(genid.DescriptorProto_EnumType_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ case protoreflect.EnumValueDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.EnumDescriptor: -+ path = append(path, int32(genid.EnumDescriptorProto_Value_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ case protoreflect.ServiceDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.FileDescriptor: -+ path = append(path, int32(genid.FileDescriptorProto_Service_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ case protoreflect.MethodDescriptor: -+ path = append(path, int32(desc.Index())) -+ desc = desc.Parent() -+ switch desc.(type) { -+ case protoreflect.ServiceDescriptor: -+ path = append(path, int32(genid.ServiceDescriptorProto_Method_field_number)) -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ default: -+ return protoreflect.SourceLocation{} -+ } -+ } -+} -+func (p *SourceLocations) lazyInit() *SourceLocations { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ // Collect all the indexes for a given path. -+ pathIdxs := make(map[pathKey][]int, len(p.List)) -+ for i, l := range p.List { -+ k := newPathKey(l.Path) -+ pathIdxs[k] = append(pathIdxs[k], i) -+ } -+ -+ // Update the next index for all locations. -+ p.byPath = make(map[pathKey]int, len(p.List)) -+ for k, idxs := range pathIdxs { -+ for i := 0; i < len(idxs)-1; i++ { -+ p.List[idxs[i]].Next = idxs[i+1] -+ } -+ p.List[idxs[len(idxs)-1]].Next = 0 -+ p.byPath[k] = idxs[0] // record the first location for this path -+ } -+ } -+ }) -+ return p -+} -+func (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {} -+ -+// pathKey is a comparable representation of protoreflect.SourcePath. -+type pathKey struct { -+ arr [16]uint8 // first n-1 path segments; last element is the length -+ str string // used if the path does not fit in arr -+} -+ -+func newPathKey(p protoreflect.SourcePath) (k pathKey) { -+ if len(p) < len(k.arr) { -+ for i, ps := range p { -+ if ps < 0 || math.MaxUint8 <= ps { -+ return pathKey{str: p.String()} -+ } -+ k.arr[i] = uint8(ps) -+ } -+ k.arr[len(k.arr)-1] = uint8(len(p)) -+ return k -+ } -+ return pathKey{str: p.String()} -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go -new file mode 100644 -index 00000000..30db19fd ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go -@@ -0,0 +1,356 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/descfmt" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type Enums struct { -+ List []Enum -+ once sync.Once -+ byName map[protoreflect.Name]*Enum // protected by once -+} -+ -+func (p *Enums) Len() int { -+ return len(p.List) -+} -+func (p *Enums) Get(i int) protoreflect.EnumDescriptor { -+ return &p.List[i] -+} -+func (p *Enums) ByName(s protoreflect.Name) protoreflect.EnumDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Enums) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Enums) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Enums) lazyInit() *Enums { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Enum, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type EnumValues struct { -+ List []EnumValue -+ once sync.Once -+ byName map[protoreflect.Name]*EnumValue // protected by once -+ byNum map[protoreflect.EnumNumber]*EnumValue // protected by once -+} -+ -+func (p *EnumValues) Len() int { -+ return len(p.List) -+} -+func (p *EnumValues) Get(i int) protoreflect.EnumValueDescriptor { -+ return &p.List[i] -+} -+func (p *EnumValues) ByName(s protoreflect.Name) protoreflect.EnumValueDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *EnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor { -+ if d := p.lazyInit().byNum[n]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *EnumValues) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *EnumValues) ProtoInternal(pragma.DoNotImplement) {} -+func (p *EnumValues) lazyInit() *EnumValues { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*EnumValue, len(p.List)) -+ p.byNum = make(map[protoreflect.EnumNumber]*EnumValue, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ if _, ok := p.byNum[d.Number()]; !ok { -+ p.byNum[d.Number()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Messages struct { -+ List []Message -+ once sync.Once -+ byName map[protoreflect.Name]*Message // protected by once -+} -+ -+func (p *Messages) Len() int { -+ return len(p.List) -+} -+func (p *Messages) Get(i int) protoreflect.MessageDescriptor { -+ return &p.List[i] -+} -+func (p *Messages) ByName(s protoreflect.Name) protoreflect.MessageDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Messages) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Messages) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Messages) lazyInit() *Messages { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Message, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Fields struct { -+ List []Field -+ once sync.Once -+ byName map[protoreflect.Name]*Field // protected by once -+ byJSON map[string]*Field // protected by once -+ byText map[string]*Field // protected by once -+ byNum map[protoreflect.FieldNumber]*Field // protected by once -+} -+ -+func (p *Fields) Len() int { -+ return len(p.List) -+} -+func (p *Fields) Get(i int) protoreflect.FieldDescriptor { -+ return &p.List[i] -+} -+func (p *Fields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor { -+ if d := p.lazyInit().byJSON[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor { -+ if d := p.lazyInit().byText[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { -+ if d := p.lazyInit().byNum[n]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Fields) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Fields) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Fields) lazyInit() *Fields { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Field, len(p.List)) -+ p.byJSON = make(map[string]*Field, len(p.List)) -+ p.byText = make(map[string]*Field, len(p.List)) -+ p.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ if _, ok := p.byJSON[d.JSONName()]; !ok { -+ p.byJSON[d.JSONName()] = d -+ } -+ if _, ok := p.byText[d.TextName()]; !ok { -+ p.byText[d.TextName()] = d -+ } -+ if _, ok := p.byNum[d.Number()]; !ok { -+ p.byNum[d.Number()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Oneofs struct { -+ List []Oneof -+ once sync.Once -+ byName map[protoreflect.Name]*Oneof // protected by once -+} -+ -+func (p *Oneofs) Len() int { -+ return len(p.List) -+} -+func (p *Oneofs) Get(i int) protoreflect.OneofDescriptor { -+ return &p.List[i] -+} -+func (p *Oneofs) ByName(s protoreflect.Name) protoreflect.OneofDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Oneofs) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Oneofs) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Oneofs) lazyInit() *Oneofs { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Oneof, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Extensions struct { -+ List []Extension -+ once sync.Once -+ byName map[protoreflect.Name]*Extension // protected by once -+} -+ -+func (p *Extensions) Len() int { -+ return len(p.List) -+} -+func (p *Extensions) Get(i int) protoreflect.ExtensionDescriptor { -+ return &p.List[i] -+} -+func (p *Extensions) ByName(s protoreflect.Name) protoreflect.ExtensionDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Extensions) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Extensions) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Extensions) lazyInit() *Extensions { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Extension, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Services struct { -+ List []Service -+ once sync.Once -+ byName map[protoreflect.Name]*Service // protected by once -+} -+ -+func (p *Services) Len() int { -+ return len(p.List) -+} -+func (p *Services) Get(i int) protoreflect.ServiceDescriptor { -+ return &p.List[i] -+} -+func (p *Services) ByName(s protoreflect.Name) protoreflect.ServiceDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Services) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Services) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Services) lazyInit() *Services { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Service, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -+ -+type Methods struct { -+ List []Method -+ once sync.Once -+ byName map[protoreflect.Name]*Method // protected by once -+} -+ -+func (p *Methods) Len() int { -+ return len(p.List) -+} -+func (p *Methods) Get(i int) protoreflect.MethodDescriptor { -+ return &p.List[i] -+} -+func (p *Methods) ByName(s protoreflect.Name) protoreflect.MethodDescriptor { -+ if d := p.lazyInit().byName[s]; d != nil { -+ return d -+ } -+ return nil -+} -+func (p *Methods) Format(s fmt.State, r rune) { -+ descfmt.FormatList(s, r, p) -+} -+func (p *Methods) ProtoInternal(pragma.DoNotImplement) {} -+func (p *Methods) lazyInit() *Methods { -+ p.once.Do(func() { -+ if len(p.List) > 0 { -+ p.byName = make(map[protoreflect.Name]*Method, len(p.List)) -+ for i := range p.List { -+ d := &p.List[i] -+ if _, ok := p.byName[d.Name()]; !ok { -+ p.byName[d.Name()] = d -+ } -+ } -+ } -+ }) -+ return p -+} -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go -new file mode 100644 -index 00000000..28240ebc ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go -@@ -0,0 +1,109 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "google.golang.org/protobuf/internal/descopts" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var ( -+ emptyNames = new(Names) -+ emptyEnumRanges = new(EnumRanges) -+ emptyFieldRanges = new(FieldRanges) -+ emptyFieldNumbers = new(FieldNumbers) -+ emptySourceLocations = new(SourceLocations) -+ -+ emptyFiles = new(FileImports) -+ emptyMessages = new(Messages) -+ emptyFields = new(Fields) -+ emptyOneofs = new(Oneofs) -+ emptyEnums = new(Enums) -+ emptyEnumValues = new(EnumValues) -+ emptyExtensions = new(Extensions) -+ emptyServices = new(Services) -+) -+ -+// PlaceholderFile is a placeholder, representing only the file path. -+type PlaceholderFile string -+ -+func (f PlaceholderFile) ParentFile() protoreflect.FileDescriptor { return f } -+func (f PlaceholderFile) Parent() protoreflect.Descriptor { return nil } -+func (f PlaceholderFile) Index() int { return 0 } -+func (f PlaceholderFile) Syntax() protoreflect.Syntax { return 0 } -+func (f PlaceholderFile) Name() protoreflect.Name { return "" } -+func (f PlaceholderFile) FullName() protoreflect.FullName { return "" } -+func (f PlaceholderFile) IsPlaceholder() bool { return true } -+func (f PlaceholderFile) Options() protoreflect.ProtoMessage { return descopts.File } -+func (f PlaceholderFile) Path() string { return string(f) } -+func (f PlaceholderFile) Package() protoreflect.FullName { return "" } -+func (f PlaceholderFile) Imports() protoreflect.FileImports { return emptyFiles } -+func (f PlaceholderFile) Messages() protoreflect.MessageDescriptors { return emptyMessages } -+func (f PlaceholderFile) Enums() protoreflect.EnumDescriptors { return emptyEnums } -+func (f PlaceholderFile) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions } -+func (f PlaceholderFile) Services() protoreflect.ServiceDescriptors { return emptyServices } -+func (f PlaceholderFile) SourceLocations() protoreflect.SourceLocations { return emptySourceLocations } -+func (f PlaceholderFile) ProtoType(protoreflect.FileDescriptor) { return } -+func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return } -+ -+// PlaceholderEnum is a placeholder, representing only the full name. -+type PlaceholderEnum protoreflect.FullName -+ -+func (e PlaceholderEnum) ParentFile() protoreflect.FileDescriptor { return nil } -+func (e PlaceholderEnum) Parent() protoreflect.Descriptor { return nil } -+func (e PlaceholderEnum) Index() int { return 0 } -+func (e PlaceholderEnum) Syntax() protoreflect.Syntax { return 0 } -+func (e PlaceholderEnum) Name() protoreflect.Name { return protoreflect.FullName(e).Name() } -+func (e PlaceholderEnum) FullName() protoreflect.FullName { return protoreflect.FullName(e) } -+func (e PlaceholderEnum) IsPlaceholder() bool { return true } -+func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return descopts.Enum } -+func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues } -+func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames } -+func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges } -+func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return } -+func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } -+ -+// PlaceholderEnumValue is a placeholder, representing only the full name. -+type PlaceholderEnumValue protoreflect.FullName -+ -+func (e PlaceholderEnumValue) ParentFile() protoreflect.FileDescriptor { return nil } -+func (e PlaceholderEnumValue) Parent() protoreflect.Descriptor { return nil } -+func (e PlaceholderEnumValue) Index() int { return 0 } -+func (e PlaceholderEnumValue) Syntax() protoreflect.Syntax { return 0 } -+func (e PlaceholderEnumValue) Name() protoreflect.Name { return protoreflect.FullName(e).Name() } -+func (e PlaceholderEnumValue) FullName() protoreflect.FullName { return protoreflect.FullName(e) } -+func (e PlaceholderEnumValue) IsPlaceholder() bool { return true } -+func (e PlaceholderEnumValue) Options() protoreflect.ProtoMessage { return descopts.EnumValue } -+func (e PlaceholderEnumValue) Number() protoreflect.EnumNumber { return 0 } -+func (e PlaceholderEnumValue) ProtoType(protoreflect.EnumValueDescriptor) { return } -+func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return } -+ -+// PlaceholderMessage is a placeholder, representing only the full name. -+type PlaceholderMessage protoreflect.FullName -+ -+func (m PlaceholderMessage) ParentFile() protoreflect.FileDescriptor { return nil } -+func (m PlaceholderMessage) Parent() protoreflect.Descriptor { return nil } -+func (m PlaceholderMessage) Index() int { return 0 } -+func (m PlaceholderMessage) Syntax() protoreflect.Syntax { return 0 } -+func (m PlaceholderMessage) Name() protoreflect.Name { return protoreflect.FullName(m).Name() } -+func (m PlaceholderMessage) FullName() protoreflect.FullName { return protoreflect.FullName(m) } -+func (m PlaceholderMessage) IsPlaceholder() bool { return true } -+func (m PlaceholderMessage) Options() protoreflect.ProtoMessage { return descopts.Message } -+func (m PlaceholderMessage) IsMapEntry() bool { return false } -+func (m PlaceholderMessage) Fields() protoreflect.FieldDescriptors { return emptyFields } -+func (m PlaceholderMessage) Oneofs() protoreflect.OneofDescriptors { return emptyOneofs } -+func (m PlaceholderMessage) ReservedNames() protoreflect.Names { return emptyNames } -+func (m PlaceholderMessage) ReservedRanges() protoreflect.FieldRanges { return emptyFieldRanges } -+func (m PlaceholderMessage) RequiredNumbers() protoreflect.FieldNumbers { return emptyFieldNumbers } -+func (m PlaceholderMessage) ExtensionRanges() protoreflect.FieldRanges { return emptyFieldRanges } -+func (m PlaceholderMessage) ExtensionRangeOptions(int) protoreflect.ProtoMessage { -+ panic("index out of range") -+} -+func (m PlaceholderMessage) Messages() protoreflect.MessageDescriptors { return emptyMessages } -+func (m PlaceholderMessage) Enums() protoreflect.EnumDescriptors { return emptyEnums } -+func (m PlaceholderMessage) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions } -+func (m PlaceholderMessage) ProtoType(protoreflect.MessageDescriptor) { return } -+func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return } -diff --git a/vendor/google.golang.org/protobuf/internal/filetype/build.go b/vendor/google.golang.org/protobuf/internal/filetype/build.go -new file mode 100644 -index 00000000..f0e38c4e ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filetype/build.go -@@ -0,0 +1,296 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package filetype provides functionality for wrapping descriptors -+// with Go type information. -+package filetype -+ -+import ( -+ "reflect" -+ -+ "google.golang.org/protobuf/internal/descopts" -+ "google.golang.org/protobuf/internal/filedesc" -+ pimpl "google.golang.org/protobuf/internal/impl" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// Builder constructs type descriptors from a raw file descriptor -+// and associated Go types for each enum and message declaration. -+// -+// # Flattened Ordering -+// -+// The protobuf type system represents declarations as a tree. Certain nodes in -+// the tree require us to either associate it with a concrete Go type or to -+// resolve a dependency, which is information that must be provided separately -+// since it cannot be derived from the file descriptor alone. -+// -+// However, representing a tree as Go literals is difficult to simply do in a -+// space and time efficient way. Thus, we store them as a flattened list of -+// objects where the serialization order from the tree-based form is important. -+// -+// The "flattened ordering" is defined as a tree traversal of all enum, message, -+// extension, and service declarations using the following algorithm: -+// -+// def VisitFileDecls(fd): -+// for e in fd.Enums: yield e -+// for m in fd.Messages: yield m -+// for x in fd.Extensions: yield x -+// for s in fd.Services: yield s -+// for m in fd.Messages: yield from VisitMessageDecls(m) -+// -+// def VisitMessageDecls(md): -+// for e in md.Enums: yield e -+// for m in md.Messages: yield m -+// for x in md.Extensions: yield x -+// for m in md.Messages: yield from VisitMessageDecls(m) -+// -+// The traversal starts at the root file descriptor and yields each direct -+// declaration within each node before traversing into sub-declarations -+// that children themselves may have. -+type Builder struct { -+ // File is the underlying file descriptor builder. -+ File filedesc.Builder -+ -+ // GoTypes is a unique set of the Go types for all declarations and -+ // dependencies. Each type is represented as a zero value of the Go type. -+ // -+ // Declarations are Go types generated for enums and messages directly -+ // declared (not publicly imported) in the proto source file. -+ // Messages for map entries are accounted for, but represented by nil. -+ // Enum declarations in "flattened ordering" come first, followed by -+ // message declarations in "flattened ordering". -+ // -+ // Dependencies are Go types for enums or messages referenced by -+ // message fields (excluding weak fields), for parent extended messages of -+ // extension fields, for enums or messages referenced by extension fields, -+ // and for input and output messages referenced by service methods. -+ // Dependencies must come after declarations, but the ordering of -+ // dependencies themselves is unspecified. -+ GoTypes []interface{} -+ -+ // DependencyIndexes is an ordered list of indexes into GoTypes for the -+ // dependencies of messages, extensions, or services. -+ // -+ // There are 5 sub-lists in "flattened ordering" concatenated back-to-back: -+ // 0. Message field dependencies: list of the enum or message type -+ // referred to by every message field. -+ // 1. Extension field targets: list of the extended parent message of -+ // every extension. -+ // 2. Extension field dependencies: list of the enum or message type -+ // referred to by every extension field. -+ // 3. Service method inputs: list of the input message type -+ // referred to by every service method. -+ // 4. Service method outputs: list of the output message type -+ // referred to by every service method. -+ // -+ // The offset into DependencyIndexes for the start of each sub-list -+ // is appended to the end in reverse order. -+ DependencyIndexes []int32 -+ -+ // EnumInfos is a list of enum infos in "flattened ordering". -+ EnumInfos []pimpl.EnumInfo -+ -+ // MessageInfos is a list of message infos in "flattened ordering". -+ // If provided, the GoType and PBType for each element is populated. -+ // -+ // Requirement: len(MessageInfos) == len(Build.Messages) -+ MessageInfos []pimpl.MessageInfo -+ -+ // ExtensionInfos is a list of extension infos in "flattened ordering". -+ // Each element is initialized and registered with the protoregistry package. -+ // -+ // Requirement: len(LegacyExtensions) == len(Build.Extensions) -+ ExtensionInfos []pimpl.ExtensionInfo -+ -+ // TypeRegistry is the registry to register each type descriptor. -+ // If nil, it uses protoregistry.GlobalTypes. -+ TypeRegistry interface { -+ RegisterMessage(protoreflect.MessageType) error -+ RegisterEnum(protoreflect.EnumType) error -+ RegisterExtension(protoreflect.ExtensionType) error -+ } -+} -+ -+// Out is the output of the builder. -+type Out struct { -+ File protoreflect.FileDescriptor -+} -+ -+func (tb Builder) Build() (out Out) { -+ // Replace the resolver with one that resolves dependencies by index, -+ // which is faster and more reliable than relying on the global registry. -+ if tb.File.FileRegistry == nil { -+ tb.File.FileRegistry = protoregistry.GlobalFiles -+ } -+ tb.File.FileRegistry = &resolverByIndex{ -+ goTypes: tb.GoTypes, -+ depIdxs: tb.DependencyIndexes, -+ fileRegistry: tb.File.FileRegistry, -+ } -+ -+ // Initialize registry if unpopulated. -+ if tb.TypeRegistry == nil { -+ tb.TypeRegistry = protoregistry.GlobalTypes -+ } -+ -+ fbOut := tb.File.Build() -+ out.File = fbOut.File -+ -+ // Process enums. -+ enumGoTypes := tb.GoTypes[:len(fbOut.Enums)] -+ if len(tb.EnumInfos) != len(fbOut.Enums) { -+ panic("mismatching enum lengths") -+ } -+ if len(fbOut.Enums) > 0 { -+ for i := range fbOut.Enums { -+ tb.EnumInfos[i] = pimpl.EnumInfo{ -+ GoReflectType: reflect.TypeOf(enumGoTypes[i]), -+ Desc: &fbOut.Enums[i], -+ } -+ // Register enum types. -+ if err := tb.TypeRegistry.RegisterEnum(&tb.EnumInfos[i]); err != nil { -+ panic(err) -+ } -+ } -+ } -+ -+ // Process messages. -+ messageGoTypes := tb.GoTypes[len(fbOut.Enums):][:len(fbOut.Messages)] -+ if len(tb.MessageInfos) != len(fbOut.Messages) { -+ panic("mismatching message lengths") -+ } -+ if len(fbOut.Messages) > 0 { -+ for i := range fbOut.Messages { -+ if messageGoTypes[i] == nil { -+ continue // skip map entry -+ } -+ -+ tb.MessageInfos[i].GoReflectType = reflect.TypeOf(messageGoTypes[i]) -+ tb.MessageInfos[i].Desc = &fbOut.Messages[i] -+ -+ // Register message types. -+ if err := tb.TypeRegistry.RegisterMessage(&tb.MessageInfos[i]); err != nil { -+ panic(err) -+ } -+ } -+ -+ // As a special-case for descriptor.proto, -+ // locally register concrete message type for the options. -+ if out.File.Path() == "google/protobuf/descriptor.proto" && out.File.Package() == "google.protobuf" { -+ for i := range fbOut.Messages { -+ switch fbOut.Messages[i].Name() { -+ case "FileOptions": -+ descopts.File = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "EnumOptions": -+ descopts.Enum = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "EnumValueOptions": -+ descopts.EnumValue = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "MessageOptions": -+ descopts.Message = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "FieldOptions": -+ descopts.Field = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "OneofOptions": -+ descopts.Oneof = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "ExtensionRangeOptions": -+ descopts.ExtensionRange = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "ServiceOptions": -+ descopts.Service = messageGoTypes[i].(protoreflect.ProtoMessage) -+ case "MethodOptions": -+ descopts.Method = messageGoTypes[i].(protoreflect.ProtoMessage) -+ } -+ } -+ } -+ } -+ -+ // Process extensions. -+ if len(tb.ExtensionInfos) != len(fbOut.Extensions) { -+ panic("mismatching extension lengths") -+ } -+ var depIdx int32 -+ for i := range fbOut.Extensions { -+ // For enum and message kinds, determine the referent Go type so -+ // that we can construct their constructors. -+ const listExtDeps = 2 -+ var goType reflect.Type -+ switch fbOut.Extensions[i].L1.Kind { -+ case protoreflect.EnumKind: -+ j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) -+ goType = reflect.TypeOf(tb.GoTypes[j]) -+ depIdx++ -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) -+ goType = reflect.TypeOf(tb.GoTypes[j]) -+ depIdx++ -+ default: -+ goType = goTypeForPBKind[fbOut.Extensions[i].L1.Kind] -+ } -+ if fbOut.Extensions[i].IsList() { -+ goType = reflect.SliceOf(goType) -+ } -+ -+ pimpl.InitExtensionInfo(&tb.ExtensionInfos[i], &fbOut.Extensions[i], goType) -+ -+ // Register extension types. -+ if err := tb.TypeRegistry.RegisterExtension(&tb.ExtensionInfos[i]); err != nil { -+ panic(err) -+ } -+ } -+ -+ return out -+} -+ -+var goTypeForPBKind = map[protoreflect.Kind]reflect.Type{ -+ protoreflect.BoolKind: reflect.TypeOf(bool(false)), -+ protoreflect.Int32Kind: reflect.TypeOf(int32(0)), -+ protoreflect.Sint32Kind: reflect.TypeOf(int32(0)), -+ protoreflect.Sfixed32Kind: reflect.TypeOf(int32(0)), -+ protoreflect.Int64Kind: reflect.TypeOf(int64(0)), -+ protoreflect.Sint64Kind: reflect.TypeOf(int64(0)), -+ protoreflect.Sfixed64Kind: reflect.TypeOf(int64(0)), -+ protoreflect.Uint32Kind: reflect.TypeOf(uint32(0)), -+ protoreflect.Fixed32Kind: reflect.TypeOf(uint32(0)), -+ protoreflect.Uint64Kind: reflect.TypeOf(uint64(0)), -+ protoreflect.Fixed64Kind: reflect.TypeOf(uint64(0)), -+ protoreflect.FloatKind: reflect.TypeOf(float32(0)), -+ protoreflect.DoubleKind: reflect.TypeOf(float64(0)), -+ protoreflect.StringKind: reflect.TypeOf(string("")), -+ protoreflect.BytesKind: reflect.TypeOf([]byte(nil)), -+} -+ -+type depIdxs []int32 -+ -+// Get retrieves the jth element of the ith sub-list. -+func (x depIdxs) Get(i, j int32) int32 { -+ return x[x[int32(len(x))-i-1]+j] -+} -+ -+type ( -+ resolverByIndex struct { -+ goTypes []interface{} -+ depIdxs depIdxs -+ fileRegistry -+ } -+ fileRegistry interface { -+ FindFileByPath(string) (protoreflect.FileDescriptor, error) -+ FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -+ RegisterFile(protoreflect.FileDescriptor) error -+ } -+) -+ -+func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.EnumDescriptor { -+ if depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) { -+ return &es[depIdx] -+ } else { -+ return pimpl.Export{}.EnumDescriptorOf(r.goTypes[depIdx]) -+ } -+} -+ -+func (r *resolverByIndex) FindMessageByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.MessageDescriptor { -+ if depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) { -+ return &ms[depIdx-len(es)] -+ } else { -+ return pimpl.Export{}.MessageDescriptorOf(r.goTypes[depIdx]) -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/flags/flags.go b/vendor/google.golang.org/protobuf/internal/flags/flags.go -new file mode 100644 -index 00000000..58372dd3 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/flags/flags.go -@@ -0,0 +1,24 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package flags provides a set of flags controlled by build tags. -+package flags -+ -+// ProtoLegacy specifies whether to enable support for legacy functionality -+// such as MessageSets, weak fields, and various other obscure behavior -+// that is necessary to maintain backwards compatibility with proto1 or -+// the pre-release variants of proto2 and proto3. -+// -+// This is disabled by default unless built with the "protolegacy" tag. -+// -+// WARNING: The compatibility agreement covers nothing provided by this flag. -+// As such, functionality may suddenly be removed or changed at our discretion. -+const ProtoLegacy = protoLegacy -+ -+// LazyUnmarshalExtensions specifies whether to lazily unmarshal extensions. -+// -+// Lazy extension unmarshaling validates the contents of message-valued -+// extension fields at unmarshal time, but defers creating the message -+// structure until the extension is first accessed. -+const LazyUnmarshalExtensions = ProtoLegacy -diff --git a/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go b/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go -new file mode 100644 -index 00000000..bda8e8cf ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go -@@ -0,0 +1,10 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !protolegacy -+// +build !protolegacy -+ -+package flags -+ -+const protoLegacy = false -diff --git a/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go b/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go -new file mode 100644 -index 00000000..6d8d9bd6 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go -@@ -0,0 +1,10 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build protolegacy -+// +build protolegacy -+ -+package flags -+ -+const protoLegacy = true -diff --git a/vendor/google.golang.org/protobuf/internal/genid/any_gen.go b/vendor/google.golang.org/protobuf/internal/genid/any_gen.go -new file mode 100644 -index 00000000..e6f7d47a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/any_gen.go -@@ -0,0 +1,34 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_any_proto = "google/protobuf/any.proto" -+ -+// Names for google.protobuf.Any. -+const ( -+ Any_message_name protoreflect.Name = "Any" -+ Any_message_fullname protoreflect.FullName = "google.protobuf.Any" -+) -+ -+// Field names for google.protobuf.Any. -+const ( -+ Any_TypeUrl_field_name protoreflect.Name = "type_url" -+ Any_Value_field_name protoreflect.Name = "value" -+ -+ Any_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Any.type_url" -+ Any_Value_field_fullname protoreflect.FullName = "google.protobuf.Any.value" -+) -+ -+// Field numbers for google.protobuf.Any. -+const ( -+ Any_TypeUrl_field_number protoreflect.FieldNumber = 1 -+ Any_Value_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/api_gen.go b/vendor/google.golang.org/protobuf/internal/genid/api_gen.go -new file mode 100644 -index 00000000..df8f9185 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/api_gen.go -@@ -0,0 +1,106 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_api_proto = "google/protobuf/api.proto" -+ -+// Names for google.protobuf.Api. -+const ( -+ Api_message_name protoreflect.Name = "Api" -+ Api_message_fullname protoreflect.FullName = "google.protobuf.Api" -+) -+ -+// Field names for google.protobuf.Api. -+const ( -+ Api_Name_field_name protoreflect.Name = "name" -+ Api_Methods_field_name protoreflect.Name = "methods" -+ Api_Options_field_name protoreflect.Name = "options" -+ Api_Version_field_name protoreflect.Name = "version" -+ Api_SourceContext_field_name protoreflect.Name = "source_context" -+ Api_Mixins_field_name protoreflect.Name = "mixins" -+ Api_Syntax_field_name protoreflect.Name = "syntax" -+ -+ Api_Name_field_fullname protoreflect.FullName = "google.protobuf.Api.name" -+ Api_Methods_field_fullname protoreflect.FullName = "google.protobuf.Api.methods" -+ Api_Options_field_fullname protoreflect.FullName = "google.protobuf.Api.options" -+ Api_Version_field_fullname protoreflect.FullName = "google.protobuf.Api.version" -+ Api_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Api.source_context" -+ Api_Mixins_field_fullname protoreflect.FullName = "google.protobuf.Api.mixins" -+ Api_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Api.syntax" -+) -+ -+// Field numbers for google.protobuf.Api. -+const ( -+ Api_Name_field_number protoreflect.FieldNumber = 1 -+ Api_Methods_field_number protoreflect.FieldNumber = 2 -+ Api_Options_field_number protoreflect.FieldNumber = 3 -+ Api_Version_field_number protoreflect.FieldNumber = 4 -+ Api_SourceContext_field_number protoreflect.FieldNumber = 5 -+ Api_Mixins_field_number protoreflect.FieldNumber = 6 -+ Api_Syntax_field_number protoreflect.FieldNumber = 7 -+) -+ -+// Names for google.protobuf.Method. -+const ( -+ Method_message_name protoreflect.Name = "Method" -+ Method_message_fullname protoreflect.FullName = "google.protobuf.Method" -+) -+ -+// Field names for google.protobuf.Method. -+const ( -+ Method_Name_field_name protoreflect.Name = "name" -+ Method_RequestTypeUrl_field_name protoreflect.Name = "request_type_url" -+ Method_RequestStreaming_field_name protoreflect.Name = "request_streaming" -+ Method_ResponseTypeUrl_field_name protoreflect.Name = "response_type_url" -+ Method_ResponseStreaming_field_name protoreflect.Name = "response_streaming" -+ Method_Options_field_name protoreflect.Name = "options" -+ Method_Syntax_field_name protoreflect.Name = "syntax" -+ -+ Method_Name_field_fullname protoreflect.FullName = "google.protobuf.Method.name" -+ Method_RequestTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.request_type_url" -+ Method_RequestStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.request_streaming" -+ Method_ResponseTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.response_type_url" -+ Method_ResponseStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.response_streaming" -+ Method_Options_field_fullname protoreflect.FullName = "google.protobuf.Method.options" -+ Method_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Method.syntax" -+) -+ -+// Field numbers for google.protobuf.Method. -+const ( -+ Method_Name_field_number protoreflect.FieldNumber = 1 -+ Method_RequestTypeUrl_field_number protoreflect.FieldNumber = 2 -+ Method_RequestStreaming_field_number protoreflect.FieldNumber = 3 -+ Method_ResponseTypeUrl_field_number protoreflect.FieldNumber = 4 -+ Method_ResponseStreaming_field_number protoreflect.FieldNumber = 5 -+ Method_Options_field_number protoreflect.FieldNumber = 6 -+ Method_Syntax_field_number protoreflect.FieldNumber = 7 -+) -+ -+// Names for google.protobuf.Mixin. -+const ( -+ Mixin_message_name protoreflect.Name = "Mixin" -+ Mixin_message_fullname protoreflect.FullName = "google.protobuf.Mixin" -+) -+ -+// Field names for google.protobuf.Mixin. -+const ( -+ Mixin_Name_field_name protoreflect.Name = "name" -+ Mixin_Root_field_name protoreflect.Name = "root" -+ -+ Mixin_Name_field_fullname protoreflect.FullName = "google.protobuf.Mixin.name" -+ Mixin_Root_field_fullname protoreflect.FullName = "google.protobuf.Mixin.root" -+) -+ -+// Field numbers for google.protobuf.Mixin. -+const ( -+ Mixin_Name_field_number protoreflect.FieldNumber = 1 -+ Mixin_Root_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -new file mode 100644 -index 00000000..5c0e8f73 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -0,0 +1,871 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" -+ -+// Names for google.protobuf.FileDescriptorSet. -+const ( -+ FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -+ FileDescriptorSet_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet" -+) -+ -+// Field names for google.protobuf.FileDescriptorSet. -+const ( -+ FileDescriptorSet_File_field_name protoreflect.Name = "file" -+ -+ FileDescriptorSet_File_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet.file" -+) -+ -+// Field numbers for google.protobuf.FileDescriptorSet. -+const ( -+ FileDescriptorSet_File_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.FileDescriptorProto. -+const ( -+ FileDescriptorProto_message_name protoreflect.Name = "FileDescriptorProto" -+ FileDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto" -+) -+ -+// Field names for google.protobuf.FileDescriptorProto. -+const ( -+ FileDescriptorProto_Name_field_name protoreflect.Name = "name" -+ FileDescriptorProto_Package_field_name protoreflect.Name = "package" -+ FileDescriptorProto_Dependency_field_name protoreflect.Name = "dependency" -+ FileDescriptorProto_PublicDependency_field_name protoreflect.Name = "public_dependency" -+ FileDescriptorProto_WeakDependency_field_name protoreflect.Name = "weak_dependency" -+ FileDescriptorProto_MessageType_field_name protoreflect.Name = "message_type" -+ FileDescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" -+ FileDescriptorProto_Service_field_name protoreflect.Name = "service" -+ FileDescriptorProto_Extension_field_name protoreflect.Name = "extension" -+ FileDescriptorProto_Options_field_name protoreflect.Name = "options" -+ FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info" -+ FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax" -+ FileDescriptorProto_Edition_field_name protoreflect.Name = "edition" -+ -+ FileDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name" -+ FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package" -+ FileDescriptorProto_Dependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.dependency" -+ FileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.public_dependency" -+ FileDescriptorProto_WeakDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.weak_dependency" -+ FileDescriptorProto_MessageType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.message_type" -+ FileDescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.enum_type" -+ FileDescriptorProto_Service_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.service" -+ FileDescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.extension" -+ FileDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options" -+ FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info" -+ FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax" -+ FileDescriptorProto_Edition_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.edition" -+) -+ -+// Field numbers for google.protobuf.FileDescriptorProto. -+const ( -+ FileDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ FileDescriptorProto_Package_field_number protoreflect.FieldNumber = 2 -+ FileDescriptorProto_Dependency_field_number protoreflect.FieldNumber = 3 -+ FileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10 -+ FileDescriptorProto_WeakDependency_field_number protoreflect.FieldNumber = 11 -+ FileDescriptorProto_MessageType_field_number protoreflect.FieldNumber = 4 -+ FileDescriptorProto_EnumType_field_number protoreflect.FieldNumber = 5 -+ FileDescriptorProto_Service_field_number protoreflect.FieldNumber = 6 -+ FileDescriptorProto_Extension_field_number protoreflect.FieldNumber = 7 -+ FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 -+ FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 -+ FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+) -+ -+// Names for google.protobuf.DescriptorProto. -+const ( -+ DescriptorProto_message_name protoreflect.Name = "DescriptorProto" -+ DescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto" -+) -+ -+// Field names for google.protobuf.DescriptorProto. -+const ( -+ DescriptorProto_Name_field_name protoreflect.Name = "name" -+ DescriptorProto_Field_field_name protoreflect.Name = "field" -+ DescriptorProto_Extension_field_name protoreflect.Name = "extension" -+ DescriptorProto_NestedType_field_name protoreflect.Name = "nested_type" -+ DescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" -+ DescriptorProto_ExtensionRange_field_name protoreflect.Name = "extension_range" -+ DescriptorProto_OneofDecl_field_name protoreflect.Name = "oneof_decl" -+ DescriptorProto_Options_field_name protoreflect.Name = "options" -+ DescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" -+ DescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" -+ -+ DescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.name" -+ DescriptorProto_Field_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.field" -+ DescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension" -+ DescriptorProto_NestedType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.nested_type" -+ DescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.enum_type" -+ DescriptorProto_ExtensionRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension_range" -+ DescriptorProto_OneofDecl_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.oneof_decl" -+ DescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.options" -+ DescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_range" -+ DescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_name" -+) -+ -+// Field numbers for google.protobuf.DescriptorProto. -+const ( -+ DescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ DescriptorProto_Field_field_number protoreflect.FieldNumber = 2 -+ DescriptorProto_Extension_field_number protoreflect.FieldNumber = 6 -+ DescriptorProto_NestedType_field_number protoreflect.FieldNumber = 3 -+ DescriptorProto_EnumType_field_number protoreflect.FieldNumber = 4 -+ DescriptorProto_ExtensionRange_field_number protoreflect.FieldNumber = 5 -+ DescriptorProto_OneofDecl_field_number protoreflect.FieldNumber = 8 -+ DescriptorProto_Options_field_number protoreflect.FieldNumber = 7 -+ DescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 9 -+ DescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 10 -+) -+ -+// Names for google.protobuf.DescriptorProto.ExtensionRange. -+const ( -+ DescriptorProto_ExtensionRange_message_name protoreflect.Name = "ExtensionRange" -+ DescriptorProto_ExtensionRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange" -+) -+ -+// Field names for google.protobuf.DescriptorProto.ExtensionRange. -+const ( -+ DescriptorProto_ExtensionRange_Start_field_name protoreflect.Name = "start" -+ DescriptorProto_ExtensionRange_End_field_name protoreflect.Name = "end" -+ DescriptorProto_ExtensionRange_Options_field_name protoreflect.Name = "options" -+ -+ DescriptorProto_ExtensionRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.start" -+ DescriptorProto_ExtensionRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.end" -+ DescriptorProto_ExtensionRange_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.options" -+) -+ -+// Field numbers for google.protobuf.DescriptorProto.ExtensionRange. -+const ( -+ DescriptorProto_ExtensionRange_Start_field_number protoreflect.FieldNumber = 1 -+ DescriptorProto_ExtensionRange_End_field_number protoreflect.FieldNumber = 2 -+ DescriptorProto_ExtensionRange_Options_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Names for google.protobuf.DescriptorProto.ReservedRange. -+const ( -+ DescriptorProto_ReservedRange_message_name protoreflect.Name = "ReservedRange" -+ DescriptorProto_ReservedRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange" -+) -+ -+// Field names for google.protobuf.DescriptorProto.ReservedRange. -+const ( -+ DescriptorProto_ReservedRange_Start_field_name protoreflect.Name = "start" -+ DescriptorProto_ReservedRange_End_field_name protoreflect.Name = "end" -+ -+ DescriptorProto_ReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.start" -+ DescriptorProto_ReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.end" -+) -+ -+// Field numbers for google.protobuf.DescriptorProto.ReservedRange. -+const ( -+ DescriptorProto_ReservedRange_Start_field_number protoreflect.FieldNumber = 1 -+ DescriptorProto_ReservedRange_End_field_number protoreflect.FieldNumber = 2 -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions. -+const ( -+ ExtensionRangeOptions_message_name protoreflect.Name = "ExtensionRangeOptions" -+ ExtensionRangeOptions_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions. -+const ( -+ ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions. -+const ( -+ ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.FieldDescriptorProto. -+const ( -+ FieldDescriptorProto_message_name protoreflect.Name = "FieldDescriptorProto" -+ FieldDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto" -+) -+ -+// Field names for google.protobuf.FieldDescriptorProto. -+const ( -+ FieldDescriptorProto_Name_field_name protoreflect.Name = "name" -+ FieldDescriptorProto_Number_field_name protoreflect.Name = "number" -+ FieldDescriptorProto_Label_field_name protoreflect.Name = "label" -+ FieldDescriptorProto_Type_field_name protoreflect.Name = "type" -+ FieldDescriptorProto_TypeName_field_name protoreflect.Name = "type_name" -+ FieldDescriptorProto_Extendee_field_name protoreflect.Name = "extendee" -+ FieldDescriptorProto_DefaultValue_field_name protoreflect.Name = "default_value" -+ FieldDescriptorProto_OneofIndex_field_name protoreflect.Name = "oneof_index" -+ FieldDescriptorProto_JsonName_field_name protoreflect.Name = "json_name" -+ FieldDescriptorProto_Options_field_name protoreflect.Name = "options" -+ FieldDescriptorProto_Proto3Optional_field_name protoreflect.Name = "proto3_optional" -+ -+ FieldDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.name" -+ FieldDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.number" -+ FieldDescriptorProto_Label_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.label" -+ FieldDescriptorProto_Type_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type" -+ FieldDescriptorProto_TypeName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type_name" -+ FieldDescriptorProto_Extendee_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.extendee" -+ FieldDescriptorProto_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.default_value" -+ FieldDescriptorProto_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.oneof_index" -+ FieldDescriptorProto_JsonName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.json_name" -+ FieldDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.options" -+ FieldDescriptorProto_Proto3Optional_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.proto3_optional" -+) -+ -+// Field numbers for google.protobuf.FieldDescriptorProto. -+const ( -+ FieldDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ FieldDescriptorProto_Number_field_number protoreflect.FieldNumber = 3 -+ FieldDescriptorProto_Label_field_number protoreflect.FieldNumber = 4 -+ FieldDescriptorProto_Type_field_number protoreflect.FieldNumber = 5 -+ FieldDescriptorProto_TypeName_field_number protoreflect.FieldNumber = 6 -+ FieldDescriptorProto_Extendee_field_number protoreflect.FieldNumber = 2 -+ FieldDescriptorProto_DefaultValue_field_number protoreflect.FieldNumber = 7 -+ FieldDescriptorProto_OneofIndex_field_number protoreflect.FieldNumber = 9 -+ FieldDescriptorProto_JsonName_field_number protoreflect.FieldNumber = 10 -+ FieldDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 -+ FieldDescriptorProto_Proto3Optional_field_number protoreflect.FieldNumber = 17 -+) -+ -+// Full and short names for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_Type_enum_fullname = "google.protobuf.FieldDescriptorProto.Type" -+ FieldDescriptorProto_Type_enum_name = "Type" -+) -+ -+// Full and short names for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" -+ FieldDescriptorProto_Label_enum_name = "Label" -+) -+ -+// Names for google.protobuf.OneofDescriptorProto. -+const ( -+ OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -+ OneofDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto" -+) -+ -+// Field names for google.protobuf.OneofDescriptorProto. -+const ( -+ OneofDescriptorProto_Name_field_name protoreflect.Name = "name" -+ OneofDescriptorProto_Options_field_name protoreflect.Name = "options" -+ -+ OneofDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.name" -+ OneofDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.options" -+) -+ -+// Field numbers for google.protobuf.OneofDescriptorProto. -+const ( -+ OneofDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ OneofDescriptorProto_Options_field_number protoreflect.FieldNumber = 2 -+) -+ -+// Names for google.protobuf.EnumDescriptorProto. -+const ( -+ EnumDescriptorProto_message_name protoreflect.Name = "EnumDescriptorProto" -+ EnumDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto" -+) -+ -+// Field names for google.protobuf.EnumDescriptorProto. -+const ( -+ EnumDescriptorProto_Name_field_name protoreflect.Name = "name" -+ EnumDescriptorProto_Value_field_name protoreflect.Name = "value" -+ EnumDescriptorProto_Options_field_name protoreflect.Name = "options" -+ EnumDescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" -+ EnumDescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" -+ -+ EnumDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.name" -+ EnumDescriptorProto_Value_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.value" -+ EnumDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.options" -+ EnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_range" -+ EnumDescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_name" -+) -+ -+// Field numbers for google.protobuf.EnumDescriptorProto. -+const ( -+ EnumDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ EnumDescriptorProto_Value_field_number protoreflect.FieldNumber = 2 -+ EnumDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 -+ EnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4 -+ EnumDescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.EnumDescriptorProto.EnumReservedRange. -+const ( -+ EnumDescriptorProto_EnumReservedRange_message_name protoreflect.Name = "EnumReservedRange" -+ EnumDescriptorProto_EnumReservedRange_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange" -+) -+ -+// Field names for google.protobuf.EnumDescriptorProto.EnumReservedRange. -+const ( -+ EnumDescriptorProto_EnumReservedRange_Start_field_name protoreflect.Name = "start" -+ EnumDescriptorProto_EnumReservedRange_End_field_name protoreflect.Name = "end" -+ -+ EnumDescriptorProto_EnumReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.start" -+ EnumDescriptorProto_EnumReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.end" -+) -+ -+// Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange. -+const ( -+ EnumDescriptorProto_EnumReservedRange_Start_field_number protoreflect.FieldNumber = 1 -+ EnumDescriptorProto_EnumReservedRange_End_field_number protoreflect.FieldNumber = 2 -+) -+ -+// Names for google.protobuf.EnumValueDescriptorProto. -+const ( -+ EnumValueDescriptorProto_message_name protoreflect.Name = "EnumValueDescriptorProto" -+ EnumValueDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto" -+) -+ -+// Field names for google.protobuf.EnumValueDescriptorProto. -+const ( -+ EnumValueDescriptorProto_Name_field_name protoreflect.Name = "name" -+ EnumValueDescriptorProto_Number_field_name protoreflect.Name = "number" -+ EnumValueDescriptorProto_Options_field_name protoreflect.Name = "options" -+ -+ EnumValueDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.name" -+ EnumValueDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.number" -+ EnumValueDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.options" -+) -+ -+// Field numbers for google.protobuf.EnumValueDescriptorProto. -+const ( -+ EnumValueDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ EnumValueDescriptorProto_Number_field_number protoreflect.FieldNumber = 2 -+ EnumValueDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Names for google.protobuf.ServiceDescriptorProto. -+const ( -+ ServiceDescriptorProto_message_name protoreflect.Name = "ServiceDescriptorProto" -+ ServiceDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto" -+) -+ -+// Field names for google.protobuf.ServiceDescriptorProto. -+const ( -+ ServiceDescriptorProto_Name_field_name protoreflect.Name = "name" -+ ServiceDescriptorProto_Method_field_name protoreflect.Name = "method" -+ ServiceDescriptorProto_Options_field_name protoreflect.Name = "options" -+ -+ ServiceDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.name" -+ ServiceDescriptorProto_Method_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.method" -+ ServiceDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.options" -+) -+ -+// Field numbers for google.protobuf.ServiceDescriptorProto. -+const ( -+ ServiceDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ ServiceDescriptorProto_Method_field_number protoreflect.FieldNumber = 2 -+ ServiceDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Names for google.protobuf.MethodDescriptorProto. -+const ( -+ MethodDescriptorProto_message_name protoreflect.Name = "MethodDescriptorProto" -+ MethodDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto" -+) -+ -+// Field names for google.protobuf.MethodDescriptorProto. -+const ( -+ MethodDescriptorProto_Name_field_name protoreflect.Name = "name" -+ MethodDescriptorProto_InputType_field_name protoreflect.Name = "input_type" -+ MethodDescriptorProto_OutputType_field_name protoreflect.Name = "output_type" -+ MethodDescriptorProto_Options_field_name protoreflect.Name = "options" -+ MethodDescriptorProto_ClientStreaming_field_name protoreflect.Name = "client_streaming" -+ MethodDescriptorProto_ServerStreaming_field_name protoreflect.Name = "server_streaming" -+ -+ MethodDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.name" -+ MethodDescriptorProto_InputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.input_type" -+ MethodDescriptorProto_OutputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.output_type" -+ MethodDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.options" -+ MethodDescriptorProto_ClientStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.client_streaming" -+ MethodDescriptorProto_ServerStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.server_streaming" -+) -+ -+// Field numbers for google.protobuf.MethodDescriptorProto. -+const ( -+ MethodDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 -+ MethodDescriptorProto_InputType_field_number protoreflect.FieldNumber = 2 -+ MethodDescriptorProto_OutputType_field_number protoreflect.FieldNumber = 3 -+ MethodDescriptorProto_Options_field_number protoreflect.FieldNumber = 4 -+ MethodDescriptorProto_ClientStreaming_field_number protoreflect.FieldNumber = 5 -+ MethodDescriptorProto_ServerStreaming_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Names for google.protobuf.FileOptions. -+const ( -+ FileOptions_message_name protoreflect.Name = "FileOptions" -+ FileOptions_message_fullname protoreflect.FullName = "google.protobuf.FileOptions" -+) -+ -+// Field names for google.protobuf.FileOptions. -+const ( -+ FileOptions_JavaPackage_field_name protoreflect.Name = "java_package" -+ FileOptions_JavaOuterClassname_field_name protoreflect.Name = "java_outer_classname" -+ FileOptions_JavaMultipleFiles_field_name protoreflect.Name = "java_multiple_files" -+ FileOptions_JavaGenerateEqualsAndHash_field_name protoreflect.Name = "java_generate_equals_and_hash" -+ FileOptions_JavaStringCheckUtf8_field_name protoreflect.Name = "java_string_check_utf8" -+ FileOptions_OptimizeFor_field_name protoreflect.Name = "optimize_for" -+ FileOptions_GoPackage_field_name protoreflect.Name = "go_package" -+ FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" -+ FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" -+ FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -+ FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" -+ FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" -+ FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -+ FileOptions_CsharpNamespace_field_name protoreflect.Name = "csharp_namespace" -+ FileOptions_SwiftPrefix_field_name protoreflect.Name = "swift_prefix" -+ FileOptions_PhpClassPrefix_field_name protoreflect.Name = "php_class_prefix" -+ FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" -+ FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" -+ FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -+ FileOptions_JavaOuterClassname_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_outer_classname" -+ FileOptions_JavaMultipleFiles_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_multiple_files" -+ FileOptions_JavaGenerateEqualsAndHash_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generate_equals_and_hash" -+ FileOptions_JavaStringCheckUtf8_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_string_check_utf8" -+ FileOptions_OptimizeFor_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.optimize_for" -+ FileOptions_GoPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.go_package" -+ FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" -+ FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" -+ FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -+ FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" -+ FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" -+ FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" -+ FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -+ FileOptions_CsharpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.csharp_namespace" -+ FileOptions_SwiftPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.swift_prefix" -+ FileOptions_PhpClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_class_prefix" -+ FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" -+ FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" -+ FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.FileOptions. -+const ( -+ FileOptions_JavaPackage_field_number protoreflect.FieldNumber = 1 -+ FileOptions_JavaOuterClassname_field_number protoreflect.FieldNumber = 8 -+ FileOptions_JavaMultipleFiles_field_number protoreflect.FieldNumber = 10 -+ FileOptions_JavaGenerateEqualsAndHash_field_number protoreflect.FieldNumber = 20 -+ FileOptions_JavaStringCheckUtf8_field_number protoreflect.FieldNumber = 27 -+ FileOptions_OptimizeFor_field_number protoreflect.FieldNumber = 9 -+ FileOptions_GoPackage_field_number protoreflect.FieldNumber = 11 -+ FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 -+ FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 -+ FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -+ FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 -+ FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 -+ FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 -+ FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -+ FileOptions_CsharpNamespace_field_number protoreflect.FieldNumber = 37 -+ FileOptions_SwiftPrefix_field_number protoreflect.FieldNumber = 39 -+ FileOptions_PhpClassPrefix_field_number protoreflect.FieldNumber = 40 -+ FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 -+ FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 -+ FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Full and short names for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_OptimizeMode_enum_fullname = "google.protobuf.FileOptions.OptimizeMode" -+ FileOptions_OptimizeMode_enum_name = "OptimizeMode" -+) -+ -+// Names for google.protobuf.MessageOptions. -+const ( -+ MessageOptions_message_name protoreflect.Name = "MessageOptions" -+ MessageOptions_message_fullname protoreflect.FullName = "google.protobuf.MessageOptions" -+) -+ -+// Field names for google.protobuf.MessageOptions. -+const ( -+ MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" -+ MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" -+ MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" -+ MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -+ MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" -+ MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" -+ MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" -+ MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.MessageOptions. -+const ( -+ MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 -+ MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 -+ MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 -+ MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 -+ MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.FieldOptions. -+const ( -+ FieldOptions_message_name protoreflect.Name = "FieldOptions" -+ FieldOptions_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions" -+) -+ -+// Field names for google.protobuf.FieldOptions. -+const ( -+ FieldOptions_Ctype_field_name protoreflect.Name = "ctype" -+ FieldOptions_Packed_field_name protoreflect.Name = "packed" -+ FieldOptions_Jstype_field_name protoreflect.Name = "jstype" -+ FieldOptions_Lazy_field_name protoreflect.Name = "lazy" -+ FieldOptions_UnverifiedLazy_field_name protoreflect.Name = "unverified_lazy" -+ FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ FieldOptions_Weak_field_name protoreflect.Name = "weak" -+ FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" -+ FieldOptions_Retention_field_name protoreflect.Name = "retention" -+ FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -+ FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed" -+ FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype" -+ FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy" -+ FieldOptions_UnverifiedLazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.unverified_lazy" -+ FieldOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated" -+ FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" -+ FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" -+ FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -+ FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.FieldOptions. -+const ( -+ FieldOptions_Ctype_field_number protoreflect.FieldNumber = 1 -+ FieldOptions_Packed_field_number protoreflect.FieldNumber = 2 -+ FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6 -+ FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5 -+ FieldOptions_UnverifiedLazy_field_number protoreflect.FieldNumber = 15 -+ FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 -+ FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 -+ FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -+ FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Full and short names for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_CType_enum_fullname = "google.protobuf.FieldOptions.CType" -+ FieldOptions_CType_enum_name = "CType" -+) -+ -+// Full and short names for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" -+ FieldOptions_JSType_enum_name = "JSType" -+) -+ -+// Full and short names for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" -+ FieldOptions_OptionRetention_enum_name = "OptionRetention" -+) -+ -+// Full and short names for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" -+ FieldOptions_OptionTargetType_enum_name = "OptionTargetType" -+) -+ -+// Names for google.protobuf.OneofOptions. -+const ( -+ OneofOptions_message_name protoreflect.Name = "OneofOptions" -+ OneofOptions_message_fullname protoreflect.FullName = "google.protobuf.OneofOptions" -+) -+ -+// Field names for google.protobuf.OneofOptions. -+const ( -+ OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.OneofOptions. -+const ( -+ OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.EnumOptions. -+const ( -+ EnumOptions_message_name protoreflect.Name = "EnumOptions" -+ EnumOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumOptions" -+) -+ -+// Field names for google.protobuf.EnumOptions. -+const ( -+ EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" -+ EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" -+ EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" -+ EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.EnumOptions. -+const ( -+ EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 -+ EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 -+ EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.EnumValueOptions. -+const ( -+ EnumValueOptions_message_name protoreflect.Name = "EnumValueOptions" -+ EnumValueOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions" -+) -+ -+// Field names for google.protobuf.EnumValueOptions. -+const ( -+ EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.EnumValueOptions. -+const ( -+ EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.ServiceOptions. -+const ( -+ ServiceOptions_message_name protoreflect.Name = "ServiceOptions" -+ ServiceOptions_message_fullname protoreflect.FullName = "google.protobuf.ServiceOptions" -+) -+ -+// Field names for google.protobuf.ServiceOptions. -+const ( -+ ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" -+ ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.ServiceOptions. -+const ( -+ ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 -+ ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Names for google.protobuf.MethodOptions. -+const ( -+ MethodOptions_message_name protoreflect.Name = "MethodOptions" -+ MethodOptions_message_fullname protoreflect.FullName = "google.protobuf.MethodOptions" -+) -+ -+// Field names for google.protobuf.MethodOptions. -+const ( -+ MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ -+ MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" -+ MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" -+) -+ -+// Field numbers for google.protobuf.MethodOptions. -+const ( -+ MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 -+ MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+) -+ -+// Full and short names for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IdempotencyLevel_enum_fullname = "google.protobuf.MethodOptions.IdempotencyLevel" -+ MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" -+) -+ -+// Names for google.protobuf.UninterpretedOption. -+const ( -+ UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -+ UninterpretedOption_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption" -+) -+ -+// Field names for google.protobuf.UninterpretedOption. -+const ( -+ UninterpretedOption_Name_field_name protoreflect.Name = "name" -+ UninterpretedOption_IdentifierValue_field_name protoreflect.Name = "identifier_value" -+ UninterpretedOption_PositiveIntValue_field_name protoreflect.Name = "positive_int_value" -+ UninterpretedOption_NegativeIntValue_field_name protoreflect.Name = "negative_int_value" -+ UninterpretedOption_DoubleValue_field_name protoreflect.Name = "double_value" -+ UninterpretedOption_StringValue_field_name protoreflect.Name = "string_value" -+ UninterpretedOption_AggregateValue_field_name protoreflect.Name = "aggregate_value" -+ -+ UninterpretedOption_Name_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.name" -+ UninterpretedOption_IdentifierValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.identifier_value" -+ UninterpretedOption_PositiveIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.positive_int_value" -+ UninterpretedOption_NegativeIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.negative_int_value" -+ UninterpretedOption_DoubleValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.double_value" -+ UninterpretedOption_StringValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.string_value" -+ UninterpretedOption_AggregateValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.aggregate_value" -+) -+ -+// Field numbers for google.protobuf.UninterpretedOption. -+const ( -+ UninterpretedOption_Name_field_number protoreflect.FieldNumber = 2 -+ UninterpretedOption_IdentifierValue_field_number protoreflect.FieldNumber = 3 -+ UninterpretedOption_PositiveIntValue_field_number protoreflect.FieldNumber = 4 -+ UninterpretedOption_NegativeIntValue_field_number protoreflect.FieldNumber = 5 -+ UninterpretedOption_DoubleValue_field_number protoreflect.FieldNumber = 6 -+ UninterpretedOption_StringValue_field_number protoreflect.FieldNumber = 7 -+ UninterpretedOption_AggregateValue_field_number protoreflect.FieldNumber = 8 -+) -+ -+// Names for google.protobuf.UninterpretedOption.NamePart. -+const ( -+ UninterpretedOption_NamePart_message_name protoreflect.Name = "NamePart" -+ UninterpretedOption_NamePart_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart" -+) -+ -+// Field names for google.protobuf.UninterpretedOption.NamePart. -+const ( -+ UninterpretedOption_NamePart_NamePart_field_name protoreflect.Name = "name_part" -+ UninterpretedOption_NamePart_IsExtension_field_name protoreflect.Name = "is_extension" -+ -+ UninterpretedOption_NamePart_NamePart_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.name_part" -+ UninterpretedOption_NamePart_IsExtension_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.is_extension" -+) -+ -+// Field numbers for google.protobuf.UninterpretedOption.NamePart. -+const ( -+ UninterpretedOption_NamePart_NamePart_field_number protoreflect.FieldNumber = 1 -+ UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 -+) -+ -+// Names for google.protobuf.SourceCodeInfo. -+const ( -+ SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -+ SourceCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo" -+) -+ -+// Field names for google.protobuf.SourceCodeInfo. -+const ( -+ SourceCodeInfo_Location_field_name protoreflect.Name = "location" -+ -+ SourceCodeInfo_Location_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.location" -+) -+ -+// Field numbers for google.protobuf.SourceCodeInfo. -+const ( -+ SourceCodeInfo_Location_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.SourceCodeInfo.Location. -+const ( -+ SourceCodeInfo_Location_message_name protoreflect.Name = "Location" -+ SourceCodeInfo_Location_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location" -+) -+ -+// Field names for google.protobuf.SourceCodeInfo.Location. -+const ( -+ SourceCodeInfo_Location_Path_field_name protoreflect.Name = "path" -+ SourceCodeInfo_Location_Span_field_name protoreflect.Name = "span" -+ SourceCodeInfo_Location_LeadingComments_field_name protoreflect.Name = "leading_comments" -+ SourceCodeInfo_Location_TrailingComments_field_name protoreflect.Name = "trailing_comments" -+ SourceCodeInfo_Location_LeadingDetachedComments_field_name protoreflect.Name = "leading_detached_comments" -+ -+ SourceCodeInfo_Location_Path_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.path" -+ SourceCodeInfo_Location_Span_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.span" -+ SourceCodeInfo_Location_LeadingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_comments" -+ SourceCodeInfo_Location_TrailingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.trailing_comments" -+ SourceCodeInfo_Location_LeadingDetachedComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_detached_comments" -+) -+ -+// Field numbers for google.protobuf.SourceCodeInfo.Location. -+const ( -+ SourceCodeInfo_Location_Path_field_number protoreflect.FieldNumber = 1 -+ SourceCodeInfo_Location_Span_field_number protoreflect.FieldNumber = 2 -+ SourceCodeInfo_Location_LeadingComments_field_number protoreflect.FieldNumber = 3 -+ SourceCodeInfo_Location_TrailingComments_field_number protoreflect.FieldNumber = 4 -+ SourceCodeInfo_Location_LeadingDetachedComments_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Names for google.protobuf.GeneratedCodeInfo. -+const ( -+ GeneratedCodeInfo_message_name protoreflect.Name = "GeneratedCodeInfo" -+ GeneratedCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo" -+) -+ -+// Field names for google.protobuf.GeneratedCodeInfo. -+const ( -+ GeneratedCodeInfo_Annotation_field_name protoreflect.Name = "annotation" -+ -+ GeneratedCodeInfo_Annotation_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.annotation" -+) -+ -+// Field numbers for google.protobuf.GeneratedCodeInfo. -+const ( -+ GeneratedCodeInfo_Annotation_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.GeneratedCodeInfo.Annotation. -+const ( -+ GeneratedCodeInfo_Annotation_message_name protoreflect.Name = "Annotation" -+ GeneratedCodeInfo_Annotation_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation" -+) -+ -+// Field names for google.protobuf.GeneratedCodeInfo.Annotation. -+const ( -+ GeneratedCodeInfo_Annotation_Path_field_name protoreflect.Name = "path" -+ GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file" -+ GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin" -+ GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end" -+ GeneratedCodeInfo_Annotation_Semantic_field_name protoreflect.Name = "semantic" -+ -+ GeneratedCodeInfo_Annotation_Path_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path" -+ GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file" -+ GeneratedCodeInfo_Annotation_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin" -+ GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end" -+ GeneratedCodeInfo_Annotation_Semantic_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.semantic" -+) -+ -+// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. -+const ( -+ GeneratedCodeInfo_Annotation_Path_field_number protoreflect.FieldNumber = 1 -+ GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2 -+ GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3 -+ GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4 -+ GeneratedCodeInfo_Annotation_Semantic_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" -+ GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/doc.go b/vendor/google.golang.org/protobuf/internal/genid/doc.go -new file mode 100644 -index 00000000..45ccd012 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/doc.go -@@ -0,0 +1,11 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package genid contains constants for declarations in descriptor.proto -+// and the well-known types. -+package genid -+ -+import protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ -+const GoogleProtobuf_package protoreflect.FullName = "google.protobuf" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go b/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go -new file mode 100644 -index 00000000..b070ef4f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go -@@ -0,0 +1,34 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_duration_proto = "google/protobuf/duration.proto" -+ -+// Names for google.protobuf.Duration. -+const ( -+ Duration_message_name protoreflect.Name = "Duration" -+ Duration_message_fullname protoreflect.FullName = "google.protobuf.Duration" -+) -+ -+// Field names for google.protobuf.Duration. -+const ( -+ Duration_Seconds_field_name protoreflect.Name = "seconds" -+ Duration_Nanos_field_name protoreflect.Name = "nanos" -+ -+ Duration_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Duration.seconds" -+ Duration_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Duration.nanos" -+) -+ -+// Field numbers for google.protobuf.Duration. -+const ( -+ Duration_Seconds_field_number protoreflect.FieldNumber = 1 -+ Duration_Nanos_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go b/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go -new file mode 100644 -index 00000000..762abb34 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go -@@ -0,0 +1,19 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_empty_proto = "google/protobuf/empty.proto" -+ -+// Names for google.protobuf.Empty. -+const ( -+ Empty_message_name protoreflect.Name = "Empty" -+ Empty_message_fullname protoreflect.FullName = "google.protobuf.Empty" -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go b/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go -new file mode 100644 -index 00000000..70bed453 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_field_mask_proto = "google/protobuf/field_mask.proto" -+ -+// Names for google.protobuf.FieldMask. -+const ( -+ FieldMask_message_name protoreflect.Name = "FieldMask" -+ FieldMask_message_fullname protoreflect.FullName = "google.protobuf.FieldMask" -+) -+ -+// Field names for google.protobuf.FieldMask. -+const ( -+ FieldMask_Paths_field_name protoreflect.Name = "paths" -+ -+ FieldMask_Paths_field_fullname protoreflect.FullName = "google.protobuf.FieldMask.paths" -+) -+ -+// Field numbers for google.protobuf.FieldMask. -+const ( -+ FieldMask_Paths_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/goname.go b/vendor/google.golang.org/protobuf/internal/genid/goname.go -new file mode 100644 -index 00000000..693d2e9e ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/goname.go -@@ -0,0 +1,25 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package genid -+ -+// Go names of implementation-specific struct fields in generated messages. -+const ( -+ State_goname = "state" -+ -+ SizeCache_goname = "sizeCache" -+ SizeCacheA_goname = "XXX_sizecache" -+ -+ WeakFields_goname = "weakFields" -+ WeakFieldsA_goname = "XXX_weak" -+ -+ UnknownFields_goname = "unknownFields" -+ UnknownFieldsA_goname = "XXX_unrecognized" -+ -+ ExtensionFields_goname = "extensionFields" -+ ExtensionFieldsA_goname = "XXX_InternalExtensions" -+ ExtensionFieldsB_goname = "XXX_extensions" -+ -+ WeakFieldPrefix_goname = "XXX_weak_" -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/map_entry.go b/vendor/google.golang.org/protobuf/internal/genid/map_entry.go -new file mode 100644 -index 00000000..8f9ea02f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/map_entry.go -@@ -0,0 +1,16 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package genid -+ -+import protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ -+// Generic field names and numbers for synthetic map entry messages. -+const ( -+ MapEntry_Key_field_name protoreflect.Name = "key" -+ MapEntry_Value_field_name protoreflect.Name = "value" -+ -+ MapEntry_Key_field_number protoreflect.FieldNumber = 1 -+ MapEntry_Value_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go b/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go -new file mode 100644 -index 00000000..3e99ae16 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_source_context_proto = "google/protobuf/source_context.proto" -+ -+// Names for google.protobuf.SourceContext. -+const ( -+ SourceContext_message_name protoreflect.Name = "SourceContext" -+ SourceContext_message_fullname protoreflect.FullName = "google.protobuf.SourceContext" -+) -+ -+// Field names for google.protobuf.SourceContext. -+const ( -+ SourceContext_FileName_field_name protoreflect.Name = "file_name" -+ -+ SourceContext_FileName_field_fullname protoreflect.FullName = "google.protobuf.SourceContext.file_name" -+) -+ -+// Field numbers for google.protobuf.SourceContext. -+const ( -+ SourceContext_FileName_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -new file mode 100644 -index 00000000..1a38944b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -0,0 +1,116 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_struct_proto = "google/protobuf/struct.proto" -+ -+// Full and short names for google.protobuf.NullValue. -+const ( -+ NullValue_enum_fullname = "google.protobuf.NullValue" -+ NullValue_enum_name = "NullValue" -+) -+ -+// Names for google.protobuf.Struct. -+const ( -+ Struct_message_name protoreflect.Name = "Struct" -+ Struct_message_fullname protoreflect.FullName = "google.protobuf.Struct" -+) -+ -+// Field names for google.protobuf.Struct. -+const ( -+ Struct_Fields_field_name protoreflect.Name = "fields" -+ -+ Struct_Fields_field_fullname protoreflect.FullName = "google.protobuf.Struct.fields" -+) -+ -+// Field numbers for google.protobuf.Struct. -+const ( -+ Struct_Fields_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.Struct.FieldsEntry. -+const ( -+ Struct_FieldsEntry_message_name protoreflect.Name = "FieldsEntry" -+ Struct_FieldsEntry_message_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry" -+) -+ -+// Field names for google.protobuf.Struct.FieldsEntry. -+const ( -+ Struct_FieldsEntry_Key_field_name protoreflect.Name = "key" -+ Struct_FieldsEntry_Value_field_name protoreflect.Name = "value" -+ -+ Struct_FieldsEntry_Key_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.key" -+ Struct_FieldsEntry_Value_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.value" -+) -+ -+// Field numbers for google.protobuf.Struct.FieldsEntry. -+const ( -+ Struct_FieldsEntry_Key_field_number protoreflect.FieldNumber = 1 -+ Struct_FieldsEntry_Value_field_number protoreflect.FieldNumber = 2 -+) -+ -+// Names for google.protobuf.Value. -+const ( -+ Value_message_name protoreflect.Name = "Value" -+ Value_message_fullname protoreflect.FullName = "google.protobuf.Value" -+) -+ -+// Field names for google.protobuf.Value. -+const ( -+ Value_NullValue_field_name protoreflect.Name = "null_value" -+ Value_NumberValue_field_name protoreflect.Name = "number_value" -+ Value_StringValue_field_name protoreflect.Name = "string_value" -+ Value_BoolValue_field_name protoreflect.Name = "bool_value" -+ Value_StructValue_field_name protoreflect.Name = "struct_value" -+ Value_ListValue_field_name protoreflect.Name = "list_value" -+ -+ Value_NullValue_field_fullname protoreflect.FullName = "google.protobuf.Value.null_value" -+ Value_NumberValue_field_fullname protoreflect.FullName = "google.protobuf.Value.number_value" -+ Value_StringValue_field_fullname protoreflect.FullName = "google.protobuf.Value.string_value" -+ Value_BoolValue_field_fullname protoreflect.FullName = "google.protobuf.Value.bool_value" -+ Value_StructValue_field_fullname protoreflect.FullName = "google.protobuf.Value.struct_value" -+ Value_ListValue_field_fullname protoreflect.FullName = "google.protobuf.Value.list_value" -+) -+ -+// Field numbers for google.protobuf.Value. -+const ( -+ Value_NullValue_field_number protoreflect.FieldNumber = 1 -+ Value_NumberValue_field_number protoreflect.FieldNumber = 2 -+ Value_StringValue_field_number protoreflect.FieldNumber = 3 -+ Value_BoolValue_field_number protoreflect.FieldNumber = 4 -+ Value_StructValue_field_number protoreflect.FieldNumber = 5 -+ Value_ListValue_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Oneof names for google.protobuf.Value. -+const ( -+ Value_Kind_oneof_name protoreflect.Name = "kind" -+ -+ Value_Kind_oneof_fullname protoreflect.FullName = "google.protobuf.Value.kind" -+) -+ -+// Names for google.protobuf.ListValue. -+const ( -+ ListValue_message_name protoreflect.Name = "ListValue" -+ ListValue_message_fullname protoreflect.FullName = "google.protobuf.ListValue" -+) -+ -+// Field names for google.protobuf.ListValue. -+const ( -+ ListValue_Values_field_name protoreflect.Name = "values" -+ -+ ListValue_Values_field_fullname protoreflect.FullName = "google.protobuf.ListValue.values" -+) -+ -+// Field numbers for google.protobuf.ListValue. -+const ( -+ ListValue_Values_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go b/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go -new file mode 100644 -index 00000000..f5cd5634 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go -@@ -0,0 +1,34 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_timestamp_proto = "google/protobuf/timestamp.proto" -+ -+// Names for google.protobuf.Timestamp. -+const ( -+ Timestamp_message_name protoreflect.Name = "Timestamp" -+ Timestamp_message_fullname protoreflect.FullName = "google.protobuf.Timestamp" -+) -+ -+// Field names for google.protobuf.Timestamp. -+const ( -+ Timestamp_Seconds_field_name protoreflect.Name = "seconds" -+ Timestamp_Nanos_field_name protoreflect.Name = "nanos" -+ -+ Timestamp_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.seconds" -+ Timestamp_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.nanos" -+) -+ -+// Field numbers for google.protobuf.Timestamp. -+const ( -+ Timestamp_Seconds_field_number protoreflect.FieldNumber = 1 -+ Timestamp_Nanos_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -new file mode 100644 -index 00000000..3bc71013 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -0,0 +1,184 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_type_proto = "google/protobuf/type.proto" -+ -+// Full and short names for google.protobuf.Syntax. -+const ( -+ Syntax_enum_fullname = "google.protobuf.Syntax" -+ Syntax_enum_name = "Syntax" -+) -+ -+// Names for google.protobuf.Type. -+const ( -+ Type_message_name protoreflect.Name = "Type" -+ Type_message_fullname protoreflect.FullName = "google.protobuf.Type" -+) -+ -+// Field names for google.protobuf.Type. -+const ( -+ Type_Name_field_name protoreflect.Name = "name" -+ Type_Fields_field_name protoreflect.Name = "fields" -+ Type_Oneofs_field_name protoreflect.Name = "oneofs" -+ Type_Options_field_name protoreflect.Name = "options" -+ Type_SourceContext_field_name protoreflect.Name = "source_context" -+ Type_Syntax_field_name protoreflect.Name = "syntax" -+ -+ Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" -+ Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -+ Type_Oneofs_field_fullname protoreflect.FullName = "google.protobuf.Type.oneofs" -+ Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" -+ Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" -+ Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+) -+ -+// Field numbers for google.protobuf.Type. -+const ( -+ Type_Name_field_number protoreflect.FieldNumber = 1 -+ Type_Fields_field_number protoreflect.FieldNumber = 2 -+ Type_Oneofs_field_number protoreflect.FieldNumber = 3 -+ Type_Options_field_number protoreflect.FieldNumber = 4 -+ Type_SourceContext_field_number protoreflect.FieldNumber = 5 -+ Type_Syntax_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Names for google.protobuf.Field. -+const ( -+ Field_message_name protoreflect.Name = "Field" -+ Field_message_fullname protoreflect.FullName = "google.protobuf.Field" -+) -+ -+// Field names for google.protobuf.Field. -+const ( -+ Field_Kind_field_name protoreflect.Name = "kind" -+ Field_Cardinality_field_name protoreflect.Name = "cardinality" -+ Field_Number_field_name protoreflect.Name = "number" -+ Field_Name_field_name protoreflect.Name = "name" -+ Field_TypeUrl_field_name protoreflect.Name = "type_url" -+ Field_OneofIndex_field_name protoreflect.Name = "oneof_index" -+ Field_Packed_field_name protoreflect.Name = "packed" -+ Field_Options_field_name protoreflect.Name = "options" -+ Field_JsonName_field_name protoreflect.Name = "json_name" -+ Field_DefaultValue_field_name protoreflect.Name = "default_value" -+ -+ Field_Kind_field_fullname protoreflect.FullName = "google.protobuf.Field.kind" -+ Field_Cardinality_field_fullname protoreflect.FullName = "google.protobuf.Field.cardinality" -+ Field_Number_field_fullname protoreflect.FullName = "google.protobuf.Field.number" -+ Field_Name_field_fullname protoreflect.FullName = "google.protobuf.Field.name" -+ Field_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Field.type_url" -+ Field_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.Field.oneof_index" -+ Field_Packed_field_fullname protoreflect.FullName = "google.protobuf.Field.packed" -+ Field_Options_field_fullname protoreflect.FullName = "google.protobuf.Field.options" -+ Field_JsonName_field_fullname protoreflect.FullName = "google.protobuf.Field.json_name" -+ Field_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.Field.default_value" -+) -+ -+// Field numbers for google.protobuf.Field. -+const ( -+ Field_Kind_field_number protoreflect.FieldNumber = 1 -+ Field_Cardinality_field_number protoreflect.FieldNumber = 2 -+ Field_Number_field_number protoreflect.FieldNumber = 3 -+ Field_Name_field_number protoreflect.FieldNumber = 4 -+ Field_TypeUrl_field_number protoreflect.FieldNumber = 6 -+ Field_OneofIndex_field_number protoreflect.FieldNumber = 7 -+ Field_Packed_field_number protoreflect.FieldNumber = 8 -+ Field_Options_field_number protoreflect.FieldNumber = 9 -+ Field_JsonName_field_number protoreflect.FieldNumber = 10 -+ Field_DefaultValue_field_number protoreflect.FieldNumber = 11 -+) -+ -+// Full and short names for google.protobuf.Field.Kind. -+const ( -+ Field_Kind_enum_fullname = "google.protobuf.Field.Kind" -+ Field_Kind_enum_name = "Kind" -+) -+ -+// Full and short names for google.protobuf.Field.Cardinality. -+const ( -+ Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" -+ Field_Cardinality_enum_name = "Cardinality" -+) -+ -+// Names for google.protobuf.Enum. -+const ( -+ Enum_message_name protoreflect.Name = "Enum" -+ Enum_message_fullname protoreflect.FullName = "google.protobuf.Enum" -+) -+ -+// Field names for google.protobuf.Enum. -+const ( -+ Enum_Name_field_name protoreflect.Name = "name" -+ Enum_Enumvalue_field_name protoreflect.Name = "enumvalue" -+ Enum_Options_field_name protoreflect.Name = "options" -+ Enum_SourceContext_field_name protoreflect.Name = "source_context" -+ Enum_Syntax_field_name protoreflect.Name = "syntax" -+ -+ Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" -+ Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" -+ Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" -+ Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" -+ Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+) -+ -+// Field numbers for google.protobuf.Enum. -+const ( -+ Enum_Name_field_number protoreflect.FieldNumber = 1 -+ Enum_Enumvalue_field_number protoreflect.FieldNumber = 2 -+ Enum_Options_field_number protoreflect.FieldNumber = 3 -+ Enum_SourceContext_field_number protoreflect.FieldNumber = 4 -+ Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.EnumValue. -+const ( -+ EnumValue_message_name protoreflect.Name = "EnumValue" -+ EnumValue_message_fullname protoreflect.FullName = "google.protobuf.EnumValue" -+) -+ -+// Field names for google.protobuf.EnumValue. -+const ( -+ EnumValue_Name_field_name protoreflect.Name = "name" -+ EnumValue_Number_field_name protoreflect.Name = "number" -+ EnumValue_Options_field_name protoreflect.Name = "options" -+ -+ EnumValue_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.name" -+ EnumValue_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.number" -+ EnumValue_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.options" -+) -+ -+// Field numbers for google.protobuf.EnumValue. -+const ( -+ EnumValue_Name_field_number protoreflect.FieldNumber = 1 -+ EnumValue_Number_field_number protoreflect.FieldNumber = 2 -+ EnumValue_Options_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Names for google.protobuf.Option. -+const ( -+ Option_message_name protoreflect.Name = "Option" -+ Option_message_fullname protoreflect.FullName = "google.protobuf.Option" -+) -+ -+// Field names for google.protobuf.Option. -+const ( -+ Option_Name_field_name protoreflect.Name = "name" -+ Option_Value_field_name protoreflect.Name = "value" -+ -+ Option_Name_field_fullname protoreflect.FullName = "google.protobuf.Option.name" -+ Option_Value_field_fullname protoreflect.FullName = "google.protobuf.Option.value" -+) -+ -+// Field numbers for google.protobuf.Option. -+const ( -+ Option_Name_field_number protoreflect.FieldNumber = 1 -+ Option_Value_field_number protoreflect.FieldNumber = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/wrappers.go b/vendor/google.golang.org/protobuf/internal/genid/wrappers.go -new file mode 100644 -index 00000000..429384b8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/wrappers.go -@@ -0,0 +1,13 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package genid -+ -+import protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ -+// Generic field name and number for messages in wrappers.proto. -+const ( -+ WrapperValue_Value_field_name protoreflect.Name = "value" -+ WrapperValue_Value_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go b/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go -new file mode 100644 -index 00000000..72527d2a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go -@@ -0,0 +1,175 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_google_protobuf_wrappers_proto = "google/protobuf/wrappers.proto" -+ -+// Names for google.protobuf.DoubleValue. -+const ( -+ DoubleValue_message_name protoreflect.Name = "DoubleValue" -+ DoubleValue_message_fullname protoreflect.FullName = "google.protobuf.DoubleValue" -+) -+ -+// Field names for google.protobuf.DoubleValue. -+const ( -+ DoubleValue_Value_field_name protoreflect.Name = "value" -+ -+ DoubleValue_Value_field_fullname protoreflect.FullName = "google.protobuf.DoubleValue.value" -+) -+ -+// Field numbers for google.protobuf.DoubleValue. -+const ( -+ DoubleValue_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.FloatValue. -+const ( -+ FloatValue_message_name protoreflect.Name = "FloatValue" -+ FloatValue_message_fullname protoreflect.FullName = "google.protobuf.FloatValue" -+) -+ -+// Field names for google.protobuf.FloatValue. -+const ( -+ FloatValue_Value_field_name protoreflect.Name = "value" -+ -+ FloatValue_Value_field_fullname protoreflect.FullName = "google.protobuf.FloatValue.value" -+) -+ -+// Field numbers for google.protobuf.FloatValue. -+const ( -+ FloatValue_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.Int64Value. -+const ( -+ Int64Value_message_name protoreflect.Name = "Int64Value" -+ Int64Value_message_fullname protoreflect.FullName = "google.protobuf.Int64Value" -+) -+ -+// Field names for google.protobuf.Int64Value. -+const ( -+ Int64Value_Value_field_name protoreflect.Name = "value" -+ -+ Int64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int64Value.value" -+) -+ -+// Field numbers for google.protobuf.Int64Value. -+const ( -+ Int64Value_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.UInt64Value. -+const ( -+ UInt64Value_message_name protoreflect.Name = "UInt64Value" -+ UInt64Value_message_fullname protoreflect.FullName = "google.protobuf.UInt64Value" -+) -+ -+// Field names for google.protobuf.UInt64Value. -+const ( -+ UInt64Value_Value_field_name protoreflect.Name = "value" -+ -+ UInt64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt64Value.value" -+) -+ -+// Field numbers for google.protobuf.UInt64Value. -+const ( -+ UInt64Value_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.Int32Value. -+const ( -+ Int32Value_message_name protoreflect.Name = "Int32Value" -+ Int32Value_message_fullname protoreflect.FullName = "google.protobuf.Int32Value" -+) -+ -+// Field names for google.protobuf.Int32Value. -+const ( -+ Int32Value_Value_field_name protoreflect.Name = "value" -+ -+ Int32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int32Value.value" -+) -+ -+// Field numbers for google.protobuf.Int32Value. -+const ( -+ Int32Value_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.UInt32Value. -+const ( -+ UInt32Value_message_name protoreflect.Name = "UInt32Value" -+ UInt32Value_message_fullname protoreflect.FullName = "google.protobuf.UInt32Value" -+) -+ -+// Field names for google.protobuf.UInt32Value. -+const ( -+ UInt32Value_Value_field_name protoreflect.Name = "value" -+ -+ UInt32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt32Value.value" -+) -+ -+// Field numbers for google.protobuf.UInt32Value. -+const ( -+ UInt32Value_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.BoolValue. -+const ( -+ BoolValue_message_name protoreflect.Name = "BoolValue" -+ BoolValue_message_fullname protoreflect.FullName = "google.protobuf.BoolValue" -+) -+ -+// Field names for google.protobuf.BoolValue. -+const ( -+ BoolValue_Value_field_name protoreflect.Name = "value" -+ -+ BoolValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BoolValue.value" -+) -+ -+// Field numbers for google.protobuf.BoolValue. -+const ( -+ BoolValue_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.StringValue. -+const ( -+ StringValue_message_name protoreflect.Name = "StringValue" -+ StringValue_message_fullname protoreflect.FullName = "google.protobuf.StringValue" -+) -+ -+// Field names for google.protobuf.StringValue. -+const ( -+ StringValue_Value_field_name protoreflect.Name = "value" -+ -+ StringValue_Value_field_fullname protoreflect.FullName = "google.protobuf.StringValue.value" -+) -+ -+// Field numbers for google.protobuf.StringValue. -+const ( -+ StringValue_Value_field_number protoreflect.FieldNumber = 1 -+) -+ -+// Names for google.protobuf.BytesValue. -+const ( -+ BytesValue_message_name protoreflect.Name = "BytesValue" -+ BytesValue_message_fullname protoreflect.FullName = "google.protobuf.BytesValue" -+) -+ -+// Field names for google.protobuf.BytesValue. -+const ( -+ BytesValue_Value_field_name protoreflect.Name = "value" -+ -+ BytesValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BytesValue.value" -+) -+ -+// Field numbers for google.protobuf.BytesValue. -+const ( -+ BytesValue_Value_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/impl/api_export.go b/vendor/google.golang.org/protobuf/internal/impl/api_export.go -new file mode 100644 -index 00000000..a371f98d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/api_export.go -@@ -0,0 +1,177 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "strconv" -+ -+ "google.golang.org/protobuf/encoding/prototext" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// Export is a zero-length named type that exists only to export a set of -+// functions that we do not want to appear in godoc. -+type Export struct{} -+ -+// NewError formats a string according to the format specifier and arguments and -+// returns an error that has a "proto" prefix. -+func (Export) NewError(f string, x ...interface{}) error { -+ return errors.New(f, x...) -+} -+ -+// enum is any enum type generated by protoc-gen-go -+// and must be a named int32 type. -+type enum = interface{} -+ -+// EnumOf returns the protoreflect.Enum interface over e. -+// It returns nil if e is nil. -+func (Export) EnumOf(e enum) protoreflect.Enum { -+ switch e := e.(type) { -+ case nil: -+ return nil -+ case protoreflect.Enum: -+ return e -+ default: -+ return legacyWrapEnum(reflect.ValueOf(e)) -+ } -+} -+ -+// EnumDescriptorOf returns the protoreflect.EnumDescriptor for e. -+// It returns nil if e is nil. -+func (Export) EnumDescriptorOf(e enum) protoreflect.EnumDescriptor { -+ switch e := e.(type) { -+ case nil: -+ return nil -+ case protoreflect.Enum: -+ return e.Descriptor() -+ default: -+ return LegacyLoadEnumDesc(reflect.TypeOf(e)) -+ } -+} -+ -+// EnumTypeOf returns the protoreflect.EnumType for e. -+// It returns nil if e is nil. -+func (Export) EnumTypeOf(e enum) protoreflect.EnumType { -+ switch e := e.(type) { -+ case nil: -+ return nil -+ case protoreflect.Enum: -+ return e.Type() -+ default: -+ return legacyLoadEnumType(reflect.TypeOf(e)) -+ } -+} -+ -+// EnumStringOf returns the enum value as a string, either as the name if -+// the number is resolvable, or the number formatted as a string. -+func (Export) EnumStringOf(ed protoreflect.EnumDescriptor, n protoreflect.EnumNumber) string { -+ ev := ed.Values().ByNumber(n) -+ if ev != nil { -+ return string(ev.Name()) -+ } -+ return strconv.Itoa(int(n)) -+} -+ -+// message is any message type generated by protoc-gen-go -+// and must be a pointer to a named struct type. -+type message = interface{} -+ -+// legacyMessageWrapper wraps a v2 message as a v1 message. -+type legacyMessageWrapper struct{ m protoreflect.ProtoMessage } -+ -+func (m legacyMessageWrapper) Reset() { proto.Reset(m.m) } -+func (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) } -+func (m legacyMessageWrapper) ProtoMessage() {} -+ -+// ProtoMessageV1Of converts either a v1 or v2 message to a v1 message. -+// It returns nil if m is nil. -+func (Export) ProtoMessageV1Of(m message) protoiface.MessageV1 { -+ switch mv := m.(type) { -+ case nil: -+ return nil -+ case protoiface.MessageV1: -+ return mv -+ case unwrapper: -+ return Export{}.ProtoMessageV1Of(mv.protoUnwrap()) -+ case protoreflect.ProtoMessage: -+ return legacyMessageWrapper{mv} -+ default: -+ panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) -+ } -+} -+ -+func (Export) protoMessageV2Of(m message) protoreflect.ProtoMessage { -+ switch mv := m.(type) { -+ case nil: -+ return nil -+ case protoreflect.ProtoMessage: -+ return mv -+ case legacyMessageWrapper: -+ return mv.m -+ case protoiface.MessageV1: -+ return nil -+ default: -+ panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) -+ } -+} -+ -+// ProtoMessageV2Of converts either a v1 or v2 message to a v2 message. -+// It returns nil if m is nil. -+func (Export) ProtoMessageV2Of(m message) protoreflect.ProtoMessage { -+ if m == nil { -+ return nil -+ } -+ if mv := (Export{}).protoMessageV2Of(m); mv != nil { -+ return mv -+ } -+ return legacyWrapMessage(reflect.ValueOf(m)).Interface() -+} -+ -+// MessageOf returns the protoreflect.Message interface over m. -+// It returns nil if m is nil. -+func (Export) MessageOf(m message) protoreflect.Message { -+ if m == nil { -+ return nil -+ } -+ if mv := (Export{}).protoMessageV2Of(m); mv != nil { -+ return mv.ProtoReflect() -+ } -+ return legacyWrapMessage(reflect.ValueOf(m)) -+} -+ -+// MessageDescriptorOf returns the protoreflect.MessageDescriptor for m. -+// It returns nil if m is nil. -+func (Export) MessageDescriptorOf(m message) protoreflect.MessageDescriptor { -+ if m == nil { -+ return nil -+ } -+ if mv := (Export{}).protoMessageV2Of(m); mv != nil { -+ return mv.ProtoReflect().Descriptor() -+ } -+ return LegacyLoadMessageDesc(reflect.TypeOf(m)) -+} -+ -+// MessageTypeOf returns the protoreflect.MessageType for m. -+// It returns nil if m is nil. -+func (Export) MessageTypeOf(m message) protoreflect.MessageType { -+ if m == nil { -+ return nil -+ } -+ if mv := (Export{}).protoMessageV2Of(m); mv != nil { -+ return mv.ProtoReflect().Type() -+ } -+ return legacyLoadMessageType(reflect.TypeOf(m), "") -+} -+ -+// MessageStringOf returns the message value as a string, -+// which is the message serialized in the protobuf text format. -+func (Export) MessageStringOf(m protoreflect.ProtoMessage) string { -+ return prototext.MarshalOptions{Multiline: false}.Format(m) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/checkinit.go b/vendor/google.golang.org/protobuf/internal/impl/checkinit.go -new file mode 100644 -index 00000000..bff041ed ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/checkinit.go -@@ -0,0 +1,141 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "sync" -+ -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+func (mi *MessageInfo) checkInitialized(in protoiface.CheckInitializedInput) (protoiface.CheckInitializedOutput, error) { -+ var p pointer -+ if ms, ok := in.Message.(*messageState); ok { -+ p = ms.pointer() -+ } else { -+ p = in.Message.(*messageReflectWrapper).pointer() -+ } -+ return protoiface.CheckInitializedOutput{}, mi.checkInitializedPointer(p) -+} -+ -+func (mi *MessageInfo) checkInitializedPointer(p pointer) error { -+ mi.init() -+ if !mi.needsInitCheck { -+ return nil -+ } -+ if p.IsNil() { -+ for _, f := range mi.orderedCoderFields { -+ if f.isRequired { -+ return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName())) -+ } -+ } -+ return nil -+ } -+ if mi.extensionOffset.IsValid() { -+ e := p.Apply(mi.extensionOffset).Extensions() -+ if err := mi.isInitExtensions(e); err != nil { -+ return err -+ } -+ } -+ for _, f := range mi.orderedCoderFields { -+ if !f.isRequired && f.funcs.isInit == nil { -+ continue -+ } -+ fptr := p.Apply(f.offset) -+ if f.isPointer && fptr.Elem().IsNil() { -+ if f.isRequired { -+ return errors.RequiredNotSet(string(mi.Desc.Fields().ByNumber(f.num).FullName())) -+ } -+ continue -+ } -+ if f.funcs.isInit == nil { -+ continue -+ } -+ if err := f.funcs.isInit(fptr, f); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+func (mi *MessageInfo) isInitExtensions(ext *map[int32]ExtensionField) error { -+ if ext == nil { -+ return nil -+ } -+ for _, x := range *ext { -+ ei := getExtensionFieldInfo(x.Type()) -+ if ei.funcs.isInit == nil { -+ continue -+ } -+ v := x.Value() -+ if !v.IsValid() { -+ continue -+ } -+ if err := ei.funcs.isInit(v); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+var ( -+ needsInitCheckMu sync.Mutex -+ needsInitCheckMap sync.Map -+) -+ -+// needsInitCheck reports whether a message needs to be checked for partial initialization. -+// -+// It returns true if the message transitively includes any required or extension fields. -+func needsInitCheck(md protoreflect.MessageDescriptor) bool { -+ if v, ok := needsInitCheckMap.Load(md); ok { -+ if has, ok := v.(bool); ok { -+ return has -+ } -+ } -+ needsInitCheckMu.Lock() -+ defer needsInitCheckMu.Unlock() -+ return needsInitCheckLocked(md) -+} -+ -+func needsInitCheckLocked(md protoreflect.MessageDescriptor) (has bool) { -+ if v, ok := needsInitCheckMap.Load(md); ok { -+ // If has is true, we've previously determined that this message -+ // needs init checks. -+ // -+ // If has is false, we've previously determined that it can never -+ // be uninitialized. -+ // -+ // If has is not a bool, we've just encountered a cycle in the -+ // message graph. In this case, it is safe to return false: If -+ // the message does have required fields, we'll detect them later -+ // in the graph traversal. -+ has, ok := v.(bool) -+ return ok && has -+ } -+ needsInitCheckMap.Store(md, struct{}{}) // avoid cycles while descending into this message -+ defer func() { -+ needsInitCheckMap.Store(md, has) -+ }() -+ if md.RequiredNumbers().Len() > 0 { -+ return true -+ } -+ if md.ExtensionRanges().Len() > 0 { -+ return true -+ } -+ for i := 0; i < md.Fields().Len(); i++ { -+ fd := md.Fields().Get(i) -+ // Map keys are never messages, so just consider the map value. -+ if fd.IsMap() { -+ fd = fd.MapValue() -+ } -+ fmd := fd.Message() -+ if fmd != nil && needsInitCheckLocked(fmd) { -+ return true -+ } -+ } -+ return false -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -new file mode 100644 -index 00000000..e74cefdc ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -0,0 +1,223 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "sync" -+ "sync/atomic" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type extensionFieldInfo struct { -+ wiretag uint64 -+ tagsize int -+ unmarshalNeedsValue bool -+ funcs valueCoderFuncs -+ validation validationInfo -+} -+ -+var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -+ -+func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -+ if xi, ok := xt.(*ExtensionInfo); ok { -+ xi.lazyInit() -+ return xi.info -+ } -+ return legacyLoadExtensionFieldInfo(xt) -+} -+ -+// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. -+func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -+ if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -+ return xi.(*extensionFieldInfo) -+ } -+ e := makeExtensionFieldInfo(xt.TypeDescriptor()) -+ if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -+ return e.(*extensionFieldInfo) -+ } -+ return e -+} -+ -+func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -+ var wiretag uint64 -+ if !xd.IsPacked() { -+ wiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()]) -+ } else { -+ wiretag = protowire.EncodeTag(xd.Number(), protowire.BytesType) -+ } -+ e := &extensionFieldInfo{ -+ wiretag: wiretag, -+ tagsize: protowire.SizeVarint(wiretag), -+ funcs: encoderFuncsForValue(xd), -+ } -+ // Does the unmarshal function need a value passed to it? -+ // This is true for composite types, where we pass in a message, list, or map to fill in, -+ // and for enums, where we pass in a prototype value to specify the concrete enum type. -+ switch xd.Kind() { -+ case protoreflect.MessageKind, protoreflect.GroupKind, protoreflect.EnumKind: -+ e.unmarshalNeedsValue = true -+ default: -+ if xd.Cardinality() == protoreflect.Repeated { -+ e.unmarshalNeedsValue = true -+ } -+ } -+ return e -+} -+ -+type lazyExtensionValue struct { -+ atomicOnce uint32 // atomically set if value is valid -+ mu sync.Mutex -+ xi *extensionFieldInfo -+ value protoreflect.Value -+ b []byte -+ fn func() protoreflect.Value -+} -+ -+type ExtensionField struct { -+ typ protoreflect.ExtensionType -+ -+ // value is either the value of GetValue, -+ // or a *lazyExtensionValue that then returns the value of GetValue. -+ value protoreflect.Value -+ lazy *lazyExtensionValue -+} -+ -+func (f *ExtensionField) appendLazyBytes(xt protoreflect.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) { -+ if f.lazy == nil { -+ f.lazy = &lazyExtensionValue{xi: xi} -+ } -+ f.typ = xt -+ f.lazy.xi = xi -+ f.lazy.b = protowire.AppendTag(f.lazy.b, num, wtyp) -+ f.lazy.b = append(f.lazy.b, b...) -+} -+ -+func (f *ExtensionField) canLazy(xt protoreflect.ExtensionType) bool { -+ if f.typ == nil { -+ return true -+ } -+ if f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 { -+ return true -+ } -+ return false -+} -+ -+func (f *ExtensionField) lazyInit() { -+ f.lazy.mu.Lock() -+ defer f.lazy.mu.Unlock() -+ if atomic.LoadUint32(&f.lazy.atomicOnce) == 1 { -+ return -+ } -+ if f.lazy.xi != nil { -+ b := f.lazy.b -+ val := f.typ.New() -+ for len(b) > 0 { -+ var tag uint64 -+ if b[0] < 0x80 { -+ tag = uint64(b[0]) -+ b = b[1:] -+ } else if len(b) >= 2 && b[1] < 128 { -+ tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ b = b[2:] -+ } else { -+ var n int -+ tag, n = protowire.ConsumeVarint(b) -+ if n < 0 { -+ panic(errors.New("bad tag in lazy extension decoding")) -+ } -+ b = b[n:] -+ } -+ num := protowire.Number(tag >> 3) -+ wtyp := protowire.Type(tag & 7) -+ var out unmarshalOutput -+ var err error -+ val, out, err = f.lazy.xi.funcs.unmarshal(b, val, num, wtyp, lazyUnmarshalOptions) -+ if err != nil { -+ panic(errors.New("decode failure in lazy extension decoding: %v", err)) -+ } -+ b = b[out.n:] -+ } -+ f.lazy.value = val -+ } else { -+ f.lazy.value = f.lazy.fn() -+ } -+ f.lazy.xi = nil -+ f.lazy.fn = nil -+ f.lazy.b = nil -+ atomic.StoreUint32(&f.lazy.atomicOnce, 1) -+} -+ -+// Set sets the type and value of the extension field. -+// This must not be called concurrently. -+func (f *ExtensionField) Set(t protoreflect.ExtensionType, v protoreflect.Value) { -+ f.typ = t -+ f.value = v -+ f.lazy = nil -+} -+ -+// SetLazy sets the type and a value that is to be lazily evaluated upon first use. -+// This must not be called concurrently. -+func (f *ExtensionField) SetLazy(t protoreflect.ExtensionType, fn func() protoreflect.Value) { -+ f.typ = t -+ f.lazy = &lazyExtensionValue{fn: fn} -+} -+ -+// Value returns the value of the extension field. -+// This may be called concurrently. -+func (f *ExtensionField) Value() protoreflect.Value { -+ if f.lazy != nil { -+ if atomic.LoadUint32(&f.lazy.atomicOnce) == 0 { -+ f.lazyInit() -+ } -+ return f.lazy.value -+ } -+ return f.value -+} -+ -+// Type returns the type of the extension field. -+// This may be called concurrently. -+func (f ExtensionField) Type() protoreflect.ExtensionType { -+ return f.typ -+} -+ -+// IsSet returns whether the extension field is set. -+// This may be called concurrently. -+func (f ExtensionField) IsSet() bool { -+ return f.typ != nil -+} -+ -+// IsLazy reports whether a field is lazily encoded. -+// It is exported for testing. -+func IsLazy(m protoreflect.Message, fd protoreflect.FieldDescriptor) bool { -+ var mi *MessageInfo -+ var p pointer -+ switch m := m.(type) { -+ case *messageState: -+ mi = m.messageInfo() -+ p = m.pointer() -+ case *messageReflectWrapper: -+ mi = m.messageInfo() -+ p = m.pointer() -+ default: -+ return false -+ } -+ xd, ok := fd.(protoreflect.ExtensionTypeDescriptor) -+ if !ok { -+ return false -+ } -+ xt := xd.Type() -+ ext := mi.extensionMap(p) -+ if ext == nil { -+ return false -+ } -+ f, ok := (*ext)[int32(fd.Number())] -+ if !ok { -+ return false -+ } -+ return f.typ == xt && f.lazy != nil && atomic.LoadUint32(&f.lazy.atomicOnce) == 0 -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_field.go b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go -new file mode 100644 -index 00000000..3fadd241 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_field.go -@@ -0,0 +1,830 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "sync" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+type errInvalidUTF8 struct{} -+ -+func (errInvalidUTF8) Error() string { return "string field contains invalid UTF-8" } -+func (errInvalidUTF8) InvalidUTF8() bool { return true } -+func (errInvalidUTF8) Unwrap() error { return errors.Error } -+ -+// initOneofFieldCoders initializes the fast-path functions for the fields in a oneof. -+// -+// For size, marshal, and isInit operations, functions are set only on the first field -+// in the oneof. The functions are called when the oneof is non-nil, and will dispatch -+// to the appropriate field-specific function as necessary. -+// -+// The unmarshal function is set on each field individually as usual. -+func (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si structInfo) { -+ fs := si.oneofsByName[od.Name()] -+ ft := fs.Type -+ oneofFields := make(map[reflect.Type]*coderFieldInfo) -+ needIsInit := false -+ fields := od.Fields() -+ for i, lim := 0, fields.Len(); i < lim; i++ { -+ fd := od.Fields().Get(i) -+ num := fd.Number() -+ // Make a copy of the original coderFieldInfo for use in unmarshaling. -+ // -+ // oneofFields[oneofType].funcs.marshal is the field-specific marshal function. -+ // -+ // mi.coderFields[num].marshal is set on only the first field in the oneof, -+ // and dispatches to the field-specific marshaler in oneofFields. -+ cf := *mi.coderFields[num] -+ ot := si.oneofWrappersByNumber[num] -+ cf.ft = ot.Field(0).Type -+ cf.mi, cf.funcs = fieldCoder(fd, cf.ft) -+ oneofFields[ot] = &cf -+ if cf.funcs.isInit != nil { -+ needIsInit = true -+ } -+ mi.coderFields[num].funcs.unmarshal = func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ var vw reflect.Value // pointer to wrapper type -+ vi := p.AsValueOf(ft).Elem() // oneof field value of interface kind -+ if !vi.IsNil() && !vi.Elem().IsNil() && vi.Elem().Elem().Type() == ot { -+ vw = vi.Elem() -+ } else { -+ vw = reflect.New(ot) -+ } -+ out, err := cf.funcs.unmarshal(b, pointerOfValue(vw).Apply(zeroOffset), wtyp, &cf, opts) -+ if err != nil { -+ return out, err -+ } -+ vi.Set(vw) -+ return out, nil -+ } -+ } -+ getInfo := func(p pointer) (pointer, *coderFieldInfo) { -+ v := p.AsValueOf(ft).Elem() -+ if v.IsNil() { -+ return pointer{}, nil -+ } -+ v = v.Elem() // interface -> *struct -+ if v.IsNil() { -+ return pointer{}, nil -+ } -+ return pointerOfValue(v).Apply(zeroOffset), oneofFields[v.Elem().Type()] -+ } -+ first := mi.coderFields[od.Fields().Get(0).Number()] -+ first.funcs.size = func(p pointer, _ *coderFieldInfo, opts marshalOptions) int { -+ p, info := getInfo(p) -+ if info == nil || info.funcs.size == nil { -+ return 0 -+ } -+ return info.funcs.size(p, info, opts) -+ } -+ first.funcs.marshal = func(b []byte, p pointer, _ *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ p, info := getInfo(p) -+ if info == nil || info.funcs.marshal == nil { -+ return b, nil -+ } -+ return info.funcs.marshal(b, p, info, opts) -+ } -+ first.funcs.merge = func(dst, src pointer, _ *coderFieldInfo, opts mergeOptions) { -+ srcp, srcinfo := getInfo(src) -+ if srcinfo == nil || srcinfo.funcs.merge == nil { -+ return -+ } -+ dstp, dstinfo := getInfo(dst) -+ if dstinfo != srcinfo { -+ dst.AsValueOf(ft).Elem().Set(reflect.New(src.AsValueOf(ft).Elem().Elem().Elem().Type())) -+ dstp = pointerOfValue(dst.AsValueOf(ft).Elem().Elem()).Apply(zeroOffset) -+ } -+ srcinfo.funcs.merge(dstp, srcp, srcinfo, opts) -+ } -+ if needIsInit { -+ first.funcs.isInit = func(p pointer, _ *coderFieldInfo) error { -+ p, info := getInfo(p) -+ if info == nil || info.funcs.isInit == nil { -+ return nil -+ } -+ return info.funcs.isInit(p, info) -+ } -+ } -+} -+ -+func makeWeakMessageFieldCoder(fd protoreflect.FieldDescriptor) pointerCoderFuncs { -+ var once sync.Once -+ var messageType protoreflect.MessageType -+ lazyInit := func() { -+ once.Do(func() { -+ messageName := fd.Message().FullName() -+ messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) -+ }) -+ } -+ -+ return pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ m, ok := p.WeakFields().get(f.num) -+ if !ok { -+ return 0 -+ } -+ lazyInit() -+ if messageType == nil { -+ panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) -+ } -+ return sizeMessage(m, f.tagsize, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ m, ok := p.WeakFields().get(f.num) -+ if !ok { -+ return b, nil -+ } -+ lazyInit() -+ if messageType == nil { -+ panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) -+ } -+ return appendMessage(b, m, f.wiretag, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ fs := p.WeakFields() -+ m, ok := fs.get(f.num) -+ if !ok { -+ lazyInit() -+ if messageType == nil { -+ return unmarshalOutput{}, errUnknown -+ } -+ m = messageType.New().Interface() -+ fs.set(f.num, m) -+ } -+ return consumeMessage(b, m, wtyp, opts) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ m, ok := p.WeakFields().get(f.num) -+ if !ok { -+ return nil -+ } -+ return proto.CheckInitialized(m) -+ }, -+ merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ sm, ok := src.WeakFields().get(f.num) -+ if !ok { -+ return -+ } -+ dm, ok := dst.WeakFields().get(f.num) -+ if !ok { -+ lazyInit() -+ if messageType == nil { -+ panic(fmt.Sprintf("weak message %v is not linked in", fd.Message().FullName())) -+ } -+ dm = messageType.New().Interface() -+ dst.WeakFields().set(f.num, dm) -+ } -+ opts.Merge(dm, sm) -+ }, -+ } -+} -+ -+func makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { -+ if mi := getMessageInfo(ft); mi != nil { -+ funcs := pointerCoderFuncs{ -+ size: sizeMessageInfo, -+ marshal: appendMessageInfo, -+ unmarshal: consumeMessageInfo, -+ merge: mergeMessage, -+ } -+ if needsInitCheck(mi.Desc) { -+ funcs.isInit = isInitMessageInfo -+ } -+ return funcs -+ } else { -+ return pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return sizeMessage(m, f.tagsize, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return appendMessage(b, m, f.wiretag, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ mp := p.AsValueOf(ft).Elem() -+ if mp.IsNil() { -+ mp.Set(reflect.New(ft.Elem())) -+ } -+ return consumeMessage(b, asMessage(mp), wtyp, opts) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return proto.CheckInitialized(m) -+ }, -+ merge: mergeMessage, -+ } -+ } -+} -+ -+func sizeMessageInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return protowire.SizeBytes(f.mi.sizePointer(p.Elem(), opts)) + f.tagsize -+} -+ -+func appendMessageInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(f.mi.sizePointer(p.Elem(), opts))) -+ return f.mi.marshalAppendPointer(b, p.Elem(), opts) -+} -+ -+func consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if p.Elem().IsNil() { -+ p.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) -+ } -+ o, err := f.mi.unmarshalPointer(v, p.Elem(), 0, opts) -+ if err != nil { -+ return out, err -+ } -+ out.n = n -+ out.initialized = o.initialized -+ return out, nil -+} -+ -+func isInitMessageInfo(p pointer, f *coderFieldInfo) error { -+ return f.mi.checkInitializedPointer(p.Elem()) -+} -+ -+func sizeMessage(m proto.Message, tagsize int, _ marshalOptions) int { -+ return protowire.SizeBytes(proto.Size(m)) + tagsize -+} -+ -+func appendMessage(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(proto.Size(m))) -+ return opts.Options().MarshalAppend(b, m) -+} -+ -+func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: v, -+ Message: m.ProtoReflect(), -+ }) -+ if err != nil { -+ return out, err -+ } -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return out, nil -+} -+ -+func sizeMessageValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ m := v.Message().Interface() -+ return sizeMessage(m, tagsize, opts) -+} -+ -+func appendMessageValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ m := v.Message().Interface() -+ return appendMessage(b, m, wiretag, opts) -+} -+ -+func consumeMessageValue(b []byte, v protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) { -+ m := v.Message().Interface() -+ out, err := consumeMessage(b, m, wtyp, opts) -+ return v, out, err -+} -+ -+func isInitMessageValue(v protoreflect.Value) error { -+ m := v.Message().Interface() -+ return proto.CheckInitialized(m) -+} -+ -+var coderMessageValue = valueCoderFuncs{ -+ size: sizeMessageValue, -+ marshal: appendMessageValue, -+ unmarshal: consumeMessageValue, -+ isInit: isInitMessageValue, -+ merge: mergeMessageValue, -+} -+ -+func sizeGroupValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ m := v.Message().Interface() -+ return sizeGroup(m, tagsize, opts) -+} -+ -+func appendGroupValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ m := v.Message().Interface() -+ return appendGroup(b, m, wiretag, opts) -+} -+ -+func consumeGroupValue(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) { -+ m := v.Message().Interface() -+ out, err := consumeGroup(b, m, num, wtyp, opts) -+ return v, out, err -+} -+ -+var coderGroupValue = valueCoderFuncs{ -+ size: sizeGroupValue, -+ marshal: appendGroupValue, -+ unmarshal: consumeGroupValue, -+ isInit: isInitMessageValue, -+ merge: mergeMessageValue, -+} -+ -+func makeGroupFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { -+ num := fd.Number() -+ if mi := getMessageInfo(ft); mi != nil { -+ funcs := pointerCoderFuncs{ -+ size: sizeGroupType, -+ marshal: appendGroupType, -+ unmarshal: consumeGroupType, -+ merge: mergeMessage, -+ } -+ if needsInitCheck(mi.Desc) { -+ funcs.isInit = isInitMessageInfo -+ } -+ return funcs -+ } else { -+ return pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return sizeGroup(m, f.tagsize, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return appendGroup(b, m, f.wiretag, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ mp := p.AsValueOf(ft).Elem() -+ if mp.IsNil() { -+ mp.Set(reflect.New(ft.Elem())) -+ } -+ return consumeGroup(b, asMessage(mp), num, wtyp, opts) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ m := asMessage(p.AsValueOf(ft).Elem()) -+ return proto.CheckInitialized(m) -+ }, -+ merge: mergeMessage, -+ } -+ } -+} -+ -+func sizeGroupType(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return 2*f.tagsize + f.mi.sizePointer(p.Elem(), opts) -+} -+ -+func appendGroupType(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, f.wiretag) // start group -+ b, err := f.mi.marshalAppendPointer(b, p.Elem(), opts) -+ b = protowire.AppendVarint(b, f.wiretag+1) // end group -+ return b, err -+} -+ -+func consumeGroupType(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.StartGroupType { -+ return out, errUnknown -+ } -+ if p.Elem().IsNil() { -+ p.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) -+ } -+ return f.mi.unmarshalPointer(b, p.Elem(), f.num, opts) -+} -+ -+func sizeGroup(m proto.Message, tagsize int, _ marshalOptions) int { -+ return 2*tagsize + proto.Size(m) -+} -+ -+func appendGroup(b []byte, m proto.Message, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) // start group -+ b, err := opts.Options().MarshalAppend(b, m) -+ b = protowire.AppendVarint(b, wiretag+1) // end group -+ return b, err -+} -+ -+func consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.StartGroupType { -+ return out, errUnknown -+ } -+ b, n := protowire.ConsumeGroup(num, b) -+ if n < 0 { -+ return out, errDecode -+ } -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: b, -+ Message: m.ProtoReflect(), -+ }) -+ if err != nil { -+ return out, err -+ } -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return out, nil -+} -+ -+func makeMessageSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { -+ if mi := getMessageInfo(ft); mi != nil { -+ funcs := pointerCoderFuncs{ -+ size: sizeMessageSliceInfo, -+ marshal: appendMessageSliceInfo, -+ unmarshal: consumeMessageSliceInfo, -+ merge: mergeMessageSlice, -+ } -+ if needsInitCheck(mi.Desc) { -+ funcs.isInit = isInitMessageSliceInfo -+ } -+ return funcs -+ } -+ return pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return sizeMessageSlice(p, ft, f.tagsize, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ return appendMessageSlice(b, p, f.wiretag, ft, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ return consumeMessageSlice(b, p, ft, wtyp, opts) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ return isInitMessageSlice(p, ft) -+ }, -+ merge: mergeMessageSlice, -+ } -+} -+ -+func sizeMessageSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ s := p.PointerSlice() -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeBytes(f.mi.sizePointer(v, opts)) + f.tagsize -+ } -+ return n -+} -+ -+func appendMessageSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := p.PointerSlice() -+ var err error -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ siz := f.mi.sizePointer(v, opts) -+ b = protowire.AppendVarint(b, uint64(siz)) -+ b, err = f.mi.marshalAppendPointer(b, v, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func consumeMessageSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ m := reflect.New(f.mi.GoReflectType.Elem()).Interface() -+ mp := pointerOfIface(m) -+ o, err := f.mi.unmarshalPointer(v, mp, 0, opts) -+ if err != nil { -+ return out, err -+ } -+ p.AppendPointerSlice(mp) -+ out.n = n -+ out.initialized = o.initialized -+ return out, nil -+} -+ -+func isInitMessageSliceInfo(p pointer, f *coderFieldInfo) error { -+ s := p.PointerSlice() -+ for _, v := range s { -+ if err := f.mi.checkInitializedPointer(v); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+func sizeMessageSlice(p pointer, goType reflect.Type, tagsize int, _ marshalOptions) int { -+ s := p.PointerSlice() -+ n := 0 -+ for _, v := range s { -+ m := asMessage(v.AsValueOf(goType.Elem())) -+ n += protowire.SizeBytes(proto.Size(m)) + tagsize -+ } -+ return n -+} -+ -+func appendMessageSlice(b []byte, p pointer, wiretag uint64, goType reflect.Type, opts marshalOptions) ([]byte, error) { -+ s := p.PointerSlice() -+ var err error -+ for _, v := range s { -+ m := asMessage(v.AsValueOf(goType.Elem())) -+ b = protowire.AppendVarint(b, wiretag) -+ siz := proto.Size(m) -+ b = protowire.AppendVarint(b, uint64(siz)) -+ b, err = opts.Options().MarshalAppend(b, m) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ mp := reflect.New(goType.Elem()) -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: v, -+ Message: asMessage(mp).ProtoReflect(), -+ }) -+ if err != nil { -+ return out, err -+ } -+ p.AppendPointerSlice(pointerOfValue(mp)) -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return out, nil -+} -+ -+func isInitMessageSlice(p pointer, goType reflect.Type) error { -+ s := p.PointerSlice() -+ for _, v := range s { -+ m := asMessage(v.AsValueOf(goType.Elem())) -+ if err := proto.CheckInitialized(m); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+// Slices of messages -+ -+func sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { -+ list := listv.List() -+ n := 0 -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ m := list.Get(i).Message().Interface() -+ n += protowire.SizeBytes(proto.Size(m)) + tagsize -+ } -+ return n -+} -+ -+func appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ mopts := opts.Options() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ m := list.Get(i).Message().Interface() -+ b = protowire.AppendVarint(b, wiretag) -+ siz := proto.Size(m) -+ b = protowire.AppendVarint(b, uint64(siz)) -+ var err error -+ b, err = mopts.MarshalAppend(b, m) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func consumeMessageSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ m := list.NewElement() -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: v, -+ Message: m.Message(), -+ }) -+ if err != nil { -+ return protoreflect.Value{}, out, err -+ } -+ list.Append(m) -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return listv, out, nil -+} -+ -+func isInitMessageSliceValue(listv protoreflect.Value) error { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ m := list.Get(i).Message().Interface() -+ if err := proto.CheckInitialized(m); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+var coderMessageSliceValue = valueCoderFuncs{ -+ size: sizeMessageSliceValue, -+ marshal: appendMessageSliceValue, -+ unmarshal: consumeMessageSliceValue, -+ isInit: isInitMessageSliceValue, -+ merge: mergeMessageListValue, -+} -+ -+func sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { -+ list := listv.List() -+ n := 0 -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ m := list.Get(i).Message().Interface() -+ n += 2*tagsize + proto.Size(m) -+ } -+ return n -+} -+ -+func appendGroupSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ mopts := opts.Options() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ m := list.Get(i).Message().Interface() -+ b = protowire.AppendVarint(b, wiretag) // start group -+ var err error -+ b, err = mopts.MarshalAppend(b, m) -+ if err != nil { -+ return b, err -+ } -+ b = protowire.AppendVarint(b, wiretag+1) // end group -+ } -+ return b, nil -+} -+ -+func consumeGroupSliceValue(b []byte, listv protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp != protowire.StartGroupType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ b, n := protowire.ConsumeGroup(num, b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ m := list.NewElement() -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: b, -+ Message: m.Message(), -+ }) -+ if err != nil { -+ return protoreflect.Value{}, out, err -+ } -+ list.Append(m) -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return listv, out, nil -+} -+ -+var coderGroupSliceValue = valueCoderFuncs{ -+ size: sizeGroupSliceValue, -+ marshal: appendGroupSliceValue, -+ unmarshal: consumeGroupSliceValue, -+ isInit: isInitMessageSliceValue, -+ merge: mergeMessageListValue, -+} -+ -+func makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { -+ num := fd.Number() -+ if mi := getMessageInfo(ft); mi != nil { -+ funcs := pointerCoderFuncs{ -+ size: sizeGroupSliceInfo, -+ marshal: appendGroupSliceInfo, -+ unmarshal: consumeGroupSliceInfo, -+ merge: mergeMessageSlice, -+ } -+ if needsInitCheck(mi.Desc) { -+ funcs.isInit = isInitMessageSliceInfo -+ } -+ return funcs -+ } -+ return pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return sizeGroupSlice(p, ft, f.tagsize, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ return appendGroupSlice(b, p, f.wiretag, ft, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ return consumeGroupSlice(b, p, num, wtyp, ft, opts) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ return isInitMessageSlice(p, ft) -+ }, -+ merge: mergeMessageSlice, -+ } -+} -+ -+func sizeGroupSlice(p pointer, messageType reflect.Type, tagsize int, _ marshalOptions) int { -+ s := p.PointerSlice() -+ n := 0 -+ for _, v := range s { -+ m := asMessage(v.AsValueOf(messageType.Elem())) -+ n += 2*tagsize + proto.Size(m) -+ } -+ return n -+} -+ -+func appendGroupSlice(b []byte, p pointer, wiretag uint64, messageType reflect.Type, opts marshalOptions) ([]byte, error) { -+ s := p.PointerSlice() -+ var err error -+ for _, v := range s { -+ m := asMessage(v.AsValueOf(messageType.Elem())) -+ b = protowire.AppendVarint(b, wiretag) // start group -+ b, err = opts.Options().MarshalAppend(b, m) -+ if err != nil { -+ return b, err -+ } -+ b = protowire.AppendVarint(b, wiretag+1) // end group -+ } -+ return b, nil -+} -+ -+func consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire.Type, goType reflect.Type, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.StartGroupType { -+ return out, errUnknown -+ } -+ b, n := protowire.ConsumeGroup(num, b) -+ if n < 0 { -+ return out, errDecode -+ } -+ mp := reflect.New(goType.Elem()) -+ o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ -+ Buf: b, -+ Message: asMessage(mp).ProtoReflect(), -+ }) -+ if err != nil { -+ return out, err -+ } -+ p.AppendPointerSlice(pointerOfValue(mp)) -+ out.n = n -+ out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 -+ return out, nil -+} -+ -+func sizeGroupSliceInfo(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ s := p.PointerSlice() -+ n := 0 -+ for _, v := range s { -+ n += 2*f.tagsize + f.mi.sizePointer(v, opts) -+ } -+ return n -+} -+ -+func appendGroupSliceInfo(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := p.PointerSlice() -+ var err error -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) // start group -+ b, err = f.mi.marshalAppendPointer(b, v, opts) -+ if err != nil { -+ return b, err -+ } -+ b = protowire.AppendVarint(b, f.wiretag+1) // end group -+ } -+ return b, nil -+} -+ -+func consumeGroupSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ if wtyp != protowire.StartGroupType { -+ return unmarshalOutput{}, errUnknown -+ } -+ m := reflect.New(f.mi.GoReflectType.Elem()).Interface() -+ mp := pointerOfIface(m) -+ out, err := f.mi.unmarshalPointer(b, mp, f.num, opts) -+ if err != nil { -+ return out, err -+ } -+ p.AppendPointerSlice(mp) -+ return out, nil -+} -+ -+func asMessage(v reflect.Value) protoreflect.ProtoMessage { -+ if m, ok := v.Interface().(protoreflect.ProtoMessage); ok { -+ return m -+ } -+ return legacyWrapMessage(v).Interface() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -new file mode 100644 -index 00000000..1a509b63 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -0,0 +1,5637 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package impl -+ -+import ( -+ "math" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// sizeBool returns the size of wire encoding a bool pointer as a Bool. -+func sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Bool() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) -+} -+ -+// appendBool wire encodes a bool pointer as a Bool. -+func appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bool() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v)) -+ return b, nil -+} -+ -+// consumeBool wire decodes a bool pointer as a Bool. -+func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Bool() = protowire.DecodeBool(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderBool = pointerCoderFuncs{ -+ size: sizeBool, -+ marshal: appendBool, -+ unmarshal: consumeBool, -+ merge: mergeBool, -+} -+ -+// sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool. -+// The zero value is not encoded. -+func sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Bool() -+ if v == false { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) -+} -+ -+// appendBoolNoZero wire encodes a bool pointer as a Bool. -+// The zero value is not encoded. -+func appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bool() -+ if v == false { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v)) -+ return b, nil -+} -+ -+var coderBoolNoZero = pointerCoderFuncs{ -+ size: sizeBoolNoZero, -+ marshal: appendBoolNoZero, -+ unmarshal: consumeBool, -+ merge: mergeBoolNoZero, -+} -+ -+// sizeBoolPtr returns the size of wire encoding a *bool pointer as a Bool. -+// It panics if the pointer is nil. -+func sizeBoolPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.BoolPtr() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) -+} -+ -+// appendBoolPtr wire encodes a *bool pointer as a Bool. -+// It panics if the pointer is nil. -+func appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.BoolPtr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v)) -+ return b, nil -+} -+ -+// consumeBoolPtr wire decodes a *bool pointer as a Bool. -+func consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.BoolPtr() -+ if *vp == nil { -+ *vp = new(bool) -+ } -+ **vp = protowire.DecodeBool(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderBoolPtr = pointerCoderFuncs{ -+ size: sizeBoolPtr, -+ marshal: appendBoolPtr, -+ unmarshal: consumeBoolPtr, -+ merge: mergeBoolPtr, -+} -+ -+// sizeBoolSlice returns the size of wire encoding a []bool pointer as a repeated Bool. -+func sizeBoolSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.BoolSlice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) -+ } -+ return size -+} -+ -+// appendBoolSlice encodes a []bool pointer as a repeated Bool. -+func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.BoolSlice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v)) -+ } -+ return b, nil -+} -+ -+// consumeBoolSlice wire decodes a []bool pointer as a repeated Bool. -+func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.BoolSlice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, protowire.DecodeBool(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, protowire.DecodeBool(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderBoolSlice = pointerCoderFuncs{ -+ size: sizeBoolSlice, -+ marshal: appendBoolSlice, -+ unmarshal: consumeBoolSlice, -+ merge: mergeBoolSlice, -+} -+ -+// sizeBoolPackedSlice returns the size of wire encoding a []bool pointer as a packed repeated Bool. -+func sizeBoolPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.BoolSlice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeBool(v)) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendBoolPackedSlice encodes a []bool pointer as a packed repeated Bool. -+func appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.BoolSlice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeBool(v)) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v)) -+ } -+ return b, nil -+} -+ -+var coderBoolPackedSlice = pointerCoderFuncs{ -+ size: sizeBoolPackedSlice, -+ marshal: appendBoolPackedSlice, -+ unmarshal: consumeBoolSlice, -+ merge: mergeBoolSlice, -+} -+ -+// sizeBoolValue returns the size of wire encoding a bool value as a Bool. -+func sizeBoolValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool())) -+} -+ -+// appendBoolValue encodes a bool value as a Bool. -+func appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) -+ return b, nil -+} -+ -+// consumeBoolValue decodes a bool value as a Bool. -+func consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfBool(protowire.DecodeBool(v)), out, nil -+} -+ -+var coderBoolValue = valueCoderFuncs{ -+ size: sizeBoolValue, -+ marshal: appendBoolValue, -+ unmarshal: consumeBoolValue, -+ merge: mergeScalarValue, -+} -+ -+// sizeBoolSliceValue returns the size of wire encoding a []bool value as a repeated Bool. -+func sizeBoolSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool())) -+ } -+ return size -+} -+ -+// appendBoolSliceValue encodes a []bool value as a repeated Bool. -+func appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) -+ } -+ return b, nil -+} -+ -+// consumeBoolSliceValue wire decodes a []bool value as a repeated Bool. -+func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderBoolSliceValue = valueCoderFuncs{ -+ size: sizeBoolSliceValue, -+ marshal: appendBoolSliceValue, -+ unmarshal: consumeBoolSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeBoolPackedSliceValue returns the size of wire encoding a []bool value as a packed repeated Bool. -+func sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeBool(v.Bool())) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendBoolPackedSliceValue encodes a []bool value as a packed repeated Bool. -+func appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeBool(v.Bool())) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) -+ } -+ return b, nil -+} -+ -+var coderBoolPackedSliceValue = valueCoderFuncs{ -+ size: sizeBoolPackedSliceValue, -+ marshal: appendBoolPackedSliceValue, -+ unmarshal: consumeBoolSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeEnumValue returns the size of wire encoding a value as a Enum. -+func sizeEnumValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(uint64(v.Enum())) -+} -+ -+// appendEnumValue encodes a value as a Enum. -+func appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(v.Enum())) -+ return b, nil -+} -+ -+// consumeEnumValue decodes a value as a Enum. -+func consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), out, nil -+} -+ -+var coderEnumValue = valueCoderFuncs{ -+ size: sizeEnumValue, -+ marshal: appendEnumValue, -+ unmarshal: consumeEnumValue, -+ merge: mergeScalarValue, -+} -+ -+// sizeEnumSliceValue returns the size of wire encoding a [] value as a repeated Enum. -+func sizeEnumSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(uint64(v.Enum())) -+ } -+ return size -+} -+ -+// appendEnumSliceValue encodes a [] value as a repeated Enum. -+func appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(v.Enum())) -+ } -+ return b, nil -+} -+ -+// consumeEnumSliceValue wire decodes a [] value as a repeated Enum. -+func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderEnumSliceValue = valueCoderFuncs{ -+ size: sizeEnumSliceValue, -+ marshal: appendEnumSliceValue, -+ unmarshal: consumeEnumSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeEnumPackedSliceValue returns the size of wire encoding a [] value as a packed repeated Enum. -+func sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(v.Enum())) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendEnumPackedSliceValue encodes a [] value as a packed repeated Enum. -+func appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(v.Enum())) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, uint64(v.Enum())) -+ } -+ return b, nil -+} -+ -+var coderEnumPackedSliceValue = valueCoderFuncs{ -+ size: sizeEnumPackedSliceValue, -+ marshal: appendEnumPackedSliceValue, -+ unmarshal: consumeEnumSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeInt32 returns the size of wire encoding a int32 pointer as a Int32. -+func sizeInt32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int32() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt32 wire encodes a int32 pointer as a Int32. -+func appendInt32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeInt32 wire decodes a int32 pointer as a Int32. -+func consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int32() = int32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt32 = pointerCoderFuncs{ -+ size: sizeInt32, -+ marshal: appendInt32, -+ unmarshal: consumeInt32, -+ merge: mergeInt32, -+} -+ -+// sizeInt32NoZero returns the size of wire encoding a int32 pointer as a Int32. -+// The zero value is not encoded. -+func sizeInt32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int32() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt32NoZero wire encodes a int32 pointer as a Int32. -+// The zero value is not encoded. -+func appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+var coderInt32NoZero = pointerCoderFuncs{ -+ size: sizeInt32NoZero, -+ marshal: appendInt32NoZero, -+ unmarshal: consumeInt32, -+ merge: mergeInt32NoZero, -+} -+ -+// sizeInt32Ptr returns the size of wire encoding a *int32 pointer as a Int32. -+// It panics if the pointer is nil. -+func sizeInt32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Int32Ptr() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt32Ptr wire encodes a *int32 pointer as a Int32. -+// It panics if the pointer is nil. -+func appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeInt32Ptr wire decodes a *int32 pointer as a Int32. -+func consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int32Ptr() -+ if *vp == nil { -+ *vp = new(int32) -+ } -+ **vp = int32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt32Ptr = pointerCoderFuncs{ -+ size: sizeInt32Ptr, -+ marshal: appendInt32Ptr, -+ unmarshal: consumeInt32Ptr, -+ merge: mergeInt32Ptr, -+} -+ -+// sizeInt32Slice returns the size of wire encoding a []int32 pointer as a repeated Int32. -+func sizeInt32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(uint64(v)) -+ } -+ return size -+} -+ -+// appendInt32Slice encodes a []int32 pointer as a repeated Int32. -+func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+// consumeInt32Slice wire decodes a []int32 pointer as a repeated Int32. -+func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, int32(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, int32(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt32Slice = pointerCoderFuncs{ -+ size: sizeInt32Slice, -+ marshal: appendInt32Slice, -+ unmarshal: consumeInt32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeInt32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Int32. -+func sizeInt32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendInt32PackedSlice encodes a []int32 pointer as a packed repeated Int32. -+func appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+var coderInt32PackedSlice = pointerCoderFuncs{ -+ size: sizeInt32PackedSlice, -+ marshal: appendInt32PackedSlice, -+ unmarshal: consumeInt32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeInt32Value returns the size of wire encoding a int32 value as a Int32. -+func sizeInt32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(uint64(int32(v.Int()))) -+} -+ -+// appendInt32Value encodes a int32 value as a Int32. -+func appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(int32(v.Int()))) -+ return b, nil -+} -+ -+// consumeInt32Value decodes a int32 value as a Int32. -+func consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt32(int32(v)), out, nil -+} -+ -+var coderInt32Value = valueCoderFuncs{ -+ size: sizeInt32Value, -+ marshal: appendInt32Value, -+ unmarshal: consumeInt32Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeInt32SliceValue returns the size of wire encoding a []int32 value as a repeated Int32. -+func sizeInt32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(uint64(int32(v.Int()))) -+ } -+ return size -+} -+ -+// appendInt32SliceValue encodes a []int32 value as a repeated Int32. -+func appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(int32(v.Int()))) -+ } -+ return b, nil -+} -+ -+// consumeInt32SliceValue wire decodes a []int32 value as a repeated Int32. -+func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderInt32SliceValue = valueCoderFuncs{ -+ size: sizeInt32SliceValue, -+ marshal: appendInt32SliceValue, -+ unmarshal: consumeInt32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeInt32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Int32. -+func sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(int32(v.Int()))) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendInt32PackedSliceValue encodes a []int32 value as a packed repeated Int32. -+func appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(int32(v.Int()))) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, uint64(int32(v.Int()))) -+ } -+ return b, nil -+} -+ -+var coderInt32PackedSliceValue = valueCoderFuncs{ -+ size: sizeInt32PackedSliceValue, -+ marshal: appendInt32PackedSliceValue, -+ unmarshal: consumeInt32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSint32 returns the size of wire encoding a int32 pointer as a Sint32. -+func sizeSint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int32() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+} -+ -+// appendSint32 wire encodes a int32 pointer as a Sint32. -+func appendSint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) -+ return b, nil -+} -+ -+// consumeSint32 wire decodes a int32 pointer as a Sint32. -+func consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int32() = int32(protowire.DecodeZigZag(v & math.MaxUint32)) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint32 = pointerCoderFuncs{ -+ size: sizeSint32, -+ marshal: appendSint32, -+ unmarshal: consumeSint32, -+ merge: mergeInt32, -+} -+ -+// sizeSint32NoZero returns the size of wire encoding a int32 pointer as a Sint32. -+// The zero value is not encoded. -+func sizeSint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int32() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+} -+ -+// appendSint32NoZero wire encodes a int32 pointer as a Sint32. -+// The zero value is not encoded. -+func appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) -+ return b, nil -+} -+ -+var coderSint32NoZero = pointerCoderFuncs{ -+ size: sizeSint32NoZero, -+ marshal: appendSint32NoZero, -+ unmarshal: consumeSint32, -+ merge: mergeInt32NoZero, -+} -+ -+// sizeSint32Ptr returns the size of wire encoding a *int32 pointer as a Sint32. -+// It panics if the pointer is nil. -+func sizeSint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Int32Ptr() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+} -+ -+// appendSint32Ptr wire encodes a *int32 pointer as a Sint32. -+// It panics if the pointer is nil. -+func appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) -+ return b, nil -+} -+ -+// consumeSint32Ptr wire decodes a *int32 pointer as a Sint32. -+func consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int32Ptr() -+ if *vp == nil { -+ *vp = new(int32) -+ } -+ **vp = int32(protowire.DecodeZigZag(v & math.MaxUint32)) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint32Ptr = pointerCoderFuncs{ -+ size: sizeSint32Ptr, -+ marshal: appendSint32Ptr, -+ unmarshal: consumeSint32Ptr, -+ merge: mergeInt32Ptr, -+} -+ -+// sizeSint32Slice returns the size of wire encoding a []int32 pointer as a repeated Sint32. -+func sizeSint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+ } -+ return size -+} -+ -+// appendSint32Slice encodes a []int32 pointer as a repeated Sint32. -+func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) -+ } -+ return b, nil -+} -+ -+// consumeSint32Slice wire decodes a []int32 pointer as a repeated Sint32. -+func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, int32(protowire.DecodeZigZag(v&math.MaxUint32))) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, int32(protowire.DecodeZigZag(v&math.MaxUint32))) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint32Slice = pointerCoderFuncs{ -+ size: sizeSint32Slice, -+ marshal: appendSint32Slice, -+ unmarshal: consumeSint32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeSint32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sint32. -+func sizeSint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSint32PackedSlice encodes a []int32 pointer as a packed repeated Sint32. -+func appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) -+ } -+ return b, nil -+} -+ -+var coderSint32PackedSlice = pointerCoderFuncs{ -+ size: sizeSint32PackedSlice, -+ marshal: appendSint32PackedSlice, -+ unmarshal: consumeSint32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeSint32Value returns the size of wire encoding a int32 value as a Sint32. -+func sizeSint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) -+} -+ -+// appendSint32Value encodes a int32 value as a Sint32. -+func appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) -+ return b, nil -+} -+ -+// consumeSint32Value decodes a int32 value as a Sint32. -+func consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), out, nil -+} -+ -+var coderSint32Value = valueCoderFuncs{ -+ size: sizeSint32Value, -+ marshal: appendSint32Value, -+ unmarshal: consumeSint32Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeSint32SliceValue returns the size of wire encoding a []int32 value as a repeated Sint32. -+func sizeSint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) -+ } -+ return size -+} -+ -+// appendSint32SliceValue encodes a []int32 value as a repeated Sint32. -+func appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) -+ } -+ return b, nil -+} -+ -+// consumeSint32SliceValue wire decodes a []int32 value as a repeated Sint32. -+func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderSint32SliceValue = valueCoderFuncs{ -+ size: sizeSint32SliceValue, -+ marshal: appendSint32SliceValue, -+ unmarshal: consumeSint32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSint32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sint32. -+func sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSint32PackedSliceValue encodes a []int32 value as a packed repeated Sint32. -+func appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) -+ } -+ return b, nil -+} -+ -+var coderSint32PackedSliceValue = valueCoderFuncs{ -+ size: sizeSint32PackedSliceValue, -+ marshal: appendSint32PackedSliceValue, -+ unmarshal: consumeSint32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeUint32 returns the size of wire encoding a uint32 pointer as a Uint32. -+func sizeUint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint32() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendUint32 wire encodes a uint32 pointer as a Uint32. -+func appendUint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeUint32 wire decodes a uint32 pointer as a Uint32. -+func consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Uint32() = uint32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderUint32 = pointerCoderFuncs{ -+ size: sizeUint32, -+ marshal: appendUint32, -+ unmarshal: consumeUint32, -+ merge: mergeUint32, -+} -+ -+// sizeUint32NoZero returns the size of wire encoding a uint32 pointer as a Uint32. -+// The zero value is not encoded. -+func sizeUint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint32() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendUint32NoZero wire encodes a uint32 pointer as a Uint32. -+// The zero value is not encoded. -+func appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint32() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+var coderUint32NoZero = pointerCoderFuncs{ -+ size: sizeUint32NoZero, -+ marshal: appendUint32NoZero, -+ unmarshal: consumeUint32, -+ merge: mergeUint32NoZero, -+} -+ -+// sizeUint32Ptr returns the size of wire encoding a *uint32 pointer as a Uint32. -+// It panics if the pointer is nil. -+func sizeUint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Uint32Ptr() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendUint32Ptr wire encodes a *uint32 pointer as a Uint32. -+// It panics if the pointer is nil. -+func appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Uint32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeUint32Ptr wire decodes a *uint32 pointer as a Uint32. -+func consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Uint32Ptr() -+ if *vp == nil { -+ *vp = new(uint32) -+ } -+ **vp = uint32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderUint32Ptr = pointerCoderFuncs{ -+ size: sizeUint32Ptr, -+ marshal: appendUint32Ptr, -+ unmarshal: consumeUint32Ptr, -+ merge: mergeUint32Ptr, -+} -+ -+// sizeUint32Slice returns the size of wire encoding a []uint32 pointer as a repeated Uint32. -+func sizeUint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint32Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(uint64(v)) -+ } -+ return size -+} -+ -+// appendUint32Slice encodes a []uint32 pointer as a repeated Uint32. -+func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+// consumeUint32Slice wire decodes a []uint32 pointer as a repeated Uint32. -+func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Uint32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, uint32(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, uint32(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderUint32Slice = pointerCoderFuncs{ -+ size: sizeUint32Slice, -+ marshal: appendUint32Slice, -+ unmarshal: consumeUint32Slice, -+ merge: mergeUint32Slice, -+} -+ -+// sizeUint32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Uint32. -+func sizeUint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendUint32PackedSlice encodes a []uint32 pointer as a packed repeated Uint32. -+func appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+var coderUint32PackedSlice = pointerCoderFuncs{ -+ size: sizeUint32PackedSlice, -+ marshal: appendUint32PackedSlice, -+ unmarshal: consumeUint32Slice, -+ merge: mergeUint32Slice, -+} -+ -+// sizeUint32Value returns the size of wire encoding a uint32 value as a Uint32. -+func sizeUint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(uint64(uint32(v.Uint()))) -+} -+ -+// appendUint32Value encodes a uint32 value as a Uint32. -+func appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) -+ return b, nil -+} -+ -+// consumeUint32Value decodes a uint32 value as a Uint32. -+func consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfUint32(uint32(v)), out, nil -+} -+ -+var coderUint32Value = valueCoderFuncs{ -+ size: sizeUint32Value, -+ marshal: appendUint32Value, -+ unmarshal: consumeUint32Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeUint32SliceValue returns the size of wire encoding a []uint32 value as a repeated Uint32. -+func sizeUint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(uint64(uint32(v.Uint()))) -+ } -+ return size -+} -+ -+// appendUint32SliceValue encodes a []uint32 value as a repeated Uint32. -+func appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) -+ } -+ return b, nil -+} -+ -+// consumeUint32SliceValue wire decodes a []uint32 value as a repeated Uint32. -+func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderUint32SliceValue = valueCoderFuncs{ -+ size: sizeUint32SliceValue, -+ marshal: appendUint32SliceValue, -+ unmarshal: consumeUint32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeUint32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Uint32. -+func sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(uint32(v.Uint()))) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendUint32PackedSliceValue encodes a []uint32 value as a packed repeated Uint32. -+func appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(uint32(v.Uint()))) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) -+ } -+ return b, nil -+} -+ -+var coderUint32PackedSliceValue = valueCoderFuncs{ -+ size: sizeUint32PackedSliceValue, -+ marshal: appendUint32PackedSliceValue, -+ unmarshal: consumeUint32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeInt64 returns the size of wire encoding a int64 pointer as a Int64. -+func sizeInt64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int64() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt64 wire encodes a int64 pointer as a Int64. -+func appendInt64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeInt64 wire decodes a int64 pointer as a Int64. -+func consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int64() = int64(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt64 = pointerCoderFuncs{ -+ size: sizeInt64, -+ marshal: appendInt64, -+ unmarshal: consumeInt64, -+ merge: mergeInt64, -+} -+ -+// sizeInt64NoZero returns the size of wire encoding a int64 pointer as a Int64. -+// The zero value is not encoded. -+func sizeInt64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int64() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt64NoZero wire encodes a int64 pointer as a Int64. -+// The zero value is not encoded. -+func appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+var coderInt64NoZero = pointerCoderFuncs{ -+ size: sizeInt64NoZero, -+ marshal: appendInt64NoZero, -+ unmarshal: consumeInt64, -+ merge: mergeInt64NoZero, -+} -+ -+// sizeInt64Ptr returns the size of wire encoding a *int64 pointer as a Int64. -+// It panics if the pointer is nil. -+func sizeInt64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Int64Ptr() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+// appendInt64Ptr wire encodes a *int64 pointer as a Int64. -+// It panics if the pointer is nil. -+func appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeInt64Ptr wire decodes a *int64 pointer as a Int64. -+func consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int64Ptr() -+ if *vp == nil { -+ *vp = new(int64) -+ } -+ **vp = int64(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt64Ptr = pointerCoderFuncs{ -+ size: sizeInt64Ptr, -+ marshal: appendInt64Ptr, -+ unmarshal: consumeInt64Ptr, -+ merge: mergeInt64Ptr, -+} -+ -+// sizeInt64Slice returns the size of wire encoding a []int64 pointer as a repeated Int64. -+func sizeInt64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(uint64(v)) -+ } -+ return size -+} -+ -+// appendInt64Slice encodes a []int64 pointer as a repeated Int64. -+func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+// consumeInt64Slice wire decodes a []int64 pointer as a repeated Int64. -+func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, int64(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, int64(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderInt64Slice = pointerCoderFuncs{ -+ size: sizeInt64Slice, -+ marshal: appendInt64Slice, -+ unmarshal: consumeInt64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeInt64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Int64. -+func sizeInt64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendInt64PackedSlice encodes a []int64 pointer as a packed repeated Int64. -+func appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(uint64(v)) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+var coderInt64PackedSlice = pointerCoderFuncs{ -+ size: sizeInt64PackedSlice, -+ marshal: appendInt64PackedSlice, -+ unmarshal: consumeInt64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeInt64Value returns the size of wire encoding a int64 value as a Int64. -+func sizeInt64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(uint64(v.Int())) -+} -+ -+// appendInt64Value encodes a int64 value as a Int64. -+func appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(v.Int())) -+ return b, nil -+} -+ -+// consumeInt64Value decodes a int64 value as a Int64. -+func consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt64(int64(v)), out, nil -+} -+ -+var coderInt64Value = valueCoderFuncs{ -+ size: sizeInt64Value, -+ marshal: appendInt64Value, -+ unmarshal: consumeInt64Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeInt64SliceValue returns the size of wire encoding a []int64 value as a repeated Int64. -+func sizeInt64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(uint64(v.Int())) -+ } -+ return size -+} -+ -+// appendInt64SliceValue encodes a []int64 value as a repeated Int64. -+func appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, uint64(v.Int())) -+ } -+ return b, nil -+} -+ -+// consumeInt64SliceValue wire decodes a []int64 value as a repeated Int64. -+func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderInt64SliceValue = valueCoderFuncs{ -+ size: sizeInt64SliceValue, -+ marshal: appendInt64SliceValue, -+ unmarshal: consumeInt64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeInt64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Int64. -+func sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(v.Int())) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendInt64PackedSliceValue encodes a []int64 value as a packed repeated Int64. -+func appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(uint64(v.Int())) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, uint64(v.Int())) -+ } -+ return b, nil -+} -+ -+var coderInt64PackedSliceValue = valueCoderFuncs{ -+ size: sizeInt64PackedSliceValue, -+ marshal: appendInt64PackedSliceValue, -+ unmarshal: consumeInt64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSint64 returns the size of wire encoding a int64 pointer as a Sint64. -+func sizeSint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int64() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) -+} -+ -+// appendSint64 wire encodes a int64 pointer as a Sint64. -+func appendSint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) -+ return b, nil -+} -+ -+// consumeSint64 wire decodes a int64 pointer as a Sint64. -+func consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int64() = protowire.DecodeZigZag(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint64 = pointerCoderFuncs{ -+ size: sizeSint64, -+ marshal: appendSint64, -+ unmarshal: consumeSint64, -+ merge: mergeInt64, -+} -+ -+// sizeSint64NoZero returns the size of wire encoding a int64 pointer as a Sint64. -+// The zero value is not encoded. -+func sizeSint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int64() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) -+} -+ -+// appendSint64NoZero wire encodes a int64 pointer as a Sint64. -+// The zero value is not encoded. -+func appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) -+ return b, nil -+} -+ -+var coderSint64NoZero = pointerCoderFuncs{ -+ size: sizeSint64NoZero, -+ marshal: appendSint64NoZero, -+ unmarshal: consumeSint64, -+ merge: mergeInt64NoZero, -+} -+ -+// sizeSint64Ptr returns the size of wire encoding a *int64 pointer as a Sint64. -+// It panics if the pointer is nil. -+func sizeSint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Int64Ptr() -+ return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) -+} -+ -+// appendSint64Ptr wire encodes a *int64 pointer as a Sint64. -+// It panics if the pointer is nil. -+func appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) -+ return b, nil -+} -+ -+// consumeSint64Ptr wire decodes a *int64 pointer as a Sint64. -+func consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int64Ptr() -+ if *vp == nil { -+ *vp = new(int64) -+ } -+ **vp = protowire.DecodeZigZag(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint64Ptr = pointerCoderFuncs{ -+ size: sizeSint64Ptr, -+ marshal: appendSint64Ptr, -+ unmarshal: consumeSint64Ptr, -+ merge: mergeInt64Ptr, -+} -+ -+// sizeSint64Slice returns the size of wire encoding a []int64 pointer as a repeated Sint64. -+func sizeSint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) -+ } -+ return size -+} -+ -+// appendSint64Slice encodes a []int64 pointer as a repeated Sint64. -+func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) -+ } -+ return b, nil -+} -+ -+// consumeSint64Slice wire decodes a []int64 pointer as a repeated Sint64. -+func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, protowire.DecodeZigZag(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, protowire.DecodeZigZag(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderSint64Slice = pointerCoderFuncs{ -+ size: sizeSint64Slice, -+ marshal: appendSint64Slice, -+ unmarshal: consumeSint64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeSint64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sint64. -+func sizeSint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeZigZag(v)) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSint64PackedSlice encodes a []int64 pointer as a packed repeated Sint64. -+func appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(protowire.EncodeZigZag(v)) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) -+ } -+ return b, nil -+} -+ -+var coderSint64PackedSlice = pointerCoderFuncs{ -+ size: sizeSint64PackedSlice, -+ marshal: appendSint64PackedSlice, -+ unmarshal: consumeSint64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeSint64Value returns the size of wire encoding a int64 value as a Sint64. -+func sizeSint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) -+} -+ -+// appendSint64Value encodes a int64 value as a Sint64. -+func appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) -+ return b, nil -+} -+ -+// consumeSint64Value decodes a int64 value as a Sint64. -+func consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), out, nil -+} -+ -+var coderSint64Value = valueCoderFuncs{ -+ size: sizeSint64Value, -+ marshal: appendSint64Value, -+ unmarshal: consumeSint64Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeSint64SliceValue returns the size of wire encoding a []int64 value as a repeated Sint64. -+func sizeSint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) -+ } -+ return size -+} -+ -+// appendSint64SliceValue encodes a []int64 value as a repeated Sint64. -+func appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) -+ } -+ return b, nil -+} -+ -+// consumeSint64SliceValue wire decodes a []int64 value as a repeated Sint64. -+func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderSint64SliceValue = valueCoderFuncs{ -+ size: sizeSint64SliceValue, -+ marshal: appendSint64SliceValue, -+ unmarshal: consumeSint64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSint64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sint64. -+func sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSint64PackedSliceValue encodes a []int64 value as a packed repeated Sint64. -+func appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) -+ } -+ return b, nil -+} -+ -+var coderSint64PackedSliceValue = valueCoderFuncs{ -+ size: sizeSint64PackedSliceValue, -+ marshal: appendSint64PackedSliceValue, -+ unmarshal: consumeSint64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeUint64 returns the size of wire encoding a uint64 pointer as a Uint64. -+func sizeUint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint64() -+ return f.tagsize + protowire.SizeVarint(v) -+} -+ -+// appendUint64 wire encodes a uint64 pointer as a Uint64. -+func appendUint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, v) -+ return b, nil -+} -+ -+// consumeUint64 wire decodes a uint64 pointer as a Uint64. -+func consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Uint64() = v -+ out.n = n -+ return out, nil -+} -+ -+var coderUint64 = pointerCoderFuncs{ -+ size: sizeUint64, -+ marshal: appendUint64, -+ unmarshal: consumeUint64, -+ merge: mergeUint64, -+} -+ -+// sizeUint64NoZero returns the size of wire encoding a uint64 pointer as a Uint64. -+// The zero value is not encoded. -+func sizeUint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint64() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeVarint(v) -+} -+ -+// appendUint64NoZero wire encodes a uint64 pointer as a Uint64. -+// The zero value is not encoded. -+func appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint64() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, v) -+ return b, nil -+} -+ -+var coderUint64NoZero = pointerCoderFuncs{ -+ size: sizeUint64NoZero, -+ marshal: appendUint64NoZero, -+ unmarshal: consumeUint64, -+ merge: mergeUint64NoZero, -+} -+ -+// sizeUint64Ptr returns the size of wire encoding a *uint64 pointer as a Uint64. -+// It panics if the pointer is nil. -+func sizeUint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.Uint64Ptr() -+ return f.tagsize + protowire.SizeVarint(v) -+} -+ -+// appendUint64Ptr wire encodes a *uint64 pointer as a Uint64. -+// It panics if the pointer is nil. -+func appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Uint64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, v) -+ return b, nil -+} -+ -+// consumeUint64Ptr wire decodes a *uint64 pointer as a Uint64. -+func consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Uint64Ptr() -+ if *vp == nil { -+ *vp = new(uint64) -+ } -+ **vp = v -+ out.n = n -+ return out, nil -+} -+ -+var coderUint64Ptr = pointerCoderFuncs{ -+ size: sizeUint64Ptr, -+ marshal: appendUint64Ptr, -+ unmarshal: consumeUint64Ptr, -+ merge: mergeUint64Ptr, -+} -+ -+// sizeUint64Slice returns the size of wire encoding a []uint64 pointer as a repeated Uint64. -+func sizeUint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint64Slice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeVarint(v) -+ } -+ return size -+} -+ -+// appendUint64Slice encodes a []uint64 pointer as a repeated Uint64. -+func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, v) -+ } -+ return b, nil -+} -+ -+// consumeUint64Slice wire decodes a []uint64 pointer as a repeated Uint64. -+func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Uint64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, v) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, v) -+ out.n = n -+ return out, nil -+} -+ -+var coderUint64Slice = pointerCoderFuncs{ -+ size: sizeUint64Slice, -+ marshal: appendUint64Slice, -+ unmarshal: consumeUint64Slice, -+ merge: mergeUint64Slice, -+} -+ -+// sizeUint64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Uint64. -+func sizeUint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(v) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendUint64PackedSlice encodes a []uint64 pointer as a packed repeated Uint64. -+func appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for _, v := range s { -+ n += protowire.SizeVarint(v) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendVarint(b, v) -+ } -+ return b, nil -+} -+ -+var coderUint64PackedSlice = pointerCoderFuncs{ -+ size: sizeUint64PackedSlice, -+ marshal: appendUint64PackedSlice, -+ unmarshal: consumeUint64Slice, -+ merge: mergeUint64Slice, -+} -+ -+// sizeUint64Value returns the size of wire encoding a uint64 value as a Uint64. -+func sizeUint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeVarint(v.Uint()) -+} -+ -+// appendUint64Value encodes a uint64 value as a Uint64. -+func appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, v.Uint()) -+ return b, nil -+} -+ -+// consumeUint64Value decodes a uint64 value as a Uint64. -+func consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfUint64(v), out, nil -+} -+ -+var coderUint64Value = valueCoderFuncs{ -+ size: sizeUint64Value, -+ marshal: appendUint64Value, -+ unmarshal: consumeUint64Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeUint64SliceValue returns the size of wire encoding a []uint64 value as a repeated Uint64. -+func sizeUint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeVarint(v.Uint()) -+ } -+ return size -+} -+ -+// appendUint64SliceValue encodes a []uint64 value as a repeated Uint64. -+func appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendVarint(b, v.Uint()) -+ } -+ return b, nil -+} -+ -+// consumeUint64SliceValue wire decodes a []uint64 value as a repeated Uint64. -+func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ var v uint64 -+ var n int -+ if len(b) >= 1 && b[0] < 0x80 { -+ v = uint64(b[0]) -+ n = 1 -+ } else if len(b) >= 2 && b[1] < 128 { -+ v = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ n = 2 -+ } else { -+ v, n = protowire.ConsumeVarint(b) -+ } -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderUint64SliceValue = valueCoderFuncs{ -+ size: sizeUint64SliceValue, -+ marshal: appendUint64SliceValue, -+ unmarshal: consumeUint64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeUint64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Uint64. -+func sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i, llen := 0, llen; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(v.Uint()) -+ } -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendUint64PackedSliceValue encodes a []uint64 value as a packed repeated Uint64. -+func appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ n += protowire.SizeVarint(v.Uint()) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, v.Uint()) -+ } -+ return b, nil -+} -+ -+var coderUint64PackedSliceValue = valueCoderFuncs{ -+ size: sizeUint64PackedSliceValue, -+ marshal: appendUint64PackedSliceValue, -+ unmarshal: consumeUint64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSfixed32 returns the size of wire encoding a int32 pointer as a Sfixed32. -+func sizeSfixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendSfixed32 wire encodes a int32 pointer as a Sfixed32. -+func appendSfixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, uint32(v)) -+ return b, nil -+} -+ -+// consumeSfixed32 wire decodes a int32 pointer as a Sfixed32. -+func consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int32() = int32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed32 = pointerCoderFuncs{ -+ size: sizeSfixed32, -+ marshal: appendSfixed32, -+ unmarshal: consumeSfixed32, -+ merge: mergeInt32, -+} -+ -+// sizeSfixed32NoZero returns the size of wire encoding a int32 pointer as a Sfixed32. -+// The zero value is not encoded. -+func sizeSfixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int32() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendSfixed32NoZero wire encodes a int32 pointer as a Sfixed32. -+// The zero value is not encoded. -+func appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int32() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, uint32(v)) -+ return b, nil -+} -+ -+var coderSfixed32NoZero = pointerCoderFuncs{ -+ size: sizeSfixed32NoZero, -+ marshal: appendSfixed32NoZero, -+ unmarshal: consumeSfixed32, -+ merge: mergeInt32NoZero, -+} -+ -+// sizeSfixed32Ptr returns the size of wire encoding a *int32 pointer as a Sfixed32. -+// It panics if the pointer is nil. -+func sizeSfixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendSfixed32Ptr wire encodes a *int32 pointer as a Sfixed32. -+// It panics if the pointer is nil. -+func appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, uint32(v)) -+ return b, nil -+} -+ -+// consumeSfixed32Ptr wire decodes a *int32 pointer as a Sfixed32. -+func consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int32Ptr() -+ if *vp == nil { -+ *vp = new(int32) -+ } -+ **vp = int32(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed32Ptr = pointerCoderFuncs{ -+ size: sizeSfixed32Ptr, -+ marshal: appendSfixed32Ptr, -+ unmarshal: consumeSfixed32Ptr, -+ merge: mergeInt32Ptr, -+} -+ -+// sizeSfixed32Slice returns the size of wire encoding a []int32 pointer as a repeated Sfixed32. -+func sizeSfixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendSfixed32Slice encodes a []int32 pointer as a repeated Sfixed32. -+func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, uint32(v)) -+ } -+ return b, nil -+} -+ -+// consumeSfixed32Slice wire decodes a []int32 pointer as a repeated Sfixed32. -+func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, int32(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, int32(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed32Slice = pointerCoderFuncs{ -+ size: sizeSfixed32Slice, -+ marshal: appendSfixed32Slice, -+ unmarshal: consumeSfixed32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeSfixed32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sfixed32. -+func sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed32() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSfixed32PackedSlice encodes a []int32 pointer as a packed repeated Sfixed32. -+func appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed32(b, uint32(v)) -+ } -+ return b, nil -+} -+ -+var coderSfixed32PackedSlice = pointerCoderFuncs{ -+ size: sizeSfixed32PackedSlice, -+ marshal: appendSfixed32PackedSlice, -+ unmarshal: consumeSfixed32Slice, -+ merge: mergeInt32Slice, -+} -+ -+// sizeSfixed32Value returns the size of wire encoding a int32 value as a Sfixed32. -+func sizeSfixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed32() -+} -+ -+// appendSfixed32Value encodes a int32 value as a Sfixed32. -+func appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, uint32(v.Int())) -+ return b, nil -+} -+ -+// consumeSfixed32Value decodes a int32 value as a Sfixed32. -+func consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt32(int32(v)), out, nil -+} -+ -+var coderSfixed32Value = valueCoderFuncs{ -+ size: sizeSfixed32Value, -+ marshal: appendSfixed32Value, -+ unmarshal: consumeSfixed32Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeSfixed32SliceValue returns the size of wire encoding a []int32 value as a repeated Sfixed32. -+func sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendSfixed32SliceValue encodes a []int32 value as a repeated Sfixed32. -+func appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, uint32(v.Int())) -+ } -+ return b, nil -+} -+ -+// consumeSfixed32SliceValue wire decodes a []int32 value as a repeated Sfixed32. -+func consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderSfixed32SliceValue = valueCoderFuncs{ -+ size: sizeSfixed32SliceValue, -+ marshal: appendSfixed32SliceValue, -+ unmarshal: consumeSfixed32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSfixed32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sfixed32. -+func sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed32() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSfixed32PackedSliceValue encodes a []int32 value as a packed repeated Sfixed32. -+func appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed32(b, uint32(v.Int())) -+ } -+ return b, nil -+} -+ -+var coderSfixed32PackedSliceValue = valueCoderFuncs{ -+ size: sizeSfixed32PackedSliceValue, -+ marshal: appendSfixed32PackedSliceValue, -+ unmarshal: consumeSfixed32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFixed32 returns the size of wire encoding a uint32 pointer as a Fixed32. -+func sizeFixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFixed32 wire encodes a uint32 pointer as a Fixed32. -+func appendFixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, v) -+ return b, nil -+} -+ -+// consumeFixed32 wire decodes a uint32 pointer as a Fixed32. -+func consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Uint32() = v -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed32 = pointerCoderFuncs{ -+ size: sizeFixed32, -+ marshal: appendFixed32, -+ unmarshal: consumeFixed32, -+ merge: mergeUint32, -+} -+ -+// sizeFixed32NoZero returns the size of wire encoding a uint32 pointer as a Fixed32. -+// The zero value is not encoded. -+func sizeFixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint32() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFixed32NoZero wire encodes a uint32 pointer as a Fixed32. -+// The zero value is not encoded. -+func appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint32() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, v) -+ return b, nil -+} -+ -+var coderFixed32NoZero = pointerCoderFuncs{ -+ size: sizeFixed32NoZero, -+ marshal: appendFixed32NoZero, -+ unmarshal: consumeFixed32, -+ merge: mergeUint32NoZero, -+} -+ -+// sizeFixed32Ptr returns the size of wire encoding a *uint32 pointer as a Fixed32. -+// It panics if the pointer is nil. -+func sizeFixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFixed32Ptr wire encodes a *uint32 pointer as a Fixed32. -+// It panics if the pointer is nil. -+func appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Uint32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, v) -+ return b, nil -+} -+ -+// consumeFixed32Ptr wire decodes a *uint32 pointer as a Fixed32. -+func consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Uint32Ptr() -+ if *vp == nil { -+ *vp = new(uint32) -+ } -+ **vp = v -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed32Ptr = pointerCoderFuncs{ -+ size: sizeFixed32Ptr, -+ marshal: appendFixed32Ptr, -+ unmarshal: consumeFixed32Ptr, -+ merge: mergeUint32Ptr, -+} -+ -+// sizeFixed32Slice returns the size of wire encoding a []uint32 pointer as a repeated Fixed32. -+func sizeFixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint32Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendFixed32Slice encodes a []uint32 pointer as a repeated Fixed32. -+func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, v) -+ } -+ return b, nil -+} -+ -+// consumeFixed32Slice wire decodes a []uint32 pointer as a repeated Fixed32. -+func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Uint32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, v) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, v) -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed32Slice = pointerCoderFuncs{ -+ size: sizeFixed32Slice, -+ marshal: appendFixed32Slice, -+ unmarshal: consumeFixed32Slice, -+ merge: mergeUint32Slice, -+} -+ -+// sizeFixed32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Fixed32. -+func sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed32() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFixed32PackedSlice encodes a []uint32 pointer as a packed repeated Fixed32. -+func appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed32(b, v) -+ } -+ return b, nil -+} -+ -+var coderFixed32PackedSlice = pointerCoderFuncs{ -+ size: sizeFixed32PackedSlice, -+ marshal: appendFixed32PackedSlice, -+ unmarshal: consumeFixed32Slice, -+ merge: mergeUint32Slice, -+} -+ -+// sizeFixed32Value returns the size of wire encoding a uint32 value as a Fixed32. -+func sizeFixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed32() -+} -+ -+// appendFixed32Value encodes a uint32 value as a Fixed32. -+func appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, uint32(v.Uint())) -+ return b, nil -+} -+ -+// consumeFixed32Value decodes a uint32 value as a Fixed32. -+func consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfUint32(uint32(v)), out, nil -+} -+ -+var coderFixed32Value = valueCoderFuncs{ -+ size: sizeFixed32Value, -+ marshal: appendFixed32Value, -+ unmarshal: consumeFixed32Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeFixed32SliceValue returns the size of wire encoding a []uint32 value as a repeated Fixed32. -+func sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendFixed32SliceValue encodes a []uint32 value as a repeated Fixed32. -+func appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, uint32(v.Uint())) -+ } -+ return b, nil -+} -+ -+// consumeFixed32SliceValue wire decodes a []uint32 value as a repeated Fixed32. -+func consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderFixed32SliceValue = valueCoderFuncs{ -+ size: sizeFixed32SliceValue, -+ marshal: appendFixed32SliceValue, -+ unmarshal: consumeFixed32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFixed32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Fixed32. -+func sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed32() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFixed32PackedSliceValue encodes a []uint32 value as a packed repeated Fixed32. -+func appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed32(b, uint32(v.Uint())) -+ } -+ return b, nil -+} -+ -+var coderFixed32PackedSliceValue = valueCoderFuncs{ -+ size: sizeFixed32PackedSliceValue, -+ marshal: appendFixed32PackedSliceValue, -+ unmarshal: consumeFixed32SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFloat returns the size of wire encoding a float32 pointer as a Float. -+func sizeFloat(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFloat wire encodes a float32 pointer as a Float. -+func appendFloat(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Float32() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(v)) -+ return b, nil -+} -+ -+// consumeFloat wire decodes a float32 pointer as a Float. -+func consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Float32() = math.Float32frombits(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderFloat = pointerCoderFuncs{ -+ size: sizeFloat, -+ marshal: appendFloat, -+ unmarshal: consumeFloat, -+ merge: mergeFloat32, -+} -+ -+// sizeFloatNoZero returns the size of wire encoding a float32 pointer as a Float. -+// The zero value is not encoded. -+func sizeFloatNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Float32() -+ if v == 0 && !math.Signbit(float64(v)) { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFloatNoZero wire encodes a float32 pointer as a Float. -+// The zero value is not encoded. -+func appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Float32() -+ if v == 0 && !math.Signbit(float64(v)) { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(v)) -+ return b, nil -+} -+ -+var coderFloatNoZero = pointerCoderFuncs{ -+ size: sizeFloatNoZero, -+ marshal: appendFloatNoZero, -+ unmarshal: consumeFloat, -+ merge: mergeFloat32NoZero, -+} -+ -+// sizeFloatPtr returns the size of wire encoding a *float32 pointer as a Float. -+// It panics if the pointer is nil. -+func sizeFloatPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed32() -+} -+ -+// appendFloatPtr wire encodes a *float32 pointer as a Float. -+// It panics if the pointer is nil. -+func appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Float32Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(v)) -+ return b, nil -+} -+ -+// consumeFloatPtr wire decodes a *float32 pointer as a Float. -+func consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Float32Ptr() -+ if *vp == nil { -+ *vp = new(float32) -+ } -+ **vp = math.Float32frombits(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderFloatPtr = pointerCoderFuncs{ -+ size: sizeFloatPtr, -+ marshal: appendFloatPtr, -+ unmarshal: consumeFloatPtr, -+ merge: mergeFloat32Ptr, -+} -+ -+// sizeFloatSlice returns the size of wire encoding a []float32 pointer as a repeated Float. -+func sizeFloatSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Float32Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendFloatSlice encodes a []float32 pointer as a repeated Float. -+func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Float32Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(v)) -+ } -+ return b, nil -+} -+ -+// consumeFloatSlice wire decodes a []float32 pointer as a repeated Float. -+func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Float32Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, math.Float32frombits(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, math.Float32frombits(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderFloatSlice = pointerCoderFuncs{ -+ size: sizeFloatSlice, -+ marshal: appendFloatSlice, -+ unmarshal: consumeFloatSlice, -+ merge: mergeFloat32Slice, -+} -+ -+// sizeFloatPackedSlice returns the size of wire encoding a []float32 pointer as a packed repeated Float. -+func sizeFloatPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Float32Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed32() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFloatPackedSlice encodes a []float32 pointer as a packed repeated Float. -+func appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Float32Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed32(b, math.Float32bits(v)) -+ } -+ return b, nil -+} -+ -+var coderFloatPackedSlice = pointerCoderFuncs{ -+ size: sizeFloatPackedSlice, -+ marshal: appendFloatPackedSlice, -+ unmarshal: consumeFloatSlice, -+ merge: mergeFloat32Slice, -+} -+ -+// sizeFloatValue returns the size of wire encoding a float32 value as a Float. -+func sizeFloatValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed32() -+} -+ -+// appendFloatValue encodes a float32 value as a Float. -+func appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) -+ return b, nil -+} -+ -+// consumeFloatValue decodes a float32 value as a Float. -+func consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), out, nil -+} -+ -+var coderFloatValue = valueCoderFuncs{ -+ size: sizeFloatValue, -+ marshal: appendFloatValue, -+ unmarshal: consumeFloatValue, -+ merge: mergeScalarValue, -+} -+ -+// sizeFloatSliceValue returns the size of wire encoding a []float32 value as a repeated Float. -+func sizeFloatSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed32()) -+ return size -+} -+ -+// appendFloatSliceValue encodes a []float32 value as a repeated Float. -+func appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) -+ } -+ return b, nil -+} -+ -+// consumeFloatSliceValue wire decodes a []float32 value as a repeated Float. -+func consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderFloatSliceValue = valueCoderFuncs{ -+ size: sizeFloatSliceValue, -+ marshal: appendFloatSliceValue, -+ unmarshal: consumeFloatSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFloatPackedSliceValue returns the size of wire encoding a []float32 value as a packed repeated Float. -+func sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed32() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFloatPackedSliceValue encodes a []float32 value as a packed repeated Float. -+func appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed32() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) -+ } -+ return b, nil -+} -+ -+var coderFloatPackedSliceValue = valueCoderFuncs{ -+ size: sizeFloatPackedSliceValue, -+ marshal: appendFloatPackedSliceValue, -+ unmarshal: consumeFloatSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSfixed64 returns the size of wire encoding a int64 pointer as a Sfixed64. -+func sizeSfixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendSfixed64 wire encodes a int64 pointer as a Sfixed64. -+func appendSfixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeSfixed64 wire decodes a int64 pointer as a Sfixed64. -+func consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Int64() = int64(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed64 = pointerCoderFuncs{ -+ size: sizeSfixed64, -+ marshal: appendSfixed64, -+ unmarshal: consumeSfixed64, -+ merge: mergeInt64, -+} -+ -+// sizeSfixed64NoZero returns the size of wire encoding a int64 pointer as a Sfixed64. -+// The zero value is not encoded. -+func sizeSfixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Int64() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendSfixed64NoZero wire encodes a int64 pointer as a Sfixed64. -+// The zero value is not encoded. -+func appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Int64() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, uint64(v)) -+ return b, nil -+} -+ -+var coderSfixed64NoZero = pointerCoderFuncs{ -+ size: sizeSfixed64NoZero, -+ marshal: appendSfixed64NoZero, -+ unmarshal: consumeSfixed64, -+ merge: mergeInt64NoZero, -+} -+ -+// sizeSfixed64Ptr returns the size of wire encoding a *int64 pointer as a Sfixed64. -+// It panics if the pointer is nil. -+func sizeSfixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendSfixed64Ptr wire encodes a *int64 pointer as a Sfixed64. -+// It panics if the pointer is nil. -+func appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Int64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, uint64(v)) -+ return b, nil -+} -+ -+// consumeSfixed64Ptr wire decodes a *int64 pointer as a Sfixed64. -+func consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Int64Ptr() -+ if *vp == nil { -+ *vp = new(int64) -+ } -+ **vp = int64(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed64Ptr = pointerCoderFuncs{ -+ size: sizeSfixed64Ptr, -+ marshal: appendSfixed64Ptr, -+ unmarshal: consumeSfixed64Ptr, -+ merge: mergeInt64Ptr, -+} -+ -+// sizeSfixed64Slice returns the size of wire encoding a []int64 pointer as a repeated Sfixed64. -+func sizeSfixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendSfixed64Slice encodes a []int64 pointer as a repeated Sfixed64. -+func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+// consumeSfixed64Slice wire decodes a []int64 pointer as a repeated Sfixed64. -+func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Int64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, int64(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, int64(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderSfixed64Slice = pointerCoderFuncs{ -+ size: sizeSfixed64Slice, -+ marshal: appendSfixed64Slice, -+ unmarshal: consumeSfixed64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeSfixed64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sfixed64. -+func sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed64() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSfixed64PackedSlice encodes a []int64 pointer as a packed repeated Sfixed64. -+func appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Int64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed64(b, uint64(v)) -+ } -+ return b, nil -+} -+ -+var coderSfixed64PackedSlice = pointerCoderFuncs{ -+ size: sizeSfixed64PackedSlice, -+ marshal: appendSfixed64PackedSlice, -+ unmarshal: consumeSfixed64Slice, -+ merge: mergeInt64Slice, -+} -+ -+// sizeSfixed64Value returns the size of wire encoding a int64 value as a Sfixed64. -+func sizeSfixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed64() -+} -+ -+// appendSfixed64Value encodes a int64 value as a Sfixed64. -+func appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, uint64(v.Int())) -+ return b, nil -+} -+ -+// consumeSfixed64Value decodes a int64 value as a Sfixed64. -+func consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfInt64(int64(v)), out, nil -+} -+ -+var coderSfixed64Value = valueCoderFuncs{ -+ size: sizeSfixed64Value, -+ marshal: appendSfixed64Value, -+ unmarshal: consumeSfixed64Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeSfixed64SliceValue returns the size of wire encoding a []int64 value as a repeated Sfixed64. -+func sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendSfixed64SliceValue encodes a []int64 value as a repeated Sfixed64. -+func appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, uint64(v.Int())) -+ } -+ return b, nil -+} -+ -+// consumeSfixed64SliceValue wire decodes a []int64 value as a repeated Sfixed64. -+func consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderSfixed64SliceValue = valueCoderFuncs{ -+ size: sizeSfixed64SliceValue, -+ marshal: appendSfixed64SliceValue, -+ unmarshal: consumeSfixed64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeSfixed64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sfixed64. -+func sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed64() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendSfixed64PackedSliceValue encodes a []int64 value as a packed repeated Sfixed64. -+func appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed64(b, uint64(v.Int())) -+ } -+ return b, nil -+} -+ -+var coderSfixed64PackedSliceValue = valueCoderFuncs{ -+ size: sizeSfixed64PackedSliceValue, -+ marshal: appendSfixed64PackedSliceValue, -+ unmarshal: consumeSfixed64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFixed64 returns the size of wire encoding a uint64 pointer as a Fixed64. -+func sizeFixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendFixed64 wire encodes a uint64 pointer as a Fixed64. -+func appendFixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, v) -+ return b, nil -+} -+ -+// consumeFixed64 wire decodes a uint64 pointer as a Fixed64. -+func consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Uint64() = v -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed64 = pointerCoderFuncs{ -+ size: sizeFixed64, -+ marshal: appendFixed64, -+ unmarshal: consumeFixed64, -+ merge: mergeUint64, -+} -+ -+// sizeFixed64NoZero returns the size of wire encoding a uint64 pointer as a Fixed64. -+// The zero value is not encoded. -+func sizeFixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Uint64() -+ if v == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendFixed64NoZero wire encodes a uint64 pointer as a Fixed64. -+// The zero value is not encoded. -+func appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Uint64() -+ if v == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, v) -+ return b, nil -+} -+ -+var coderFixed64NoZero = pointerCoderFuncs{ -+ size: sizeFixed64NoZero, -+ marshal: appendFixed64NoZero, -+ unmarshal: consumeFixed64, -+ merge: mergeUint64NoZero, -+} -+ -+// sizeFixed64Ptr returns the size of wire encoding a *uint64 pointer as a Fixed64. -+// It panics if the pointer is nil. -+func sizeFixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendFixed64Ptr wire encodes a *uint64 pointer as a Fixed64. -+// It panics if the pointer is nil. -+func appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Uint64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, v) -+ return b, nil -+} -+ -+// consumeFixed64Ptr wire decodes a *uint64 pointer as a Fixed64. -+func consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Uint64Ptr() -+ if *vp == nil { -+ *vp = new(uint64) -+ } -+ **vp = v -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed64Ptr = pointerCoderFuncs{ -+ size: sizeFixed64Ptr, -+ marshal: appendFixed64Ptr, -+ unmarshal: consumeFixed64Ptr, -+ merge: mergeUint64Ptr, -+} -+ -+// sizeFixed64Slice returns the size of wire encoding a []uint64 pointer as a repeated Fixed64. -+func sizeFixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint64Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendFixed64Slice encodes a []uint64 pointer as a repeated Fixed64. -+func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, v) -+ } -+ return b, nil -+} -+ -+// consumeFixed64Slice wire decodes a []uint64 pointer as a repeated Fixed64. -+func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Uint64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, v) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, v) -+ out.n = n -+ return out, nil -+} -+ -+var coderFixed64Slice = pointerCoderFuncs{ -+ size: sizeFixed64Slice, -+ marshal: appendFixed64Slice, -+ unmarshal: consumeFixed64Slice, -+ merge: mergeUint64Slice, -+} -+ -+// sizeFixed64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Fixed64. -+func sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Uint64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed64() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFixed64PackedSlice encodes a []uint64 pointer as a packed repeated Fixed64. -+func appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Uint64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed64(b, v) -+ } -+ return b, nil -+} -+ -+var coderFixed64PackedSlice = pointerCoderFuncs{ -+ size: sizeFixed64PackedSlice, -+ marshal: appendFixed64PackedSlice, -+ unmarshal: consumeFixed64Slice, -+ merge: mergeUint64Slice, -+} -+ -+// sizeFixed64Value returns the size of wire encoding a uint64 value as a Fixed64. -+func sizeFixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed64() -+} -+ -+// appendFixed64Value encodes a uint64 value as a Fixed64. -+func appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, v.Uint()) -+ return b, nil -+} -+ -+// consumeFixed64Value decodes a uint64 value as a Fixed64. -+func consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfUint64(v), out, nil -+} -+ -+var coderFixed64Value = valueCoderFuncs{ -+ size: sizeFixed64Value, -+ marshal: appendFixed64Value, -+ unmarshal: consumeFixed64Value, -+ merge: mergeScalarValue, -+} -+ -+// sizeFixed64SliceValue returns the size of wire encoding a []uint64 value as a repeated Fixed64. -+func sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendFixed64SliceValue encodes a []uint64 value as a repeated Fixed64. -+func appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, v.Uint()) -+ } -+ return b, nil -+} -+ -+// consumeFixed64SliceValue wire decodes a []uint64 value as a repeated Fixed64. -+func consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderFixed64SliceValue = valueCoderFuncs{ -+ size: sizeFixed64SliceValue, -+ marshal: appendFixed64SliceValue, -+ unmarshal: consumeFixed64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeFixed64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Fixed64. -+func sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed64() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendFixed64PackedSliceValue encodes a []uint64 value as a packed repeated Fixed64. -+func appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed64(b, v.Uint()) -+ } -+ return b, nil -+} -+ -+var coderFixed64PackedSliceValue = valueCoderFuncs{ -+ size: sizeFixed64PackedSliceValue, -+ marshal: appendFixed64PackedSliceValue, -+ unmarshal: consumeFixed64SliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeDouble returns the size of wire encoding a float64 pointer as a Double. -+func sizeDouble(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendDouble wire encodes a float64 pointer as a Double. -+func appendDouble(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Float64() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v)) -+ return b, nil -+} -+ -+// consumeDouble wire decodes a float64 pointer as a Double. -+func consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Float64() = math.Float64frombits(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderDouble = pointerCoderFuncs{ -+ size: sizeDouble, -+ marshal: appendDouble, -+ unmarshal: consumeDouble, -+ merge: mergeFloat64, -+} -+ -+// sizeDoubleNoZero returns the size of wire encoding a float64 pointer as a Double. -+// The zero value is not encoded. -+func sizeDoubleNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Float64() -+ if v == 0 && !math.Signbit(float64(v)) { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendDoubleNoZero wire encodes a float64 pointer as a Double. -+// The zero value is not encoded. -+func appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Float64() -+ if v == 0 && !math.Signbit(float64(v)) { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v)) -+ return b, nil -+} -+ -+var coderDoubleNoZero = pointerCoderFuncs{ -+ size: sizeDoubleNoZero, -+ marshal: appendDoubleNoZero, -+ unmarshal: consumeDouble, -+ merge: mergeFloat64NoZero, -+} -+ -+// sizeDoublePtr returns the size of wire encoding a *float64 pointer as a Double. -+// It panics if the pointer is nil. -+func sizeDoublePtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return f.tagsize + protowire.SizeFixed64() -+} -+ -+// appendDoublePtr wire encodes a *float64 pointer as a Double. -+// It panics if the pointer is nil. -+func appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.Float64Ptr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v)) -+ return b, nil -+} -+ -+// consumeDoublePtr wire decodes a *float64 pointer as a Double. -+func consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.Float64Ptr() -+ if *vp == nil { -+ *vp = new(float64) -+ } -+ **vp = math.Float64frombits(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderDoublePtr = pointerCoderFuncs{ -+ size: sizeDoublePtr, -+ marshal: appendDoublePtr, -+ unmarshal: consumeDoublePtr, -+ merge: mergeFloat64Ptr, -+} -+ -+// sizeDoubleSlice returns the size of wire encoding a []float64 pointer as a repeated Double. -+func sizeDoubleSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Float64Slice() -+ size = len(s) * (f.tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendDoubleSlice encodes a []float64 pointer as a repeated Double. -+func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Float64Slice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v)) -+ } -+ return b, nil -+} -+ -+// consumeDoubleSlice wire decodes a []float64 pointer as a repeated Double. -+func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.Float64Slice() -+ if wtyp == protowire.BytesType { -+ s := *sp -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ s = append(s, math.Float64frombits(v)) -+ b = b[n:] -+ } -+ *sp = s -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, math.Float64frombits(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderDoubleSlice = pointerCoderFuncs{ -+ size: sizeDoubleSlice, -+ marshal: appendDoubleSlice, -+ unmarshal: consumeDoubleSlice, -+ merge: mergeFloat64Slice, -+} -+ -+// sizeDoublePackedSlice returns the size of wire encoding a []float64 pointer as a packed repeated Double. -+func sizeDoublePackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.Float64Slice() -+ if len(s) == 0 { -+ return 0 -+ } -+ n := len(s) * protowire.SizeFixed64() -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+// appendDoublePackedSlice encodes a []float64 pointer as a packed repeated Double. -+func appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.Float64Slice() -+ if len(s) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := len(s) * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for _, v := range s { -+ b = protowire.AppendFixed64(b, math.Float64bits(v)) -+ } -+ return b, nil -+} -+ -+var coderDoublePackedSlice = pointerCoderFuncs{ -+ size: sizeDoublePackedSlice, -+ marshal: appendDoublePackedSlice, -+ unmarshal: consumeDoubleSlice, -+ merge: mergeFloat64Slice, -+} -+ -+// sizeDoubleValue returns the size of wire encoding a float64 value as a Double. -+func sizeDoubleValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeFixed64() -+} -+ -+// appendDoubleValue encodes a float64 value as a Double. -+func appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) -+ return b, nil -+} -+ -+// consumeDoubleValue decodes a float64 value as a Double. -+func consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfFloat64(math.Float64frombits(v)), out, nil -+} -+ -+var coderDoubleValue = valueCoderFuncs{ -+ size: sizeDoubleValue, -+ marshal: appendDoubleValue, -+ unmarshal: consumeDoubleValue, -+ merge: mergeScalarValue, -+} -+ -+// sizeDoubleSliceValue returns the size of wire encoding a []float64 value as a repeated Double. -+func sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ size = list.Len() * (tagsize + protowire.SizeFixed64()) -+ return size -+} -+ -+// appendDoubleSliceValue encodes a []float64 value as a repeated Double. -+func appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) -+ } -+ return b, nil -+} -+ -+// consumeDoubleSliceValue wire decodes a []float64 value as a repeated Double. -+func consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) -+ b = b[n:] -+ } -+ out.n = n -+ return listv, out, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderDoubleSliceValue = valueCoderFuncs{ -+ size: sizeDoubleSliceValue, -+ marshal: appendDoubleSliceValue, -+ unmarshal: consumeDoubleSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeDoublePackedSliceValue returns the size of wire encoding a []float64 value as a packed repeated Double. -+func sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := llen * protowire.SizeFixed64() -+ return tagsize + protowire.SizeBytes(n) -+} -+ -+// appendDoublePackedSliceValue encodes a []float64 value as a packed repeated Double. -+func appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ llen := list.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, wiretag) -+ n := llen * protowire.SizeFixed64() -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) -+ } -+ return b, nil -+} -+ -+var coderDoublePackedSliceValue = valueCoderFuncs{ -+ size: sizeDoublePackedSliceValue, -+ marshal: appendDoublePackedSliceValue, -+ unmarshal: consumeDoubleSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeString returns the size of wire encoding a string pointer as a String. -+func sizeString(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.String() -+ return f.tagsize + protowire.SizeBytes(len(v)) -+} -+ -+// appendString wire encodes a string pointer as a String. -+func appendString(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.String() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ return b, nil -+} -+ -+// consumeString wire decodes a string pointer as a String. -+func consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.String() = string(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderString = pointerCoderFuncs{ -+ size: sizeString, -+ marshal: appendString, -+ unmarshal: consumeString, -+ merge: mergeString, -+} -+ -+// appendStringValidateUTF8 wire encodes a string pointer as a String. -+func appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.String() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ if !utf8.ValidString(v) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+// consumeStringValidateUTF8 wire decodes a string pointer as a String. -+func consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ *p.String() = string(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderStringValidateUTF8 = pointerCoderFuncs{ -+ size: sizeString, -+ marshal: appendStringValidateUTF8, -+ unmarshal: consumeStringValidateUTF8, -+ merge: mergeString, -+} -+ -+// sizeStringNoZero returns the size of wire encoding a string pointer as a String. -+// The zero value is not encoded. -+func sizeStringNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.String() -+ if len(v) == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeBytes(len(v)) -+} -+ -+// appendStringNoZero wire encodes a string pointer as a String. -+// The zero value is not encoded. -+func appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.String() -+ if len(v) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ return b, nil -+} -+ -+var coderStringNoZero = pointerCoderFuncs{ -+ size: sizeStringNoZero, -+ marshal: appendStringNoZero, -+ unmarshal: consumeString, -+ merge: mergeStringNoZero, -+} -+ -+// appendStringNoZeroValidateUTF8 wire encodes a string pointer as a String. -+// The zero value is not encoded. -+func appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.String() -+ if len(v) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ if !utf8.ValidString(v) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+var coderStringNoZeroValidateUTF8 = pointerCoderFuncs{ -+ size: sizeStringNoZero, -+ marshal: appendStringNoZeroValidateUTF8, -+ unmarshal: consumeStringValidateUTF8, -+ merge: mergeStringNoZero, -+} -+ -+// sizeStringPtr returns the size of wire encoding a *string pointer as a String. -+// It panics if the pointer is nil. -+func sizeStringPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := **p.StringPtr() -+ return f.tagsize + protowire.SizeBytes(len(v)) -+} -+ -+// appendStringPtr wire encodes a *string pointer as a String. -+// It panics if the pointer is nil. -+func appendStringPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.StringPtr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ return b, nil -+} -+ -+// consumeStringPtr wire decodes a *string pointer as a String. -+func consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ vp := p.StringPtr() -+ if *vp == nil { -+ *vp = new(string) -+ } -+ **vp = string(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderStringPtr = pointerCoderFuncs{ -+ size: sizeStringPtr, -+ marshal: appendStringPtr, -+ unmarshal: consumeStringPtr, -+ merge: mergeStringPtr, -+} -+ -+// appendStringPtrValidateUTF8 wire encodes a *string pointer as a String. -+// It panics if the pointer is nil. -+func appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := **p.StringPtr() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ if !utf8.ValidString(v) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+// consumeStringPtrValidateUTF8 wire decodes a *string pointer as a String. -+func consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ vp := p.StringPtr() -+ if *vp == nil { -+ *vp = new(string) -+ } -+ **vp = string(v) -+ out.n = n -+ return out, nil -+} -+ -+var coderStringPtrValidateUTF8 = pointerCoderFuncs{ -+ size: sizeStringPtr, -+ marshal: appendStringPtrValidateUTF8, -+ unmarshal: consumeStringPtrValidateUTF8, -+ merge: mergeStringPtr, -+} -+ -+// sizeStringSlice returns the size of wire encoding a []string pointer as a repeated String. -+func sizeStringSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.StringSlice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeBytes(len(v)) -+ } -+ return size -+} -+ -+// appendStringSlice encodes a []string pointer as a repeated String. -+func appendStringSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.StringSlice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ } -+ return b, nil -+} -+ -+// consumeStringSlice wire decodes a []string pointer as a repeated String. -+func consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.StringSlice() -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, string(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderStringSlice = pointerCoderFuncs{ -+ size: sizeStringSlice, -+ marshal: appendStringSlice, -+ unmarshal: consumeStringSlice, -+ merge: mergeStringSlice, -+} -+ -+// appendStringSliceValidateUTF8 encodes a []string pointer as a repeated String. -+func appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.StringSlice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendString(b, v) -+ if !utf8.ValidString(v) { -+ return b, errInvalidUTF8{} -+ } -+ } -+ return b, nil -+} -+ -+// consumeStringSliceValidateUTF8 wire decodes a []string pointer as a repeated String. -+func consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ sp := p.StringSlice() -+ *sp = append(*sp, string(v)) -+ out.n = n -+ return out, nil -+} -+ -+var coderStringSliceValidateUTF8 = pointerCoderFuncs{ -+ size: sizeStringSlice, -+ marshal: appendStringSliceValidateUTF8, -+ unmarshal: consumeStringSliceValidateUTF8, -+ merge: mergeStringSlice, -+} -+ -+// sizeStringValue returns the size of wire encoding a string value as a String. -+func sizeStringValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeBytes(len(v.String())) -+} -+ -+// appendStringValue encodes a string value as a String. -+func appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendString(b, v.String()) -+ return b, nil -+} -+ -+// consumeStringValue decodes a string value as a String. -+func consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfString(string(v)), out, nil -+} -+ -+var coderStringValue = valueCoderFuncs{ -+ size: sizeStringValue, -+ marshal: appendStringValue, -+ unmarshal: consumeStringValue, -+ merge: mergeScalarValue, -+} -+ -+// appendStringValueValidateUTF8 encodes a string value as a String. -+func appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendString(b, v.String()) -+ if !utf8.ValidString(v.String()) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+// consumeStringValueValidateUTF8 decodes a string value as a String. -+func consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return protoreflect.Value{}, out, errInvalidUTF8{} -+ } -+ out.n = n -+ return protoreflect.ValueOfString(string(v)), out, nil -+} -+ -+var coderStringValueValidateUTF8 = valueCoderFuncs{ -+ size: sizeStringValue, -+ marshal: appendStringValueValidateUTF8, -+ unmarshal: consumeStringValueValidateUTF8, -+ merge: mergeScalarValue, -+} -+ -+// sizeStringSliceValue returns the size of wire encoding a []string value as a repeated String. -+func sizeStringSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeBytes(len(v.String())) -+ } -+ return size -+} -+ -+// appendStringSliceValue encodes a []string value as a repeated String. -+func appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendString(b, v.String()) -+ } -+ return b, nil -+} -+ -+// consumeStringSliceValue wire decodes a []string value as a repeated String. -+func consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfString(string(v))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderStringSliceValue = valueCoderFuncs{ -+ size: sizeStringSliceValue, -+ marshal: appendStringSliceValue, -+ unmarshal: consumeStringSliceValue, -+ merge: mergeListValue, -+} -+ -+// sizeBytes returns the size of wire encoding a []byte pointer as a Bytes. -+func sizeBytes(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Bytes() -+ return f.tagsize + protowire.SizeBytes(len(v)) -+} -+ -+// appendBytes wire encodes a []byte pointer as a Bytes. -+func appendBytes(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bytes() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ return b, nil -+} -+ -+// consumeBytes wire decodes a []byte pointer as a Bytes. -+func consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Bytes() = append(emptyBuf[:], v...) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytes = pointerCoderFuncs{ -+ size: sizeBytes, -+ marshal: appendBytes, -+ unmarshal: consumeBytes, -+ merge: mergeBytes, -+} -+ -+// appendBytesValidateUTF8 wire encodes a []byte pointer as a Bytes. -+func appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bytes() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ if !utf8.Valid(v) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+// consumeBytesValidateUTF8 wire decodes a []byte pointer as a Bytes. -+func consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ *p.Bytes() = append(emptyBuf[:], v...) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytesValidateUTF8 = pointerCoderFuncs{ -+ size: sizeBytes, -+ marshal: appendBytesValidateUTF8, -+ unmarshal: consumeBytesValidateUTF8, -+ merge: mergeBytes, -+} -+ -+// sizeBytesNoZero returns the size of wire encoding a []byte pointer as a Bytes. -+// The zero value is not encoded. -+func sizeBytesNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ v := *p.Bytes() -+ if len(v) == 0 { -+ return 0 -+ } -+ return f.tagsize + protowire.SizeBytes(len(v)) -+} -+ -+// appendBytesNoZero wire encodes a []byte pointer as a Bytes. -+// The zero value is not encoded. -+func appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bytes() -+ if len(v) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ return b, nil -+} -+ -+// consumeBytesNoZero wire decodes a []byte pointer as a Bytes. -+// The zero value is not decoded. -+func consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *p.Bytes() = append(([]byte)(nil), v...) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytesNoZero = pointerCoderFuncs{ -+ size: sizeBytesNoZero, -+ marshal: appendBytesNoZero, -+ unmarshal: consumeBytesNoZero, -+ merge: mergeBytesNoZero, -+} -+ -+// appendBytesNoZeroValidateUTF8 wire encodes a []byte pointer as a Bytes. -+// The zero value is not encoded. -+func appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := *p.Bytes() -+ if len(v) == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ if !utf8.Valid(v) { -+ return b, errInvalidUTF8{} -+ } -+ return b, nil -+} -+ -+// consumeBytesNoZeroValidateUTF8 wire decodes a []byte pointer as a Bytes. -+func consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ *p.Bytes() = append(([]byte)(nil), v...) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytesNoZeroValidateUTF8 = pointerCoderFuncs{ -+ size: sizeBytesNoZero, -+ marshal: appendBytesNoZeroValidateUTF8, -+ unmarshal: consumeBytesNoZeroValidateUTF8, -+ merge: mergeBytesNoZero, -+} -+ -+// sizeBytesSlice returns the size of wire encoding a [][]byte pointer as a repeated Bytes. -+func sizeBytesSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := *p.BytesSlice() -+ for _, v := range s { -+ size += f.tagsize + protowire.SizeBytes(len(v)) -+ } -+ return size -+} -+ -+// appendBytesSlice encodes a [][]byte pointer as a repeated Bytes. -+func appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.BytesSlice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ } -+ return b, nil -+} -+ -+// consumeBytesSlice wire decodes a [][]byte pointer as a repeated Bytes. -+func consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ sp := p.BytesSlice() -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ *sp = append(*sp, append(emptyBuf[:], v...)) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytesSlice = pointerCoderFuncs{ -+ size: sizeBytesSlice, -+ marshal: appendBytesSlice, -+ unmarshal: consumeBytesSlice, -+ merge: mergeBytesSlice, -+} -+ -+// appendBytesSliceValidateUTF8 encodes a [][]byte pointer as a repeated Bytes. -+func appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := *p.BytesSlice() -+ for _, v := range s { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendBytes(b, v) -+ if !utf8.Valid(v) { -+ return b, errInvalidUTF8{} -+ } -+ } -+ return b, nil -+} -+ -+// consumeBytesSliceValidateUTF8 wire decodes a [][]byte pointer as a repeated Bytes. -+func consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !utf8.Valid(v) { -+ return out, errInvalidUTF8{} -+ } -+ sp := p.BytesSlice() -+ *sp = append(*sp, append(emptyBuf[:], v...)) -+ out.n = n -+ return out, nil -+} -+ -+var coderBytesSliceValidateUTF8 = pointerCoderFuncs{ -+ size: sizeBytesSlice, -+ marshal: appendBytesSliceValidateUTF8, -+ unmarshal: consumeBytesSliceValidateUTF8, -+ merge: mergeBytesSlice, -+} -+ -+// sizeBytesValue returns the size of wire encoding a []byte value as a Bytes. -+func sizeBytesValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { -+ return tagsize + protowire.SizeBytes(len(v.Bytes())) -+} -+ -+// appendBytesValue encodes a []byte value as a Bytes. -+func appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendBytes(b, v.Bytes()) -+ return b, nil -+} -+ -+// consumeBytesValue decodes a []byte value as a Bytes. -+func consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ out.n = n -+ return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), out, nil -+} -+ -+var coderBytesValue = valueCoderFuncs{ -+ size: sizeBytesValue, -+ marshal: appendBytesValue, -+ unmarshal: consumeBytesValue, -+ merge: mergeBytesValue, -+} -+ -+// sizeBytesSliceValue returns the size of wire encoding a [][]byte value as a repeated Bytes. -+func sizeBytesSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ size += tagsize + protowire.SizeBytes(len(v.Bytes())) -+ } -+ return size -+} -+ -+// appendBytesSliceValue encodes a [][]byte value as a repeated Bytes. -+func appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { -+ list := listv.List() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ v := list.Get(i) -+ b = protowire.AppendVarint(b, wiretag) -+ b = protowire.AppendBytes(b, v.Bytes()) -+ } -+ return b, nil -+} -+ -+// consumeBytesSliceValue wire decodes a [][]byte value as a repeated Bytes. -+func consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { -+ list := listv.List() -+ if wtyp != protowire.BytesType { -+ return protoreflect.Value{}, out, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return protoreflect.Value{}, out, errDecode -+ } -+ list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) -+ out.n = n -+ return listv, out, nil -+} -+ -+var coderBytesSliceValue = valueCoderFuncs{ -+ size: sizeBytesSliceValue, -+ marshal: appendBytesSliceValue, -+ unmarshal: consumeBytesSliceValue, -+ merge: mergeBytesListValue, -+} -+ -+// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. -+var emptyBuf [0]byte -+ -+var wireTypes = map[protoreflect.Kind]protowire.Type{ -+ protoreflect.BoolKind: protowire.VarintType, -+ protoreflect.EnumKind: protowire.VarintType, -+ protoreflect.Int32Kind: protowire.VarintType, -+ protoreflect.Sint32Kind: protowire.VarintType, -+ protoreflect.Uint32Kind: protowire.VarintType, -+ protoreflect.Int64Kind: protowire.VarintType, -+ protoreflect.Sint64Kind: protowire.VarintType, -+ protoreflect.Uint64Kind: protowire.VarintType, -+ protoreflect.Sfixed32Kind: protowire.Fixed32Type, -+ protoreflect.Fixed32Kind: protowire.Fixed32Type, -+ protoreflect.FloatKind: protowire.Fixed32Type, -+ protoreflect.Sfixed64Kind: protowire.Fixed64Type, -+ protoreflect.Fixed64Kind: protowire.Fixed64Type, -+ protoreflect.DoubleKind: protowire.Fixed64Type, -+ protoreflect.StringKind: protowire.BytesType, -+ protoreflect.BytesKind: protowire.BytesType, -+ protoreflect.MessageKind: protowire.BytesType, -+ protoreflect.GroupKind: protowire.StartGroupType, -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go -new file mode 100644 -index 00000000..111b9d16 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go -@@ -0,0 +1,388 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "reflect" -+ "sort" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type mapInfo struct { -+ goType reflect.Type -+ keyWiretag uint64 -+ valWiretag uint64 -+ keyFuncs valueCoderFuncs -+ valFuncs valueCoderFuncs -+ keyZero protoreflect.Value -+ keyKind protoreflect.Kind -+ conv *mapConverter -+} -+ -+func encoderFuncsForMap(fd protoreflect.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) { -+ // TODO: Consider generating specialized map coders. -+ keyField := fd.MapKey() -+ valField := fd.MapValue() -+ keyWiretag := protowire.EncodeTag(1, wireTypes[keyField.Kind()]) -+ valWiretag := protowire.EncodeTag(2, wireTypes[valField.Kind()]) -+ keyFuncs := encoderFuncsForValue(keyField) -+ valFuncs := encoderFuncsForValue(valField) -+ conv := newMapConverter(ft, fd) -+ -+ mapi := &mapInfo{ -+ goType: ft, -+ keyWiretag: keyWiretag, -+ valWiretag: valWiretag, -+ keyFuncs: keyFuncs, -+ valFuncs: valFuncs, -+ keyZero: keyField.Default(), -+ keyKind: keyField.Kind(), -+ conv: conv, -+ } -+ if valField.Kind() == protoreflect.MessageKind { -+ valueMessage = getMessageInfo(ft.Elem()) -+ } -+ -+ funcs = pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return sizeMap(p.AsValueOf(ft).Elem(), mapi, f, opts) -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ return appendMap(b, p.AsValueOf(ft).Elem(), mapi, f, opts) -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ mp := p.AsValueOf(ft) -+ if mp.Elem().IsNil() { -+ mp.Elem().Set(reflect.MakeMap(mapi.goType)) -+ } -+ if f.mi == nil { -+ return consumeMap(b, mp.Elem(), wtyp, mapi, f, opts) -+ } else { -+ return consumeMapOfMessage(b, mp.Elem(), wtyp, mapi, f, opts) -+ } -+ }, -+ } -+ switch valField.Kind() { -+ case protoreflect.MessageKind: -+ funcs.merge = mergeMapOfMessage -+ case protoreflect.BytesKind: -+ funcs.merge = mergeMapOfBytes -+ default: -+ funcs.merge = mergeMap -+ } -+ if valFuncs.isInit != nil { -+ funcs.isInit = func(p pointer, f *coderFieldInfo) error { -+ return isInitMap(p.AsValueOf(ft).Elem(), mapi, f) -+ } -+ } -+ return valueMessage, funcs -+} -+ -+const ( -+ mapKeyTagSize = 1 // field 1, tag size 1. -+ mapValTagSize = 1 // field 2, tag size 2. -+) -+ -+func sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) int { -+ if mapv.Len() == 0 { -+ return 0 -+ } -+ n := 0 -+ iter := mapRange(mapv) -+ for iter.Next() { -+ key := mapi.conv.keyConv.PBValueOf(iter.Key()).MapKey() -+ keySize := mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) -+ var valSize int -+ value := mapi.conv.valConv.PBValueOf(iter.Value()) -+ if f.mi == nil { -+ valSize = mapi.valFuncs.size(value, mapValTagSize, opts) -+ } else { -+ p := pointerOfValue(iter.Value()) -+ valSize += mapValTagSize -+ valSize += protowire.SizeBytes(f.mi.sizePointer(p, opts)) -+ } -+ n += f.tagsize + protowire.SizeBytes(keySize+valSize) -+ } -+ return n -+} -+ -+func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ var ( -+ key = mapi.keyZero -+ val = mapi.conv.valConv.New() -+ ) -+ for len(b) > 0 { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if num > protowire.MaxValidNumber { -+ return out, errDecode -+ } -+ b = b[n:] -+ err := errUnknown -+ switch num { -+ case genid.MapEntry_Key_field_number: -+ var v protoreflect.Value -+ var o unmarshalOutput -+ v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) -+ if err != nil { -+ break -+ } -+ key = v -+ n = o.n -+ case genid.MapEntry_Value_field_number: -+ var v protoreflect.Value -+ var o unmarshalOutput -+ v, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts) -+ if err != nil { -+ break -+ } -+ val = v -+ n = o.n -+ } -+ if err == errUnknown { -+ n = protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return out, errDecode -+ } -+ } else if err != nil { -+ return out, err -+ } -+ b = b[n:] -+ } -+ mapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), mapi.conv.valConv.GoValueOf(val)) -+ out.n = n -+ return out, nil -+} -+ -+func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.BytesType { -+ return out, errUnknown -+ } -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ var ( -+ key = mapi.keyZero -+ val = reflect.New(f.mi.GoReflectType.Elem()) -+ ) -+ for len(b) > 0 { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if num > protowire.MaxValidNumber { -+ return out, errDecode -+ } -+ b = b[n:] -+ err := errUnknown -+ switch num { -+ case 1: -+ var v protoreflect.Value -+ var o unmarshalOutput -+ v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) -+ if err != nil { -+ break -+ } -+ key = v -+ n = o.n -+ case 2: -+ if wtyp != protowire.BytesType { -+ break -+ } -+ var v []byte -+ v, n = protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ var o unmarshalOutput -+ o, err = f.mi.unmarshalPointer(v, pointerOfValue(val), 0, opts) -+ if o.initialized { -+ // Consider this map item initialized so long as we see -+ // an initialized value. -+ out.initialized = true -+ } -+ } -+ if err == errUnknown { -+ n = protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return out, errDecode -+ } -+ } else if err != nil { -+ return out, err -+ } -+ b = b[n:] -+ } -+ mapv.SetMapIndex(mapi.conv.keyConv.GoValueOf(key), val) -+ out.n = n -+ return out, nil -+} -+ -+func appendMapItem(b []byte, keyrv, valrv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ if f.mi == nil { -+ key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() -+ val := mapi.conv.valConv.PBValueOf(valrv) -+ size := 0 -+ size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) -+ size += mapi.valFuncs.size(val, mapValTagSize, opts) -+ b = protowire.AppendVarint(b, uint64(size)) -+ b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) -+ if err != nil { -+ return nil, err -+ } -+ return mapi.valFuncs.marshal(b, val, mapi.valWiretag, opts) -+ } else { -+ key := mapi.conv.keyConv.PBValueOf(keyrv).MapKey() -+ val := pointerOfValue(valrv) -+ valSize := f.mi.sizePointer(val, opts) -+ size := 0 -+ size += mapi.keyFuncs.size(key.Value(), mapKeyTagSize, opts) -+ size += mapValTagSize + protowire.SizeBytes(valSize) -+ b = protowire.AppendVarint(b, uint64(size)) -+ b, err := mapi.keyFuncs.marshal(b, key.Value(), mapi.keyWiretag, opts) -+ if err != nil { -+ return nil, err -+ } -+ b = protowire.AppendVarint(b, mapi.valWiretag) -+ b = protowire.AppendVarint(b, uint64(valSize)) -+ return f.mi.marshalAppendPointer(b, val, opts) -+ } -+} -+ -+func appendMap(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ if mapv.Len() == 0 { -+ return b, nil -+ } -+ if opts.Deterministic() { -+ return appendMapDeterministic(b, mapv, mapi, f, opts) -+ } -+ iter := mapRange(mapv) -+ for iter.Next() { -+ var err error -+ b = protowire.AppendVarint(b, f.wiretag) -+ b, err = appendMapItem(b, iter.Key(), iter.Value(), mapi, f, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func appendMapDeterministic(b []byte, mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ keys := mapv.MapKeys() -+ sort.Slice(keys, func(i, j int) bool { -+ switch keys[i].Kind() { -+ case reflect.Bool: -+ return !keys[i].Bool() && keys[j].Bool() -+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: -+ return keys[i].Int() < keys[j].Int() -+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: -+ return keys[i].Uint() < keys[j].Uint() -+ case reflect.Float32, reflect.Float64: -+ return keys[i].Float() < keys[j].Float() -+ case reflect.String: -+ return keys[i].String() < keys[j].String() -+ default: -+ panic("invalid kind: " + keys[i].Kind().String()) -+ } -+ }) -+ for _, key := range keys { -+ var err error -+ b = protowire.AppendVarint(b, f.wiretag) -+ b, err = appendMapItem(b, key, mapv.MapIndex(key), mapi, f, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func isInitMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo) error { -+ if mi := f.mi; mi != nil { -+ mi.init() -+ if !mi.needsInitCheck { -+ return nil -+ } -+ iter := mapRange(mapv) -+ for iter.Next() { -+ val := pointerOfValue(iter.Value()) -+ if err := mi.checkInitializedPointer(val); err != nil { -+ return err -+ } -+ } -+ } else { -+ iter := mapRange(mapv) -+ for iter.Next() { -+ val := mapi.conv.valConv.PBValueOf(iter.Value()) -+ if err := mapi.valFuncs.isInit(val); err != nil { -+ return err -+ } -+ } -+ } -+ return nil -+} -+ -+func mergeMap(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ dstm := dst.AsValueOf(f.ft).Elem() -+ srcm := src.AsValueOf(f.ft).Elem() -+ if srcm.Len() == 0 { -+ return -+ } -+ if dstm.IsNil() { -+ dstm.Set(reflect.MakeMap(f.ft)) -+ } -+ iter := mapRange(srcm) -+ for iter.Next() { -+ dstm.SetMapIndex(iter.Key(), iter.Value()) -+ } -+} -+ -+func mergeMapOfBytes(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ dstm := dst.AsValueOf(f.ft).Elem() -+ srcm := src.AsValueOf(f.ft).Elem() -+ if srcm.Len() == 0 { -+ return -+ } -+ if dstm.IsNil() { -+ dstm.Set(reflect.MakeMap(f.ft)) -+ } -+ iter := mapRange(srcm) -+ for iter.Next() { -+ dstm.SetMapIndex(iter.Key(), reflect.ValueOf(append(emptyBuf[:], iter.Value().Bytes()...))) -+ } -+} -+ -+func mergeMapOfMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ dstm := dst.AsValueOf(f.ft).Elem() -+ srcm := src.AsValueOf(f.ft).Elem() -+ if srcm.Len() == 0 { -+ return -+ } -+ if dstm.IsNil() { -+ dstm.Set(reflect.MakeMap(f.ft)) -+ } -+ iter := mapRange(srcm) -+ for iter.Next() { -+ val := reflect.New(f.ft.Elem().Elem()) -+ if f.mi != nil { -+ f.mi.mergePointer(pointerOfValue(val), pointerOfValue(iter.Value()), opts) -+ } else { -+ opts.Merge(asMessage(val), asMessage(iter.Value())) -+ } -+ dstm.SetMapIndex(iter.Key(), val) -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go -new file mode 100644 -index 00000000..4b15493f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go -@@ -0,0 +1,38 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !go1.12 -+// +build !go1.12 -+ -+package impl -+ -+import "reflect" -+ -+type mapIter struct { -+ v reflect.Value -+ keys []reflect.Value -+} -+ -+// mapRange provides a less-efficient equivalent to -+// the Go 1.12 reflect.Value.MapRange method. -+func mapRange(v reflect.Value) *mapIter { -+ return &mapIter{v: v} -+} -+ -+func (i *mapIter) Next() bool { -+ if i.keys == nil { -+ i.keys = i.v.MapKeys() -+ } else { -+ i.keys = i.keys[1:] -+ } -+ return len(i.keys) > 0 -+} -+ -+func (i *mapIter) Key() reflect.Value { -+ return i.keys[0] -+} -+ -+func (i *mapIter) Value() reflect.Value { -+ return i.v.MapIndex(i.keys[0]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go -new file mode 100644 -index 00000000..0b31b66e ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go -@@ -0,0 +1,12 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build go1.12 -+// +build go1.12 -+ -+package impl -+ -+import "reflect" -+ -+func mapRange(v reflect.Value) *reflect.MapIter { return v.MapRange() } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_message.go b/vendor/google.golang.org/protobuf/internal/impl/codec_message.go -new file mode 100644 -index 00000000..6b2fdbb7 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_message.go -@@ -0,0 +1,217 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "sort" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/order" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// coderMessageInfo contains per-message information used by the fast-path functions. -+// This is a different type from MessageInfo to keep MessageInfo as general-purpose as -+// possible. -+type coderMessageInfo struct { -+ methods protoiface.Methods -+ -+ orderedCoderFields []*coderFieldInfo -+ denseCoderFields []*coderFieldInfo -+ coderFields map[protowire.Number]*coderFieldInfo -+ sizecacheOffset offset -+ unknownOffset offset -+ unknownPtrKind bool -+ extensionOffset offset -+ needsInitCheck bool -+ isMessageSet bool -+ numRequiredFields uint8 -+} -+ -+type coderFieldInfo struct { -+ funcs pointerCoderFuncs // fast-path per-field functions -+ mi *MessageInfo // field's message -+ ft reflect.Type -+ validation validationInfo // information used by message validation -+ num protoreflect.FieldNumber // field number -+ offset offset // struct field offset -+ wiretag uint64 // field tag (number + wire type) -+ tagsize int // size of the varint-encoded tag -+ isPointer bool // true if IsNil may be called on the struct field -+ isRequired bool // true if field is required -+} -+ -+func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { -+ mi.sizecacheOffset = invalidOffset -+ mi.unknownOffset = invalidOffset -+ mi.extensionOffset = invalidOffset -+ -+ if si.sizecacheOffset.IsValid() && si.sizecacheType == sizecacheType { -+ mi.sizecacheOffset = si.sizecacheOffset -+ } -+ if si.unknownOffset.IsValid() && (si.unknownType == unknownFieldsAType || si.unknownType == unknownFieldsBType) { -+ mi.unknownOffset = si.unknownOffset -+ mi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr -+ } -+ if si.extensionOffset.IsValid() && si.extensionType == extensionFieldsType { -+ mi.extensionOffset = si.extensionOffset -+ } -+ -+ mi.coderFields = make(map[protowire.Number]*coderFieldInfo) -+ fields := mi.Desc.Fields() -+ preallocFields := make([]coderFieldInfo, fields.Len()) -+ for i := 0; i < fields.Len(); i++ { -+ fd := fields.Get(i) -+ -+ fs := si.fieldsByNumber[fd.Number()] -+ isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() -+ if isOneof { -+ fs = si.oneofsByName[fd.ContainingOneof().Name()] -+ } -+ ft := fs.Type -+ var wiretag uint64 -+ if !fd.IsPacked() { -+ wiretag = protowire.EncodeTag(fd.Number(), wireTypes[fd.Kind()]) -+ } else { -+ wiretag = protowire.EncodeTag(fd.Number(), protowire.BytesType) -+ } -+ var fieldOffset offset -+ var funcs pointerCoderFuncs -+ var childMessage *MessageInfo -+ switch { -+ case ft == nil: -+ // This never occurs for generated message types. -+ // It implies that a hand-crafted type has missing Go fields -+ // for specific protobuf message fields. -+ funcs = pointerCoderFuncs{ -+ size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { -+ return 0 -+ }, -+ marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ return nil, nil -+ }, -+ unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ isInit: func(p pointer, f *coderFieldInfo) error { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ } -+ case isOneof: -+ fieldOffset = offsetOf(fs, mi.Exporter) -+ case fd.IsWeak(): -+ fieldOffset = si.weakOffset -+ funcs = makeWeakMessageFieldCoder(fd) -+ default: -+ fieldOffset = offsetOf(fs, mi.Exporter) -+ childMessage, funcs = fieldCoder(fd, ft) -+ } -+ cf := &preallocFields[i] -+ *cf = coderFieldInfo{ -+ num: fd.Number(), -+ offset: fieldOffset, -+ wiretag: wiretag, -+ ft: ft, -+ tagsize: protowire.SizeVarint(wiretag), -+ funcs: funcs, -+ mi: childMessage, -+ validation: newFieldValidationInfo(mi, si, fd, ft), -+ isPointer: fd.Cardinality() == protoreflect.Repeated || fd.HasPresence(), -+ isRequired: fd.Cardinality() == protoreflect.Required, -+ } -+ mi.orderedCoderFields = append(mi.orderedCoderFields, cf) -+ mi.coderFields[cf.num] = cf -+ } -+ for i, oneofs := 0, mi.Desc.Oneofs(); i < oneofs.Len(); i++ { -+ if od := oneofs.Get(i); !od.IsSynthetic() { -+ mi.initOneofFieldCoders(od, si) -+ } -+ } -+ if messageset.IsMessageSet(mi.Desc) { -+ if !mi.extensionOffset.IsValid() { -+ panic(fmt.Sprintf("%v: MessageSet with no extensions field", mi.Desc.FullName())) -+ } -+ if !mi.unknownOffset.IsValid() { -+ panic(fmt.Sprintf("%v: MessageSet with no unknown field", mi.Desc.FullName())) -+ } -+ mi.isMessageSet = true -+ } -+ sort.Slice(mi.orderedCoderFields, func(i, j int) bool { -+ return mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num -+ }) -+ -+ var maxDense protoreflect.FieldNumber -+ for _, cf := range mi.orderedCoderFields { -+ if cf.num >= 16 && cf.num >= 2*maxDense { -+ break -+ } -+ maxDense = cf.num -+ } -+ mi.denseCoderFields = make([]*coderFieldInfo, maxDense+1) -+ for _, cf := range mi.orderedCoderFields { -+ if int(cf.num) >= len(mi.denseCoderFields) { -+ break -+ } -+ mi.denseCoderFields[cf.num] = cf -+ } -+ -+ // To preserve compatibility with historic wire output, marshal oneofs last. -+ if mi.Desc.Oneofs().Len() > 0 { -+ sort.Slice(mi.orderedCoderFields, func(i, j int) bool { -+ fi := fields.ByNumber(mi.orderedCoderFields[i].num) -+ fj := fields.ByNumber(mi.orderedCoderFields[j].num) -+ return order.LegacyFieldOrder(fi, fj) -+ }) -+ } -+ -+ mi.needsInitCheck = needsInitCheck(mi.Desc) -+ if mi.methods.Marshal == nil && mi.methods.Size == nil { -+ mi.methods.Flags |= protoiface.SupportMarshalDeterministic -+ mi.methods.Marshal = mi.marshal -+ mi.methods.Size = mi.size -+ } -+ if mi.methods.Unmarshal == nil { -+ mi.methods.Flags |= protoiface.SupportUnmarshalDiscardUnknown -+ mi.methods.Unmarshal = mi.unmarshal -+ } -+ if mi.methods.CheckInitialized == nil { -+ mi.methods.CheckInitialized = mi.checkInitialized -+ } -+ if mi.methods.Merge == nil { -+ mi.methods.Merge = mi.merge -+ } -+} -+ -+// getUnknownBytes returns a *[]byte for the unknown fields. -+// It is the caller's responsibility to check whether the pointer is nil. -+// This function is specially designed to be inlineable. -+func (mi *MessageInfo) getUnknownBytes(p pointer) *[]byte { -+ if mi.unknownPtrKind { -+ return *p.Apply(mi.unknownOffset).BytesPtr() -+ } else { -+ return p.Apply(mi.unknownOffset).Bytes() -+ } -+} -+ -+// mutableUnknownBytes returns a *[]byte for the unknown fields. -+// The returned pointer is guaranteed to not be nil. -+func (mi *MessageInfo) mutableUnknownBytes(p pointer) *[]byte { -+ if mi.unknownPtrKind { -+ bp := p.Apply(mi.unknownOffset).BytesPtr() -+ if *bp == nil { -+ *bp = new([]byte) -+ } -+ return *bp -+ } else { -+ return p.Apply(mi.unknownOffset).Bytes() -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go b/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go -new file mode 100644 -index 00000000..b7a23faf ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go -@@ -0,0 +1,123 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "sort" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+) -+ -+func sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) { -+ if !flags.ProtoLegacy { -+ return 0 -+ } -+ -+ ext := *p.Apply(mi.extensionOffset).Extensions() -+ for _, x := range ext { -+ xi := getExtensionFieldInfo(x.Type()) -+ if xi.funcs.size == nil { -+ continue -+ } -+ num, _ := protowire.DecodeTag(xi.wiretag) -+ size += messageset.SizeField(num) -+ size += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts) -+ } -+ -+ if u := mi.getUnknownBytes(p); u != nil { -+ size += messageset.SizeUnknown(*u) -+ } -+ -+ return size -+} -+ -+func marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions) ([]byte, error) { -+ if !flags.ProtoLegacy { -+ return b, errors.New("no support for message_set_wire_format") -+ } -+ -+ ext := *p.Apply(mi.extensionOffset).Extensions() -+ switch len(ext) { -+ case 0: -+ case 1: -+ // Fast-path for one extension: Don't bother sorting the keys. -+ for _, x := range ext { -+ var err error -+ b, err = marshalMessageSetField(mi, b, x, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ default: -+ // Sort the keys to provide a deterministic encoding. -+ // Not sure this is required, but the old code does it. -+ keys := make([]int, 0, len(ext)) -+ for k := range ext { -+ keys = append(keys, int(k)) -+ } -+ sort.Ints(keys) -+ for _, k := range keys { -+ var err error -+ b, err = marshalMessageSetField(mi, b, ext[int32(k)], opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ } -+ -+ if u := mi.getUnknownBytes(p); u != nil { -+ var err error -+ b, err = messageset.AppendUnknown(b, *u) -+ if err != nil { -+ return b, err -+ } -+ } -+ -+ return b, nil -+} -+ -+func marshalMessageSetField(mi *MessageInfo, b []byte, x ExtensionField, opts marshalOptions) ([]byte, error) { -+ xi := getExtensionFieldInfo(x.Type()) -+ num, _ := protowire.DecodeTag(xi.wiretag) -+ b = messageset.AppendFieldStart(b, num) -+ b, err := xi.funcs.marshal(b, x.Value(), protowire.EncodeTag(messageset.FieldMessage, protowire.BytesType), opts) -+ if err != nil { -+ return b, err -+ } -+ b = messageset.AppendFieldEnd(b) -+ return b, nil -+} -+ -+func unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if !flags.ProtoLegacy { -+ return out, errors.New("no support for message_set_wire_format") -+ } -+ -+ ep := p.Apply(mi.extensionOffset).Extensions() -+ if *ep == nil { -+ *ep = make(map[int32]ExtensionField) -+ } -+ ext := *ep -+ initialized := true -+ err = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error { -+ o, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts) -+ if err == errUnknown { -+ u := mi.mutableUnknownBytes(p) -+ *u = protowire.AppendTag(*u, num, protowire.BytesType) -+ *u = append(*u, v...) -+ return nil -+ } -+ if !o.initialized { -+ initialized = false -+ } -+ return err -+ }) -+ out.n = len(b) -+ out.initialized = initialized -+ return out, err -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go -new file mode 100644 -index 00000000..145c577b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go -@@ -0,0 +1,210 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build purego || appengine -+// +build purego appengine -+ -+package impl -+ -+import ( -+ "reflect" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+) -+ -+func sizeEnum(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { -+ v := p.v.Elem().Int() -+ return f.tagsize + protowire.SizeVarint(uint64(v)) -+} -+ -+func appendEnum(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ v := p.v.Elem().Int() -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(v)) -+ return b, nil -+} -+ -+func consumeEnum(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ p.v.Elem().SetInt(int64(v)) -+ out.n = n -+ return out, nil -+} -+ -+func mergeEnum(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ dst.v.Elem().Set(src.v.Elem()) -+} -+ -+var coderEnum = pointerCoderFuncs{ -+ size: sizeEnum, -+ marshal: appendEnum, -+ unmarshal: consumeEnum, -+ merge: mergeEnum, -+} -+ -+func sizeEnumNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ if p.v.Elem().Int() == 0 { -+ return 0 -+ } -+ return sizeEnum(p, f, opts) -+} -+ -+func appendEnumNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ if p.v.Elem().Int() == 0 { -+ return b, nil -+ } -+ return appendEnum(b, p, f, opts) -+} -+ -+func mergeEnumNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ if src.v.Elem().Int() != 0 { -+ dst.v.Elem().Set(src.v.Elem()) -+ } -+} -+ -+var coderEnumNoZero = pointerCoderFuncs{ -+ size: sizeEnumNoZero, -+ marshal: appendEnumNoZero, -+ unmarshal: consumeEnum, -+ merge: mergeEnumNoZero, -+} -+ -+func sizeEnumPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ return sizeEnum(pointer{p.v.Elem()}, f, opts) -+} -+ -+func appendEnumPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ return appendEnum(b, pointer{p.v.Elem()}, f, opts) -+} -+ -+func consumeEnumPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ if p.v.Elem().IsNil() { -+ p.v.Elem().Set(reflect.New(p.v.Elem().Type().Elem())) -+ } -+ return consumeEnum(b, pointer{p.v.Elem()}, wtyp, f, opts) -+} -+ -+func mergeEnumPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ if !src.v.Elem().IsNil() { -+ v := reflect.New(dst.v.Type().Elem().Elem()) -+ v.Elem().Set(src.v.Elem().Elem()) -+ dst.v.Elem().Set(v) -+ } -+} -+ -+var coderEnumPtr = pointerCoderFuncs{ -+ size: sizeEnumPtr, -+ marshal: appendEnumPtr, -+ unmarshal: consumeEnumPtr, -+ merge: mergeEnumPtr, -+} -+ -+func sizeEnumSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := p.v.Elem() -+ for i, llen := 0, s.Len(); i < llen; i++ { -+ size += protowire.SizeVarint(uint64(s.Index(i).Int())) + f.tagsize -+ } -+ return size -+} -+ -+func appendEnumSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := p.v.Elem() -+ for i, llen := 0, s.Len(); i < llen; i++ { -+ b = protowire.AppendVarint(b, f.wiretag) -+ b = protowire.AppendVarint(b, uint64(s.Index(i).Int())) -+ } -+ return b, nil -+} -+ -+func consumeEnumSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ s := p.v.Elem() -+ if wtyp == protowire.BytesType { -+ b, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ for len(b) > 0 { -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ rv := reflect.New(s.Type().Elem()).Elem() -+ rv.SetInt(int64(v)) -+ s.Set(reflect.Append(s, rv)) -+ b = b[n:] -+ } -+ out.n = n -+ return out, nil -+ } -+ if wtyp != protowire.VarintType { -+ return out, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ rv := reflect.New(s.Type().Elem()).Elem() -+ rv.SetInt(int64(v)) -+ s.Set(reflect.Append(s, rv)) -+ out.n = n -+ return out, nil -+} -+ -+func mergeEnumSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ dst.v.Elem().Set(reflect.AppendSlice(dst.v.Elem(), src.v.Elem())) -+} -+ -+var coderEnumSlice = pointerCoderFuncs{ -+ size: sizeEnumSlice, -+ marshal: appendEnumSlice, -+ unmarshal: consumeEnumSlice, -+ merge: mergeEnumSlice, -+} -+ -+func sizeEnumPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { -+ s := p.v.Elem() -+ llen := s.Len() -+ if llen == 0 { -+ return 0 -+ } -+ n := 0 -+ for i := 0; i < llen; i++ { -+ n += protowire.SizeVarint(uint64(s.Index(i).Int())) -+ } -+ return f.tagsize + protowire.SizeBytes(n) -+} -+ -+func appendEnumPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { -+ s := p.v.Elem() -+ llen := s.Len() -+ if llen == 0 { -+ return b, nil -+ } -+ b = protowire.AppendVarint(b, f.wiretag) -+ n := 0 -+ for i := 0; i < llen; i++ { -+ n += protowire.SizeVarint(uint64(s.Index(i).Int())) -+ } -+ b = protowire.AppendVarint(b, uint64(n)) -+ for i := 0; i < llen; i++ { -+ b = protowire.AppendVarint(b, uint64(s.Index(i).Int())) -+ } -+ return b, nil -+} -+ -+var coderEnumPackedSlice = pointerCoderFuncs{ -+ size: sizeEnumPackedSlice, -+ marshal: appendEnumPackedSlice, -+ unmarshal: consumeEnumSlice, -+ merge: mergeEnumSlice, -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -new file mode 100644 -index 00000000..576dcf3a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -0,0 +1,557 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// pointerCoderFuncs is a set of pointer encoding functions. -+type pointerCoderFuncs struct { -+ mi *MessageInfo -+ size func(p pointer, f *coderFieldInfo, opts marshalOptions) int -+ marshal func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) -+ unmarshal func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) -+ isInit func(p pointer, f *coderFieldInfo) error -+ merge func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) -+} -+ -+// valueCoderFuncs is a set of protoreflect.Value encoding functions. -+type valueCoderFuncs struct { -+ size func(v protoreflect.Value, tagsize int, opts marshalOptions) int -+ marshal func(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) -+ unmarshal func(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) -+ isInit func(v protoreflect.Value) error -+ merge func(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value -+} -+ -+// fieldCoder returns pointer functions for a field, used for operating on -+// struct fields. -+func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) { -+ switch { -+ case fd.IsMap(): -+ return encoderFuncsForMap(fd, ft) -+ case fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked(): -+ // Repeated fields (not packed). -+ if ft.Kind() != reflect.Slice { -+ break -+ } -+ ft := ft.Elem() -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if ft.Kind() == reflect.Bool { -+ return nil, coderBoolSlice -+ } -+ case protoreflect.EnumKind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderEnumSlice -+ } -+ case protoreflect.Int32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderInt32Slice -+ } -+ case protoreflect.Sint32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSint32Slice -+ } -+ case protoreflect.Uint32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderUint32Slice -+ } -+ case protoreflect.Int64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderInt64Slice -+ } -+ case protoreflect.Sint64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSint64Slice -+ } -+ case protoreflect.Uint64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderUint64Slice -+ } -+ case protoreflect.Sfixed32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSfixed32Slice -+ } -+ case protoreflect.Fixed32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderFixed32Slice -+ } -+ case protoreflect.FloatKind: -+ if ft.Kind() == reflect.Float32 { -+ return nil, coderFloatSlice -+ } -+ case protoreflect.Sfixed64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSfixed64Slice -+ } -+ case protoreflect.Fixed64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderFixed64Slice -+ } -+ case protoreflect.DoubleKind: -+ if ft.Kind() == reflect.Float64 { -+ return nil, coderDoubleSlice -+ } -+ case protoreflect.StringKind: -+ if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { -+ return nil, coderStringSliceValidateUTF8 -+ } -+ if ft.Kind() == reflect.String { -+ return nil, coderStringSlice -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { -+ return nil, coderBytesSliceValidateUTF8 -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytesSlice -+ } -+ case protoreflect.BytesKind: -+ if ft.Kind() == reflect.String { -+ return nil, coderStringSlice -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytesSlice -+ } -+ case protoreflect.MessageKind: -+ return getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft) -+ case protoreflect.GroupKind: -+ return getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft) -+ } -+ case fd.Cardinality() == protoreflect.Repeated && fd.IsPacked(): -+ // Packed repeated fields. -+ // -+ // Only repeated fields of primitive numeric types -+ // (Varint, Fixed32, or Fixed64 wire type) can be packed. -+ if ft.Kind() != reflect.Slice { -+ break -+ } -+ ft := ft.Elem() -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if ft.Kind() == reflect.Bool { -+ return nil, coderBoolPackedSlice -+ } -+ case protoreflect.EnumKind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderEnumPackedSlice -+ } -+ case protoreflect.Int32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderInt32PackedSlice -+ } -+ case protoreflect.Sint32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSint32PackedSlice -+ } -+ case protoreflect.Uint32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderUint32PackedSlice -+ } -+ case protoreflect.Int64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderInt64PackedSlice -+ } -+ case protoreflect.Sint64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSint64PackedSlice -+ } -+ case protoreflect.Uint64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderUint64PackedSlice -+ } -+ case protoreflect.Sfixed32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSfixed32PackedSlice -+ } -+ case protoreflect.Fixed32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderFixed32PackedSlice -+ } -+ case protoreflect.FloatKind: -+ if ft.Kind() == reflect.Float32 { -+ return nil, coderFloatPackedSlice -+ } -+ case protoreflect.Sfixed64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSfixed64PackedSlice -+ } -+ case protoreflect.Fixed64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderFixed64PackedSlice -+ } -+ case protoreflect.DoubleKind: -+ if ft.Kind() == reflect.Float64 { -+ return nil, coderDoublePackedSlice -+ } -+ } -+ case fd.Kind() == protoreflect.MessageKind: -+ return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) -+ case fd.Kind() == protoreflect.GroupKind: -+ return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -+ case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ // Populated oneof fields always encode even if set to the zero value, -+ // which normally are not encoded in proto3. -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if ft.Kind() == reflect.Bool { -+ return nil, coderBoolNoZero -+ } -+ case protoreflect.EnumKind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderEnumNoZero -+ } -+ case protoreflect.Int32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderInt32NoZero -+ } -+ case protoreflect.Sint32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSint32NoZero -+ } -+ case protoreflect.Uint32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderUint32NoZero -+ } -+ case protoreflect.Int64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderInt64NoZero -+ } -+ case protoreflect.Sint64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSint64NoZero -+ } -+ case protoreflect.Uint64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderUint64NoZero -+ } -+ case protoreflect.Sfixed32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSfixed32NoZero -+ } -+ case protoreflect.Fixed32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderFixed32NoZero -+ } -+ case protoreflect.FloatKind: -+ if ft.Kind() == reflect.Float32 { -+ return nil, coderFloatNoZero -+ } -+ case protoreflect.Sfixed64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSfixed64NoZero -+ } -+ case protoreflect.Fixed64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderFixed64NoZero -+ } -+ case protoreflect.DoubleKind: -+ if ft.Kind() == reflect.Float64 { -+ return nil, coderDoubleNoZero -+ } -+ case protoreflect.StringKind: -+ if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { -+ return nil, coderStringNoZeroValidateUTF8 -+ } -+ if ft.Kind() == reflect.String { -+ return nil, coderStringNoZero -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { -+ return nil, coderBytesNoZeroValidateUTF8 -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytesNoZero -+ } -+ case protoreflect.BytesKind: -+ if ft.Kind() == reflect.String { -+ return nil, coderStringNoZero -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytesNoZero -+ } -+ } -+ case ft.Kind() == reflect.Ptr: -+ ft := ft.Elem() -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if ft.Kind() == reflect.Bool { -+ return nil, coderBoolPtr -+ } -+ case protoreflect.EnumKind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderEnumPtr -+ } -+ case protoreflect.Int32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderInt32Ptr -+ } -+ case protoreflect.Sint32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSint32Ptr -+ } -+ case protoreflect.Uint32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderUint32Ptr -+ } -+ case protoreflect.Int64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderInt64Ptr -+ } -+ case protoreflect.Sint64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSint64Ptr -+ } -+ case protoreflect.Uint64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderUint64Ptr -+ } -+ case protoreflect.Sfixed32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSfixed32Ptr -+ } -+ case protoreflect.Fixed32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderFixed32Ptr -+ } -+ case protoreflect.FloatKind: -+ if ft.Kind() == reflect.Float32 { -+ return nil, coderFloatPtr -+ } -+ case protoreflect.Sfixed64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSfixed64Ptr -+ } -+ case protoreflect.Fixed64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderFixed64Ptr -+ } -+ case protoreflect.DoubleKind: -+ if ft.Kind() == reflect.Float64 { -+ return nil, coderDoublePtr -+ } -+ case protoreflect.StringKind: -+ if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { -+ return nil, coderStringPtrValidateUTF8 -+ } -+ if ft.Kind() == reflect.String { -+ return nil, coderStringPtr -+ } -+ case protoreflect.BytesKind: -+ if ft.Kind() == reflect.String { -+ return nil, coderStringPtr -+ } -+ } -+ default: -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if ft.Kind() == reflect.Bool { -+ return nil, coderBool -+ } -+ case protoreflect.EnumKind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderEnum -+ } -+ case protoreflect.Int32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderInt32 -+ } -+ case protoreflect.Sint32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSint32 -+ } -+ case protoreflect.Uint32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderUint32 -+ } -+ case protoreflect.Int64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderInt64 -+ } -+ case protoreflect.Sint64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSint64 -+ } -+ case protoreflect.Uint64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderUint64 -+ } -+ case protoreflect.Sfixed32Kind: -+ if ft.Kind() == reflect.Int32 { -+ return nil, coderSfixed32 -+ } -+ case protoreflect.Fixed32Kind: -+ if ft.Kind() == reflect.Uint32 { -+ return nil, coderFixed32 -+ } -+ case protoreflect.FloatKind: -+ if ft.Kind() == reflect.Float32 { -+ return nil, coderFloat -+ } -+ case protoreflect.Sfixed64Kind: -+ if ft.Kind() == reflect.Int64 { -+ return nil, coderSfixed64 -+ } -+ case protoreflect.Fixed64Kind: -+ if ft.Kind() == reflect.Uint64 { -+ return nil, coderFixed64 -+ } -+ case protoreflect.DoubleKind: -+ if ft.Kind() == reflect.Float64 { -+ return nil, coderDouble -+ } -+ case protoreflect.StringKind: -+ if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { -+ return nil, coderStringValidateUTF8 -+ } -+ if ft.Kind() == reflect.String { -+ return nil, coderString -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 && strs.EnforceUTF8(fd) { -+ return nil, coderBytesValidateUTF8 -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytes -+ } -+ case protoreflect.BytesKind: -+ if ft.Kind() == reflect.String { -+ return nil, coderString -+ } -+ if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { -+ return nil, coderBytes -+ } -+ } -+ } -+ panic(fmt.Sprintf("invalid type: no encoder for %v %v %v/%v", fd.FullName(), fd.Cardinality(), fd.Kind(), ft)) -+} -+ -+// encoderFuncsForValue returns value functions for a field, used for -+// extension values and map encoding. -+func encoderFuncsForValue(fd protoreflect.FieldDescriptor) valueCoderFuncs { -+ switch { -+ case fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked(): -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ return coderBoolSliceValue -+ case protoreflect.EnumKind: -+ return coderEnumSliceValue -+ case protoreflect.Int32Kind: -+ return coderInt32SliceValue -+ case protoreflect.Sint32Kind: -+ return coderSint32SliceValue -+ case protoreflect.Uint32Kind: -+ return coderUint32SliceValue -+ case protoreflect.Int64Kind: -+ return coderInt64SliceValue -+ case protoreflect.Sint64Kind: -+ return coderSint64SliceValue -+ case protoreflect.Uint64Kind: -+ return coderUint64SliceValue -+ case protoreflect.Sfixed32Kind: -+ return coderSfixed32SliceValue -+ case protoreflect.Fixed32Kind: -+ return coderFixed32SliceValue -+ case protoreflect.FloatKind: -+ return coderFloatSliceValue -+ case protoreflect.Sfixed64Kind: -+ return coderSfixed64SliceValue -+ case protoreflect.Fixed64Kind: -+ return coderFixed64SliceValue -+ case protoreflect.DoubleKind: -+ return coderDoubleSliceValue -+ case protoreflect.StringKind: -+ // We don't have a UTF-8 validating coder for repeated string fields. -+ // Value coders are used for extensions and maps. -+ // Extensions are never proto3, and maps never contain lists. -+ return coderStringSliceValue -+ case protoreflect.BytesKind: -+ return coderBytesSliceValue -+ case protoreflect.MessageKind: -+ return coderMessageSliceValue -+ case protoreflect.GroupKind: -+ return coderGroupSliceValue -+ } -+ case fd.Cardinality() == protoreflect.Repeated && fd.IsPacked(): -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ return coderBoolPackedSliceValue -+ case protoreflect.EnumKind: -+ return coderEnumPackedSliceValue -+ case protoreflect.Int32Kind: -+ return coderInt32PackedSliceValue -+ case protoreflect.Sint32Kind: -+ return coderSint32PackedSliceValue -+ case protoreflect.Uint32Kind: -+ return coderUint32PackedSliceValue -+ case protoreflect.Int64Kind: -+ return coderInt64PackedSliceValue -+ case protoreflect.Sint64Kind: -+ return coderSint64PackedSliceValue -+ case protoreflect.Uint64Kind: -+ return coderUint64PackedSliceValue -+ case protoreflect.Sfixed32Kind: -+ return coderSfixed32PackedSliceValue -+ case protoreflect.Fixed32Kind: -+ return coderFixed32PackedSliceValue -+ case protoreflect.FloatKind: -+ return coderFloatPackedSliceValue -+ case protoreflect.Sfixed64Kind: -+ return coderSfixed64PackedSliceValue -+ case protoreflect.Fixed64Kind: -+ return coderFixed64PackedSliceValue -+ case protoreflect.DoubleKind: -+ return coderDoublePackedSliceValue -+ } -+ default: -+ switch fd.Kind() { -+ default: -+ case protoreflect.BoolKind: -+ return coderBoolValue -+ case protoreflect.EnumKind: -+ return coderEnumValue -+ case protoreflect.Int32Kind: -+ return coderInt32Value -+ case protoreflect.Sint32Kind: -+ return coderSint32Value -+ case protoreflect.Uint32Kind: -+ return coderUint32Value -+ case protoreflect.Int64Kind: -+ return coderInt64Value -+ case protoreflect.Sint64Kind: -+ return coderSint64Value -+ case protoreflect.Uint64Kind: -+ return coderUint64Value -+ case protoreflect.Sfixed32Kind: -+ return coderSfixed32Value -+ case protoreflect.Fixed32Kind: -+ return coderFixed32Value -+ case protoreflect.FloatKind: -+ return coderFloatValue -+ case protoreflect.Sfixed64Kind: -+ return coderSfixed64Value -+ case protoreflect.Fixed64Kind: -+ return coderFixed64Value -+ case protoreflect.DoubleKind: -+ return coderDoubleValue -+ case protoreflect.StringKind: -+ if strs.EnforceUTF8(fd) { -+ return coderStringValueValidateUTF8 -+ } -+ return coderStringValue -+ case protoreflect.BytesKind: -+ return coderBytesValue -+ case protoreflect.MessageKind: -+ return coderMessageValue -+ case protoreflect.GroupKind: -+ return coderGroupValue -+ } -+ } -+ panic(fmt.Sprintf("invalid field: no encoder for %v %v %v", fd.FullName(), fd.Cardinality(), fd.Kind())) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go -new file mode 100644 -index 00000000..757642e2 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go -@@ -0,0 +1,18 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine -+// +build !purego,!appengine -+ -+package impl -+ -+// When using unsafe pointers, we can just treat enum values as int32s. -+ -+var ( -+ coderEnumNoZero = coderInt32NoZero -+ coderEnum = coderInt32 -+ coderEnumPtr = coderInt32Ptr -+ coderEnumSlice = coderInt32Slice -+ coderEnumPackedSlice = coderInt32PackedSlice -+) -diff --git a/vendor/google.golang.org/protobuf/internal/impl/convert.go b/vendor/google.golang.org/protobuf/internal/impl/convert.go -new file mode 100644 -index 00000000..185ef2ef ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/convert.go -@@ -0,0 +1,495 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// unwrapper unwraps the value to the underlying value. -+// This is implemented by List and Map. -+type unwrapper interface { -+ protoUnwrap() interface{} -+} -+ -+// A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types. -+type Converter interface { -+ // PBValueOf converts a reflect.Value to a protoreflect.Value. -+ PBValueOf(reflect.Value) protoreflect.Value -+ -+ // GoValueOf converts a protoreflect.Value to a reflect.Value. -+ GoValueOf(protoreflect.Value) reflect.Value -+ -+ // IsValidPB returns whether a protoreflect.Value is compatible with this type. -+ IsValidPB(protoreflect.Value) bool -+ -+ // IsValidGo returns whether a reflect.Value is compatible with this type. -+ IsValidGo(reflect.Value) bool -+ -+ // New returns a new field value. -+ // For scalars, it returns the default value of the field. -+ // For composite types, it returns a new mutable value. -+ New() protoreflect.Value -+ -+ // Zero returns a new field value. -+ // For scalars, it returns the default value of the field. -+ // For composite types, it returns an immutable, empty value. -+ Zero() protoreflect.Value -+} -+ -+// NewConverter matches a Go type with a protobuf field and returns a Converter -+// that converts between the two. Enums must be a named int32 kind that -+// implements protoreflect.Enum, and messages must be pointer to a named -+// struct type that implements protoreflect.ProtoMessage. -+// -+// This matcher deliberately supports a wider range of Go types than what -+// protoc-gen-go historically generated to be able to automatically wrap some -+// v1 messages generated by other forks of protoc-gen-go. -+func NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { -+ switch { -+ case fd.IsList(): -+ return newListConverter(t, fd) -+ case fd.IsMap(): -+ return newMapConverter(t, fd) -+ default: -+ return newSingularConverter(t, fd) -+ } -+} -+ -+var ( -+ boolType = reflect.TypeOf(bool(false)) -+ int32Type = reflect.TypeOf(int32(0)) -+ int64Type = reflect.TypeOf(int64(0)) -+ uint32Type = reflect.TypeOf(uint32(0)) -+ uint64Type = reflect.TypeOf(uint64(0)) -+ float32Type = reflect.TypeOf(float32(0)) -+ float64Type = reflect.TypeOf(float64(0)) -+ stringType = reflect.TypeOf(string("")) -+ bytesType = reflect.TypeOf([]byte(nil)) -+ byteType = reflect.TypeOf(byte(0)) -+) -+ -+var ( -+ boolZero = protoreflect.ValueOfBool(false) -+ int32Zero = protoreflect.ValueOfInt32(0) -+ int64Zero = protoreflect.ValueOfInt64(0) -+ uint32Zero = protoreflect.ValueOfUint32(0) -+ uint64Zero = protoreflect.ValueOfUint64(0) -+ float32Zero = protoreflect.ValueOfFloat32(0) -+ float64Zero = protoreflect.ValueOfFloat64(0) -+ stringZero = protoreflect.ValueOfString("") -+ bytesZero = protoreflect.ValueOfBytes(nil) -+) -+ -+func newSingularConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { -+ defVal := func(fd protoreflect.FieldDescriptor, zero protoreflect.Value) protoreflect.Value { -+ if fd.Cardinality() == protoreflect.Repeated { -+ // Default isn't defined for repeated fields. -+ return zero -+ } -+ return fd.Default() -+ } -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if t.Kind() == reflect.Bool { -+ return &boolConverter{t, defVal(fd, boolZero)} -+ } -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: -+ if t.Kind() == reflect.Int32 { -+ return &int32Converter{t, defVal(fd, int32Zero)} -+ } -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: -+ if t.Kind() == reflect.Int64 { -+ return &int64Converter{t, defVal(fd, int64Zero)} -+ } -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: -+ if t.Kind() == reflect.Uint32 { -+ return &uint32Converter{t, defVal(fd, uint32Zero)} -+ } -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: -+ if t.Kind() == reflect.Uint64 { -+ return &uint64Converter{t, defVal(fd, uint64Zero)} -+ } -+ case protoreflect.FloatKind: -+ if t.Kind() == reflect.Float32 { -+ return &float32Converter{t, defVal(fd, float32Zero)} -+ } -+ case protoreflect.DoubleKind: -+ if t.Kind() == reflect.Float64 { -+ return &float64Converter{t, defVal(fd, float64Zero)} -+ } -+ case protoreflect.StringKind: -+ if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { -+ return &stringConverter{t, defVal(fd, stringZero)} -+ } -+ case protoreflect.BytesKind: -+ if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { -+ return &bytesConverter{t, defVal(fd, bytesZero)} -+ } -+ case protoreflect.EnumKind: -+ // Handle enums, which must be a named int32 type. -+ if t.Kind() == reflect.Int32 { -+ return newEnumConverter(t, fd) -+ } -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return newMessageConverter(t) -+ } -+ panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) -+} -+ -+type boolConverter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *boolConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfBool(v.Bool()) -+} -+func (c *boolConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(v.Bool()).Convert(c.goType) -+} -+func (c *boolConverter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(bool) -+ return ok -+} -+func (c *boolConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *boolConverter) New() protoreflect.Value { return c.def } -+func (c *boolConverter) Zero() protoreflect.Value { return c.def } -+ -+type int32Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *int32Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfInt32(int32(v.Int())) -+} -+func (c *int32Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(int32(v.Int())).Convert(c.goType) -+} -+func (c *int32Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(int32) -+ return ok -+} -+func (c *int32Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *int32Converter) New() protoreflect.Value { return c.def } -+func (c *int32Converter) Zero() protoreflect.Value { return c.def } -+ -+type int64Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *int64Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfInt64(int64(v.Int())) -+} -+func (c *int64Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(int64(v.Int())).Convert(c.goType) -+} -+func (c *int64Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(int64) -+ return ok -+} -+func (c *int64Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *int64Converter) New() protoreflect.Value { return c.def } -+func (c *int64Converter) Zero() protoreflect.Value { return c.def } -+ -+type uint32Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *uint32Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfUint32(uint32(v.Uint())) -+} -+func (c *uint32Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(uint32(v.Uint())).Convert(c.goType) -+} -+func (c *uint32Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(uint32) -+ return ok -+} -+func (c *uint32Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *uint32Converter) New() protoreflect.Value { return c.def } -+func (c *uint32Converter) Zero() protoreflect.Value { return c.def } -+ -+type uint64Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *uint64Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfUint64(uint64(v.Uint())) -+} -+func (c *uint64Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(uint64(v.Uint())).Convert(c.goType) -+} -+func (c *uint64Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(uint64) -+ return ok -+} -+func (c *uint64Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *uint64Converter) New() protoreflect.Value { return c.def } -+func (c *uint64Converter) Zero() protoreflect.Value { return c.def } -+ -+type float32Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *float32Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfFloat32(float32(v.Float())) -+} -+func (c *float32Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(float32(v.Float())).Convert(c.goType) -+} -+func (c *float32Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(float32) -+ return ok -+} -+func (c *float32Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *float32Converter) New() protoreflect.Value { return c.def } -+func (c *float32Converter) Zero() protoreflect.Value { return c.def } -+ -+type float64Converter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *float64Converter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfFloat64(float64(v.Float())) -+} -+func (c *float64Converter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(float64(v.Float())).Convert(c.goType) -+} -+func (c *float64Converter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(float64) -+ return ok -+} -+func (c *float64Converter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *float64Converter) New() protoreflect.Value { return c.def } -+func (c *float64Converter) Zero() protoreflect.Value { return c.def } -+ -+type stringConverter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *stringConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfString(v.Convert(stringType).String()) -+} -+func (c *stringConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ // pref.Value.String never panics, so we go through an interface -+ // conversion here to check the type. -+ s := v.Interface().(string) -+ if c.goType.Kind() == reflect.Slice && s == "" { -+ return reflect.Zero(c.goType) // ensure empty string is []byte(nil) -+ } -+ return reflect.ValueOf(s).Convert(c.goType) -+} -+func (c *stringConverter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(string) -+ return ok -+} -+func (c *stringConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *stringConverter) New() protoreflect.Value { return c.def } -+func (c *stringConverter) Zero() protoreflect.Value { return c.def } -+ -+type bytesConverter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func (c *bytesConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ if c.goType.Kind() == reflect.String && v.Len() == 0 { -+ return protoreflect.ValueOfBytes(nil) // ensure empty string is []byte(nil) -+ } -+ return protoreflect.ValueOfBytes(v.Convert(bytesType).Bytes()) -+} -+func (c *bytesConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(v.Bytes()).Convert(c.goType) -+} -+func (c *bytesConverter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().([]byte) -+ return ok -+} -+func (c *bytesConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+func (c *bytesConverter) New() protoreflect.Value { return c.def } -+func (c *bytesConverter) Zero() protoreflect.Value { return c.def } -+ -+type enumConverter struct { -+ goType reflect.Type -+ def protoreflect.Value -+} -+ -+func newEnumConverter(goType reflect.Type, fd protoreflect.FieldDescriptor) Converter { -+ var def protoreflect.Value -+ if fd.Cardinality() == protoreflect.Repeated { -+ def = protoreflect.ValueOfEnum(fd.Enum().Values().Get(0).Number()) -+ } else { -+ def = fd.Default() -+ } -+ return &enumConverter{goType, def} -+} -+ -+func (c *enumConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v.Int())) -+} -+ -+func (c *enumConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return reflect.ValueOf(v.Enum()).Convert(c.goType) -+} -+ -+func (c *enumConverter) IsValidPB(v protoreflect.Value) bool { -+ _, ok := v.Interface().(protoreflect.EnumNumber) -+ return ok -+} -+ -+func (c *enumConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+ -+func (c *enumConverter) New() protoreflect.Value { -+ return c.def -+} -+ -+func (c *enumConverter) Zero() protoreflect.Value { -+ return c.def -+} -+ -+type messageConverter struct { -+ goType reflect.Type -+} -+ -+func newMessageConverter(goType reflect.Type) Converter { -+ return &messageConverter{goType} -+} -+ -+func (c *messageConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ if c.isNonPointer() { -+ if v.CanAddr() { -+ v = v.Addr() // T => *T -+ } else { -+ v = reflect.Zero(reflect.PtrTo(v.Type())) -+ } -+ } -+ if m, ok := v.Interface().(protoreflect.ProtoMessage); ok { -+ return protoreflect.ValueOfMessage(m.ProtoReflect()) -+ } -+ return protoreflect.ValueOfMessage(legacyWrapMessage(v)) -+} -+ -+func (c *messageConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ m := v.Message() -+ var rv reflect.Value -+ if u, ok := m.(unwrapper); ok { -+ rv = reflect.ValueOf(u.protoUnwrap()) -+ } else { -+ rv = reflect.ValueOf(m.Interface()) -+ } -+ if c.isNonPointer() { -+ if rv.Type() != reflect.PtrTo(c.goType) { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), reflect.PtrTo(c.goType))) -+ } -+ if !rv.IsNil() { -+ rv = rv.Elem() // *T => T -+ } else { -+ rv = reflect.Zero(rv.Type().Elem()) -+ } -+ } -+ if rv.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), c.goType)) -+ } -+ return rv -+} -+ -+func (c *messageConverter) IsValidPB(v protoreflect.Value) bool { -+ m := v.Message() -+ var rv reflect.Value -+ if u, ok := m.(unwrapper); ok { -+ rv = reflect.ValueOf(u.protoUnwrap()) -+ } else { -+ rv = reflect.ValueOf(m.Interface()) -+ } -+ if c.isNonPointer() { -+ return rv.Type() == reflect.PtrTo(c.goType) -+ } -+ return rv.Type() == c.goType -+} -+ -+func (c *messageConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+ -+func (c *messageConverter) New() protoreflect.Value { -+ if c.isNonPointer() { -+ return c.PBValueOf(reflect.New(c.goType).Elem()) -+ } -+ return c.PBValueOf(reflect.New(c.goType.Elem())) -+} -+ -+func (c *messageConverter) Zero() protoreflect.Value { -+ return c.PBValueOf(reflect.Zero(c.goType)) -+} -+ -+// isNonPointer reports whether the type is a non-pointer type. -+// This never occurs for generated message types. -+func (c *messageConverter) isNonPointer() bool { -+ return c.goType.Kind() != reflect.Ptr -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/convert_list.go b/vendor/google.golang.org/protobuf/internal/impl/convert_list.go -new file mode 100644 -index 00000000..f8913651 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/convert_list.go -@@ -0,0 +1,141 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+func newListConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { -+ switch { -+ case t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice: -+ return &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)} -+ case t.Kind() == reflect.Slice: -+ return &listConverter{t, newSingularConverter(t.Elem(), fd)} -+ } -+ panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) -+} -+ -+type listConverter struct { -+ goType reflect.Type // []T -+ c Converter -+} -+ -+func (c *listConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ pv := reflect.New(c.goType) -+ pv.Elem().Set(v) -+ return protoreflect.ValueOfList(&listReflect{pv, c.c}) -+} -+ -+func (c *listConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ rv := v.List().(*listReflect).v -+ if rv.IsNil() { -+ return reflect.Zero(c.goType) -+ } -+ return rv.Elem() -+} -+ -+func (c *listConverter) IsValidPB(v protoreflect.Value) bool { -+ list, ok := v.Interface().(*listReflect) -+ if !ok { -+ return false -+ } -+ return list.v.Type().Elem() == c.goType -+} -+ -+func (c *listConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+ -+func (c *listConverter) New() protoreflect.Value { -+ return protoreflect.ValueOfList(&listReflect{reflect.New(c.goType), c.c}) -+} -+ -+func (c *listConverter) Zero() protoreflect.Value { -+ return protoreflect.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c}) -+} -+ -+type listPtrConverter struct { -+ goType reflect.Type // *[]T -+ c Converter -+} -+ -+func (c *listPtrConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfList(&listReflect{v, c.c}) -+} -+ -+func (c *listPtrConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return v.List().(*listReflect).v -+} -+ -+func (c *listPtrConverter) IsValidPB(v protoreflect.Value) bool { -+ list, ok := v.Interface().(*listReflect) -+ if !ok { -+ return false -+ } -+ return list.v.Type() == c.goType -+} -+ -+func (c *listPtrConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+ -+func (c *listPtrConverter) New() protoreflect.Value { -+ return c.PBValueOf(reflect.New(c.goType.Elem())) -+} -+ -+func (c *listPtrConverter) Zero() protoreflect.Value { -+ return c.PBValueOf(reflect.Zero(c.goType)) -+} -+ -+type listReflect struct { -+ v reflect.Value // *[]T -+ conv Converter -+} -+ -+func (ls *listReflect) Len() int { -+ if ls.v.IsNil() { -+ return 0 -+ } -+ return ls.v.Elem().Len() -+} -+func (ls *listReflect) Get(i int) protoreflect.Value { -+ return ls.conv.PBValueOf(ls.v.Elem().Index(i)) -+} -+func (ls *listReflect) Set(i int, v protoreflect.Value) { -+ ls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v)) -+} -+func (ls *listReflect) Append(v protoreflect.Value) { -+ ls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v))) -+} -+func (ls *listReflect) AppendMutable() protoreflect.Value { -+ if _, ok := ls.conv.(*messageConverter); !ok { -+ panic("invalid AppendMutable on list with non-message type") -+ } -+ v := ls.NewElement() -+ ls.Append(v) -+ return v -+} -+func (ls *listReflect) Truncate(i int) { -+ ls.v.Elem().Set(ls.v.Elem().Slice(0, i)) -+} -+func (ls *listReflect) NewElement() protoreflect.Value { -+ return ls.conv.New() -+} -+func (ls *listReflect) IsValid() bool { -+ return !ls.v.IsNil() -+} -+func (ls *listReflect) protoUnwrap() interface{} { -+ return ls.v.Interface() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/convert_map.go b/vendor/google.golang.org/protobuf/internal/impl/convert_map.go -new file mode 100644 -index 00000000..f30b0a05 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/convert_map.go -@@ -0,0 +1,121 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type mapConverter struct { -+ goType reflect.Type // map[K]V -+ keyConv, valConv Converter -+} -+ -+func newMapConverter(t reflect.Type, fd protoreflect.FieldDescriptor) *mapConverter { -+ if t.Kind() != reflect.Map { -+ panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) -+ } -+ return &mapConverter{ -+ goType: t, -+ keyConv: newSingularConverter(t.Key(), fd.MapKey()), -+ valConv: newSingularConverter(t.Elem(), fd.MapValue()), -+ } -+} -+ -+func (c *mapConverter) PBValueOf(v reflect.Value) protoreflect.Value { -+ if v.Type() != c.goType { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) -+ } -+ return protoreflect.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv}) -+} -+ -+func (c *mapConverter) GoValueOf(v protoreflect.Value) reflect.Value { -+ return v.Map().(*mapReflect).v -+} -+ -+func (c *mapConverter) IsValidPB(v protoreflect.Value) bool { -+ mapv, ok := v.Interface().(*mapReflect) -+ if !ok { -+ return false -+ } -+ return mapv.v.Type() == c.goType -+} -+ -+func (c *mapConverter) IsValidGo(v reflect.Value) bool { -+ return v.IsValid() && v.Type() == c.goType -+} -+ -+func (c *mapConverter) New() protoreflect.Value { -+ return c.PBValueOf(reflect.MakeMap(c.goType)) -+} -+ -+func (c *mapConverter) Zero() protoreflect.Value { -+ return c.PBValueOf(reflect.Zero(c.goType)) -+} -+ -+type mapReflect struct { -+ v reflect.Value // map[K]V -+ keyConv Converter -+ valConv Converter -+} -+ -+func (ms *mapReflect) Len() int { -+ return ms.v.Len() -+} -+func (ms *mapReflect) Has(k protoreflect.MapKey) bool { -+ rk := ms.keyConv.GoValueOf(k.Value()) -+ rv := ms.v.MapIndex(rk) -+ return rv.IsValid() -+} -+func (ms *mapReflect) Get(k protoreflect.MapKey) protoreflect.Value { -+ rk := ms.keyConv.GoValueOf(k.Value()) -+ rv := ms.v.MapIndex(rk) -+ if !rv.IsValid() { -+ return protoreflect.Value{} -+ } -+ return ms.valConv.PBValueOf(rv) -+} -+func (ms *mapReflect) Set(k protoreflect.MapKey, v protoreflect.Value) { -+ rk := ms.keyConv.GoValueOf(k.Value()) -+ rv := ms.valConv.GoValueOf(v) -+ ms.v.SetMapIndex(rk, rv) -+} -+func (ms *mapReflect) Clear(k protoreflect.MapKey) { -+ rk := ms.keyConv.GoValueOf(k.Value()) -+ ms.v.SetMapIndex(rk, reflect.Value{}) -+} -+func (ms *mapReflect) Mutable(k protoreflect.MapKey) protoreflect.Value { -+ if _, ok := ms.valConv.(*messageConverter); !ok { -+ panic("invalid Mutable on map with non-message value type") -+ } -+ v := ms.Get(k) -+ if !v.IsValid() { -+ v = ms.NewValue() -+ ms.Set(k, v) -+ } -+ return v -+} -+func (ms *mapReflect) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { -+ iter := mapRange(ms.v) -+ for iter.Next() { -+ k := ms.keyConv.PBValueOf(iter.Key()).MapKey() -+ v := ms.valConv.PBValueOf(iter.Value()) -+ if !f(k, v) { -+ return -+ } -+ } -+} -+func (ms *mapReflect) NewValue() protoreflect.Value { -+ return ms.valConv.New() -+} -+func (ms *mapReflect) IsValid() bool { -+ return !ms.v.IsNil() -+} -+func (ms *mapReflect) protoUnwrap() interface{} { -+ return ms.v.Interface() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/decode.go b/vendor/google.golang.org/protobuf/internal/impl/decode.go -new file mode 100644 -index 00000000..cda0520c ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/decode.go -@@ -0,0 +1,285 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "math/bits" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+var errDecode = errors.New("cannot parse invalid wire-format data") -+var errRecursionDepth = errors.New("exceeded maximum recursion depth") -+ -+type unmarshalOptions struct { -+ flags protoiface.UnmarshalInputFlags -+ resolver interface { -+ FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) -+ FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) -+ } -+ depth int -+} -+ -+func (o unmarshalOptions) Options() proto.UnmarshalOptions { -+ return proto.UnmarshalOptions{ -+ Merge: true, -+ AllowPartial: true, -+ DiscardUnknown: o.DiscardUnknown(), -+ Resolver: o.resolver, -+ } -+} -+ -+func (o unmarshalOptions) DiscardUnknown() bool { -+ return o.flags&protoiface.UnmarshalDiscardUnknown != 0 -+} -+ -+func (o unmarshalOptions) IsDefault() bool { -+ return o.flags == 0 && o.resolver == protoregistry.GlobalTypes -+} -+ -+var lazyUnmarshalOptions = unmarshalOptions{ -+ resolver: protoregistry.GlobalTypes, -+ depth: protowire.DefaultRecursionLimit, -+} -+ -+type unmarshalOutput struct { -+ n int // number of bytes consumed -+ initialized bool -+} -+ -+// unmarshal is protoreflect.Methods.Unmarshal. -+func (mi *MessageInfo) unmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { -+ var p pointer -+ if ms, ok := in.Message.(*messageState); ok { -+ p = ms.pointer() -+ } else { -+ p = in.Message.(*messageReflectWrapper).pointer() -+ } -+ out, err := mi.unmarshalPointer(in.Buf, p, 0, unmarshalOptions{ -+ flags: in.Flags, -+ resolver: in.Resolver, -+ depth: in.Depth, -+ }) -+ var flags protoiface.UnmarshalOutputFlags -+ if out.initialized { -+ flags |= protoiface.UnmarshalInitialized -+ } -+ return protoiface.UnmarshalOutput{ -+ Flags: flags, -+ }, err -+} -+ -+// errUnknown is returned during unmarshaling to indicate a parse error that -+// should result in a field being placed in the unknown fields section (for example, -+// when the wire type doesn't match) as opposed to the entire unmarshal operation -+// failing (for example, when a field extends past the available input). -+// -+// This is a sentinel error which should never be visible to the user. -+var errUnknown = errors.New("unknown") -+ -+func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ mi.init() -+ opts.depth-- -+ if opts.depth < 0 { -+ return out, errRecursionDepth -+ } -+ if flags.ProtoLegacy && mi.isMessageSet { -+ return unmarshalMessageSet(mi, b, p, opts) -+ } -+ initialized := true -+ var requiredMask uint64 -+ var exts *map[int32]ExtensionField -+ start := len(b) -+ for len(b) > 0 { -+ // Parse the tag (field number and wire type). -+ var tag uint64 -+ if b[0] < 0x80 { -+ tag = uint64(b[0]) -+ b = b[1:] -+ } else if len(b) >= 2 && b[1] < 128 { -+ tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ b = b[2:] -+ } else { -+ var n int -+ tag, n = protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, errDecode -+ } -+ b = b[n:] -+ } -+ var num protowire.Number -+ if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) { -+ return out, errDecode -+ } else { -+ num = protowire.Number(n) -+ } -+ wtyp := protowire.Type(tag & 7) -+ -+ if wtyp == protowire.EndGroupType { -+ if num != groupTag { -+ return out, errDecode -+ } -+ groupTag = 0 -+ break -+ } -+ -+ var f *coderFieldInfo -+ if int(num) < len(mi.denseCoderFields) { -+ f = mi.denseCoderFields[num] -+ } else { -+ f = mi.coderFields[num] -+ } -+ var n int -+ err := errUnknown -+ switch { -+ case f != nil: -+ if f.funcs.unmarshal == nil { -+ break -+ } -+ var o unmarshalOutput -+ o, err = f.funcs.unmarshal(b, p.Apply(f.offset), wtyp, f, opts) -+ n = o.n -+ if err != nil { -+ break -+ } -+ requiredMask |= f.validation.requiredBit -+ if f.funcs.isInit != nil && !o.initialized { -+ initialized = false -+ } -+ default: -+ // Possible extension. -+ if exts == nil && mi.extensionOffset.IsValid() { -+ exts = p.Apply(mi.extensionOffset).Extensions() -+ if *exts == nil { -+ *exts = make(map[int32]ExtensionField) -+ } -+ } -+ if exts == nil { -+ break -+ } -+ var o unmarshalOutput -+ o, err = mi.unmarshalExtension(b, num, wtyp, *exts, opts) -+ if err != nil { -+ break -+ } -+ n = o.n -+ if !o.initialized { -+ initialized = false -+ } -+ } -+ if err != nil { -+ if err != errUnknown { -+ return out, err -+ } -+ n = protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return out, errDecode -+ } -+ if !opts.DiscardUnknown() && mi.unknownOffset.IsValid() { -+ u := mi.mutableUnknownBytes(p) -+ *u = protowire.AppendTag(*u, num, wtyp) -+ *u = append(*u, b[:n]...) -+ } -+ } -+ b = b[n:] -+ } -+ if groupTag != 0 { -+ return out, errDecode -+ } -+ if mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) { -+ initialized = false -+ } -+ if initialized { -+ out.initialized = true -+ } -+ out.n = start - len(b) -+ return out, nil -+} -+ -+func (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp protowire.Type, exts map[int32]ExtensionField, opts unmarshalOptions) (out unmarshalOutput, err error) { -+ x := exts[int32(num)] -+ xt := x.Type() -+ if xt == nil { -+ var err error -+ xt, err = opts.resolver.FindExtensionByNumber(mi.Desc.FullName(), num) -+ if err != nil { -+ if err == protoregistry.NotFound { -+ return out, errUnknown -+ } -+ return out, errors.New("%v: unable to resolve extension %v: %v", mi.Desc.FullName(), num, err) -+ } -+ } -+ xi := getExtensionFieldInfo(xt) -+ if xi.funcs.unmarshal == nil { -+ return out, errUnknown -+ } -+ if flags.LazyUnmarshalExtensions { -+ if opts.IsDefault() && x.canLazy(xt) { -+ out, valid := skipExtension(b, xi, num, wtyp, opts) -+ switch valid { -+ case ValidationValid: -+ if out.initialized { -+ x.appendLazyBytes(xt, xi, num, wtyp, b[:out.n]) -+ exts[int32(num)] = x -+ return out, nil -+ } -+ case ValidationInvalid: -+ return out, errDecode -+ case ValidationUnknown: -+ } -+ } -+ } -+ ival := x.Value() -+ if !ival.IsValid() && xi.unmarshalNeedsValue { -+ // Create a new message, list, or map value to fill in. -+ // For enums, create a prototype value to let the unmarshal func know the -+ // concrete type. -+ ival = xt.New() -+ } -+ v, out, err := xi.funcs.unmarshal(b, ival, num, wtyp, opts) -+ if err != nil { -+ return out, err -+ } -+ if xi.funcs.isInit == nil { -+ out.initialized = true -+ } -+ x.Set(xt, v) -+ exts[int32(num)] = x -+ return out, nil -+} -+ -+func skipExtension(b []byte, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (out unmarshalOutput, _ ValidationStatus) { -+ if xi.validation.mi == nil { -+ return out, ValidationUnknown -+ } -+ xi.validation.mi.init() -+ switch xi.validation.typ { -+ case validationTypeMessage: -+ if wtyp != protowire.BytesType { -+ return out, ValidationUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return out, ValidationUnknown -+ } -+ out, st := xi.validation.mi.validate(v, 0, opts) -+ out.n = n -+ return out, st -+ case validationTypeGroup: -+ if wtyp != protowire.StartGroupType { -+ return out, ValidationUnknown -+ } -+ out, st := xi.validation.mi.validate(b, num, opts) -+ return out, st -+ default: -+ return out, ValidationUnknown -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/encode.go b/vendor/google.golang.org/protobuf/internal/impl/encode.go -new file mode 100644 -index 00000000..845c67d6 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/encode.go -@@ -0,0 +1,201 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "math" -+ "sort" -+ "sync/atomic" -+ -+ "google.golang.org/protobuf/internal/flags" -+ proto "google.golang.org/protobuf/proto" -+ piface "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+type marshalOptions struct { -+ flags piface.MarshalInputFlags -+} -+ -+func (o marshalOptions) Options() proto.MarshalOptions { -+ return proto.MarshalOptions{ -+ AllowPartial: true, -+ Deterministic: o.Deterministic(), -+ UseCachedSize: o.UseCachedSize(), -+ } -+} -+ -+func (o marshalOptions) Deterministic() bool { return o.flags&piface.MarshalDeterministic != 0 } -+func (o marshalOptions) UseCachedSize() bool { return o.flags&piface.MarshalUseCachedSize != 0 } -+ -+// size is protoreflect.Methods.Size. -+func (mi *MessageInfo) size(in piface.SizeInput) piface.SizeOutput { -+ var p pointer -+ if ms, ok := in.Message.(*messageState); ok { -+ p = ms.pointer() -+ } else { -+ p = in.Message.(*messageReflectWrapper).pointer() -+ } -+ size := mi.sizePointer(p, marshalOptions{ -+ flags: in.Flags, -+ }) -+ return piface.SizeOutput{Size: size} -+} -+ -+func (mi *MessageInfo) sizePointer(p pointer, opts marshalOptions) (size int) { -+ mi.init() -+ if p.IsNil() { -+ return 0 -+ } -+ if opts.UseCachedSize() && mi.sizecacheOffset.IsValid() { -+ if size := atomic.LoadInt32(p.Apply(mi.sizecacheOffset).Int32()); size >= 0 { -+ return int(size) -+ } -+ } -+ return mi.sizePointerSlow(p, opts) -+} -+ -+func (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int) { -+ if flags.ProtoLegacy && mi.isMessageSet { -+ size = sizeMessageSet(mi, p, opts) -+ if mi.sizecacheOffset.IsValid() { -+ atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size)) -+ } -+ return size -+ } -+ if mi.extensionOffset.IsValid() { -+ e := p.Apply(mi.extensionOffset).Extensions() -+ size += mi.sizeExtensions(e, opts) -+ } -+ for _, f := range mi.orderedCoderFields { -+ if f.funcs.size == nil { -+ continue -+ } -+ fptr := p.Apply(f.offset) -+ if f.isPointer && fptr.Elem().IsNil() { -+ continue -+ } -+ size += f.funcs.size(fptr, f, opts) -+ } -+ if mi.unknownOffset.IsValid() { -+ if u := mi.getUnknownBytes(p); u != nil { -+ size += len(*u) -+ } -+ } -+ if mi.sizecacheOffset.IsValid() { -+ if size > math.MaxInt32 { -+ // The size is too large for the int32 sizecache field. -+ // We will need to recompute the size when encoding; -+ // unfortunately expensive, but better than invalid output. -+ atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), -1) -+ } else { -+ atomic.StoreInt32(p.Apply(mi.sizecacheOffset).Int32(), int32(size)) -+ } -+ } -+ return size -+} -+ -+// marshal is protoreflect.Methods.Marshal. -+func (mi *MessageInfo) marshal(in piface.MarshalInput) (out piface.MarshalOutput, err error) { -+ var p pointer -+ if ms, ok := in.Message.(*messageState); ok { -+ p = ms.pointer() -+ } else { -+ p = in.Message.(*messageReflectWrapper).pointer() -+ } -+ b, err := mi.marshalAppendPointer(in.Buf, p, marshalOptions{ -+ flags: in.Flags, -+ }) -+ return piface.MarshalOutput{Buf: b}, err -+} -+ -+func (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOptions) ([]byte, error) { -+ mi.init() -+ if p.IsNil() { -+ return b, nil -+ } -+ if flags.ProtoLegacy && mi.isMessageSet { -+ return marshalMessageSet(mi, b, p, opts) -+ } -+ var err error -+ // The old marshaler encodes extensions at beginning. -+ if mi.extensionOffset.IsValid() { -+ e := p.Apply(mi.extensionOffset).Extensions() -+ // TODO: Special handling for MessageSet? -+ b, err = mi.appendExtensions(b, e, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ for _, f := range mi.orderedCoderFields { -+ if f.funcs.marshal == nil { -+ continue -+ } -+ fptr := p.Apply(f.offset) -+ if f.isPointer && fptr.Elem().IsNil() { -+ continue -+ } -+ b, err = f.funcs.marshal(b, fptr, f, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ if mi.unknownOffset.IsValid() && !mi.isMessageSet { -+ if u := mi.getUnknownBytes(p); u != nil { -+ b = append(b, (*u)...) -+ } -+ } -+ return b, nil -+} -+ -+func (mi *MessageInfo) sizeExtensions(ext *map[int32]ExtensionField, opts marshalOptions) (n int) { -+ if ext == nil { -+ return 0 -+ } -+ for _, x := range *ext { -+ xi := getExtensionFieldInfo(x.Type()) -+ if xi.funcs.size == nil { -+ continue -+ } -+ n += xi.funcs.size(x.Value(), xi.tagsize, opts) -+ } -+ return n -+} -+ -+func (mi *MessageInfo) appendExtensions(b []byte, ext *map[int32]ExtensionField, opts marshalOptions) ([]byte, error) { -+ if ext == nil { -+ return b, nil -+ } -+ -+ switch len(*ext) { -+ case 0: -+ return b, nil -+ case 1: -+ // Fast-path for one extension: Don't bother sorting the keys. -+ var err error -+ for _, x := range *ext { -+ xi := getExtensionFieldInfo(x.Type()) -+ b, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts) -+ } -+ return b, err -+ default: -+ // Sort the keys to provide a deterministic encoding. -+ // Not sure this is required, but the old code does it. -+ keys := make([]int, 0, len(*ext)) -+ for k := range *ext { -+ keys = append(keys, int(k)) -+ } -+ sort.Ints(keys) -+ var err error -+ for _, k := range keys { -+ x := (*ext)[int32(k)] -+ xi := getExtensionFieldInfo(x.Type()) -+ b, err = xi.funcs.marshal(b, x.Value(), xi.wiretag, opts) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/enum.go b/vendor/google.golang.org/protobuf/internal/impl/enum.go -new file mode 100644 -index 00000000..5f3ef5ad ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/enum.go -@@ -0,0 +1,21 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "reflect" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type EnumInfo struct { -+ GoReflectType reflect.Type // int32 kind -+ Desc protoreflect.EnumDescriptor -+} -+ -+func (t *EnumInfo) New(n protoreflect.EnumNumber) protoreflect.Enum { -+ return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(protoreflect.Enum) -+} -+func (t *EnumInfo) Descriptor() protoreflect.EnumDescriptor { return t.Desc } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/extension.go b/vendor/google.golang.org/protobuf/internal/impl/extension.go -new file mode 100644 -index 00000000..cb25b0ba ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/extension.go -@@ -0,0 +1,156 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "reflect" -+ "sync" -+ "sync/atomic" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// ExtensionInfo implements ExtensionType. -+// -+// This type contains a number of exported fields for legacy compatibility. -+// The only non-deprecated use of this type is through the methods of the -+// ExtensionType interface. -+type ExtensionInfo struct { -+ // An ExtensionInfo may exist in several stages of initialization. -+ // -+ // extensionInfoUninitialized: Some or all of the legacy exported -+ // fields may be set, but none of the unexported fields have been -+ // initialized. This is the starting state for an ExtensionInfo -+ // in legacy generated code. -+ // -+ // extensionInfoDescInit: The desc field is set, but other unexported fields -+ // may not be initialized. Legacy exported fields may or may not be set. -+ // This is the starting state for an ExtensionInfo in newly generated code. -+ // -+ // extensionInfoFullInit: The ExtensionInfo is fully initialized. -+ // This state is only entered after lazy initialization is complete. -+ init uint32 -+ mu sync.Mutex -+ -+ goType reflect.Type -+ desc extensionTypeDescriptor -+ conv Converter -+ info *extensionFieldInfo // for fast-path method implementations -+ -+ // ExtendedType is a typed nil-pointer to the parent message type that -+ // is being extended. It is possible for this to be unpopulated in v2 -+ // since the message may no longer implement the MessageV1 interface. -+ // -+ // Deprecated: Use the ExtendedType method instead. -+ ExtendedType protoiface.MessageV1 -+ -+ // ExtensionType is the zero value of the extension type. -+ // -+ // For historical reasons, reflect.TypeOf(ExtensionType) and the -+ // type returned by InterfaceOf may not be identical. -+ // -+ // Deprecated: Use InterfaceOf(xt.Zero()) instead. -+ ExtensionType interface{} -+ -+ // Field is the field number of the extension. -+ // -+ // Deprecated: Use the Descriptor().Number method instead. -+ Field int32 -+ -+ // Name is the fully qualified name of extension. -+ // -+ // Deprecated: Use the Descriptor().FullName method instead. -+ Name string -+ -+ // Tag is the protobuf struct tag used in the v1 API. -+ // -+ // Deprecated: Do not use. -+ Tag string -+ -+ // Filename is the proto filename in which the extension is defined. -+ // -+ // Deprecated: Use Descriptor().ParentFile().Path() instead. -+ Filename string -+} -+ -+// Stages of initialization: See the ExtensionInfo.init field. -+const ( -+ extensionInfoUninitialized = 0 -+ extensionInfoDescInit = 1 -+ extensionInfoFullInit = 2 -+) -+ -+func InitExtensionInfo(xi *ExtensionInfo, xd protoreflect.ExtensionDescriptor, goType reflect.Type) { -+ xi.goType = goType -+ xi.desc = extensionTypeDescriptor{xd, xi} -+ xi.init = extensionInfoDescInit -+} -+ -+func (xi *ExtensionInfo) New() protoreflect.Value { -+ return xi.lazyInit().New() -+} -+func (xi *ExtensionInfo) Zero() protoreflect.Value { -+ return xi.lazyInit().Zero() -+} -+func (xi *ExtensionInfo) ValueOf(v interface{}) protoreflect.Value { -+ return xi.lazyInit().PBValueOf(reflect.ValueOf(v)) -+} -+func (xi *ExtensionInfo) InterfaceOf(v protoreflect.Value) interface{} { -+ return xi.lazyInit().GoValueOf(v).Interface() -+} -+func (xi *ExtensionInfo) IsValidValue(v protoreflect.Value) bool { -+ return xi.lazyInit().IsValidPB(v) -+} -+func (xi *ExtensionInfo) IsValidInterface(v interface{}) bool { -+ return xi.lazyInit().IsValidGo(reflect.ValueOf(v)) -+} -+func (xi *ExtensionInfo) TypeDescriptor() protoreflect.ExtensionTypeDescriptor { -+ if atomic.LoadUint32(&xi.init) < extensionInfoDescInit { -+ xi.lazyInitSlow() -+ } -+ return &xi.desc -+} -+ -+func (xi *ExtensionInfo) lazyInit() Converter { -+ if atomic.LoadUint32(&xi.init) < extensionInfoFullInit { -+ xi.lazyInitSlow() -+ } -+ return xi.conv -+} -+ -+func (xi *ExtensionInfo) lazyInitSlow() { -+ xi.mu.Lock() -+ defer xi.mu.Unlock() -+ -+ if xi.init == extensionInfoFullInit { -+ return -+ } -+ defer atomic.StoreUint32(&xi.init, extensionInfoFullInit) -+ -+ if xi.desc.ExtensionDescriptor == nil { -+ xi.initFromLegacy() -+ } -+ if !xi.desc.ExtensionDescriptor.IsPlaceholder() { -+ if xi.ExtensionType == nil { -+ xi.initToLegacy() -+ } -+ xi.conv = NewConverter(xi.goType, xi.desc.ExtensionDescriptor) -+ xi.info = makeExtensionFieldInfo(xi.desc.ExtensionDescriptor) -+ xi.info.validation = newValidationInfo(xi.desc.ExtensionDescriptor, xi.goType) -+ } -+} -+ -+type extensionTypeDescriptor struct { -+ protoreflect.ExtensionDescriptor -+ xi *ExtensionInfo -+} -+ -+func (xtd *extensionTypeDescriptor) Type() protoreflect.ExtensionType { -+ return xtd.xi -+} -+func (xtd *extensionTypeDescriptor) Descriptor() protoreflect.ExtensionDescriptor { -+ return xtd.ExtensionDescriptor -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go -new file mode 100644 -index 00000000..c2a803bb ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go -@@ -0,0 +1,218 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "strings" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// legacyEnumName returns the name of enums used in legacy code. -+// It is neither the protobuf full name nor the qualified Go name, -+// but rather an odd hybrid of both. -+func legacyEnumName(ed protoreflect.EnumDescriptor) string { -+ var protoPkg string -+ enumName := string(ed.FullName()) -+ if fd := ed.ParentFile(); fd != nil { -+ protoPkg = string(fd.Package()) -+ enumName = strings.TrimPrefix(enumName, protoPkg+".") -+ } -+ if protoPkg == "" { -+ return strs.GoCamelCase(enumName) -+ } -+ return protoPkg + "." + strs.GoCamelCase(enumName) -+} -+ -+// legacyWrapEnum wraps v as a protoreflect.Enum, -+// where v must be a int32 kind and not implement the v2 API already. -+func legacyWrapEnum(v reflect.Value) protoreflect.Enum { -+ et := legacyLoadEnumType(v.Type()) -+ return et.New(protoreflect.EnumNumber(v.Int())) -+} -+ -+var legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType -+ -+// legacyLoadEnumType dynamically loads a protoreflect.EnumType for t, -+// where t must be an int32 kind and not implement the v2 API already. -+func legacyLoadEnumType(t reflect.Type) protoreflect.EnumType { -+ // Fast-path: check if a EnumType is cached for this concrete type. -+ if et, ok := legacyEnumTypeCache.Load(t); ok { -+ return et.(protoreflect.EnumType) -+ } -+ -+ // Slow-path: derive enum descriptor and initialize EnumType. -+ var et protoreflect.EnumType -+ ed := LegacyLoadEnumDesc(t) -+ et = &legacyEnumType{ -+ desc: ed, -+ goType: t, -+ } -+ if et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok { -+ return et.(protoreflect.EnumType) -+ } -+ return et -+} -+ -+type legacyEnumType struct { -+ desc protoreflect.EnumDescriptor -+ goType reflect.Type -+ m sync.Map // map[protoreflect.EnumNumber]proto.Enum -+} -+ -+func (t *legacyEnumType) New(n protoreflect.EnumNumber) protoreflect.Enum { -+ if e, ok := t.m.Load(n); ok { -+ return e.(protoreflect.Enum) -+ } -+ e := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType} -+ t.m.Store(n, e) -+ return e -+} -+func (t *legacyEnumType) Descriptor() protoreflect.EnumDescriptor { -+ return t.desc -+} -+ -+type legacyEnumWrapper struct { -+ num protoreflect.EnumNumber -+ pbTyp protoreflect.EnumType -+ goTyp reflect.Type -+} -+ -+func (e *legacyEnumWrapper) Descriptor() protoreflect.EnumDescriptor { -+ return e.pbTyp.Descriptor() -+} -+func (e *legacyEnumWrapper) Type() protoreflect.EnumType { -+ return e.pbTyp -+} -+func (e *legacyEnumWrapper) Number() protoreflect.EnumNumber { -+ return e.num -+} -+func (e *legacyEnumWrapper) ProtoReflect() protoreflect.Enum { -+ return e -+} -+func (e *legacyEnumWrapper) protoUnwrap() interface{} { -+ v := reflect.New(e.goTyp).Elem() -+ v.SetInt(int64(e.num)) -+ return v.Interface() -+} -+ -+var ( -+ _ protoreflect.Enum = (*legacyEnumWrapper)(nil) -+ _ unwrapper = (*legacyEnumWrapper)(nil) -+) -+ -+var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor -+ -+// LegacyLoadEnumDesc returns an EnumDescriptor derived from the Go type, -+// which must be an int32 kind and not implement the v2 API already. -+// -+// This is exported for testing purposes. -+func LegacyLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { -+ // Fast-path: check if an EnumDescriptor is cached for this concrete type. -+ if ed, ok := legacyEnumDescCache.Load(t); ok { -+ return ed.(protoreflect.EnumDescriptor) -+ } -+ -+ // Slow-path: initialize EnumDescriptor from the raw descriptor. -+ ev := reflect.Zero(t).Interface() -+ if _, ok := ev.(protoreflect.Enum); ok { -+ panic(fmt.Sprintf("%v already implements proto.Enum", t)) -+ } -+ edV1, ok := ev.(enumV1) -+ if !ok { -+ return aberrantLoadEnumDesc(t) -+ } -+ b, idxs := edV1.EnumDescriptor() -+ -+ var ed protoreflect.EnumDescriptor -+ if len(idxs) == 1 { -+ ed = legacyLoadFileDesc(b).Enums().Get(idxs[0]) -+ } else { -+ md := legacyLoadFileDesc(b).Messages().Get(idxs[0]) -+ for _, i := range idxs[1 : len(idxs)-1] { -+ md = md.Messages().Get(i) -+ } -+ ed = md.Enums().Get(idxs[len(idxs)-1]) -+ } -+ if ed, ok := legacyEnumDescCache.LoadOrStore(t, ed); ok { -+ return ed.(protoreflect.EnumDescriptor) -+ } -+ return ed -+} -+ -+var aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor -+ -+// aberrantLoadEnumDesc returns an EnumDescriptor derived from the Go type, -+// which must not implement protoreflect.Enum or enumV1. -+// -+// If the type does not implement enumV1, then there is no reliable -+// way to derive the original protobuf type information. -+// We are unable to use the global enum registry since it is -+// unfortunately keyed by the protobuf full name, which we also do not know. -+// Thus, this produces some bogus enum descriptor based on the Go type name. -+func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { -+ // Fast-path: check if an EnumDescriptor is cached for this concrete type. -+ if ed, ok := aberrantEnumDescCache.Load(t); ok { -+ return ed.(protoreflect.EnumDescriptor) -+ } -+ -+ // Slow-path: construct a bogus, but unique EnumDescriptor. -+ ed := &filedesc.Enum{L2: new(filedesc.EnumL2)} -+ ed.L0.FullName = AberrantDeriveFullName(t) // e.g., github_com.user.repo.MyEnum -+ ed.L0.ParentFile = filedesc.SurrogateProto3 -+ ed.L2.Values.List = append(ed.L2.Values.List, filedesc.EnumValue{}) -+ -+ // TODO: Use the presence of a UnmarshalJSON method to determine proto2? -+ -+ vd := &ed.L2.Values.List[0] -+ vd.L0.FullName = ed.L0.FullName + "_UNKNOWN" // e.g., github_com.user.repo.MyEnum_UNKNOWN -+ vd.L0.ParentFile = ed.L0.ParentFile -+ vd.L0.Parent = ed -+ -+ // TODO: We could use the String method to obtain some enum value names by -+ // starting at 0 and print the enum until it produces invalid identifiers. -+ // An exhaustive query is clearly impractical, but can be best-effort. -+ -+ if ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok { -+ return ed.(protoreflect.EnumDescriptor) -+ } -+ return ed -+} -+ -+// AberrantDeriveFullName derives a fully qualified protobuf name for the given Go type -+// The provided name is not guaranteed to be stable nor universally unique. -+// It should be sufficiently unique within a program. -+// -+// This is exported for testing purposes. -+func AberrantDeriveFullName(t reflect.Type) protoreflect.FullName { -+ sanitize := func(r rune) rune { -+ switch { -+ case r == '/': -+ return '.' -+ case 'a' <= r && r <= 'z', 'A' <= r && r <= 'Z', '0' <= r && r <= '9': -+ return r -+ default: -+ return '_' -+ } -+ } -+ prefix := strings.Map(sanitize, t.PkgPath()) -+ suffix := strings.Map(sanitize, t.Name()) -+ if suffix == "" { -+ suffix = fmt.Sprintf("UnknownX%X", reflect.ValueOf(t).Pointer()) -+ } -+ -+ ss := append(strings.Split(prefix, "."), suffix) -+ for i, s := range ss { -+ if s == "" || ('0' <= s[0] && s[0] <= '9') { -+ ss[i] = "x" + s -+ } -+ } -+ return protoreflect.FullName(strings.Join(ss, ".")) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go -new file mode 100644 -index 00000000..9b64ad5b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go -@@ -0,0 +1,92 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "encoding/binary" -+ "encoding/json" -+ "hash/crc32" -+ "math" -+ "reflect" -+ -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// These functions exist to support exported APIs in generated protobufs. -+// While these are deprecated, they cannot be removed for compatibility reasons. -+ -+// LegacyEnumName returns the name of enums used in legacy code. -+func (Export) LegacyEnumName(ed protoreflect.EnumDescriptor) string { -+ return legacyEnumName(ed) -+} -+ -+// LegacyMessageTypeOf returns the protoreflect.MessageType for m, -+// with name used as the message name if necessary. -+func (Export) LegacyMessageTypeOf(m protoiface.MessageV1, name protoreflect.FullName) protoreflect.MessageType { -+ if mv := (Export{}).protoMessageV2Of(m); mv != nil { -+ return mv.ProtoReflect().Type() -+ } -+ return legacyLoadMessageType(reflect.TypeOf(m), name) -+} -+ -+// UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input. -+// The input can either be a string representing the enum value by name, -+// or a number representing the enum number itself. -+func (Export) UnmarshalJSONEnum(ed protoreflect.EnumDescriptor, b []byte) (protoreflect.EnumNumber, error) { -+ if b[0] == '"' { -+ var name protoreflect.Name -+ if err := json.Unmarshal(b, &name); err != nil { -+ return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) -+ } -+ ev := ed.Values().ByName(name) -+ if ev == nil { -+ return 0, errors.New("invalid value for enum %v: %s", ed.FullName(), name) -+ } -+ return ev.Number(), nil -+ } else { -+ var num protoreflect.EnumNumber -+ if err := json.Unmarshal(b, &num); err != nil { -+ return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) -+ } -+ return num, nil -+ } -+} -+ -+// CompressGZIP compresses the input as a GZIP-encoded file. -+// The current implementation does no compression. -+func (Export) CompressGZIP(in []byte) (out []byte) { -+ // RFC 1952, section 2.3.1. -+ var gzipHeader = [10]byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff} -+ -+ // RFC 1951, section 3.2.4. -+ var blockHeader [5]byte -+ const maxBlockSize = math.MaxUint16 -+ numBlocks := 1 + len(in)/maxBlockSize -+ -+ // RFC 1952, section 2.3.1. -+ var gzipFooter [8]byte -+ binary.LittleEndian.PutUint32(gzipFooter[0:4], crc32.ChecksumIEEE(in)) -+ binary.LittleEndian.PutUint32(gzipFooter[4:8], uint32(len(in))) -+ -+ // Encode the input without compression using raw DEFLATE blocks. -+ out = make([]byte, 0, len(gzipHeader)+len(blockHeader)*numBlocks+len(in)+len(gzipFooter)) -+ out = append(out, gzipHeader[:]...) -+ for blockHeader[0] == 0 { -+ blockSize := maxBlockSize -+ if blockSize > len(in) { -+ blockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3. -+ blockSize = len(in) -+ } -+ binary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize)) -+ binary.LittleEndian.PutUint16(blockHeader[3:5], ^uint16(blockSize)) -+ out = append(out, blockHeader[:]...) -+ out = append(out, in[:blockSize]...) -+ in = in[blockSize:] -+ } -+ out = append(out, gzipFooter[:]...) -+ return out -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go -new file mode 100644 -index 00000000..87b30d05 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go -@@ -0,0 +1,176 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "reflect" -+ -+ "google.golang.org/protobuf/internal/descopts" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ ptag "google.golang.org/protobuf/internal/encoding/tag" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+func (xi *ExtensionInfo) initToLegacy() { -+ xd := xi.desc -+ var parent protoiface.MessageV1 -+ messageName := xd.ContainingMessage().FullName() -+ if mt, _ := protoregistry.GlobalTypes.FindMessageByName(messageName); mt != nil { -+ // Create a new parent message and unwrap it if possible. -+ mv := mt.New().Interface() -+ t := reflect.TypeOf(mv) -+ if mv, ok := mv.(unwrapper); ok { -+ t = reflect.TypeOf(mv.protoUnwrap()) -+ } -+ -+ // Check whether the message implements the legacy v1 Message interface. -+ mz := reflect.Zero(t).Interface() -+ if mz, ok := mz.(protoiface.MessageV1); ok { -+ parent = mz -+ } -+ } -+ -+ // Determine the v1 extension type, which is unfortunately not the same as -+ // the v2 ExtensionType.GoType. -+ extType := xi.goType -+ switch extType.Kind() { -+ case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: -+ extType = reflect.PtrTo(extType) // T -> *T for singular scalar fields -+ } -+ -+ // Reconstruct the legacy enum full name. -+ var enumName string -+ if xd.Kind() == protoreflect.EnumKind { -+ enumName = legacyEnumName(xd.Enum()) -+ } -+ -+ // Derive the proto file that the extension was declared within. -+ var filename string -+ if fd := xd.ParentFile(); fd != nil { -+ filename = fd.Path() -+ } -+ -+ // For MessageSet extensions, the name used is the parent message. -+ name := xd.FullName() -+ if messageset.IsMessageSetExtension(xd) { -+ name = name.Parent() -+ } -+ -+ xi.ExtendedType = parent -+ xi.ExtensionType = reflect.Zero(extType).Interface() -+ xi.Field = int32(xd.Number()) -+ xi.Name = string(name) -+ xi.Tag = ptag.Marshal(xd, enumName) -+ xi.Filename = filename -+} -+ -+// initFromLegacy initializes an ExtensionInfo from -+// the contents of the deprecated exported fields of the type. -+func (xi *ExtensionInfo) initFromLegacy() { -+ // The v1 API returns "type incomplete" descriptors where only the -+ // field number is specified. In such a case, use a placeholder. -+ if xi.ExtendedType == nil || xi.ExtensionType == nil { -+ xd := placeholderExtension{ -+ name: protoreflect.FullName(xi.Name), -+ number: protoreflect.FieldNumber(xi.Field), -+ } -+ xi.desc = extensionTypeDescriptor{xd, xi} -+ return -+ } -+ -+ // Resolve enum or message dependencies. -+ var ed protoreflect.EnumDescriptor -+ var md protoreflect.MessageDescriptor -+ t := reflect.TypeOf(xi.ExtensionType) -+ isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct -+ isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 -+ if isOptional || isRepeated { -+ t = t.Elem() -+ } -+ switch v := reflect.Zero(t).Interface().(type) { -+ case protoreflect.Enum: -+ ed = v.Descriptor() -+ case enumV1: -+ ed = LegacyLoadEnumDesc(t) -+ case protoreflect.ProtoMessage: -+ md = v.ProtoReflect().Descriptor() -+ case messageV1: -+ md = LegacyLoadMessageDesc(t) -+ } -+ -+ // Derive basic field information from the struct tag. -+ var evs protoreflect.EnumValueDescriptors -+ if ed != nil { -+ evs = ed.Values() -+ } -+ fd := ptag.Unmarshal(xi.Tag, t, evs).(*filedesc.Field) -+ -+ // Construct a v2 ExtensionType. -+ xd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)} -+ xd.L0.ParentFile = filedesc.SurrogateProto2 -+ xd.L0.FullName = protoreflect.FullName(xi.Name) -+ xd.L1.Number = protoreflect.FieldNumber(xi.Field) -+ xd.L1.Cardinality = fd.L1.Cardinality -+ xd.L1.Kind = fd.L1.Kind -+ xd.L2.IsPacked = fd.L1.IsPacked -+ xd.L2.Default = fd.L1.Default -+ xd.L1.Extendee = Export{}.MessageDescriptorOf(xi.ExtendedType) -+ xd.L2.Enum = ed -+ xd.L2.Message = md -+ -+ // Derive real extension field name for MessageSets. -+ if messageset.IsMessageSet(xd.L1.Extendee) && md.FullName() == xd.L0.FullName { -+ xd.L0.FullName = xd.L0.FullName.Append(messageset.ExtensionName) -+ } -+ -+ tt := reflect.TypeOf(xi.ExtensionType) -+ if isOptional { -+ tt = tt.Elem() -+ } -+ xi.goType = tt -+ xi.desc = extensionTypeDescriptor{xd, xi} -+} -+ -+type placeholderExtension struct { -+ name protoreflect.FullName -+ number protoreflect.FieldNumber -+} -+ -+func (x placeholderExtension) ParentFile() protoreflect.FileDescriptor { return nil } -+func (x placeholderExtension) Parent() protoreflect.Descriptor { return nil } -+func (x placeholderExtension) Index() int { return 0 } -+func (x placeholderExtension) Syntax() protoreflect.Syntax { return 0 } -+func (x placeholderExtension) Name() protoreflect.Name { return x.name.Name() } -+func (x placeholderExtension) FullName() protoreflect.FullName { return x.name } -+func (x placeholderExtension) IsPlaceholder() bool { return true } -+func (x placeholderExtension) Options() protoreflect.ProtoMessage { return descopts.Field } -+func (x placeholderExtension) Number() protoreflect.FieldNumber { return x.number } -+func (x placeholderExtension) Cardinality() protoreflect.Cardinality { return 0 } -+func (x placeholderExtension) Kind() protoreflect.Kind { return 0 } -+func (x placeholderExtension) HasJSONName() bool { return false } -+func (x placeholderExtension) JSONName() string { return "[" + string(x.name) + "]" } -+func (x placeholderExtension) TextName() string { return "[" + string(x.name) + "]" } -+func (x placeholderExtension) HasPresence() bool { return false } -+func (x placeholderExtension) HasOptionalKeyword() bool { return false } -+func (x placeholderExtension) IsExtension() bool { return true } -+func (x placeholderExtension) IsWeak() bool { return false } -+func (x placeholderExtension) IsPacked() bool { return false } -+func (x placeholderExtension) IsList() bool { return false } -+func (x placeholderExtension) IsMap() bool { return false } -+func (x placeholderExtension) MapKey() protoreflect.FieldDescriptor { return nil } -+func (x placeholderExtension) MapValue() protoreflect.FieldDescriptor { return nil } -+func (x placeholderExtension) HasDefault() bool { return false } -+func (x placeholderExtension) Default() protoreflect.Value { return protoreflect.Value{} } -+func (x placeholderExtension) DefaultEnumValue() protoreflect.EnumValueDescriptor { return nil } -+func (x placeholderExtension) ContainingOneof() protoreflect.OneofDescriptor { return nil } -+func (x placeholderExtension) ContainingMessage() protoreflect.MessageDescriptor { return nil } -+func (x placeholderExtension) Enum() protoreflect.EnumDescriptor { return nil } -+func (x placeholderExtension) Message() protoreflect.MessageDescriptor { return nil } -+func (x placeholderExtension) ProtoType(protoreflect.FieldDescriptor) { return } -+func (x placeholderExtension) ProtoInternal(pragma.DoNotImplement) { return } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go -new file mode 100644 -index 00000000..9ab09108 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_file.go -@@ -0,0 +1,81 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "bytes" -+ "compress/gzip" -+ "io/ioutil" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// Every enum and message type generated by protoc-gen-go since commit 2fc053c5 -+// on February 25th, 2016 has had a method to get the raw descriptor. -+// Types that were not generated by protoc-gen-go or were generated prior -+// to that version are not supported. -+// -+// The []byte returned is the encoded form of a FileDescriptorProto message -+// compressed using GZIP. The []int is the path from the top-level file -+// to the specific message or enum declaration. -+type ( -+ enumV1 interface { -+ EnumDescriptor() ([]byte, []int) -+ } -+ messageV1 interface { -+ Descriptor() ([]byte, []int) -+ } -+) -+ -+var legacyFileDescCache sync.Map // map[*byte]protoreflect.FileDescriptor -+ -+// legacyLoadFileDesc unmarshals b as a compressed FileDescriptorProto message. -+// -+// This assumes that b is immutable and that b does not refer to part of a -+// concatenated series of GZIP files (which would require shenanigans that -+// rely on the concatenation properties of both protobufs and GZIP). -+// File descriptors generated by protoc-gen-go do not rely on that property. -+func legacyLoadFileDesc(b []byte) protoreflect.FileDescriptor { -+ // Fast-path: check whether we already have a cached file descriptor. -+ if fd, ok := legacyFileDescCache.Load(&b[0]); ok { -+ return fd.(protoreflect.FileDescriptor) -+ } -+ -+ // Slow-path: decompress and unmarshal the file descriptor proto. -+ zr, err := gzip.NewReader(bytes.NewReader(b)) -+ if err != nil { -+ panic(err) -+ } -+ b2, err := ioutil.ReadAll(zr) -+ if err != nil { -+ panic(err) -+ } -+ -+ fd := filedesc.Builder{ -+ RawDescriptor: b2, -+ FileRegistry: resolverOnly{protoregistry.GlobalFiles}, // do not register back to global registry -+ }.Build().File -+ if fd, ok := legacyFileDescCache.LoadOrStore(&b[0], fd); ok { -+ return fd.(protoreflect.FileDescriptor) -+ } -+ return fd -+} -+ -+type resolverOnly struct { -+ reg *protoregistry.Files -+} -+ -+func (r resolverOnly) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { -+ return r.reg.FindFileByPath(path) -+} -+func (r resolverOnly) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { -+ return r.reg.FindDescriptorByName(name) -+} -+func (resolverOnly) RegisterFile(protoreflect.FileDescriptor) error { -+ return nil -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -new file mode 100644 -index 00000000..61c483fa ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -0,0 +1,563 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "strings" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/descopts" -+ ptag "google.golang.org/protobuf/internal/encoding/tag" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// legacyWrapMessage wraps v as a protoreflect.Message, -+// where v must be a *struct kind and not implement the v2 API already. -+func legacyWrapMessage(v reflect.Value) protoreflect.Message { -+ t := v.Type() -+ if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { -+ return aberrantMessage{v: v} -+ } -+ mt := legacyLoadMessageInfo(t, "") -+ return mt.MessageOf(v.Interface()) -+} -+ -+// legacyLoadMessageType dynamically loads a protoreflect.Type for t, -+// where t must be not implement the v2 API already. -+// The provided name is used if it cannot be determined from the message. -+func legacyLoadMessageType(t reflect.Type, name protoreflect.FullName) protoreflect.MessageType { -+ if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { -+ return aberrantMessageType{t} -+ } -+ return legacyLoadMessageInfo(t, name) -+} -+ -+var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo -+ -+// legacyLoadMessageInfo dynamically loads a *MessageInfo for t, -+// where t must be a *struct kind and not implement the v2 API already. -+// The provided name is used if it cannot be determined from the message. -+func legacyLoadMessageInfo(t reflect.Type, name protoreflect.FullName) *MessageInfo { -+ // Fast-path: check if a MessageInfo is cached for this concrete type. -+ if mt, ok := legacyMessageTypeCache.Load(t); ok { -+ return mt.(*MessageInfo) -+ } -+ -+ // Slow-path: derive message descriptor and initialize MessageInfo. -+ mi := &MessageInfo{ -+ Desc: legacyLoadMessageDesc(t, name), -+ GoReflectType: t, -+ } -+ -+ var hasMarshal, hasUnmarshal bool -+ v := reflect.Zero(t).Interface() -+ if _, hasMarshal = v.(legacyMarshaler); hasMarshal { -+ mi.methods.Marshal = legacyMarshal -+ -+ // We have no way to tell whether the type's Marshal method -+ // supports deterministic serialization or not, but this -+ // preserves the v1 implementation's behavior of always -+ // calling Marshal methods when present. -+ mi.methods.Flags |= protoiface.SupportMarshalDeterministic -+ } -+ if _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal { -+ mi.methods.Unmarshal = legacyUnmarshal -+ } -+ if _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) { -+ mi.methods.Merge = legacyMerge -+ } -+ -+ if mi, ok := legacyMessageTypeCache.LoadOrStore(t, mi); ok { -+ return mi.(*MessageInfo) -+ } -+ return mi -+} -+ -+var legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor -+ -+// LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type, -+// which should be a *struct kind and must not implement the v2 API already. -+// -+// This is exported for testing purposes. -+func LegacyLoadMessageDesc(t reflect.Type) protoreflect.MessageDescriptor { -+ return legacyLoadMessageDesc(t, "") -+} -+func legacyLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { -+ // Fast-path: check if a MessageDescriptor is cached for this concrete type. -+ if mi, ok := legacyMessageDescCache.Load(t); ok { -+ return mi.(protoreflect.MessageDescriptor) -+ } -+ -+ // Slow-path: initialize MessageDescriptor from the raw descriptor. -+ mv := reflect.Zero(t).Interface() -+ if _, ok := mv.(protoreflect.ProtoMessage); ok { -+ panic(fmt.Sprintf("%v already implements proto.Message", t)) -+ } -+ mdV1, ok := mv.(messageV1) -+ if !ok { -+ return aberrantLoadMessageDesc(t, name) -+ } -+ -+ // If this is a dynamic message type where there isn't a 1-1 mapping between -+ // Go and protobuf types, calling the Descriptor method on the zero value of -+ // the message type isn't likely to work. If it panics, swallow the panic and -+ // continue as if the Descriptor method wasn't present. -+ b, idxs := func() ([]byte, []int) { -+ defer func() { -+ recover() -+ }() -+ return mdV1.Descriptor() -+ }() -+ if b == nil { -+ return aberrantLoadMessageDesc(t, name) -+ } -+ -+ // If the Go type has no fields, then this might be a proto3 empty message -+ // from before the size cache was added. If there are any fields, check to -+ // see that at least one of them looks like something we generated. -+ if t.Elem().Kind() == reflect.Struct { -+ if nfield := t.Elem().NumField(); nfield > 0 { -+ hasProtoField := false -+ for i := 0; i < nfield; i++ { -+ f := t.Elem().Field(i) -+ if f.Tag.Get("protobuf") != "" || f.Tag.Get("protobuf_oneof") != "" || strings.HasPrefix(f.Name, "XXX_") { -+ hasProtoField = true -+ break -+ } -+ } -+ if !hasProtoField { -+ return aberrantLoadMessageDesc(t, name) -+ } -+ } -+ } -+ -+ md := legacyLoadFileDesc(b).Messages().Get(idxs[0]) -+ for _, i := range idxs[1:] { -+ md = md.Messages().Get(i) -+ } -+ if name != "" && md.FullName() != name { -+ panic(fmt.Sprintf("mismatching message name: got %v, want %v", md.FullName(), name)) -+ } -+ if md, ok := legacyMessageDescCache.LoadOrStore(t, md); ok { -+ return md.(protoreflect.MessageDescriptor) -+ } -+ return md -+} -+ -+var ( -+ aberrantMessageDescLock sync.Mutex -+ aberrantMessageDescCache map[reflect.Type]protoreflect.MessageDescriptor -+) -+ -+// aberrantLoadMessageDesc returns an MessageDescriptor derived from the Go type, -+// which must not implement protoreflect.ProtoMessage or messageV1. -+// -+// This is a best-effort derivation of the message descriptor using the protobuf -+// tags on the struct fields. -+func aberrantLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { -+ aberrantMessageDescLock.Lock() -+ defer aberrantMessageDescLock.Unlock() -+ if aberrantMessageDescCache == nil { -+ aberrantMessageDescCache = make(map[reflect.Type]protoreflect.MessageDescriptor) -+ } -+ return aberrantLoadMessageDescReentrant(t, name) -+} -+func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { -+ // Fast-path: check if an MessageDescriptor is cached for this concrete type. -+ if md, ok := aberrantMessageDescCache[t]; ok { -+ return md -+ } -+ -+ // Slow-path: construct a descriptor from the Go struct type (best-effort). -+ // Cache the MessageDescriptor early on so that we can resolve internal -+ // cyclic references. -+ md := &filedesc.Message{L2: new(filedesc.MessageL2)} -+ md.L0.FullName = aberrantDeriveMessageName(t, name) -+ md.L0.ParentFile = filedesc.SurrogateProto2 -+ aberrantMessageDescCache[t] = md -+ -+ if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { -+ return md -+ } -+ -+ // Try to determine if the message is using proto3 by checking scalars. -+ for i := 0; i < t.Elem().NumField(); i++ { -+ f := t.Elem().Field(i) -+ if tag := f.Tag.Get("protobuf"); tag != "" { -+ switch f.Type.Kind() { -+ case reflect.Bool, reflect.Int32, reflect.Int64, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64, reflect.String: -+ md.L0.ParentFile = filedesc.SurrogateProto3 -+ } -+ for _, s := range strings.Split(tag, ",") { -+ if s == "proto3" { -+ md.L0.ParentFile = filedesc.SurrogateProto3 -+ } -+ } -+ } -+ } -+ -+ // Obtain a list of oneof wrapper types. -+ var oneofWrappers []reflect.Type -+ for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -+ if fn, ok := t.MethodByName(method); ok { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -+ } -+ } -+ } -+ } -+ } -+ -+ // Obtain a list of the extension ranges. -+ if fn, ok := t.MethodByName("ExtensionRangeArray"); ok { -+ vs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0] -+ for i := 0; i < vs.Len(); i++ { -+ v := vs.Index(i) -+ md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ -+ protoreflect.FieldNumber(v.FieldByName("Start").Int()), -+ protoreflect.FieldNumber(v.FieldByName("End").Int() + 1), -+ }) -+ md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil) -+ } -+ } -+ -+ // Derive the message fields by inspecting the struct fields. -+ for i := 0; i < t.Elem().NumField(); i++ { -+ f := t.Elem().Field(i) -+ if tag := f.Tag.Get("protobuf"); tag != "" { -+ tagKey := f.Tag.Get("protobuf_key") -+ tagVal := f.Tag.Get("protobuf_val") -+ aberrantAppendField(md, f.Type, tag, tagKey, tagVal) -+ } -+ if tag := f.Tag.Get("protobuf_oneof"); tag != "" { -+ n := len(md.L2.Oneofs.List) -+ md.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{}) -+ od := &md.L2.Oneofs.List[n] -+ od.L0.FullName = md.FullName().Append(protoreflect.Name(tag)) -+ od.L0.ParentFile = md.L0.ParentFile -+ od.L0.Parent = md -+ od.L0.Index = n -+ -+ for _, t := range oneofWrappers { -+ if t.Implements(f.Type) { -+ f := t.Elem().Field(0) -+ if tag := f.Tag.Get("protobuf"); tag != "" { -+ aberrantAppendField(md, f.Type, tag, "", "") -+ fd := &md.L2.Fields.List[len(md.L2.Fields.List)-1] -+ fd.L1.ContainingOneof = od -+ od.L1.Fields.List = append(od.L1.Fields.List, fd) -+ } -+ } -+ } -+ } -+ } -+ -+ return md -+} -+ -+func aberrantDeriveMessageName(t reflect.Type, name protoreflect.FullName) protoreflect.FullName { -+ if name.IsValid() { -+ return name -+ } -+ func() { -+ defer func() { recover() }() // swallow possible nil panics -+ if m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok { -+ name = protoreflect.FullName(m.XXX_MessageName()) -+ } -+ }() -+ if name.IsValid() { -+ return name -+ } -+ if t.Kind() == reflect.Ptr { -+ t = t.Elem() -+ } -+ return AberrantDeriveFullName(t) -+} -+ -+func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, tagVal string) { -+ t := goType -+ isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct -+ isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 -+ if isOptional || isRepeated { -+ t = t.Elem() -+ } -+ fd := ptag.Unmarshal(tag, t, placeholderEnumValues{}).(*filedesc.Field) -+ -+ // Append field descriptor to the message. -+ n := len(md.L2.Fields.List) -+ md.L2.Fields.List = append(md.L2.Fields.List, *fd) -+ fd = &md.L2.Fields.List[n] -+ fd.L0.FullName = md.FullName().Append(fd.Name()) -+ fd.L0.ParentFile = md.L0.ParentFile -+ fd.L0.Parent = md -+ fd.L0.Index = n -+ -+ if fd.L1.IsWeak || fd.L1.HasPacked { -+ fd.L1.Options = func() protoreflect.ProtoMessage { -+ opts := descopts.Field.ProtoReflect().New() -+ if fd.L1.IsWeak { -+ opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) -+ } -+ if fd.L1.HasPacked { -+ opts.Set(opts.Descriptor().Fields().ByName("packed"), protoreflect.ValueOfBool(fd.L1.IsPacked)) -+ } -+ return opts.Interface() -+ } -+ } -+ -+ // Populate Enum and Message. -+ if fd.Enum() == nil && fd.Kind() == protoreflect.EnumKind { -+ switch v := reflect.Zero(t).Interface().(type) { -+ case protoreflect.Enum: -+ fd.L1.Enum = v.Descriptor() -+ default: -+ fd.L1.Enum = LegacyLoadEnumDesc(t) -+ } -+ } -+ if fd.Message() == nil && (fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind) { -+ switch v := reflect.Zero(t).Interface().(type) { -+ case protoreflect.ProtoMessage: -+ fd.L1.Message = v.ProtoReflect().Descriptor() -+ case messageV1: -+ fd.L1.Message = LegacyLoadMessageDesc(t) -+ default: -+ if t.Kind() == reflect.Map { -+ n := len(md.L1.Messages.List) -+ md.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)}) -+ md2 := &md.L1.Messages.List[n] -+ md2.L0.FullName = md.FullName().Append(protoreflect.Name(strs.MapEntryName(string(fd.Name())))) -+ md2.L0.ParentFile = md.L0.ParentFile -+ md2.L0.Parent = md -+ md2.L0.Index = n -+ -+ md2.L1.IsMapEntry = true -+ md2.L2.Options = func() protoreflect.ProtoMessage { -+ opts := descopts.Message.ProtoReflect().New() -+ opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOfBool(true)) -+ return opts.Interface() -+ } -+ -+ aberrantAppendField(md2, t.Key(), tagKey, "", "") -+ aberrantAppendField(md2, t.Elem(), tagVal, "", "") -+ -+ fd.L1.Message = md2 -+ break -+ } -+ fd.L1.Message = aberrantLoadMessageDescReentrant(t, "") -+ } -+ } -+} -+ -+type placeholderEnumValues struct { -+ protoreflect.EnumValueDescriptors -+} -+ -+func (placeholderEnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor { -+ return filedesc.PlaceholderEnumValue(protoreflect.FullName(fmt.Sprintf("UNKNOWN_%d", n))) -+} -+ -+// legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder. -+type legacyMarshaler interface { -+ Marshal() ([]byte, error) -+} -+ -+// legacyUnmarshaler is the proto.Unmarshaler interface superseded by protoiface.Methoder. -+type legacyUnmarshaler interface { -+ Unmarshal([]byte) error -+} -+ -+// legacyMerger is the proto.Merger interface superseded by protoiface.Methoder. -+type legacyMerger interface { -+ Merge(protoiface.MessageV1) -+} -+ -+var aberrantProtoMethods = &protoiface.Methods{ -+ Marshal: legacyMarshal, -+ Unmarshal: legacyUnmarshal, -+ Merge: legacyMerge, -+ -+ // We have no way to tell whether the type's Marshal method -+ // supports deterministic serialization or not, but this -+ // preserves the v1 implementation's behavior of always -+ // calling Marshal methods when present. -+ Flags: protoiface.SupportMarshalDeterministic, -+} -+ -+func legacyMarshal(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { -+ v := in.Message.(unwrapper).protoUnwrap() -+ marshaler, ok := v.(legacyMarshaler) -+ if !ok { -+ return protoiface.MarshalOutput{}, errors.New("%T does not implement Marshal", v) -+ } -+ out, err := marshaler.Marshal() -+ if in.Buf != nil { -+ out = append(in.Buf, out...) -+ } -+ return protoiface.MarshalOutput{ -+ Buf: out, -+ }, err -+} -+ -+func legacyUnmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { -+ v := in.Message.(unwrapper).protoUnwrap() -+ unmarshaler, ok := v.(legacyUnmarshaler) -+ if !ok { -+ return protoiface.UnmarshalOutput{}, errors.New("%T does not implement Unmarshal", v) -+ } -+ return protoiface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf) -+} -+ -+func legacyMerge(in protoiface.MergeInput) protoiface.MergeOutput { -+ // Check whether this supports the legacy merger. -+ dstv := in.Destination.(unwrapper).protoUnwrap() -+ merger, ok := dstv.(legacyMerger) -+ if ok { -+ merger.Merge(Export{}.ProtoMessageV1Of(in.Source)) -+ return protoiface.MergeOutput{Flags: protoiface.MergeComplete} -+ } -+ -+ // If legacy merger is unavailable, implement merge in terms of -+ // a marshal and unmarshal operation. -+ srcv := in.Source.(unwrapper).protoUnwrap() -+ marshaler, ok := srcv.(legacyMarshaler) -+ if !ok { -+ return protoiface.MergeOutput{} -+ } -+ dstv = in.Destination.(unwrapper).protoUnwrap() -+ unmarshaler, ok := dstv.(legacyUnmarshaler) -+ if !ok { -+ return protoiface.MergeOutput{} -+ } -+ if !in.Source.IsValid() { -+ // Legacy Marshal methods may not function on nil messages. -+ // Check for a typed nil source only after we confirm that -+ // legacy Marshal/Unmarshal methods are present, for -+ // consistency. -+ return protoiface.MergeOutput{Flags: protoiface.MergeComplete} -+ } -+ b, err := marshaler.Marshal() -+ if err != nil { -+ return protoiface.MergeOutput{} -+ } -+ err = unmarshaler.Unmarshal(b) -+ if err != nil { -+ return protoiface.MergeOutput{} -+ } -+ return protoiface.MergeOutput{Flags: protoiface.MergeComplete} -+} -+ -+// aberrantMessageType implements MessageType for all types other than pointer-to-struct. -+type aberrantMessageType struct { -+ t reflect.Type -+} -+ -+func (mt aberrantMessageType) New() protoreflect.Message { -+ if mt.t.Kind() == reflect.Ptr { -+ return aberrantMessage{reflect.New(mt.t.Elem())} -+ } -+ return aberrantMessage{reflect.Zero(mt.t)} -+} -+func (mt aberrantMessageType) Zero() protoreflect.Message { -+ return aberrantMessage{reflect.Zero(mt.t)} -+} -+func (mt aberrantMessageType) GoType() reflect.Type { -+ return mt.t -+} -+func (mt aberrantMessageType) Descriptor() protoreflect.MessageDescriptor { -+ return LegacyLoadMessageDesc(mt.t) -+} -+ -+// aberrantMessage implements Message for all types other than pointer-to-struct. -+// -+// When the underlying type implements legacyMarshaler or legacyUnmarshaler, -+// the aberrant Message can be marshaled or unmarshaled. Otherwise, there is -+// not much that can be done with values of this type. -+type aberrantMessage struct { -+ v reflect.Value -+} -+ -+// Reset implements the v1 proto.Message.Reset method. -+func (m aberrantMessage) Reset() { -+ if mr, ok := m.v.Interface().(interface{ Reset() }); ok { -+ mr.Reset() -+ return -+ } -+ if m.v.Kind() == reflect.Ptr && !m.v.IsNil() { -+ m.v.Elem().Set(reflect.Zero(m.v.Type().Elem())) -+ } -+} -+ -+func (m aberrantMessage) ProtoReflect() protoreflect.Message { -+ return m -+} -+ -+func (m aberrantMessage) Descriptor() protoreflect.MessageDescriptor { -+ return LegacyLoadMessageDesc(m.v.Type()) -+} -+func (m aberrantMessage) Type() protoreflect.MessageType { -+ return aberrantMessageType{m.v.Type()} -+} -+func (m aberrantMessage) New() protoreflect.Message { -+ if m.v.Type().Kind() == reflect.Ptr { -+ return aberrantMessage{reflect.New(m.v.Type().Elem())} -+ } -+ return aberrantMessage{reflect.Zero(m.v.Type())} -+} -+func (m aberrantMessage) Interface() protoreflect.ProtoMessage { -+ return m -+} -+func (m aberrantMessage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { -+ return -+} -+func (m aberrantMessage) Has(protoreflect.FieldDescriptor) bool { -+ return false -+} -+func (m aberrantMessage) Clear(protoreflect.FieldDescriptor) { -+ panic("invalid Message.Clear on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ if fd.Default().IsValid() { -+ return fd.Default() -+ } -+ panic("invalid Message.Get on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) Set(protoreflect.FieldDescriptor, protoreflect.Value) { -+ panic("invalid Message.Set on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) Mutable(protoreflect.FieldDescriptor) protoreflect.Value { -+ panic("invalid Message.Mutable on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) NewField(protoreflect.FieldDescriptor) protoreflect.Value { -+ panic("invalid Message.NewField on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) WhichOneof(protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { -+ panic("invalid Message.WhichOneof descriptor on " + string(m.Descriptor().FullName())) -+} -+func (m aberrantMessage) GetUnknown() protoreflect.RawFields { -+ return nil -+} -+func (m aberrantMessage) SetUnknown(protoreflect.RawFields) { -+ // SetUnknown discards its input on messages which don't support unknown field storage. -+} -+func (m aberrantMessage) IsValid() bool { -+ if m.v.Kind() == reflect.Ptr { -+ return !m.v.IsNil() -+ } -+ return false -+} -+func (m aberrantMessage) ProtoMethods() *protoiface.Methods { -+ return aberrantProtoMethods -+} -+func (m aberrantMessage) protoUnwrap() interface{} { -+ return m.v.Interface() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/merge.go b/vendor/google.golang.org/protobuf/internal/impl/merge.go -new file mode 100644 -index 00000000..7e65f64f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/merge.go -@@ -0,0 +1,176 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+type mergeOptions struct{} -+ -+func (o mergeOptions) Merge(dst, src proto.Message) { -+ proto.Merge(dst, src) -+} -+ -+// merge is protoreflect.Methods.Merge. -+func (mi *MessageInfo) merge(in protoiface.MergeInput) protoiface.MergeOutput { -+ dp, ok := mi.getPointer(in.Destination) -+ if !ok { -+ return protoiface.MergeOutput{} -+ } -+ sp, ok := mi.getPointer(in.Source) -+ if !ok { -+ return protoiface.MergeOutput{} -+ } -+ mi.mergePointer(dp, sp, mergeOptions{}) -+ return protoiface.MergeOutput{Flags: protoiface.MergeComplete} -+} -+ -+func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) { -+ mi.init() -+ if dst.IsNil() { -+ panic(fmt.Sprintf("invalid value: merging into nil message")) -+ } -+ if src.IsNil() { -+ return -+ } -+ for _, f := range mi.orderedCoderFields { -+ if f.funcs.merge == nil { -+ continue -+ } -+ sfptr := src.Apply(f.offset) -+ if f.isPointer && sfptr.Elem().IsNil() { -+ continue -+ } -+ f.funcs.merge(dst.Apply(f.offset), sfptr, f, opts) -+ } -+ if mi.extensionOffset.IsValid() { -+ sext := src.Apply(mi.extensionOffset).Extensions() -+ dext := dst.Apply(mi.extensionOffset).Extensions() -+ if *dext == nil { -+ *dext = make(map[int32]ExtensionField) -+ } -+ for num, sx := range *sext { -+ xt := sx.Type() -+ xi := getExtensionFieldInfo(xt) -+ if xi.funcs.merge == nil { -+ continue -+ } -+ dx := (*dext)[num] -+ var dv protoreflect.Value -+ if dx.Type() == sx.Type() { -+ dv = dx.Value() -+ } -+ if !dv.IsValid() && xi.unmarshalNeedsValue { -+ dv = xt.New() -+ } -+ dv = xi.funcs.merge(dv, sx.Value(), opts) -+ dx.Set(sx.Type(), dv) -+ (*dext)[num] = dx -+ } -+ } -+ if mi.unknownOffset.IsValid() { -+ su := mi.getUnknownBytes(src) -+ if su != nil && len(*su) > 0 { -+ du := mi.mutableUnknownBytes(dst) -+ *du = append(*du, *su...) -+ } -+ } -+} -+ -+func mergeScalarValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ return src -+} -+ -+func mergeBytesValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ return protoreflect.ValueOfBytes(append(emptyBuf[:], src.Bytes()...)) -+} -+ -+func mergeListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ dstl := dst.List() -+ srcl := src.List() -+ for i, llen := 0, srcl.Len(); i < llen; i++ { -+ dstl.Append(srcl.Get(i)) -+ } -+ return dst -+} -+ -+func mergeBytesListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ dstl := dst.List() -+ srcl := src.List() -+ for i, llen := 0, srcl.Len(); i < llen; i++ { -+ sb := srcl.Get(i).Bytes() -+ db := append(emptyBuf[:], sb...) -+ dstl.Append(protoreflect.ValueOfBytes(db)) -+ } -+ return dst -+} -+ -+func mergeMessageListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ dstl := dst.List() -+ srcl := src.List() -+ for i, llen := 0, srcl.Len(); i < llen; i++ { -+ sm := srcl.Get(i).Message() -+ dm := proto.Clone(sm.Interface()).ProtoReflect() -+ dstl.Append(protoreflect.ValueOfMessage(dm)) -+ } -+ return dst -+} -+ -+func mergeMessageValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { -+ opts.Merge(dst.Message().Interface(), src.Message().Interface()) -+ return dst -+} -+ -+func mergeMessage(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ if f.mi != nil { -+ if dst.Elem().IsNil() { -+ dst.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) -+ } -+ f.mi.mergePointer(dst.Elem(), src.Elem(), opts) -+ } else { -+ dm := dst.AsValueOf(f.ft).Elem() -+ sm := src.AsValueOf(f.ft).Elem() -+ if dm.IsNil() { -+ dm.Set(reflect.New(f.ft.Elem())) -+ } -+ opts.Merge(asMessage(dm), asMessage(sm)) -+ } -+} -+ -+func mergeMessageSlice(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { -+ for _, sp := range src.PointerSlice() { -+ dm := reflect.New(f.ft.Elem().Elem()) -+ if f.mi != nil { -+ f.mi.mergePointer(pointerOfValue(dm), sp, opts) -+ } else { -+ opts.Merge(asMessage(dm), asMessage(sp.AsValueOf(f.ft.Elem().Elem()))) -+ } -+ dst.AppendPointerSlice(pointerOfValue(dm)) -+ } -+} -+ -+func mergeBytes(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Bytes() = append(emptyBuf[:], *src.Bytes()...) -+} -+ -+func mergeBytesNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Bytes() -+ if len(v) > 0 { -+ *dst.Bytes() = append(emptyBuf[:], v...) -+ } -+} -+ -+func mergeBytesSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.BytesSlice() -+ for _, v := range *src.BytesSlice() { -+ *ds = append(*ds, append(emptyBuf[:], v...)) -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go b/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go -new file mode 100644 -index 00000000..8816c274 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/merge_gen.go -@@ -0,0 +1,209 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package impl -+ -+import () -+ -+func mergeBool(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Bool() = *src.Bool() -+} -+ -+func mergeBoolNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Bool() -+ if v != false { -+ *dst.Bool() = v -+ } -+} -+ -+func mergeBoolPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.BoolPtr() -+ if p != nil { -+ v := *p -+ *dst.BoolPtr() = &v -+ } -+} -+ -+func mergeBoolSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.BoolSlice() -+ ss := src.BoolSlice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeInt32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Int32() = *src.Int32() -+} -+ -+func mergeInt32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Int32() -+ if v != 0 { -+ *dst.Int32() = v -+ } -+} -+ -+func mergeInt32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Int32Ptr() -+ if p != nil { -+ v := *p -+ *dst.Int32Ptr() = &v -+ } -+} -+ -+func mergeInt32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Int32Slice() -+ ss := src.Int32Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeUint32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Uint32() = *src.Uint32() -+} -+ -+func mergeUint32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Uint32() -+ if v != 0 { -+ *dst.Uint32() = v -+ } -+} -+ -+func mergeUint32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Uint32Ptr() -+ if p != nil { -+ v := *p -+ *dst.Uint32Ptr() = &v -+ } -+} -+ -+func mergeUint32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Uint32Slice() -+ ss := src.Uint32Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeInt64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Int64() = *src.Int64() -+} -+ -+func mergeInt64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Int64() -+ if v != 0 { -+ *dst.Int64() = v -+ } -+} -+ -+func mergeInt64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Int64Ptr() -+ if p != nil { -+ v := *p -+ *dst.Int64Ptr() = &v -+ } -+} -+ -+func mergeInt64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Int64Slice() -+ ss := src.Int64Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeUint64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Uint64() = *src.Uint64() -+} -+ -+func mergeUint64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Uint64() -+ if v != 0 { -+ *dst.Uint64() = v -+ } -+} -+ -+func mergeUint64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Uint64Ptr() -+ if p != nil { -+ v := *p -+ *dst.Uint64Ptr() = &v -+ } -+} -+ -+func mergeUint64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Uint64Slice() -+ ss := src.Uint64Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeFloat32(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Float32() = *src.Float32() -+} -+ -+func mergeFloat32NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Float32() -+ if v != 0 { -+ *dst.Float32() = v -+ } -+} -+ -+func mergeFloat32Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Float32Ptr() -+ if p != nil { -+ v := *p -+ *dst.Float32Ptr() = &v -+ } -+} -+ -+func mergeFloat32Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Float32Slice() -+ ss := src.Float32Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeFloat64(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.Float64() = *src.Float64() -+} -+ -+func mergeFloat64NoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.Float64() -+ if v != 0 { -+ *dst.Float64() = v -+ } -+} -+ -+func mergeFloat64Ptr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.Float64Ptr() -+ if p != nil { -+ v := *p -+ *dst.Float64Ptr() = &v -+ } -+} -+ -+func mergeFloat64Slice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.Float64Slice() -+ ss := src.Float64Slice() -+ *ds = append(*ds, *ss...) -+} -+ -+func mergeString(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ *dst.String() = *src.String() -+} -+ -+func mergeStringNoZero(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ v := *src.String() -+ if v != "" { -+ *dst.String() = v -+ } -+} -+ -+func mergeStringPtr(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ p := *src.StringPtr() -+ if p != nil { -+ v := *p -+ *dst.StringPtr() = &v -+ } -+} -+ -+func mergeStringSlice(dst, src pointer, _ *coderFieldInfo, _ mergeOptions) { -+ ds := dst.StringSlice() -+ ss := src.StringSlice() -+ *ds = append(*ds, *ss...) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -new file mode 100644 -index 00000000..4f5fb67a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -0,0 +1,279 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "strconv" -+ "strings" -+ "sync" -+ "sync/atomic" -+ -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// MessageInfo provides protobuf related functionality for a given Go type -+// that represents a message. A given instance of MessageInfo is tied to -+// exactly one Go type, which must be a pointer to a struct type. -+// -+// The exported fields must be populated before any methods are called -+// and cannot be mutated after set. -+type MessageInfo struct { -+ // GoReflectType is the underlying message Go type and must be populated. -+ GoReflectType reflect.Type // pointer to struct -+ -+ // Desc is the underlying message descriptor type and must be populated. -+ Desc protoreflect.MessageDescriptor -+ -+ // Exporter must be provided in a purego environment in order to provide -+ // access to unexported fields. -+ Exporter exporter -+ -+ // OneofWrappers is list of pointers to oneof wrapper struct types. -+ OneofWrappers []interface{} -+ -+ initMu sync.Mutex // protects all unexported fields -+ initDone uint32 -+ -+ reflectMessageInfo // for reflection implementation -+ coderMessageInfo // for fast-path method implementations -+} -+ -+// exporter is a function that returns a reference to the ith field of v, -+// where v is a pointer to a struct. It returns nil if it does not support -+// exporting the requested field (e.g., already exported). -+type exporter func(v interface{}, i int) interface{} -+ -+// getMessageInfo returns the MessageInfo for any message type that -+// is generated by our implementation of protoc-gen-go (for v2 and on). -+// If it is unable to obtain a MessageInfo, it returns nil. -+func getMessageInfo(mt reflect.Type) *MessageInfo { -+ m, ok := reflect.Zero(mt).Interface().(protoreflect.ProtoMessage) -+ if !ok { -+ return nil -+ } -+ mr, ok := m.ProtoReflect().(interface{ ProtoMessageInfo() *MessageInfo }) -+ if !ok { -+ return nil -+ } -+ return mr.ProtoMessageInfo() -+} -+ -+func (mi *MessageInfo) init() { -+ // This function is called in the hot path. Inline the sync.Once logic, -+ // since allocating a closure for Once.Do is expensive. -+ // Keep init small to ensure that it can be inlined. -+ if atomic.LoadUint32(&mi.initDone) == 0 { -+ mi.initOnce() -+ } -+} -+ -+func (mi *MessageInfo) initOnce() { -+ mi.initMu.Lock() -+ defer mi.initMu.Unlock() -+ if mi.initDone == 1 { -+ return -+ } -+ -+ t := mi.GoReflectType -+ if t.Kind() != reflect.Ptr && t.Elem().Kind() != reflect.Struct { -+ panic(fmt.Sprintf("got %v, want *struct kind", t)) -+ } -+ t = t.Elem() -+ -+ si := mi.makeStructInfo(t) -+ mi.makeReflectFuncs(t, si) -+ mi.makeCoderMethods(t, si) -+ -+ atomic.StoreUint32(&mi.initDone, 1) -+} -+ -+// getPointer returns the pointer for a message, which should be of -+// the type of the MessageInfo. If the message is of a different type, -+// it returns ok==false. -+func (mi *MessageInfo) getPointer(m protoreflect.Message) (p pointer, ok bool) { -+ switch m := m.(type) { -+ case *messageState: -+ return m.pointer(), m.messageInfo() == mi -+ case *messageReflectWrapper: -+ return m.pointer(), m.messageInfo() == mi -+ } -+ return pointer{}, false -+} -+ -+type ( -+ SizeCache = int32 -+ WeakFields = map[int32]protoreflect.ProtoMessage -+ UnknownFields = unknownFieldsA // TODO: switch to unknownFieldsB -+ unknownFieldsA = []byte -+ unknownFieldsB = *[]byte -+ ExtensionFields = map[int32]ExtensionField -+) -+ -+var ( -+ sizecacheType = reflect.TypeOf(SizeCache(0)) -+ weakFieldsType = reflect.TypeOf(WeakFields(nil)) -+ unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil)) -+ unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil)) -+ extensionFieldsType = reflect.TypeOf(ExtensionFields(nil)) -+) -+ -+type structInfo struct { -+ sizecacheOffset offset -+ sizecacheType reflect.Type -+ weakOffset offset -+ weakType reflect.Type -+ unknownOffset offset -+ unknownType reflect.Type -+ extensionOffset offset -+ extensionType reflect.Type -+ -+ fieldsByNumber map[protoreflect.FieldNumber]reflect.StructField -+ oneofsByName map[protoreflect.Name]reflect.StructField -+ oneofWrappersByType map[reflect.Type]protoreflect.FieldNumber -+ oneofWrappersByNumber map[protoreflect.FieldNumber]reflect.Type -+} -+ -+func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo { -+ si := structInfo{ -+ sizecacheOffset: invalidOffset, -+ weakOffset: invalidOffset, -+ unknownOffset: invalidOffset, -+ extensionOffset: invalidOffset, -+ -+ fieldsByNumber: map[protoreflect.FieldNumber]reflect.StructField{}, -+ oneofsByName: map[protoreflect.Name]reflect.StructField{}, -+ oneofWrappersByType: map[reflect.Type]protoreflect.FieldNumber{}, -+ oneofWrappersByNumber: map[protoreflect.FieldNumber]reflect.Type{}, -+ } -+ -+fieldLoop: -+ for i := 0; i < t.NumField(); i++ { -+ switch f := t.Field(i); f.Name { -+ case genid.SizeCache_goname, genid.SizeCacheA_goname: -+ if f.Type == sizecacheType { -+ si.sizecacheOffset = offsetOf(f, mi.Exporter) -+ si.sizecacheType = f.Type -+ } -+ case genid.WeakFields_goname, genid.WeakFieldsA_goname: -+ if f.Type == weakFieldsType { -+ si.weakOffset = offsetOf(f, mi.Exporter) -+ si.weakType = f.Type -+ } -+ case genid.UnknownFields_goname, genid.UnknownFieldsA_goname: -+ if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType { -+ si.unknownOffset = offsetOf(f, mi.Exporter) -+ si.unknownType = f.Type -+ } -+ case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname: -+ if f.Type == extensionFieldsType { -+ si.extensionOffset = offsetOf(f, mi.Exporter) -+ si.extensionType = f.Type -+ } -+ default: -+ for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { -+ if len(s) > 0 && strings.Trim(s, "0123456789") == "" { -+ n, _ := strconv.ParseUint(s, 10, 64) -+ si.fieldsByNumber[protoreflect.FieldNumber(n)] = f -+ continue fieldLoop -+ } -+ } -+ if s := f.Tag.Get("protobuf_oneof"); len(s) > 0 { -+ si.oneofsByName[protoreflect.Name(s)] = f -+ continue fieldLoop -+ } -+ } -+ } -+ -+ // Derive a mapping of oneof wrappers to fields. -+ oneofWrappers := mi.OneofWrappers -+ for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -+ if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs -+ } -+ } -+ } -+ } -+ for _, v := range oneofWrappers { -+ tf := reflect.TypeOf(v).Elem() -+ f := tf.Field(0) -+ for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { -+ if len(s) > 0 && strings.Trim(s, "0123456789") == "" { -+ n, _ := strconv.ParseUint(s, 10, 64) -+ si.oneofWrappersByType[tf] = protoreflect.FieldNumber(n) -+ si.oneofWrappersByNumber[protoreflect.FieldNumber(n)] = tf -+ break -+ } -+ } -+ } -+ -+ return si -+} -+ -+func (mi *MessageInfo) New() protoreflect.Message { -+ m := reflect.New(mi.GoReflectType.Elem()).Interface() -+ if r, ok := m.(protoreflect.ProtoMessage); ok { -+ return r.ProtoReflect() -+ } -+ return mi.MessageOf(m) -+} -+func (mi *MessageInfo) Zero() protoreflect.Message { -+ return mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface()) -+} -+func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor { -+ return mi.Desc -+} -+func (mi *MessageInfo) Enum(i int) protoreflect.EnumType { -+ mi.init() -+ fd := mi.Desc.Fields().Get(i) -+ return Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()]) -+} -+func (mi *MessageInfo) Message(i int) protoreflect.MessageType { -+ mi.init() -+ fd := mi.Desc.Fields().Get(i) -+ switch { -+ case fd.IsWeak(): -+ mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()) -+ return mt -+ case fd.IsMap(): -+ return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]} -+ default: -+ return Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()]) -+ } -+} -+ -+type mapEntryType struct { -+ desc protoreflect.MessageDescriptor -+ valType interface{} // zero value of enum or message type -+} -+ -+func (mt mapEntryType) New() protoreflect.Message { -+ return nil -+} -+func (mt mapEntryType) Zero() protoreflect.Message { -+ return nil -+} -+func (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor { -+ return mt.desc -+} -+func (mt mapEntryType) Enum(i int) protoreflect.EnumType { -+ fd := mt.desc.Fields().Get(i) -+ if fd.Enum() == nil { -+ return nil -+ } -+ return Export{}.EnumTypeOf(mt.valType) -+} -+func (mt mapEntryType) Message(i int) protoreflect.MessageType { -+ fd := mt.desc.Fields().Get(i) -+ if fd.Message() == nil { -+ return nil -+ } -+ return Export{}.MessageTypeOf(mt.valType) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go -new file mode 100644 -index 00000000..d9ea010b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go -@@ -0,0 +1,463 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ -+ "google.golang.org/protobuf/internal/detrand" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type reflectMessageInfo struct { -+ fields map[protoreflect.FieldNumber]*fieldInfo -+ oneofs map[protoreflect.Name]*oneofInfo -+ -+ // fieldTypes contains the zero value of an enum or message field. -+ // For lists, it contains the element type. -+ // For maps, it contains the entry value type. -+ fieldTypes map[protoreflect.FieldNumber]interface{} -+ -+ // denseFields is a subset of fields where: -+ // 0 < fieldDesc.Number() < len(denseFields) -+ // It provides faster access to the fieldInfo, but may be incomplete. -+ denseFields []*fieldInfo -+ -+ // rangeInfos is a list of all fields (not belonging to a oneof) and oneofs. -+ rangeInfos []interface{} // either *fieldInfo or *oneofInfo -+ -+ getUnknown func(pointer) protoreflect.RawFields -+ setUnknown func(pointer, protoreflect.RawFields) -+ extensionMap func(pointer) *extensionMap -+ -+ nilMessage atomicNilMessage -+} -+ -+// makeReflectFuncs generates the set of functions to support reflection. -+func (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) { -+ mi.makeKnownFieldsFunc(si) -+ mi.makeUnknownFieldsFunc(t, si) -+ mi.makeExtensionFieldsFunc(t, si) -+ mi.makeFieldTypes(si) -+} -+ -+// makeKnownFieldsFunc generates functions for operations that can be performed -+// on each protobuf message field. It takes in a reflect.Type representing the -+// Go struct and matches message fields with struct fields. -+// -+// This code assumes that the struct is well-formed and panics if there are -+// any discrepancies. -+func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { -+ mi.fields = map[protoreflect.FieldNumber]*fieldInfo{} -+ md := mi.Desc -+ fds := md.Fields() -+ for i := 0; i < fds.Len(); i++ { -+ fd := fds.Get(i) -+ fs := si.fieldsByNumber[fd.Number()] -+ isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() -+ if isOneof { -+ fs = si.oneofsByName[fd.ContainingOneof().Name()] -+ } -+ var fi fieldInfo -+ switch { -+ case fs.Type == nil: -+ fi = fieldInfoForMissing(fd) // never occurs for officially generated message types -+ case isOneof: -+ fi = fieldInfoForOneof(fd, fs, mi.Exporter, si.oneofWrappersByNumber[fd.Number()]) -+ case fd.IsMap(): -+ fi = fieldInfoForMap(fd, fs, mi.Exporter) -+ case fd.IsList(): -+ fi = fieldInfoForList(fd, fs, mi.Exporter) -+ case fd.IsWeak(): -+ fi = fieldInfoForWeakMessage(fd, si.weakOffset) -+ case fd.Message() != nil: -+ fi = fieldInfoForMessage(fd, fs, mi.Exporter) -+ default: -+ fi = fieldInfoForScalar(fd, fs, mi.Exporter) -+ } -+ mi.fields[fd.Number()] = &fi -+ } -+ -+ mi.oneofs = map[protoreflect.Name]*oneofInfo{} -+ for i := 0; i < md.Oneofs().Len(); i++ { -+ od := md.Oneofs().Get(i) -+ mi.oneofs[od.Name()] = makeOneofInfo(od, si, mi.Exporter) -+ } -+ -+ mi.denseFields = make([]*fieldInfo, fds.Len()*2) -+ for i := 0; i < fds.Len(); i++ { -+ if fd := fds.Get(i); int(fd.Number()) < len(mi.denseFields) { -+ mi.denseFields[fd.Number()] = mi.fields[fd.Number()] -+ } -+ } -+ -+ for i := 0; i < fds.Len(); { -+ fd := fds.Get(i) -+ if od := fd.ContainingOneof(); od != nil && !od.IsSynthetic() { -+ mi.rangeInfos = append(mi.rangeInfos, mi.oneofs[od.Name()]) -+ i += od.Fields().Len() -+ } else { -+ mi.rangeInfos = append(mi.rangeInfos, mi.fields[fd.Number()]) -+ i++ -+ } -+ } -+ -+ // Introduce instability to iteration order, but keep it deterministic. -+ if len(mi.rangeInfos) > 1 && detrand.Bool() { -+ i := detrand.Intn(len(mi.rangeInfos) - 1) -+ mi.rangeInfos[i], mi.rangeInfos[i+1] = mi.rangeInfos[i+1], mi.rangeInfos[i] -+ } -+} -+ -+func (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type, si structInfo) { -+ switch { -+ case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsAType: -+ // Handle as []byte. -+ mi.getUnknown = func(p pointer) protoreflect.RawFields { -+ if p.IsNil() { -+ return nil -+ } -+ return *p.Apply(mi.unknownOffset).Bytes() -+ } -+ mi.setUnknown = func(p pointer, b protoreflect.RawFields) { -+ if p.IsNil() { -+ panic("invalid SetUnknown on nil Message") -+ } -+ *p.Apply(mi.unknownOffset).Bytes() = b -+ } -+ case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsBType: -+ // Handle as *[]byte. -+ mi.getUnknown = func(p pointer) protoreflect.RawFields { -+ if p.IsNil() { -+ return nil -+ } -+ bp := p.Apply(mi.unknownOffset).BytesPtr() -+ if *bp == nil { -+ return nil -+ } -+ return **bp -+ } -+ mi.setUnknown = func(p pointer, b protoreflect.RawFields) { -+ if p.IsNil() { -+ panic("invalid SetUnknown on nil Message") -+ } -+ bp := p.Apply(mi.unknownOffset).BytesPtr() -+ if *bp == nil { -+ *bp = new([]byte) -+ } -+ **bp = b -+ } -+ default: -+ mi.getUnknown = func(pointer) protoreflect.RawFields { -+ return nil -+ } -+ mi.setUnknown = func(p pointer, _ protoreflect.RawFields) { -+ if p.IsNil() { -+ panic("invalid SetUnknown on nil Message") -+ } -+ } -+ } -+} -+ -+func (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type, si structInfo) { -+ if si.extensionOffset.IsValid() { -+ mi.extensionMap = func(p pointer) *extensionMap { -+ if p.IsNil() { -+ return (*extensionMap)(nil) -+ } -+ v := p.Apply(si.extensionOffset).AsValueOf(extensionFieldsType) -+ return (*extensionMap)(v.Interface().(*map[int32]ExtensionField)) -+ } -+ } else { -+ mi.extensionMap = func(pointer) *extensionMap { -+ return (*extensionMap)(nil) -+ } -+ } -+} -+func (mi *MessageInfo) makeFieldTypes(si structInfo) { -+ md := mi.Desc -+ fds := md.Fields() -+ for i := 0; i < fds.Len(); i++ { -+ var ft reflect.Type -+ fd := fds.Get(i) -+ fs := si.fieldsByNumber[fd.Number()] -+ isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() -+ if isOneof { -+ fs = si.oneofsByName[fd.ContainingOneof().Name()] -+ } -+ var isMessage bool -+ switch { -+ case fs.Type == nil: -+ continue // never occurs for officially generated message types -+ case isOneof: -+ if fd.Enum() != nil || fd.Message() != nil { -+ ft = si.oneofWrappersByNumber[fd.Number()].Field(0).Type -+ } -+ case fd.IsMap(): -+ if fd.MapValue().Enum() != nil || fd.MapValue().Message() != nil { -+ ft = fs.Type.Elem() -+ } -+ isMessage = fd.MapValue().Message() != nil -+ case fd.IsList(): -+ if fd.Enum() != nil || fd.Message() != nil { -+ ft = fs.Type.Elem() -+ } -+ isMessage = fd.Message() != nil -+ case fd.Enum() != nil: -+ ft = fs.Type -+ if fd.HasPresence() && ft.Kind() == reflect.Ptr { -+ ft = ft.Elem() -+ } -+ case fd.Message() != nil: -+ ft = fs.Type -+ if fd.IsWeak() { -+ ft = nil -+ } -+ isMessage = true -+ } -+ if isMessage && ft != nil && ft.Kind() != reflect.Ptr { -+ ft = reflect.PtrTo(ft) // never occurs for officially generated message types -+ } -+ if ft != nil { -+ if mi.fieldTypes == nil { -+ mi.fieldTypes = make(map[protoreflect.FieldNumber]interface{}) -+ } -+ mi.fieldTypes[fd.Number()] = reflect.Zero(ft).Interface() -+ } -+ } -+} -+ -+type extensionMap map[int32]ExtensionField -+ -+func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { -+ if m != nil { -+ for _, x := range *m { -+ xd := x.Type().TypeDescriptor() -+ v := x.Value() -+ if xd.IsList() && v.List().Len() == 0 { -+ continue -+ } -+ if !f(xd, v) { -+ return -+ } -+ } -+ } -+} -+func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { -+ if m == nil { -+ return false -+ } -+ xd := xt.TypeDescriptor() -+ x, ok := (*m)[int32(xd.Number())] -+ if !ok { -+ return false -+ } -+ switch { -+ case xd.IsList(): -+ return x.Value().List().Len() > 0 -+ case xd.IsMap(): -+ return x.Value().Map().Len() > 0 -+ case xd.Message() != nil: -+ return x.Value().Message().IsValid() -+ } -+ return true -+} -+func (m *extensionMap) Clear(xt protoreflect.ExtensionType) { -+ delete(*m, int32(xt.TypeDescriptor().Number())) -+} -+func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value { -+ xd := xt.TypeDescriptor() -+ if m != nil { -+ if x, ok := (*m)[int32(xd.Number())]; ok { -+ return x.Value() -+ } -+ } -+ return xt.Zero() -+} -+func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) { -+ xd := xt.TypeDescriptor() -+ isValid := true -+ switch { -+ case !xt.IsValidValue(v): -+ isValid = false -+ case xd.IsList(): -+ isValid = v.List().IsValid() -+ case xd.IsMap(): -+ isValid = v.Map().IsValid() -+ case xd.Message() != nil: -+ isValid = v.Message().IsValid() -+ } -+ if !isValid { -+ panic(fmt.Sprintf("%v: assigning invalid value", xt.TypeDescriptor().FullName())) -+ } -+ -+ if *m == nil { -+ *m = make(map[int32]ExtensionField) -+ } -+ var x ExtensionField -+ x.Set(xt, v) -+ (*m)[int32(xd.Number())] = x -+} -+func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value { -+ xd := xt.TypeDescriptor() -+ if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() { -+ panic("invalid Mutable on field with non-composite type") -+ } -+ if x, ok := (*m)[int32(xd.Number())]; ok { -+ return x.Value() -+ } -+ v := xt.New() -+ m.Set(xt, v) -+ return v -+} -+ -+// MessageState is a data structure that is nested as the first field in a -+// concrete message. It provides a way to implement the ProtoReflect method -+// in an allocation-free way without needing to have a shadow Go type generated -+// for every message type. This technique only works using unsafe. -+// -+// Example generated code: -+// -+// type M struct { -+// state protoimpl.MessageState -+// -+// Field1 int32 -+// Field2 string -+// Field3 *BarMessage -+// ... -+// } -+// -+// func (m *M) ProtoReflect() protoreflect.Message { -+// mi := &file_fizz_buzz_proto_msgInfos[5] -+// if protoimpl.UnsafeEnabled && m != nil { -+// ms := protoimpl.X.MessageStateOf(Pointer(m)) -+// if ms.LoadMessageInfo() == nil { -+// ms.StoreMessageInfo(mi) -+// } -+// return ms -+// } -+// return mi.MessageOf(m) -+// } -+// -+// The MessageState type holds a *MessageInfo, which must be atomically set to -+// the message info associated with a given message instance. -+// By unsafely converting a *M into a *MessageState, the MessageState object -+// has access to all the information needed to implement protobuf reflection. -+// It has access to the message info as its first field, and a pointer to the -+// MessageState is identical to a pointer to the concrete message value. -+// -+// Requirements: -+// - The type M must implement protoreflect.ProtoMessage. -+// - The address of m must not be nil. -+// - The address of m and the address of m.state must be equal, -+// even though they are different Go types. -+type MessageState struct { -+ pragma.NoUnkeyedLiterals -+ pragma.DoNotCompare -+ pragma.DoNotCopy -+ -+ atomicMessageInfo *MessageInfo -+} -+ -+type messageState MessageState -+ -+var ( -+ _ protoreflect.Message = (*messageState)(nil) -+ _ unwrapper = (*messageState)(nil) -+) -+ -+// messageDataType is a tuple of a pointer to the message data and -+// a pointer to the message type. It is a generalized way of providing a -+// reflective view over a message instance. The disadvantage of this approach -+// is the need to allocate this tuple of 16B. -+type messageDataType struct { -+ p pointer -+ mi *MessageInfo -+} -+ -+type ( -+ messageReflectWrapper messageDataType -+ messageIfaceWrapper messageDataType -+) -+ -+var ( -+ _ protoreflect.Message = (*messageReflectWrapper)(nil) -+ _ unwrapper = (*messageReflectWrapper)(nil) -+ _ protoreflect.ProtoMessage = (*messageIfaceWrapper)(nil) -+ _ unwrapper = (*messageIfaceWrapper)(nil) -+) -+ -+// MessageOf returns a reflective view over a message. The input must be a -+// pointer to a named Go struct. If the provided type has a ProtoReflect method, -+// it must be implemented by calling this method. -+func (mi *MessageInfo) MessageOf(m interface{}) protoreflect.Message { -+ if reflect.TypeOf(m) != mi.GoReflectType { -+ panic(fmt.Sprintf("type mismatch: got %T, want %v", m, mi.GoReflectType)) -+ } -+ p := pointerOfIface(m) -+ if p.IsNil() { -+ return mi.nilMessage.Init(mi) -+ } -+ return &messageReflectWrapper{p, mi} -+} -+ -+func (m *messageReflectWrapper) pointer() pointer { return m.p } -+func (m *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi } -+ -+// Reset implements the v1 proto.Message.Reset method. -+func (m *messageIfaceWrapper) Reset() { -+ if mr, ok := m.protoUnwrap().(interface{ Reset() }); ok { -+ mr.Reset() -+ return -+ } -+ rv := reflect.ValueOf(m.protoUnwrap()) -+ if rv.Kind() == reflect.Ptr && !rv.IsNil() { -+ rv.Elem().Set(reflect.Zero(rv.Type().Elem())) -+ } -+} -+func (m *messageIfaceWrapper) ProtoReflect() protoreflect.Message { -+ return (*messageReflectWrapper)(m) -+} -+func (m *messageIfaceWrapper) protoUnwrap() interface{} { -+ return m.p.AsIfaceOf(m.mi.GoReflectType.Elem()) -+} -+ -+// checkField verifies that the provided field descriptor is valid. -+// Exactly one of the returned values is populated. -+func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) { -+ var fi *fieldInfo -+ if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { -+ fi = mi.denseFields[n] -+ } else { -+ fi = mi.fields[n] -+ } -+ if fi != nil { -+ if fi.fieldDesc != fd { -+ if got, want := fd.FullName(), fi.fieldDesc.FullName(); got != want { -+ panic(fmt.Sprintf("mismatching field: got %v, want %v", got, want)) -+ } -+ panic(fmt.Sprintf("mismatching field: %v", fd.FullName())) -+ } -+ return fi, nil -+ } -+ -+ if fd.IsExtension() { -+ if got, want := fd.ContainingMessage().FullName(), mi.Desc.FullName(); got != want { -+ // TODO: Should this be exact containing message descriptor match? -+ panic(fmt.Sprintf("extension %v has mismatching containing message: got %v, want %v", fd.FullName(), got, want)) -+ } -+ if !mi.Desc.ExtensionRanges().Has(fd.Number()) { -+ panic(fmt.Sprintf("extension %v extends %v outside the extension range", fd.FullName(), mi.Desc.FullName())) -+ } -+ xtd, ok := fd.(protoreflect.ExtensionTypeDescriptor) -+ if !ok { -+ panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) -+ } -+ return nil, xtd.Type() -+ } -+ panic(fmt.Sprintf("field %v is invalid", fd.FullName())) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -new file mode 100644 -index 00000000..5e736c60 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -0,0 +1,543 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "math" -+ "reflect" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+type fieldInfo struct { -+ fieldDesc protoreflect.FieldDescriptor -+ -+ // These fields are used for protobuf reflection support. -+ has func(pointer) bool -+ clear func(pointer) -+ get func(pointer) protoreflect.Value -+ set func(pointer, protoreflect.Value) -+ mutable func(pointer) protoreflect.Value -+ newMessage func() protoreflect.Message -+ newField func() protoreflect.Value -+} -+ -+func fieldInfoForMissing(fd protoreflect.FieldDescriptor) fieldInfo { -+ // This never occurs for generated message types. -+ // It implies that a hand-crafted type has missing Go fields -+ // for specific protobuf message fields. -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ return false -+ }, -+ clear: func(p pointer) { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ return fd.Default() -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ newMessage: func() protoreflect.Message { -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ newField: func() protoreflect.Value { -+ if v := fd.Default(); v.IsValid() { -+ return v -+ } -+ panic("missing Go struct field for " + string(fd.FullName())) -+ }, -+ } -+} -+ -+func fieldInfoForOneof(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo { -+ ft := fs.Type -+ if ft.Kind() != reflect.Interface { -+ panic(fmt.Sprintf("field %v has invalid type: got %v, want interface kind", fd.FullName(), ft)) -+ } -+ if ot.Kind() != reflect.Struct { -+ panic(fmt.Sprintf("field %v has invalid type: got %v, want struct kind", fd.FullName(), ot)) -+ } -+ if !reflect.PtrTo(ot).Implements(ft) { -+ panic(fmt.Sprintf("field %v has invalid type: %v does not implement %v", fd.FullName(), ot, ft)) -+ } -+ conv := NewConverter(ot.Field(0).Type, fd) -+ isMessage := fd.Message() != nil -+ -+ // TODO: Implement unsafe fast path? -+ fieldOffset := offsetOf(fs, x) -+ return fieldInfo{ -+ // NOTE: The logic below intentionally assumes that oneof fields are -+ // well-formatted. That is, the oneof interface never contains a -+ // typed nil pointer to one of the wrapper structs. -+ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { -+ return false -+ } -+ return true -+ }, -+ clear: func(p pointer) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() || rv.Elem().Type().Elem() != ot { -+ // NOTE: We intentionally don't check for rv.Elem().IsNil() -+ // so that (*OneofWrapperType)(nil) gets cleared to nil. -+ return -+ } -+ rv.Set(reflect.Zero(rv.Type())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ if p.IsNil() { -+ return conv.Zero() -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { -+ return conv.Zero() -+ } -+ rv = rv.Elem().Elem().Field(0) -+ return conv.PBValueOf(rv) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { -+ rv.Set(reflect.New(ot)) -+ } -+ rv = rv.Elem().Elem().Field(0) -+ rv.Set(conv.GoValueOf(v)) -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ if !isMessage { -+ panic(fmt.Sprintf("field %v with invalid Mutable call on field with non-composite type", fd.FullName())) -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { -+ rv.Set(reflect.New(ot)) -+ } -+ rv = rv.Elem().Elem().Field(0) -+ if rv.Kind() == reflect.Ptr && rv.IsNil() { -+ rv.Set(conv.GoValueOf(protoreflect.ValueOfMessage(conv.New().Message()))) -+ } -+ return conv.PBValueOf(rv) -+ }, -+ newMessage: func() protoreflect.Message { -+ return conv.New().Message() -+ }, -+ newField: func() protoreflect.Value { -+ return conv.New() -+ }, -+ } -+} -+ -+func fieldInfoForMap(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { -+ ft := fs.Type -+ if ft.Kind() != reflect.Map { -+ panic(fmt.Sprintf("field %v has invalid type: got %v, want map kind", fd.FullName(), ft)) -+ } -+ conv := NewConverter(ft, fd) -+ -+ // TODO: Implement unsafe fast path? -+ fieldOffset := offsetOf(fs, x) -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ return rv.Len() > 0 -+ }, -+ clear: func(p pointer) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ rv.Set(reflect.Zero(rv.Type())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ if p.IsNil() { -+ return conv.Zero() -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.Len() == 0 { -+ return conv.Zero() -+ } -+ return conv.PBValueOf(rv) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ pv := conv.GoValueOf(v) -+ if pv.IsNil() { -+ panic(fmt.Sprintf("map field %v cannot be set with read-only value", fd.FullName())) -+ } -+ rv.Set(pv) -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ v := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if v.IsNil() { -+ v.Set(reflect.MakeMap(fs.Type)) -+ } -+ return conv.PBValueOf(v) -+ }, -+ newField: func() protoreflect.Value { -+ return conv.New() -+ }, -+ } -+} -+ -+func fieldInfoForList(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { -+ ft := fs.Type -+ if ft.Kind() != reflect.Slice { -+ panic(fmt.Sprintf("field %v has invalid type: got %v, want slice kind", fd.FullName(), ft)) -+ } -+ conv := NewConverter(reflect.PtrTo(ft), fd) -+ -+ // TODO: Implement unsafe fast path? -+ fieldOffset := offsetOf(fs, x) -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ return rv.Len() > 0 -+ }, -+ clear: func(p pointer) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ rv.Set(reflect.Zero(rv.Type())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ if p.IsNil() { -+ return conv.Zero() -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type) -+ if rv.Elem().Len() == 0 { -+ return conv.Zero() -+ } -+ return conv.PBValueOf(rv) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ pv := conv.GoValueOf(v) -+ if pv.IsNil() { -+ panic(fmt.Sprintf("list field %v cannot be set with read-only value", fd.FullName())) -+ } -+ rv.Set(pv.Elem()) -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ v := p.Apply(fieldOffset).AsValueOf(fs.Type) -+ return conv.PBValueOf(v) -+ }, -+ newField: func() protoreflect.Value { -+ return conv.New() -+ }, -+ } -+} -+ -+var ( -+ nilBytes = reflect.ValueOf([]byte(nil)) -+ emptyBytes = reflect.ValueOf([]byte{}) -+) -+ -+func fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { -+ ft := fs.Type -+ nullable := fd.HasPresence() -+ isBytes := ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 -+ if nullable { -+ if ft.Kind() != reflect.Ptr && ft.Kind() != reflect.Slice { -+ // This never occurs for generated message types. -+ // Despite the protobuf type system specifying presence, -+ // the Go field type cannot represent it. -+ nullable = false -+ } -+ if ft.Kind() == reflect.Ptr { -+ ft = ft.Elem() -+ } -+ } -+ conv := NewConverter(ft, fd) -+ -+ // TODO: Implement unsafe fast path? -+ fieldOffset := offsetOf(fs, x) -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if nullable { -+ return !rv.IsNil() -+ } -+ switch rv.Kind() { -+ case reflect.Bool: -+ return rv.Bool() -+ case reflect.Int32, reflect.Int64: -+ return rv.Int() != 0 -+ case reflect.Uint32, reflect.Uint64: -+ return rv.Uint() != 0 -+ case reflect.Float32, reflect.Float64: -+ return rv.Float() != 0 || math.Signbit(rv.Float()) -+ case reflect.String, reflect.Slice: -+ return rv.Len() > 0 -+ default: -+ panic(fmt.Sprintf("field %v has invalid type: %v", fd.FullName(), rv.Type())) // should never happen -+ } -+ }, -+ clear: func(p pointer) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ rv.Set(reflect.Zero(rv.Type())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ if p.IsNil() { -+ return conv.Zero() -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if nullable { -+ if rv.IsNil() { -+ return conv.Zero() -+ } -+ if rv.Kind() == reflect.Ptr { -+ rv = rv.Elem() -+ } -+ } -+ return conv.PBValueOf(rv) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if nullable && rv.Kind() == reflect.Ptr { -+ if rv.IsNil() { -+ rv.Set(reflect.New(ft)) -+ } -+ rv = rv.Elem() -+ } -+ rv.Set(conv.GoValueOf(v)) -+ if isBytes && rv.Len() == 0 { -+ if nullable { -+ rv.Set(emptyBytes) // preserve presence -+ } else { -+ rv.Set(nilBytes) // do not preserve presence -+ } -+ } -+ }, -+ newField: func() protoreflect.Value { -+ return conv.New() -+ }, -+ } -+} -+ -+func fieldInfoForWeakMessage(fd protoreflect.FieldDescriptor, weakOffset offset) fieldInfo { -+ if !flags.ProtoLegacy { -+ panic("no support for proto1 weak fields") -+ } -+ -+ var once sync.Once -+ var messageType protoreflect.MessageType -+ lazyInit := func() { -+ once.Do(func() { -+ messageName := fd.Message().FullName() -+ messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) -+ if messageType == nil { -+ panic(fmt.Sprintf("weak message %v for field %v is not linked in", messageName, fd.FullName())) -+ } -+ }) -+ } -+ -+ num := fd.Number() -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ _, ok := p.Apply(weakOffset).WeakFields().get(num) -+ return ok -+ }, -+ clear: func(p pointer) { -+ p.Apply(weakOffset).WeakFields().clear(num) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ lazyInit() -+ if p.IsNil() { -+ return protoreflect.ValueOfMessage(messageType.Zero()) -+ } -+ m, ok := p.Apply(weakOffset).WeakFields().get(num) -+ if !ok { -+ return protoreflect.ValueOfMessage(messageType.Zero()) -+ } -+ return protoreflect.ValueOfMessage(m.ProtoReflect()) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ lazyInit() -+ m := v.Message() -+ if m.Descriptor() != messageType.Descriptor() { -+ if got, want := m.Descriptor().FullName(), messageType.Descriptor().FullName(); got != want { -+ panic(fmt.Sprintf("field %v has mismatching message descriptor: got %v, want %v", fd.FullName(), got, want)) -+ } -+ panic(fmt.Sprintf("field %v has mismatching message descriptor: %v", fd.FullName(), m.Descriptor().FullName())) -+ } -+ p.Apply(weakOffset).WeakFields().set(num, m.Interface()) -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ lazyInit() -+ fs := p.Apply(weakOffset).WeakFields() -+ m, ok := fs.get(num) -+ if !ok { -+ m = messageType.New().Interface() -+ fs.set(num, m) -+ } -+ return protoreflect.ValueOfMessage(m.ProtoReflect()) -+ }, -+ newMessage: func() protoreflect.Message { -+ lazyInit() -+ return messageType.New() -+ }, -+ newField: func() protoreflect.Value { -+ lazyInit() -+ return protoreflect.ValueOfMessage(messageType.New()) -+ }, -+ } -+} -+ -+func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { -+ ft := fs.Type -+ conv := NewConverter(ft, fd) -+ -+ // TODO: Implement unsafe fast path? -+ fieldOffset := offsetOf(fs, x) -+ return fieldInfo{ -+ fieldDesc: fd, -+ has: func(p pointer) bool { -+ if p.IsNil() { -+ return false -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if fs.Type.Kind() != reflect.Ptr { -+ return !isZero(rv) -+ } -+ return !rv.IsNil() -+ }, -+ clear: func(p pointer) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ rv.Set(reflect.Zero(rv.Type())) -+ }, -+ get: func(p pointer) protoreflect.Value { -+ if p.IsNil() { -+ return conv.Zero() -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ return conv.PBValueOf(rv) -+ }, -+ set: func(p pointer, v protoreflect.Value) { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ rv.Set(conv.GoValueOf(v)) -+ if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { -+ panic(fmt.Sprintf("field %v has invalid nil pointer", fd.FullName())) -+ } -+ }, -+ mutable: func(p pointer) protoreflect.Value { -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { -+ rv.Set(conv.GoValueOf(conv.New())) -+ } -+ return conv.PBValueOf(rv) -+ }, -+ newMessage: func() protoreflect.Message { -+ return conv.New().Message() -+ }, -+ newField: func() protoreflect.Value { -+ return conv.New() -+ }, -+ } -+} -+ -+type oneofInfo struct { -+ oneofDesc protoreflect.OneofDescriptor -+ which func(pointer) protoreflect.FieldNumber -+} -+ -+func makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) *oneofInfo { -+ oi := &oneofInfo{oneofDesc: od} -+ if od.IsSynthetic() { -+ fs := si.fieldsByNumber[od.Fields().Get(0).Number()] -+ fieldOffset := offsetOf(fs, x) -+ oi.which = func(p pointer) protoreflect.FieldNumber { -+ if p.IsNil() { -+ return 0 -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() { // valid on either *T or []byte -+ return 0 -+ } -+ return od.Fields().Get(0).Number() -+ } -+ } else { -+ fs := si.oneofsByName[od.Name()] -+ fieldOffset := offsetOf(fs, x) -+ oi.which = func(p pointer) protoreflect.FieldNumber { -+ if p.IsNil() { -+ return 0 -+ } -+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() -+ if rv.IsNil() { -+ return 0 -+ } -+ rv = rv.Elem() -+ if rv.IsNil() { -+ return 0 -+ } -+ return si.oneofWrappersByType[rv.Type().Elem()] -+ } -+ } -+ return oi -+} -+ -+// isZero is identical to reflect.Value.IsZero. -+// TODO: Remove this when Go1.13 is the minimally supported Go version. -+func isZero(v reflect.Value) bool { -+ switch v.Kind() { -+ case reflect.Bool: -+ return !v.Bool() -+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: -+ return v.Int() == 0 -+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: -+ return v.Uint() == 0 -+ case reflect.Float32, reflect.Float64: -+ return math.Float64bits(v.Float()) == 0 -+ case reflect.Complex64, reflect.Complex128: -+ c := v.Complex() -+ return math.Float64bits(real(c)) == 0 && math.Float64bits(imag(c)) == 0 -+ case reflect.Array: -+ for i := 0; i < v.Len(); i++ { -+ if !isZero(v.Index(i)) { -+ return false -+ } -+ } -+ return true -+ case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer: -+ return v.IsNil() -+ case reflect.String: -+ return v.Len() == 0 -+ case reflect.Struct: -+ for i := 0; i < v.NumField(); i++ { -+ if !isZero(v.Field(i)) { -+ return false -+ } -+ } -+ return true -+ default: -+ panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go -new file mode 100644 -index 00000000..741d6e5b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_gen.go -@@ -0,0 +1,249 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package impl -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+func (m *messageState) Descriptor() protoreflect.MessageDescriptor { -+ return m.messageInfo().Desc -+} -+func (m *messageState) Type() protoreflect.MessageType { -+ return m.messageInfo() -+} -+func (m *messageState) New() protoreflect.Message { -+ return m.messageInfo().New() -+} -+func (m *messageState) Interface() protoreflect.ProtoMessage { -+ return m.protoUnwrap().(protoreflect.ProtoMessage) -+} -+func (m *messageState) protoUnwrap() interface{} { -+ return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) -+} -+func (m *messageState) ProtoMethods() *protoiface.Methods { -+ m.messageInfo().init() -+ return &m.messageInfo().methods -+} -+ -+// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code -+// to be able to retrieve a v2 MessageInfo struct. -+// -+// WARNING: This method is exempt from the compatibility promise and -+// may be removed in the future without warning. -+func (m *messageState) ProtoMessageInfo() *MessageInfo { -+ return m.messageInfo() -+} -+ -+func (m *messageState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { -+ m.messageInfo().init() -+ for _, ri := range m.messageInfo().rangeInfos { -+ switch ri := ri.(type) { -+ case *fieldInfo: -+ if ri.has(m.pointer()) { -+ if !f(ri.fieldDesc, ri.get(m.pointer())) { -+ return -+ } -+ } -+ case *oneofInfo: -+ if n := ri.which(m.pointer()); n > 0 { -+ fi := m.messageInfo().fields[n] -+ if !f(fi.fieldDesc, fi.get(m.pointer())) { -+ return -+ } -+ } -+ } -+ } -+ m.messageInfo().extensionMap(m.pointer()).Range(f) -+} -+func (m *messageState) Has(fd protoreflect.FieldDescriptor) bool { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.has(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Has(xt) -+ } -+} -+func (m *messageState) Clear(fd protoreflect.FieldDescriptor) { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ fi.clear(m.pointer()) -+ } else { -+ m.messageInfo().extensionMap(m.pointer()).Clear(xt) -+ } -+} -+func (m *messageState) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.get(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Get(xt) -+ } -+} -+func (m *messageState) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ fi.set(m.pointer(), v) -+ } else { -+ m.messageInfo().extensionMap(m.pointer()).Set(xt, v) -+ } -+} -+func (m *messageState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.mutable(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) -+ } -+} -+func (m *messageState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.newField() -+ } else { -+ return xt.New() -+ } -+} -+func (m *messageState) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { -+ m.messageInfo().init() -+ if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { -+ return od.Fields().ByNumber(oi.which(m.pointer())) -+ } -+ panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) -+} -+func (m *messageState) GetUnknown() protoreflect.RawFields { -+ m.messageInfo().init() -+ return m.messageInfo().getUnknown(m.pointer()) -+} -+func (m *messageState) SetUnknown(b protoreflect.RawFields) { -+ m.messageInfo().init() -+ m.messageInfo().setUnknown(m.pointer(), b) -+} -+func (m *messageState) IsValid() bool { -+ return !m.pointer().IsNil() -+} -+ -+func (m *messageReflectWrapper) Descriptor() protoreflect.MessageDescriptor { -+ return m.messageInfo().Desc -+} -+func (m *messageReflectWrapper) Type() protoreflect.MessageType { -+ return m.messageInfo() -+} -+func (m *messageReflectWrapper) New() protoreflect.Message { -+ return m.messageInfo().New() -+} -+func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage { -+ if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok { -+ return m -+ } -+ return (*messageIfaceWrapper)(m) -+} -+func (m *messageReflectWrapper) protoUnwrap() interface{} { -+ return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem()) -+} -+func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods { -+ m.messageInfo().init() -+ return &m.messageInfo().methods -+} -+ -+// ProtoMessageInfo is a pseudo-internal API for allowing the v1 code -+// to be able to retrieve a v2 MessageInfo struct. -+// -+// WARNING: This method is exempt from the compatibility promise and -+// may be removed in the future without warning. -+func (m *messageReflectWrapper) ProtoMessageInfo() *MessageInfo { -+ return m.messageInfo() -+} -+ -+func (m *messageReflectWrapper) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { -+ m.messageInfo().init() -+ for _, ri := range m.messageInfo().rangeInfos { -+ switch ri := ri.(type) { -+ case *fieldInfo: -+ if ri.has(m.pointer()) { -+ if !f(ri.fieldDesc, ri.get(m.pointer())) { -+ return -+ } -+ } -+ case *oneofInfo: -+ if n := ri.which(m.pointer()); n > 0 { -+ fi := m.messageInfo().fields[n] -+ if !f(fi.fieldDesc, fi.get(m.pointer())) { -+ return -+ } -+ } -+ } -+ } -+ m.messageInfo().extensionMap(m.pointer()).Range(f) -+} -+func (m *messageReflectWrapper) Has(fd protoreflect.FieldDescriptor) bool { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.has(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Has(xt) -+ } -+} -+func (m *messageReflectWrapper) Clear(fd protoreflect.FieldDescriptor) { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ fi.clear(m.pointer()) -+ } else { -+ m.messageInfo().extensionMap(m.pointer()).Clear(xt) -+ } -+} -+func (m *messageReflectWrapper) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.get(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Get(xt) -+ } -+} -+func (m *messageReflectWrapper) Set(fd protoreflect.FieldDescriptor, v protoreflect.Value) { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ fi.set(m.pointer(), v) -+ } else { -+ m.messageInfo().extensionMap(m.pointer()).Set(xt, v) -+ } -+} -+func (m *messageReflectWrapper) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.mutable(m.pointer()) -+ } else { -+ return m.messageInfo().extensionMap(m.pointer()).Mutable(xt) -+ } -+} -+func (m *messageReflectWrapper) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { -+ m.messageInfo().init() -+ if fi, xt := m.messageInfo().checkField(fd); fi != nil { -+ return fi.newField() -+ } else { -+ return xt.New() -+ } -+} -+func (m *messageReflectWrapper) WhichOneof(od protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { -+ m.messageInfo().init() -+ if oi := m.messageInfo().oneofs[od.Name()]; oi != nil && oi.oneofDesc == od { -+ return od.Fields().ByNumber(oi.which(m.pointer())) -+ } -+ panic("invalid oneof descriptor " + string(od.FullName()) + " for message " + string(m.Descriptor().FullName())) -+} -+func (m *messageReflectWrapper) GetUnknown() protoreflect.RawFields { -+ m.messageInfo().init() -+ return m.messageInfo().getUnknown(m.pointer()) -+} -+func (m *messageReflectWrapper) SetUnknown(b protoreflect.RawFields) { -+ m.messageInfo().init() -+ m.messageInfo().setUnknown(m.pointer(), b) -+} -+func (m *messageReflectWrapper) IsValid() bool { -+ return !m.pointer().IsNil() -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -new file mode 100644 -index 00000000..4c491bdf ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -0,0 +1,179 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build purego || appengine -+// +build purego appengine -+ -+package impl -+ -+import ( -+ "fmt" -+ "reflect" -+ "sync" -+) -+ -+const UnsafeEnabled = false -+ -+// Pointer is an opaque pointer type. -+type Pointer interface{} -+ -+// offset represents the offset to a struct field, accessible from a pointer. -+// The offset is the field index into a struct. -+type offset struct { -+ index int -+ export exporter -+} -+ -+// offsetOf returns a field offset for the struct field. -+func offsetOf(f reflect.StructField, x exporter) offset { -+ if len(f.Index) != 1 { -+ panic("embedded structs are not supported") -+ } -+ if f.PkgPath == "" { -+ return offset{index: f.Index[0]} // field is already exported -+ } -+ if x == nil { -+ panic("exporter must be provided for unexported field") -+ } -+ return offset{index: f.Index[0], export: x} -+} -+ -+// IsValid reports whether the offset is valid. -+func (f offset) IsValid() bool { return f.index >= 0 } -+ -+// invalidOffset is an invalid field offset. -+var invalidOffset = offset{index: -1} -+ -+// zeroOffset is a noop when calling pointer.Apply. -+var zeroOffset = offset{index: 0} -+ -+// pointer is an abstract representation of a pointer to a struct or field. -+type pointer struct{ v reflect.Value } -+ -+// pointerOf returns p as a pointer. -+func pointerOf(p Pointer) pointer { -+ return pointerOfIface(p) -+} -+ -+// pointerOfValue returns v as a pointer. -+func pointerOfValue(v reflect.Value) pointer { -+ return pointer{v: v} -+} -+ -+// pointerOfIface returns the pointer portion of an interface. -+func pointerOfIface(v interface{}) pointer { -+ return pointer{v: reflect.ValueOf(v)} -+} -+ -+// IsNil reports whether the pointer is nil. -+func (p pointer) IsNil() bool { -+ return p.v.IsNil() -+} -+ -+// Apply adds an offset to the pointer to derive a new pointer -+// to a specified field. The current pointer must be pointing at a struct. -+func (p pointer) Apply(f offset) pointer { -+ if f.export != nil { -+ if v := reflect.ValueOf(f.export(p.v.Interface(), f.index)); v.IsValid() { -+ return pointer{v: v} -+ } -+ } -+ return pointer{v: p.v.Elem().Field(f.index).Addr()} -+} -+ -+// AsValueOf treats p as a pointer to an object of type t and returns the value. -+// It is equivalent to reflect.ValueOf(p.AsIfaceOf(t)) -+func (p pointer) AsValueOf(t reflect.Type) reflect.Value { -+ if got := p.v.Type().Elem(); got != t { -+ panic(fmt.Sprintf("invalid type: got %v, want %v", got, t)) -+ } -+ return p.v -+} -+ -+// AsIfaceOf treats p as a pointer to an object of type t and returns the value. -+// It is equivalent to p.AsValueOf(t).Interface() -+func (p pointer) AsIfaceOf(t reflect.Type) interface{} { -+ return p.AsValueOf(t).Interface() -+} -+ -+func (p pointer) Bool() *bool { return p.v.Interface().(*bool) } -+func (p pointer) BoolPtr() **bool { return p.v.Interface().(**bool) } -+func (p pointer) BoolSlice() *[]bool { return p.v.Interface().(*[]bool) } -+func (p pointer) Int32() *int32 { return p.v.Interface().(*int32) } -+func (p pointer) Int32Ptr() **int32 { return p.v.Interface().(**int32) } -+func (p pointer) Int32Slice() *[]int32 { return p.v.Interface().(*[]int32) } -+func (p pointer) Int64() *int64 { return p.v.Interface().(*int64) } -+func (p pointer) Int64Ptr() **int64 { return p.v.Interface().(**int64) } -+func (p pointer) Int64Slice() *[]int64 { return p.v.Interface().(*[]int64) } -+func (p pointer) Uint32() *uint32 { return p.v.Interface().(*uint32) } -+func (p pointer) Uint32Ptr() **uint32 { return p.v.Interface().(**uint32) } -+func (p pointer) Uint32Slice() *[]uint32 { return p.v.Interface().(*[]uint32) } -+func (p pointer) Uint64() *uint64 { return p.v.Interface().(*uint64) } -+func (p pointer) Uint64Ptr() **uint64 { return p.v.Interface().(**uint64) } -+func (p pointer) Uint64Slice() *[]uint64 { return p.v.Interface().(*[]uint64) } -+func (p pointer) Float32() *float32 { return p.v.Interface().(*float32) } -+func (p pointer) Float32Ptr() **float32 { return p.v.Interface().(**float32) } -+func (p pointer) Float32Slice() *[]float32 { return p.v.Interface().(*[]float32) } -+func (p pointer) Float64() *float64 { return p.v.Interface().(*float64) } -+func (p pointer) Float64Ptr() **float64 { return p.v.Interface().(**float64) } -+func (p pointer) Float64Slice() *[]float64 { return p.v.Interface().(*[]float64) } -+func (p pointer) String() *string { return p.v.Interface().(*string) } -+func (p pointer) StringPtr() **string { return p.v.Interface().(**string) } -+func (p pointer) StringSlice() *[]string { return p.v.Interface().(*[]string) } -+func (p pointer) Bytes() *[]byte { return p.v.Interface().(*[]byte) } -+func (p pointer) BytesPtr() **[]byte { return p.v.Interface().(**[]byte) } -+func (p pointer) BytesSlice() *[][]byte { return p.v.Interface().(*[][]byte) } -+func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.v.Interface().(*WeakFields)) } -+func (p pointer) Extensions() *map[int32]ExtensionField { -+ return p.v.Interface().(*map[int32]ExtensionField) -+} -+ -+func (p pointer) Elem() pointer { -+ return pointer{v: p.v.Elem()} -+} -+ -+// PointerSlice copies []*T from p as a new []pointer. -+// This behavior differs from the implementation in pointer_unsafe.go. -+func (p pointer) PointerSlice() []pointer { -+ // TODO: reconsider this -+ if p.v.IsNil() { -+ return nil -+ } -+ n := p.v.Elem().Len() -+ s := make([]pointer, n) -+ for i := 0; i < n; i++ { -+ s[i] = pointer{v: p.v.Elem().Index(i)} -+ } -+ return s -+} -+ -+// AppendPointerSlice appends v to p, which must be a []*T. -+func (p pointer) AppendPointerSlice(v pointer) { -+ sp := p.v.Elem() -+ sp.Set(reflect.Append(sp, v.v)) -+} -+ -+// SetPointer sets *p to v. -+func (p pointer) SetPointer(v pointer) { -+ p.v.Elem().Set(v.v) -+} -+ -+func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } -+func (ms *messageState) pointer() pointer { panic("not supported") } -+func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -+func (ms *messageState) LoadMessageInfo() *MessageInfo { panic("not supported") } -+func (ms *messageState) StoreMessageInfo(mi *MessageInfo) { panic("not supported") } -+ -+type atomicNilMessage struct { -+ once sync.Once -+ m messageReflectWrapper -+} -+ -+func (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper { -+ m.once.Do(func() { -+ m.m.p = pointerOfIface(reflect.Zero(mi.GoReflectType).Interface()) -+ m.m.mi = mi -+ }) -+ return &m.m -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -new file mode 100644 -index 00000000..ee0e0573 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -0,0 +1,175 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine -+// +build !purego,!appengine -+ -+package impl -+ -+import ( -+ "reflect" -+ "sync/atomic" -+ "unsafe" -+) -+ -+const UnsafeEnabled = true -+ -+// Pointer is an opaque pointer type. -+type Pointer unsafe.Pointer -+ -+// offset represents the offset to a struct field, accessible from a pointer. -+// The offset is the byte offset to the field from the start of the struct. -+type offset uintptr -+ -+// offsetOf returns a field offset for the struct field. -+func offsetOf(f reflect.StructField, x exporter) offset { -+ return offset(f.Offset) -+} -+ -+// IsValid reports whether the offset is valid. -+func (f offset) IsValid() bool { return f != invalidOffset } -+ -+// invalidOffset is an invalid field offset. -+var invalidOffset = ^offset(0) -+ -+// zeroOffset is a noop when calling pointer.Apply. -+var zeroOffset = offset(0) -+ -+// pointer is a pointer to a message struct or field. -+type pointer struct{ p unsafe.Pointer } -+ -+// pointerOf returns p as a pointer. -+func pointerOf(p Pointer) pointer { -+ return pointer{p: unsafe.Pointer(p)} -+} -+ -+// pointerOfValue returns v as a pointer. -+func pointerOfValue(v reflect.Value) pointer { -+ return pointer{p: unsafe.Pointer(v.Pointer())} -+} -+ -+// pointerOfIface returns the pointer portion of an interface. -+func pointerOfIface(v interface{}) pointer { -+ type ifaceHeader struct { -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+ return pointer{p: (*ifaceHeader)(unsafe.Pointer(&v)).Data} -+} -+ -+// IsNil reports whether the pointer is nil. -+func (p pointer) IsNil() bool { -+ return p.p == nil -+} -+ -+// Apply adds an offset to the pointer to derive a new pointer -+// to a specified field. The pointer must be valid and pointing at a struct. -+func (p pointer) Apply(f offset) pointer { -+ if p.IsNil() { -+ panic("invalid nil pointer") -+ } -+ return pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))} -+} -+ -+// AsValueOf treats p as a pointer to an object of type t and returns the value. -+// It is equivalent to reflect.ValueOf(p.AsIfaceOf(t)) -+func (p pointer) AsValueOf(t reflect.Type) reflect.Value { -+ return reflect.NewAt(t, p.p) -+} -+ -+// AsIfaceOf treats p as a pointer to an object of type t and returns the value. -+// It is equivalent to p.AsValueOf(t).Interface() -+func (p pointer) AsIfaceOf(t reflect.Type) interface{} { -+ // TODO: Use tricky unsafe magic to directly create ifaceHeader. -+ return p.AsValueOf(t).Interface() -+} -+ -+func (p pointer) Bool() *bool { return (*bool)(p.p) } -+func (p pointer) BoolPtr() **bool { return (**bool)(p.p) } -+func (p pointer) BoolSlice() *[]bool { return (*[]bool)(p.p) } -+func (p pointer) Int32() *int32 { return (*int32)(p.p) } -+func (p pointer) Int32Ptr() **int32 { return (**int32)(p.p) } -+func (p pointer) Int32Slice() *[]int32 { return (*[]int32)(p.p) } -+func (p pointer) Int64() *int64 { return (*int64)(p.p) } -+func (p pointer) Int64Ptr() **int64 { return (**int64)(p.p) } -+func (p pointer) Int64Slice() *[]int64 { return (*[]int64)(p.p) } -+func (p pointer) Uint32() *uint32 { return (*uint32)(p.p) } -+func (p pointer) Uint32Ptr() **uint32 { return (**uint32)(p.p) } -+func (p pointer) Uint32Slice() *[]uint32 { return (*[]uint32)(p.p) } -+func (p pointer) Uint64() *uint64 { return (*uint64)(p.p) } -+func (p pointer) Uint64Ptr() **uint64 { return (**uint64)(p.p) } -+func (p pointer) Uint64Slice() *[]uint64 { return (*[]uint64)(p.p) } -+func (p pointer) Float32() *float32 { return (*float32)(p.p) } -+func (p pointer) Float32Ptr() **float32 { return (**float32)(p.p) } -+func (p pointer) Float32Slice() *[]float32 { return (*[]float32)(p.p) } -+func (p pointer) Float64() *float64 { return (*float64)(p.p) } -+func (p pointer) Float64Ptr() **float64 { return (**float64)(p.p) } -+func (p pointer) Float64Slice() *[]float64 { return (*[]float64)(p.p) } -+func (p pointer) String() *string { return (*string)(p.p) } -+func (p pointer) StringPtr() **string { return (**string)(p.p) } -+func (p pointer) StringSlice() *[]string { return (*[]string)(p.p) } -+func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) } -+func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) } -+func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) } -+func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.p) } -+func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) } -+ -+func (p pointer) Elem() pointer { -+ return pointer{p: *(*unsafe.Pointer)(p.p)} -+} -+ -+// PointerSlice loads []*T from p as a []pointer. -+// The value returned is aliased with the original slice. -+// This behavior differs from the implementation in pointer_reflect.go. -+func (p pointer) PointerSlice() []pointer { -+ // Super-tricky - p should point to a []*T where T is a -+ // message type. We load it as []pointer. -+ return *(*[]pointer)(p.p) -+} -+ -+// AppendPointerSlice appends v to p, which must be a []*T. -+func (p pointer) AppendPointerSlice(v pointer) { -+ *(*[]pointer)(p.p) = append(*(*[]pointer)(p.p), v) -+} -+ -+// SetPointer sets *p to v. -+func (p pointer) SetPointer(v pointer) { -+ *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) -+} -+ -+// Static check that MessageState does not exceed the size of a pointer. -+const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) -+ -+func (Export) MessageStateOf(p Pointer) *messageState { -+ // Super-tricky - see documentation on MessageState. -+ return (*messageState)(unsafe.Pointer(p)) -+} -+func (ms *messageState) pointer() pointer { -+ // Super-tricky - see documentation on MessageState. -+ return pointer{p: unsafe.Pointer(ms)} -+} -+func (ms *messageState) messageInfo() *MessageInfo { -+ mi := ms.LoadMessageInfo() -+ if mi == nil { -+ panic("invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct") -+ } -+ return mi -+} -+func (ms *messageState) LoadMessageInfo() *MessageInfo { -+ return (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)))) -+} -+func (ms *messageState) StoreMessageInfo(mi *MessageInfo) { -+ atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&ms.atomicMessageInfo)), unsafe.Pointer(mi)) -+} -+ -+type atomicNilMessage struct{ p unsafe.Pointer } // p is a *messageReflectWrapper -+ -+func (m *atomicNilMessage) Init(mi *MessageInfo) *messageReflectWrapper { -+ if p := atomic.LoadPointer(&m.p); p != nil { -+ return (*messageReflectWrapper)(p) -+ } -+ w := &messageReflectWrapper{mi: mi} -+ atomic.CompareAndSwapPointer(&m.p, nil, (unsafe.Pointer)(w)) -+ return (*messageReflectWrapper)(atomic.LoadPointer(&m.p)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/validate.go b/vendor/google.golang.org/protobuf/internal/impl/validate.go -new file mode 100644 -index 00000000..a24e6bbd ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/validate.go -@@ -0,0 +1,576 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ "math" -+ "math/bits" -+ "reflect" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// ValidationStatus is the result of validating the wire-format encoding of a message. -+type ValidationStatus int -+ -+const ( -+ // ValidationUnknown indicates that unmarshaling the message might succeed or fail. -+ // The validator was unable to render a judgement. -+ // -+ // The only causes of this status are an aberrant message type appearing somewhere -+ // in the message or a failure in the extension resolver. -+ ValidationUnknown ValidationStatus = iota + 1 -+ -+ // ValidationInvalid indicates that unmarshaling the message will fail. -+ ValidationInvalid -+ -+ // ValidationValid indicates that unmarshaling the message will succeed. -+ ValidationValid -+) -+ -+func (v ValidationStatus) String() string { -+ switch v { -+ case ValidationUnknown: -+ return "ValidationUnknown" -+ case ValidationInvalid: -+ return "ValidationInvalid" -+ case ValidationValid: -+ return "ValidationValid" -+ default: -+ return fmt.Sprintf("ValidationStatus(%d)", int(v)) -+ } -+} -+ -+// Validate determines whether the contents of the buffer are a valid wire encoding -+// of the message type. -+// -+// This function is exposed for testing. -+func Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out protoiface.UnmarshalOutput, _ ValidationStatus) { -+ mi, ok := mt.(*MessageInfo) -+ if !ok { -+ return out, ValidationUnknown -+ } -+ if in.Resolver == nil { -+ in.Resolver = protoregistry.GlobalTypes -+ } -+ o, st := mi.validate(in.Buf, 0, unmarshalOptions{ -+ flags: in.Flags, -+ resolver: in.Resolver, -+ }) -+ if o.initialized { -+ out.Flags |= protoiface.UnmarshalInitialized -+ } -+ return out, st -+} -+ -+type validationInfo struct { -+ mi *MessageInfo -+ typ validationType -+ keyType, valType validationType -+ -+ // For non-required fields, requiredBit is 0. -+ // -+ // For required fields, requiredBit's nth bit is set, where n is a -+ // unique index in the range [0, MessageInfo.numRequiredFields). -+ // -+ // If there are more than 64 required fields, requiredBit is 0. -+ requiredBit uint64 -+} -+ -+type validationType uint8 -+ -+const ( -+ validationTypeOther validationType = iota -+ validationTypeMessage -+ validationTypeGroup -+ validationTypeMap -+ validationTypeRepeatedVarint -+ validationTypeRepeatedFixed32 -+ validationTypeRepeatedFixed64 -+ validationTypeVarint -+ validationTypeFixed32 -+ validationTypeFixed64 -+ validationTypeBytes -+ validationTypeUTF8String -+ validationTypeMessageSetItem -+) -+ -+func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo { -+ var vi validationInfo -+ switch { -+ case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): -+ switch fd.Kind() { -+ case protoreflect.MessageKind: -+ vi.typ = validationTypeMessage -+ if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { -+ vi.mi = getMessageInfo(ot.Field(0).Type) -+ } -+ case protoreflect.GroupKind: -+ vi.typ = validationTypeGroup -+ if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { -+ vi.mi = getMessageInfo(ot.Field(0).Type) -+ } -+ case protoreflect.StringKind: -+ if strs.EnforceUTF8(fd) { -+ vi.typ = validationTypeUTF8String -+ } -+ } -+ default: -+ vi = newValidationInfo(fd, ft) -+ } -+ if fd.Cardinality() == protoreflect.Required { -+ // Avoid overflow. The required field check is done with a 64-bit mask, with -+ // any message containing more than 64 required fields always reported as -+ // potentially uninitialized, so it is not important to get a precise count -+ // of the required fields past 64. -+ if mi.numRequiredFields < math.MaxUint8 { -+ mi.numRequiredFields++ -+ vi.requiredBit = 1 << (mi.numRequiredFields - 1) -+ } -+ } -+ return vi -+} -+ -+func newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo { -+ var vi validationInfo -+ switch { -+ case fd.IsList(): -+ switch fd.Kind() { -+ case protoreflect.MessageKind: -+ vi.typ = validationTypeMessage -+ if ft.Kind() == reflect.Slice { -+ vi.mi = getMessageInfo(ft.Elem()) -+ } -+ case protoreflect.GroupKind: -+ vi.typ = validationTypeGroup -+ if ft.Kind() == reflect.Slice { -+ vi.mi = getMessageInfo(ft.Elem()) -+ } -+ case protoreflect.StringKind: -+ vi.typ = validationTypeBytes -+ if strs.EnforceUTF8(fd) { -+ vi.typ = validationTypeUTF8String -+ } -+ default: -+ switch wireTypes[fd.Kind()] { -+ case protowire.VarintType: -+ vi.typ = validationTypeRepeatedVarint -+ case protowire.Fixed32Type: -+ vi.typ = validationTypeRepeatedFixed32 -+ case protowire.Fixed64Type: -+ vi.typ = validationTypeRepeatedFixed64 -+ } -+ } -+ case fd.IsMap(): -+ vi.typ = validationTypeMap -+ switch fd.MapKey().Kind() { -+ case protoreflect.StringKind: -+ if strs.EnforceUTF8(fd) { -+ vi.keyType = validationTypeUTF8String -+ } -+ } -+ switch fd.MapValue().Kind() { -+ case protoreflect.MessageKind: -+ vi.valType = validationTypeMessage -+ if ft.Kind() == reflect.Map { -+ vi.mi = getMessageInfo(ft.Elem()) -+ } -+ case protoreflect.StringKind: -+ if strs.EnforceUTF8(fd) { -+ vi.valType = validationTypeUTF8String -+ } -+ } -+ default: -+ switch fd.Kind() { -+ case protoreflect.MessageKind: -+ vi.typ = validationTypeMessage -+ if !fd.IsWeak() { -+ vi.mi = getMessageInfo(ft) -+ } -+ case protoreflect.GroupKind: -+ vi.typ = validationTypeGroup -+ vi.mi = getMessageInfo(ft) -+ case protoreflect.StringKind: -+ vi.typ = validationTypeBytes -+ if strs.EnforceUTF8(fd) { -+ vi.typ = validationTypeUTF8String -+ } -+ default: -+ switch wireTypes[fd.Kind()] { -+ case protowire.VarintType: -+ vi.typ = validationTypeVarint -+ case protowire.Fixed32Type: -+ vi.typ = validationTypeFixed32 -+ case protowire.Fixed64Type: -+ vi.typ = validationTypeFixed64 -+ case protowire.BytesType: -+ vi.typ = validationTypeBytes -+ } -+ } -+ } -+ return vi -+} -+ -+func (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, result ValidationStatus) { -+ mi.init() -+ type validationState struct { -+ typ validationType -+ keyType, valType validationType -+ endGroup protowire.Number -+ mi *MessageInfo -+ tail []byte -+ requiredMask uint64 -+ } -+ -+ // Pre-allocate some slots to avoid repeated slice reallocation. -+ states := make([]validationState, 0, 16) -+ states = append(states, validationState{ -+ typ: validationTypeMessage, -+ mi: mi, -+ }) -+ if groupTag > 0 { -+ states[0].typ = validationTypeGroup -+ states[0].endGroup = groupTag -+ } -+ initialized := true -+ start := len(b) -+State: -+ for len(states) > 0 { -+ st := &states[len(states)-1] -+ for len(b) > 0 { -+ // Parse the tag (field number and wire type). -+ var tag uint64 -+ if b[0] < 0x80 { -+ tag = uint64(b[0]) -+ b = b[1:] -+ } else if len(b) >= 2 && b[1] < 128 { -+ tag = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ b = b[2:] -+ } else { -+ var n int -+ tag, n = protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, ValidationInvalid -+ } -+ b = b[n:] -+ } -+ var num protowire.Number -+ if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) { -+ return out, ValidationInvalid -+ } else { -+ num = protowire.Number(n) -+ } -+ wtyp := protowire.Type(tag & 7) -+ -+ if wtyp == protowire.EndGroupType { -+ if st.endGroup == num { -+ goto PopState -+ } -+ return out, ValidationInvalid -+ } -+ var vi validationInfo -+ switch { -+ case st.typ == validationTypeMap: -+ switch num { -+ case genid.MapEntry_Key_field_number: -+ vi.typ = st.keyType -+ case genid.MapEntry_Value_field_number: -+ vi.typ = st.valType -+ vi.mi = st.mi -+ vi.requiredBit = 1 -+ } -+ case flags.ProtoLegacy && st.mi.isMessageSet: -+ switch num { -+ case messageset.FieldItem: -+ vi.typ = validationTypeMessageSetItem -+ } -+ default: -+ var f *coderFieldInfo -+ if int(num) < len(st.mi.denseCoderFields) { -+ f = st.mi.denseCoderFields[num] -+ } else { -+ f = st.mi.coderFields[num] -+ } -+ if f != nil { -+ vi = f.validation -+ if vi.typ == validationTypeMessage && vi.mi == nil { -+ // Probable weak field. -+ // -+ // TODO: Consider storing the results of this lookup somewhere -+ // rather than recomputing it on every validation. -+ fd := st.mi.Desc.Fields().ByNumber(num) -+ if fd == nil || !fd.IsWeak() { -+ break -+ } -+ messageName := fd.Message().FullName() -+ messageType, err := protoregistry.GlobalTypes.FindMessageByName(messageName) -+ switch err { -+ case nil: -+ vi.mi, _ = messageType.(*MessageInfo) -+ case protoregistry.NotFound: -+ vi.typ = validationTypeBytes -+ default: -+ return out, ValidationUnknown -+ } -+ } -+ break -+ } -+ // Possible extension field. -+ // -+ // TODO: We should return ValidationUnknown when: -+ // 1. The resolver is not frozen. (More extensions may be added to it.) -+ // 2. The resolver returns preg.NotFound. -+ // In this case, a type added to the resolver in the future could cause -+ // unmarshaling to begin failing. Supporting this requires some way to -+ // determine if the resolver is frozen. -+ xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num) -+ if err != nil && err != protoregistry.NotFound { -+ return out, ValidationUnknown -+ } -+ if err == nil { -+ vi = getExtensionFieldInfo(xt).validation -+ } -+ } -+ if vi.requiredBit != 0 { -+ // Check that the field has a compatible wire type. -+ // We only need to consider non-repeated field types, -+ // since repeated fields (and maps) can never be required. -+ ok := false -+ switch vi.typ { -+ case validationTypeVarint: -+ ok = wtyp == protowire.VarintType -+ case validationTypeFixed32: -+ ok = wtyp == protowire.Fixed32Type -+ case validationTypeFixed64: -+ ok = wtyp == protowire.Fixed64Type -+ case validationTypeBytes, validationTypeUTF8String, validationTypeMessage: -+ ok = wtyp == protowire.BytesType -+ case validationTypeGroup: -+ ok = wtyp == protowire.StartGroupType -+ } -+ if ok { -+ st.requiredMask |= vi.requiredBit -+ } -+ } -+ -+ switch wtyp { -+ case protowire.VarintType: -+ if len(b) >= 10 { -+ switch { -+ case b[0] < 0x80: -+ b = b[1:] -+ case b[1] < 0x80: -+ b = b[2:] -+ case b[2] < 0x80: -+ b = b[3:] -+ case b[3] < 0x80: -+ b = b[4:] -+ case b[4] < 0x80: -+ b = b[5:] -+ case b[5] < 0x80: -+ b = b[6:] -+ case b[6] < 0x80: -+ b = b[7:] -+ case b[7] < 0x80: -+ b = b[8:] -+ case b[8] < 0x80: -+ b = b[9:] -+ case b[9] < 0x80 && b[9] < 2: -+ b = b[10:] -+ default: -+ return out, ValidationInvalid -+ } -+ } else { -+ switch { -+ case len(b) > 0 && b[0] < 0x80: -+ b = b[1:] -+ case len(b) > 1 && b[1] < 0x80: -+ b = b[2:] -+ case len(b) > 2 && b[2] < 0x80: -+ b = b[3:] -+ case len(b) > 3 && b[3] < 0x80: -+ b = b[4:] -+ case len(b) > 4 && b[4] < 0x80: -+ b = b[5:] -+ case len(b) > 5 && b[5] < 0x80: -+ b = b[6:] -+ case len(b) > 6 && b[6] < 0x80: -+ b = b[7:] -+ case len(b) > 7 && b[7] < 0x80: -+ b = b[8:] -+ case len(b) > 8 && b[8] < 0x80: -+ b = b[9:] -+ case len(b) > 9 && b[9] < 2: -+ b = b[10:] -+ default: -+ return out, ValidationInvalid -+ } -+ } -+ continue State -+ case protowire.BytesType: -+ var size uint64 -+ if len(b) >= 1 && b[0] < 0x80 { -+ size = uint64(b[0]) -+ b = b[1:] -+ } else if len(b) >= 2 && b[1] < 128 { -+ size = uint64(b[0]&0x7f) + uint64(b[1])<<7 -+ b = b[2:] -+ } else { -+ var n int -+ size, n = protowire.ConsumeVarint(b) -+ if n < 0 { -+ return out, ValidationInvalid -+ } -+ b = b[n:] -+ } -+ if size > uint64(len(b)) { -+ return out, ValidationInvalid -+ } -+ v := b[:size] -+ b = b[size:] -+ switch vi.typ { -+ case validationTypeMessage: -+ if vi.mi == nil { -+ return out, ValidationUnknown -+ } -+ vi.mi.init() -+ fallthrough -+ case validationTypeMap: -+ if vi.mi != nil { -+ vi.mi.init() -+ } -+ states = append(states, validationState{ -+ typ: vi.typ, -+ keyType: vi.keyType, -+ valType: vi.valType, -+ mi: vi.mi, -+ tail: b, -+ }) -+ b = v -+ continue State -+ case validationTypeRepeatedVarint: -+ // Packed field. -+ for len(v) > 0 { -+ _, n := protowire.ConsumeVarint(v) -+ if n < 0 { -+ return out, ValidationInvalid -+ } -+ v = v[n:] -+ } -+ case validationTypeRepeatedFixed32: -+ // Packed field. -+ if len(v)%4 != 0 { -+ return out, ValidationInvalid -+ } -+ case validationTypeRepeatedFixed64: -+ // Packed field. -+ if len(v)%8 != 0 { -+ return out, ValidationInvalid -+ } -+ case validationTypeUTF8String: -+ if !utf8.Valid(v) { -+ return out, ValidationInvalid -+ } -+ } -+ case protowire.Fixed32Type: -+ if len(b) < 4 { -+ return out, ValidationInvalid -+ } -+ b = b[4:] -+ case protowire.Fixed64Type: -+ if len(b) < 8 { -+ return out, ValidationInvalid -+ } -+ b = b[8:] -+ case protowire.StartGroupType: -+ switch { -+ case vi.typ == validationTypeGroup: -+ if vi.mi == nil { -+ return out, ValidationUnknown -+ } -+ vi.mi.init() -+ states = append(states, validationState{ -+ typ: validationTypeGroup, -+ mi: vi.mi, -+ endGroup: num, -+ }) -+ continue State -+ case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem: -+ typeid, v, n, err := messageset.ConsumeFieldValue(b, false) -+ if err != nil { -+ return out, ValidationInvalid -+ } -+ xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid) -+ switch { -+ case err == protoregistry.NotFound: -+ b = b[n:] -+ case err != nil: -+ return out, ValidationUnknown -+ default: -+ xvi := getExtensionFieldInfo(xt).validation -+ if xvi.mi != nil { -+ xvi.mi.init() -+ } -+ states = append(states, validationState{ -+ typ: xvi.typ, -+ mi: xvi.mi, -+ tail: b[n:], -+ }) -+ b = v -+ continue State -+ } -+ default: -+ n := protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return out, ValidationInvalid -+ } -+ b = b[n:] -+ } -+ default: -+ return out, ValidationInvalid -+ } -+ } -+ if st.endGroup != 0 { -+ return out, ValidationInvalid -+ } -+ if len(b) != 0 { -+ return out, ValidationInvalid -+ } -+ b = st.tail -+ PopState: -+ numRequiredFields := 0 -+ switch st.typ { -+ case validationTypeMessage, validationTypeGroup: -+ numRequiredFields = int(st.mi.numRequiredFields) -+ case validationTypeMap: -+ // If this is a map field with a message value that contains -+ // required fields, require that the value be present. -+ if st.mi != nil && st.mi.numRequiredFields > 0 { -+ numRequiredFields = 1 -+ } -+ } -+ // If there are more than 64 required fields, this check will -+ // always fail and we will report that the message is potentially -+ // uninitialized. -+ if numRequiredFields > 0 && bits.OnesCount64(st.requiredMask) != numRequiredFields { -+ initialized = false -+ } -+ states = states[:len(states)-1] -+ } -+ out.n = start - len(b) -+ if initialized { -+ out.initialized = true -+ } -+ return out, ValidationValid -+} -diff --git a/vendor/google.golang.org/protobuf/internal/impl/weak.go b/vendor/google.golang.org/protobuf/internal/impl/weak.go -new file mode 100644 -index 00000000..eb79a7ba ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/impl/weak.go -@@ -0,0 +1,74 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package impl -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+// weakFields adds methods to the exported WeakFields type for internal use. -+// -+// The exported type is an alias to an unnamed type, so methods can't be -+// defined directly on it. -+type weakFields WeakFields -+ -+func (w weakFields) get(num protoreflect.FieldNumber) (protoreflect.ProtoMessage, bool) { -+ m, ok := w[int32(num)] -+ return m, ok -+} -+ -+func (w *weakFields) set(num protoreflect.FieldNumber, m protoreflect.ProtoMessage) { -+ if *w == nil { -+ *w = make(weakFields) -+ } -+ (*w)[int32(num)] = m -+} -+ -+func (w *weakFields) clear(num protoreflect.FieldNumber) { -+ delete(*w, int32(num)) -+} -+ -+func (Export) HasWeak(w WeakFields, num protoreflect.FieldNumber) bool { -+ _, ok := w[int32(num)] -+ return ok -+} -+ -+func (Export) ClearWeak(w *WeakFields, num protoreflect.FieldNumber) { -+ delete(*w, int32(num)) -+} -+ -+func (Export) GetWeak(w WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName) protoreflect.ProtoMessage { -+ if m, ok := w[int32(num)]; ok { -+ return m -+ } -+ mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) -+ if mt == nil { -+ panic(fmt.Sprintf("message %v for weak field is not linked in", name)) -+ } -+ return mt.Zero().Interface() -+} -+ -+func (Export) SetWeak(w *WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName, m protoreflect.ProtoMessage) { -+ if m != nil { -+ mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) -+ if mt == nil { -+ panic(fmt.Sprintf("message %v for weak field is not linked in", name)) -+ } -+ if mt != m.ProtoReflect().Type() { -+ panic(fmt.Sprintf("invalid message type for weak field: got %T, want %T", m, mt.Zero().Interface())) -+ } -+ } -+ if m == nil || !m.ProtoReflect().IsValid() { -+ delete(*w, int32(num)) -+ return -+ } -+ if *w == nil { -+ *w = make(weakFields) -+ } -+ (*w)[int32(num)] = m -+} -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -new file mode 100644 -index 00000000..33745ed0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -0,0 +1,89 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package order -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// FieldOrder specifies the ordering to visit message fields. -+// It is a function that reports whether x is ordered before y. -+type FieldOrder func(x, y protoreflect.FieldDescriptor) bool -+ -+var ( -+ // AnyFieldOrder specifies no specific field ordering. -+ AnyFieldOrder FieldOrder = nil -+ -+ // LegacyFieldOrder sorts fields in the same ordering as emitted by -+ // wire serialization in the github.com/golang/protobuf implementation. -+ LegacyFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { -+ ox, oy := x.ContainingOneof(), y.ContainingOneof() -+ inOneof := func(od protoreflect.OneofDescriptor) bool { -+ return od != nil && !od.IsSynthetic() -+ } -+ -+ // Extension fields sort before non-extension fields. -+ if x.IsExtension() != y.IsExtension() { -+ return x.IsExtension() && !y.IsExtension() -+ } -+ // Fields not within a oneof sort before those within a oneof. -+ if inOneof(ox) != inOneof(oy) { -+ return !inOneof(ox) && inOneof(oy) -+ } -+ // Fields in disjoint oneof sets are sorted by declaration index. -+ if ox != nil && oy != nil && ox != oy { -+ return ox.Index() < oy.Index() -+ } -+ // Fields sorted by field number. -+ return x.Number() < y.Number() -+ } -+ -+ // NumberFieldOrder sorts fields by their field number. -+ NumberFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { -+ return x.Number() < y.Number() -+ } -+ -+ // IndexNameFieldOrder sorts non-extension fields before extension fields. -+ // Non-extensions are sorted according to their declaration index. -+ // Extensions are sorted according to their full name. -+ IndexNameFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { -+ // Non-extension fields sort before extension fields. -+ if x.IsExtension() != y.IsExtension() { -+ return !x.IsExtension() && y.IsExtension() -+ } -+ // Extensions sorted by fullname. -+ if x.IsExtension() && y.IsExtension() { -+ return x.FullName() < y.FullName() -+ } -+ // Non-extensions sorted by declaration index. -+ return x.Index() < y.Index() -+ } -+) -+ -+// KeyOrder specifies the ordering to visit map entries. -+// It is a function that reports whether x is ordered before y. -+type KeyOrder func(x, y protoreflect.MapKey) bool -+ -+var ( -+ // AnyKeyOrder specifies no specific key ordering. -+ AnyKeyOrder KeyOrder = nil -+ -+ // GenericKeyOrder sorts false before true, numeric keys in ascending order, -+ // and strings in lexicographical ordering according to UTF-8 codepoints. -+ GenericKeyOrder KeyOrder = func(x, y protoreflect.MapKey) bool { -+ switch x.Interface().(type) { -+ case bool: -+ return !x.Bool() && y.Bool() -+ case int32, int64: -+ return x.Int() < y.Int() -+ case uint32, uint64: -+ return x.Uint() < y.Uint() -+ case string: -+ return x.String() < y.String() -+ default: -+ panic("invalid map key type") -+ } -+ } -+) -diff --git a/vendor/google.golang.org/protobuf/internal/order/range.go b/vendor/google.golang.org/protobuf/internal/order/range.go -new file mode 100644 -index 00000000..1665a68e ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/order/range.go -@@ -0,0 +1,115 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package order provides ordered access to messages and maps. -+package order -+ -+import ( -+ "sort" -+ "sync" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type messageField struct { -+ fd protoreflect.FieldDescriptor -+ v protoreflect.Value -+} -+ -+var messageFieldPool = sync.Pool{ -+ New: func() interface{} { return new([]messageField) }, -+} -+ -+type ( -+ // FieldRnger is an interface for visiting all fields in a message. -+ // The protoreflect.Message type implements this interface. -+ FieldRanger interface{ Range(VisitField) } -+ // VisitField is called every time a message field is visited. -+ VisitField = func(protoreflect.FieldDescriptor, protoreflect.Value) bool -+) -+ -+// RangeFields iterates over the fields of fs according to the specified order. -+func RangeFields(fs FieldRanger, less FieldOrder, fn VisitField) { -+ if less == nil { -+ fs.Range(fn) -+ return -+ } -+ -+ // Obtain a pre-allocated scratch buffer. -+ p := messageFieldPool.Get().(*[]messageField) -+ fields := (*p)[:0] -+ defer func() { -+ if cap(fields) < 1024 { -+ *p = fields -+ messageFieldPool.Put(p) -+ } -+ }() -+ -+ // Collect all fields in the message and sort them. -+ fs.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ fields = append(fields, messageField{fd, v}) -+ return true -+ }) -+ sort.Slice(fields, func(i, j int) bool { -+ return less(fields[i].fd, fields[j].fd) -+ }) -+ -+ // Visit the fields in the specified ordering. -+ for _, f := range fields { -+ if !fn(f.fd, f.v) { -+ return -+ } -+ } -+} -+ -+type mapEntry struct { -+ k protoreflect.MapKey -+ v protoreflect.Value -+} -+ -+var mapEntryPool = sync.Pool{ -+ New: func() interface{} { return new([]mapEntry) }, -+} -+ -+type ( -+ // EntryRanger is an interface for visiting all fields in a message. -+ // The protoreflect.Map type implements this interface. -+ EntryRanger interface{ Range(VisitEntry) } -+ // VisitEntry is called every time a map entry is visited. -+ VisitEntry = func(protoreflect.MapKey, protoreflect.Value) bool -+) -+ -+// RangeEntries iterates over the entries of es according to the specified order. -+func RangeEntries(es EntryRanger, less KeyOrder, fn VisitEntry) { -+ if less == nil { -+ es.Range(fn) -+ return -+ } -+ -+ // Obtain a pre-allocated scratch buffer. -+ p := mapEntryPool.Get().(*[]mapEntry) -+ entries := (*p)[:0] -+ defer func() { -+ if cap(entries) < 1024 { -+ *p = entries -+ mapEntryPool.Put(p) -+ } -+ }() -+ -+ // Collect all entries in the map and sort them. -+ es.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { -+ entries = append(entries, mapEntry{k, v}) -+ return true -+ }) -+ sort.Slice(entries, func(i, j int) bool { -+ return less(entries[i].k, entries[j].k) -+ }) -+ -+ // Visit the entries in the specified ordering. -+ for _, e := range entries { -+ if !fn(e.k, e.v) { -+ return -+ } -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/internal/pragma/pragma.go b/vendor/google.golang.org/protobuf/internal/pragma/pragma.go -new file mode 100644 -index 00000000..49dc4fcd ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/pragma/pragma.go -@@ -0,0 +1,29 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package pragma provides types that can be embedded into a struct to -+// statically enforce or prevent certain language properties. -+package pragma -+ -+import "sync" -+ -+// NoUnkeyedLiterals can be embedded in a struct to prevent unkeyed literals. -+type NoUnkeyedLiterals struct{} -+ -+// DoNotImplement can be embedded in an interface to prevent trivial -+// implementations of the interface. -+// -+// This is useful to prevent unauthorized implementations of an interface -+// so that it can be extended in the future for any protobuf language changes. -+type DoNotImplement interface{ ProtoInternal(DoNotImplement) } -+ -+// DoNotCompare can be embedded in a struct to prevent comparability. -+type DoNotCompare [0]func() -+ -+// DoNotCopy can be embedded in a struct to help prevent shallow copies. -+// This does not rely on a Go language feature, but rather a special case -+// within the vet checker. -+// -+// See https://golang.org/issues/8005. -+type DoNotCopy [0]sync.Mutex -diff --git a/vendor/google.golang.org/protobuf/internal/set/ints.go b/vendor/google.golang.org/protobuf/internal/set/ints.go -new file mode 100644 -index 00000000..d3d7f89a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/set/ints.go -@@ -0,0 +1,58 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package set provides simple set data structures for uint64s. -+package set -+ -+import "math/bits" -+ -+// int64s represents a set of integers within the range of 0..63. -+type int64s uint64 -+ -+func (bs *int64s) Len() int { -+ return bits.OnesCount64(uint64(*bs)) -+} -+func (bs *int64s) Has(n uint64) bool { -+ return uint64(*bs)&(uint64(1)< 0 -+} -+func (bs *int64s) Set(n uint64) { -+ *(*uint64)(bs) |= uint64(1) << n -+} -+func (bs *int64s) Clear(n uint64) { -+ *(*uint64)(bs) &^= uint64(1) << n -+} -+ -+// Ints represents a set of integers within the range of 0..math.MaxUint64. -+type Ints struct { -+ lo int64s -+ hi map[uint64]struct{} -+} -+ -+func (bs *Ints) Len() int { -+ return bs.lo.Len() + len(bs.hi) -+} -+func (bs *Ints) Has(n uint64) bool { -+ if n < 64 { -+ return bs.lo.Has(n) -+ } -+ _, ok := bs.hi[n] -+ return ok -+} -+func (bs *Ints) Set(n uint64) { -+ if n < 64 { -+ bs.lo.Set(n) -+ return -+ } -+ if bs.hi == nil { -+ bs.hi = make(map[uint64]struct{}) -+ } -+ bs.hi[n] = struct{}{} -+} -+func (bs *Ints) Clear(n uint64) { -+ if n < 64 { -+ bs.lo.Clear(n) -+ return -+ } -+ delete(bs.hi, n) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -new file mode 100644 -index 00000000..0b74e765 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -0,0 +1,196 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package strs provides string manipulation functionality specific to protobuf. -+package strs -+ -+import ( -+ "go/token" -+ "strings" -+ "unicode" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// EnforceUTF8 reports whether to enforce strict UTF-8 validation. -+func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -+ if flags.ProtoLegacy { -+ if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { -+ return fd.EnforceUTF8() -+ } -+ } -+ return fd.Syntax() == protoreflect.Proto3 -+} -+ -+// GoCamelCase camel-cases a protobuf name for use as a Go identifier. -+// -+// If there is an interior underscore followed by a lower case letter, -+// drop the underscore and convert the letter to upper case. -+func GoCamelCase(s string) string { -+ // Invariant: if the next letter is lower case, it must be converted -+ // to upper case. -+ // That is, we process a word at a time, where words are marked by _ or -+ // upper case letter. Digits are treated as words. -+ var b []byte -+ for i := 0; i < len(s); i++ { -+ c := s[i] -+ switch { -+ case c == '.' && i+1 < len(s) && isASCIILower(s[i+1]): -+ // Skip over '.' in ".{{lowercase}}". -+ case c == '.': -+ b = append(b, '_') // convert '.' to '_' -+ case c == '_' && (i == 0 || s[i-1] == '.'): -+ // Convert initial '_' to ensure we start with a capital letter. -+ // Do the same for '_' after '.' to match historic behavior. -+ b = append(b, 'X') // convert '_' to 'X' -+ case c == '_' && i+1 < len(s) && isASCIILower(s[i+1]): -+ // Skip over '_' in "_{{lowercase}}". -+ case isASCIIDigit(c): -+ b = append(b, c) -+ default: -+ // Assume we have a letter now - if not, it's a bogus identifier. -+ // The next word is a sequence of characters that must start upper case. -+ if isASCIILower(c) { -+ c -= 'a' - 'A' // convert lowercase to uppercase -+ } -+ b = append(b, c) -+ -+ // Accept lower case sequence that follows. -+ for ; i+1 < len(s) && isASCIILower(s[i+1]); i++ { -+ b = append(b, s[i+1]) -+ } -+ } -+ } -+ return string(b) -+} -+ -+// GoSanitized converts a string to a valid Go identifier. -+func GoSanitized(s string) string { -+ // Sanitize the input to the set of valid characters, -+ // which must be '_' or be in the Unicode L or N categories. -+ s = strings.Map(func(r rune) rune { -+ if unicode.IsLetter(r) || unicode.IsDigit(r) { -+ return r -+ } -+ return '_' -+ }, s) -+ -+ // Prepend '_' in the event of a Go keyword conflict or if -+ // the identifier is invalid (does not start in the Unicode L category). -+ r, _ := utf8.DecodeRuneInString(s) -+ if token.Lookup(s).IsKeyword() || !unicode.IsLetter(r) { -+ return "_" + s -+ } -+ return s -+} -+ -+// JSONCamelCase converts a snake_case identifier to a camelCase identifier, -+// according to the protobuf JSON specification. -+func JSONCamelCase(s string) string { -+ var b []byte -+ var wasUnderscore bool -+ for i := 0; i < len(s); i++ { // proto identifiers are always ASCII -+ c := s[i] -+ if c != '_' { -+ if wasUnderscore && isASCIILower(c) { -+ c -= 'a' - 'A' // convert to uppercase -+ } -+ b = append(b, c) -+ } -+ wasUnderscore = c == '_' -+ } -+ return string(b) -+} -+ -+// JSONSnakeCase converts a camelCase identifier to a snake_case identifier, -+// according to the protobuf JSON specification. -+func JSONSnakeCase(s string) string { -+ var b []byte -+ for i := 0; i < len(s); i++ { // proto identifiers are always ASCII -+ c := s[i] -+ if isASCIIUpper(c) { -+ b = append(b, '_') -+ c += 'a' - 'A' // convert to lowercase -+ } -+ b = append(b, c) -+ } -+ return string(b) -+} -+ -+// MapEntryName derives the name of the map entry message given the field name. -+// See protoc v3.8.0: src/google/protobuf/descriptor.cc:254-276,6057 -+func MapEntryName(s string) string { -+ var b []byte -+ upperNext := true -+ for _, c := range s { -+ switch { -+ case c == '_': -+ upperNext = true -+ case upperNext: -+ b = append(b, byte(unicode.ToUpper(c))) -+ upperNext = false -+ default: -+ b = append(b, byte(c)) -+ } -+ } -+ b = append(b, "Entry"...) -+ return string(b) -+} -+ -+// EnumValueName derives the camel-cased enum value name. -+// See protoc v3.8.0: src/google/protobuf/descriptor.cc:297-313 -+func EnumValueName(s string) string { -+ var b []byte -+ upperNext := true -+ for _, c := range s { -+ switch { -+ case c == '_': -+ upperNext = true -+ case upperNext: -+ b = append(b, byte(unicode.ToUpper(c))) -+ upperNext = false -+ default: -+ b = append(b, byte(unicode.ToLower(c))) -+ upperNext = false -+ } -+ } -+ return string(b) -+} -+ -+// TrimEnumPrefix trims the enum name prefix from an enum value name, -+// where the prefix is all lowercase without underscores. -+// See protoc v3.8.0: src/google/protobuf/descriptor.cc:330-375 -+func TrimEnumPrefix(s, prefix string) string { -+ s0 := s // original input -+ for len(s) > 0 && len(prefix) > 0 { -+ if s[0] == '_' { -+ s = s[1:] -+ continue -+ } -+ if unicode.ToLower(rune(s[0])) != rune(prefix[0]) { -+ return s0 // no prefix match -+ } -+ s, prefix = s[1:], prefix[1:] -+ } -+ if len(prefix) > 0 { -+ return s0 // no prefix match -+ } -+ s = strings.TrimLeft(s, "_") -+ if len(s) == 0 { -+ return s0 // avoid returning empty string -+ } -+ return s -+} -+ -+func isASCIILower(c byte) bool { -+ return 'a' <= c && c <= 'z' -+} -+func isASCIIUpper(c byte) bool { -+ return 'A' <= c && c <= 'Z' -+} -+func isASCIIDigit(c byte) bool { -+ return '0' <= c && c <= '9' -+} -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go b/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go -new file mode 100644 -index 00000000..a1f6f333 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go -@@ -0,0 +1,28 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build purego || appengine -+// +build purego appengine -+ -+package strs -+ -+import pref "google.golang.org/protobuf/reflect/protoreflect" -+ -+func UnsafeString(b []byte) string { -+ return string(b) -+} -+ -+func UnsafeBytes(s string) []byte { -+ return []byte(s) -+} -+ -+type Builder struct{} -+ -+func (*Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName { -+ return prefix.Append(name) -+} -+ -+func (*Builder) MakeString(b []byte) string { -+ return string(b) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -new file mode 100644 -index 00000000..61a84d34 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -@@ -0,0 +1,95 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine -+// +build !purego,!appengine -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+type ( -+ stringHeader struct { -+ Data unsafe.Pointer -+ Len int -+ } -+ sliceHeader struct { -+ Data unsafe.Pointer -+ Len int -+ Cap int -+ } -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) (s string) { -+ src := (*sliceHeader)(unsafe.Pointer(&b)) -+ dst := (*stringHeader)(unsafe.Pointer(&s)) -+ dst.Data = src.Data -+ dst.Len = src.Len -+ return s -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) (b []byte) { -+ src := (*stringHeader)(unsafe.Pointer(&s)) -+ dst := (*sliceHeader)(unsafe.Pointer(&b)) -+ dst.Data = src.Data -+ dst.Len = src.Len -+ dst.Cap = src.Len -+ return b -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -new file mode 100644 -index 00000000..daefe110 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -0,0 +1,79 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package version records versioning information about this module. -+package version -+ -+import ( -+ "fmt" -+ "strings" -+) -+ -+// These constants determine the current version of this module. -+// -+// For our release process, we enforce the following rules: -+// - Tagged releases use a tag that is identical to String. -+// - Tagged releases never reference a commit where the String -+// contains "devel". -+// - The set of all commits in this repository where String -+// does not contain "devel" must have a unique String. -+// -+// Steps for tagging a new release: -+// -+// 1. Create a new CL. -+// -+// 2. Update Minor, Patch, and/or PreRelease as necessary. -+// PreRelease must not contain the string "devel". -+// -+// 3. Since the last released minor version, have there been any changes to -+// generator that relies on new functionality in the runtime? -+// If yes, then increment RequiredGenerated. -+// -+// 4. Since the last released minor version, have there been any changes to -+// the runtime that removes support for old .pb.go source code? -+// If yes, then increment SupportMinimum. -+// -+// 5. Send out the CL for review and submit it. -+// Note that the next CL in step 8 must be submitted after this CL -+// without any other CLs in-between. -+// -+// 6. Tag a new version, where the tag is is the current String. -+// -+// 7. Write release notes for all notable changes -+// between this release and the last release. -+// -+// 8. Create a new CL. -+// -+// 9. Update PreRelease to include the string "devel". -+// For example: "" -> "devel" or "rc.1" -> "rc.1.devel" -+// -+// 10. Send out the CL for review and submit it. -+const ( -+ Major = 1 -+ Minor = 29 -+ Patch = 1 -+ PreRelease = "" -+) -+ -+// String formats the version string for this module in semver format. -+// -+// Examples: -+// -+// v1.20.1 -+// v1.21.0-rc.1 -+func String() string { -+ v := fmt.Sprintf("v%d.%d.%d", Major, Minor, Patch) -+ if PreRelease != "" { -+ v += "-" + PreRelease -+ -+ // TODO: Add metadata about the commit or build hash. -+ // See https://golang.org/issue/29814 -+ // See https://golang.org/issue/33533 -+ var metadata string -+ if strings.Contains(PreRelease, "devel") && metadata != "" { -+ v += "+" + metadata -+ } -+ } -+ return v -+} -diff --git a/vendor/google.golang.org/protobuf/proto/checkinit.go b/vendor/google.golang.org/protobuf/proto/checkinit.go -new file mode 100644 -index 00000000..3e9a6a2f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/checkinit.go -@@ -0,0 +1,71 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// CheckInitialized returns an error if any required fields in m are not set. -+func CheckInitialized(m Message) error { -+ // Treat a nil message interface as an "untyped" empty message, -+ // which we assume to have no required fields. -+ if m == nil { -+ return nil -+ } -+ -+ return checkInitialized(m.ProtoReflect()) -+} -+ -+// CheckInitialized returns an error if any required fields in m are not set. -+func checkInitialized(m protoreflect.Message) error { -+ if methods := protoMethods(m); methods != nil && methods.CheckInitialized != nil { -+ _, err := methods.CheckInitialized(protoiface.CheckInitializedInput{ -+ Message: m, -+ }) -+ return err -+ } -+ return checkInitializedSlow(m) -+} -+ -+func checkInitializedSlow(m protoreflect.Message) error { -+ md := m.Descriptor() -+ fds := md.Fields() -+ for i, nums := 0, md.RequiredNumbers(); i < nums.Len(); i++ { -+ fd := fds.ByNumber(nums.Get(i)) -+ if !m.Has(fd) { -+ return errors.RequiredNotSet(string(fd.FullName())) -+ } -+ } -+ var err error -+ m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ switch { -+ case fd.IsList(): -+ if fd.Message() == nil { -+ return true -+ } -+ for i, list := 0, v.List(); i < list.Len() && err == nil; i++ { -+ err = checkInitialized(list.Get(i).Message()) -+ } -+ case fd.IsMap(): -+ if fd.MapValue().Message() == nil { -+ return true -+ } -+ v.Map().Range(func(key protoreflect.MapKey, v protoreflect.Value) bool { -+ err = checkInitialized(v.Message()) -+ return err == nil -+ }) -+ default: -+ if fd.Message() == nil { -+ return true -+ } -+ err = checkInitialized(v.Message()) -+ } -+ return err == nil -+ }) -+ return err -+} -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -new file mode 100644 -index 00000000..48d47946 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -0,0 +1,294 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// UnmarshalOptions configures the unmarshaler. -+// -+// Example usage: -+// -+// err := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m) -+type UnmarshalOptions struct { -+ pragma.NoUnkeyedLiterals -+ -+ // Merge merges the input into the destination message. -+ // The default behavior is to always reset the message before unmarshaling, -+ // unless Merge is specified. -+ Merge bool -+ -+ // AllowPartial accepts input for messages that will result in missing -+ // required fields. If AllowPartial is false (the default), Unmarshal will -+ // return an error if there are any missing required fields. -+ AllowPartial bool -+ -+ // If DiscardUnknown is set, unknown fields are ignored. -+ DiscardUnknown bool -+ -+ // Resolver is used for looking up types when unmarshaling extension fields. -+ // If nil, this defaults to using protoregistry.GlobalTypes. -+ Resolver interface { -+ FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) -+ FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) -+ } -+ -+ // RecursionLimit limits how deeply messages may be nested. -+ // If zero, a default limit is applied. -+ RecursionLimit int -+} -+ -+// Unmarshal parses the wire-format message in b and places the result in m. -+// The provided message must be mutable (e.g., a non-nil pointer to a message). -+func Unmarshal(b []byte, m Message) error { -+ _, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect()) -+ return err -+} -+ -+// Unmarshal parses the wire-format message in b and places the result in m. -+// The provided message must be mutable (e.g., a non-nil pointer to a message). -+func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { -+ if o.RecursionLimit == 0 { -+ o.RecursionLimit = protowire.DefaultRecursionLimit -+ } -+ _, err := o.unmarshal(b, m.ProtoReflect()) -+ return err -+} -+ -+// UnmarshalState parses a wire-format message and places the result in m. -+// -+// This method permits fine-grained control over the unmarshaler. -+// Most users should use Unmarshal instead. -+func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { -+ if o.RecursionLimit == 0 { -+ o.RecursionLimit = protowire.DefaultRecursionLimit -+ } -+ return o.unmarshal(in.Buf, in.Message) -+} -+ -+// unmarshal is a centralized function that all unmarshal operations go through. -+// For profiling purposes, avoid changing the name of this function or -+// introducing other code paths for unmarshal that do not go through this. -+func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) { -+ if o.Resolver == nil { -+ o.Resolver = protoregistry.GlobalTypes -+ } -+ if !o.Merge { -+ Reset(m.Interface()) -+ } -+ allowPartial := o.AllowPartial -+ o.Merge = true -+ o.AllowPartial = true -+ methods := protoMethods(m) -+ if methods != nil && methods.Unmarshal != nil && -+ !(o.DiscardUnknown && methods.Flags&protoiface.SupportUnmarshalDiscardUnknown == 0) { -+ in := protoiface.UnmarshalInput{ -+ Message: m, -+ Buf: b, -+ Resolver: o.Resolver, -+ Depth: o.RecursionLimit, -+ } -+ if o.DiscardUnknown { -+ in.Flags |= protoiface.UnmarshalDiscardUnknown -+ } -+ out, err = methods.Unmarshal(in) -+ } else { -+ o.RecursionLimit-- -+ if o.RecursionLimit < 0 { -+ return out, errors.New("exceeded max recursion depth") -+ } -+ err = o.unmarshalMessageSlow(b, m) -+ } -+ if err != nil { -+ return out, err -+ } -+ if allowPartial || (out.Flags&protoiface.UnmarshalInitialized != 0) { -+ return out, nil -+ } -+ return out, checkInitialized(m) -+} -+ -+func (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) error { -+ _, err := o.unmarshal(b, m) -+ return err -+} -+ -+func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error { -+ md := m.Descriptor() -+ if messageset.IsMessageSet(md) { -+ return o.unmarshalMessageSet(b, m) -+ } -+ fields := md.Fields() -+ for len(b) > 0 { -+ // Parse the tag (field number and wire type). -+ num, wtyp, tagLen := protowire.ConsumeTag(b) -+ if tagLen < 0 { -+ return errDecode -+ } -+ if num > protowire.MaxValidNumber { -+ return errDecode -+ } -+ -+ // Find the field descriptor for this field number. -+ fd := fields.ByNumber(num) -+ if fd == nil && md.ExtensionRanges().Has(num) { -+ extType, err := o.Resolver.FindExtensionByNumber(md.FullName(), num) -+ if err != nil && err != protoregistry.NotFound { -+ return errors.New("%v: unable to resolve extension %v: %v", md.FullName(), num, err) -+ } -+ if extType != nil { -+ fd = extType.TypeDescriptor() -+ } -+ } -+ var err error -+ if fd == nil { -+ err = errUnknown -+ } else if flags.ProtoLegacy { -+ if fd.IsWeak() && fd.Message().IsPlaceholder() { -+ err = errUnknown // weak referent is not linked in -+ } -+ } -+ -+ // Parse the field value. -+ var valLen int -+ switch { -+ case err != nil: -+ case fd.IsList(): -+ valLen, err = o.unmarshalList(b[tagLen:], wtyp, m.Mutable(fd).List(), fd) -+ case fd.IsMap(): -+ valLen, err = o.unmarshalMap(b[tagLen:], wtyp, m.Mutable(fd).Map(), fd) -+ default: -+ valLen, err = o.unmarshalSingular(b[tagLen:], wtyp, m, fd) -+ } -+ if err != nil { -+ if err != errUnknown { -+ return err -+ } -+ valLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:]) -+ if valLen < 0 { -+ return errDecode -+ } -+ if !o.DiscardUnknown { -+ m.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...)) -+ } -+ } -+ b = b[tagLen+valLen:] -+ } -+ return nil -+} -+ -+func (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m protoreflect.Message, fd protoreflect.FieldDescriptor) (n int, err error) { -+ v, n, err := o.unmarshalScalar(b, wtyp, fd) -+ if err != nil { -+ return 0, err -+ } -+ switch fd.Kind() { -+ case protoreflect.GroupKind, protoreflect.MessageKind: -+ m2 := m.Mutable(fd).Message() -+ if err := o.unmarshalMessage(v.Bytes(), m2); err != nil { -+ return n, err -+ } -+ default: -+ // Non-message scalars replace the previous value. -+ m.Set(fd, v) -+ } -+ return n, nil -+} -+ -+func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) { -+ if wtyp != protowire.BytesType { -+ return 0, errUnknown -+ } -+ b, n = protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ var ( -+ keyField = fd.MapKey() -+ valField = fd.MapValue() -+ key protoreflect.Value -+ val protoreflect.Value -+ haveKey bool -+ haveVal bool -+ ) -+ switch valField.Kind() { -+ case protoreflect.GroupKind, protoreflect.MessageKind: -+ val = mapv.NewValue() -+ } -+ // Map entries are represented as a two-element message with fields -+ // containing the key and value. -+ for len(b) > 0 { -+ num, wtyp, n := protowire.ConsumeTag(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ if num > protowire.MaxValidNumber { -+ return 0, errDecode -+ } -+ b = b[n:] -+ err = errUnknown -+ switch num { -+ case genid.MapEntry_Key_field_number: -+ key, n, err = o.unmarshalScalar(b, wtyp, keyField) -+ if err != nil { -+ break -+ } -+ haveKey = true -+ case genid.MapEntry_Value_field_number: -+ var v protoreflect.Value -+ v, n, err = o.unmarshalScalar(b, wtyp, valField) -+ if err != nil { -+ break -+ } -+ switch valField.Kind() { -+ case protoreflect.GroupKind, protoreflect.MessageKind: -+ if err := o.unmarshalMessage(v.Bytes(), val.Message()); err != nil { -+ return 0, err -+ } -+ default: -+ val = v -+ } -+ haveVal = true -+ } -+ if err == errUnknown { -+ n = protowire.ConsumeFieldValue(num, wtyp, b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ } else if err != nil { -+ return 0, err -+ } -+ b = b[n:] -+ } -+ // Every map entry should have entries for key and value, but this is not strictly required. -+ if !haveKey { -+ key = keyField.Default() -+ } -+ if !haveVal { -+ switch valField.Kind() { -+ case protoreflect.GroupKind, protoreflect.MessageKind: -+ default: -+ val = valField.Default() -+ } -+ } -+ mapv.Set(key.MapKey(), val) -+ return n, nil -+} -+ -+// errUnknown is used internally to indicate fields which should be added -+// to the unknown field set of a message. It is never returned from an exported -+// function. -+var errUnknown = errors.New("BUG: internal error (unknown)") -+ -+var errDecode = errors.New("cannot parse invalid wire-format data") -diff --git a/vendor/google.golang.org/protobuf/proto/decode_gen.go b/vendor/google.golang.org/protobuf/proto/decode_gen.go -new file mode 100644 -index 00000000..301eeb20 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/decode_gen.go -@@ -0,0 +1,603 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package proto -+ -+import ( -+ "math" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// unmarshalScalar decodes a value of the given kind. -+// -+// Message values are decoded into a []byte which aliases the input data. -+func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd protoreflect.FieldDescriptor) (val protoreflect.Value, n int, err error) { -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfBool(protowire.DecodeBool(v)), n, nil -+ case protoreflect.EnumKind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), n, nil -+ case protoreflect.Int32Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt32(int32(v)), n, nil -+ case protoreflect.Sint32Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), n, nil -+ case protoreflect.Uint32Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfUint32(uint32(v)), n, nil -+ case protoreflect.Int64Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt64(int64(v)), n, nil -+ case protoreflect.Sint64Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), n, nil -+ case protoreflect.Uint64Kind: -+ if wtyp != protowire.VarintType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfUint64(v), n, nil -+ case protoreflect.Sfixed32Kind: -+ if wtyp != protowire.Fixed32Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt32(int32(v)), n, nil -+ case protoreflect.Fixed32Kind: -+ if wtyp != protowire.Fixed32Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfUint32(uint32(v)), n, nil -+ case protoreflect.FloatKind: -+ if wtyp != protowire.Fixed32Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), n, nil -+ case protoreflect.Sfixed64Kind: -+ if wtyp != protowire.Fixed64Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfInt64(int64(v)), n, nil -+ case protoreflect.Fixed64Kind: -+ if wtyp != protowire.Fixed64Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfUint64(v), n, nil -+ case protoreflect.DoubleKind: -+ if wtyp != protowire.Fixed64Type { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfFloat64(math.Float64frombits(v)), n, nil -+ case protoreflect.StringKind: -+ if wtyp != protowire.BytesType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ if strs.EnforceUTF8(fd) && !utf8.Valid(v) { -+ return protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName())) -+ } -+ return protoreflect.ValueOfString(string(v)), n, nil -+ case protoreflect.BytesKind: -+ if wtyp != protowire.BytesType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), n, nil -+ case protoreflect.MessageKind: -+ if wtyp != protowire.BytesType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfBytes(v), n, nil -+ case protoreflect.GroupKind: -+ if wtyp != protowire.StartGroupType { -+ return val, 0, errUnknown -+ } -+ v, n := protowire.ConsumeGroup(fd.Number(), b) -+ if n < 0 { -+ return val, 0, errDecode -+ } -+ return protoreflect.ValueOfBytes(v), n, nil -+ default: -+ return val, 0, errUnknown -+ } -+} -+ -+func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list protoreflect.List, fd protoreflect.FieldDescriptor) (n int, err error) { -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) -+ return n, nil -+ case protoreflect.EnumKind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) -+ return n, nil -+ case protoreflect.Int32Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ return n, nil -+ case protoreflect.Sint32Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) -+ return n, nil -+ case protoreflect.Uint32Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ return n, nil -+ case protoreflect.Int64Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ return n, nil -+ case protoreflect.Sint64Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) -+ return n, nil -+ case protoreflect.Uint64Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeVarint(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfUint64(v)) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.VarintType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeVarint(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ return n, nil -+ case protoreflect.Sfixed32Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed32(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt32(int32(v))) -+ return n, nil -+ case protoreflect.Fixed32Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed32(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint32(uint32(v))) -+ return n, nil -+ case protoreflect.FloatKind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed32(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed32Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed32(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) -+ return n, nil -+ case protoreflect.Sfixed64Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed64(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfInt64(int64(v))) -+ return n, nil -+ case protoreflect.Fixed64Kind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed64(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfUint64(v)) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfUint64(v)) -+ return n, nil -+ case protoreflect.DoubleKind: -+ if wtyp == protowire.BytesType { -+ buf, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ for len(buf) > 0 { -+ v, n := protowire.ConsumeFixed64(buf) -+ if n < 0 { -+ return 0, errDecode -+ } -+ buf = buf[n:] -+ list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) -+ } -+ return n, nil -+ } -+ if wtyp != protowire.Fixed64Type { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeFixed64(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) -+ return n, nil -+ case protoreflect.StringKind: -+ if wtyp != protowire.BytesType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ if strs.EnforceUTF8(fd) && !utf8.Valid(v) { -+ return 0, errors.InvalidUTF8(string(fd.FullName())) -+ } -+ list.Append(protoreflect.ValueOfString(string(v))) -+ return n, nil -+ case protoreflect.BytesKind: -+ if wtyp != protowire.BytesType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) -+ return n, nil -+ case protoreflect.MessageKind: -+ if wtyp != protowire.BytesType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeBytes(b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ m := list.NewElement() -+ if err := o.unmarshalMessage(v, m.Message()); err != nil { -+ return 0, err -+ } -+ list.Append(m) -+ return n, nil -+ case protoreflect.GroupKind: -+ if wtyp != protowire.StartGroupType { -+ return 0, errUnknown -+ } -+ v, n := protowire.ConsumeGroup(fd.Number(), b) -+ if n < 0 { -+ return 0, errDecode -+ } -+ m := list.NewElement() -+ if err := o.unmarshalMessage(v, m.Message()); err != nil { -+ return 0, err -+ } -+ list.Append(m) -+ return n, nil -+ default: -+ return 0, errUnknown -+ } -+} -+ -+// We append to an empty array rather than a nil []byte to get non-nil zero-length byte slices. -+var emptyBuf [0]byte -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -new file mode 100644 -index 00000000..ec71e717 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -0,0 +1,86 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package proto provides functions operating on protocol buffer messages. -+// -+// For documentation on protocol buffers in general, see: -+// https://protobuf.dev. -+// -+// For a tutorial on using protocol buffers with Go, see: -+// https://protobuf.dev/getting-started/gotutorial. -+// -+// For a guide to generated Go protocol buffer code, see: -+// https://protobuf.dev/reference/go/go-generated. -+// -+// # Binary serialization -+// -+// This package contains functions to convert to and from the wire format, -+// an efficient binary serialization of protocol buffers. -+// -+// • Size reports the size of a message in the wire format. -+// -+// • Marshal converts a message to the wire format. -+// The MarshalOptions type provides more control over wire marshaling. -+// -+// • Unmarshal converts a message from the wire format. -+// The UnmarshalOptions type provides more control over wire unmarshaling. -+// -+// # Basic message operations -+// -+// • Clone makes a deep copy of a message. -+// -+// • Merge merges the content of a message into another. -+// -+// • Equal compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// "google.golang.org/protobuf/testing/protocmp". -+// -+// • Reset clears the content of a message. -+// -+// • CheckInitialized reports whether all required fields in a message are set. -+// -+// # Optional scalar constructors -+// -+// The API for some generated messages represents optional scalar fields -+// as pointers to a value. For example, an optional string field has the -+// Go type *string. -+// -+// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. -+// -+// Generated enum types usually have an Enum method which performs the -+// same operation. -+// -+// Optional scalar fields are only supported in proto2. -+// -+// # Extension accessors -+// -+// • HasExtension, GetExtension, SetExtension, and ClearExtension -+// access extension field values in a protocol buffer message. -+// -+// Extension fields are only supported in proto2. -+// -+// # Related packages -+// -+// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to -+// and from JSON. -+// -+// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to -+// and from the text format. -+// -+// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a -+// reflection interface for protocol buffer data types. -+// -+// • Package "google.golang.org/protobuf/testing/protocmp" provides features -+// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" -+// package. -+// -+// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. -+// -+// This module contains additional packages for more specialized use cases. -+// Consult the individual package documentation for details. -+package proto -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -new file mode 100644 -index 00000000..bf7f816d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -0,0 +1,322 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/order" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// MarshalOptions configures the marshaler. -+// -+// Example usage: -+// -+// b, err := MarshalOptions{Deterministic: true}.Marshal(m) -+type MarshalOptions struct { -+ pragma.NoUnkeyedLiterals -+ -+ // AllowPartial allows messages that have missing required fields to marshal -+ // without returning an error. If AllowPartial is false (the default), -+ // Marshal will return an error if there are any missing required fields. -+ AllowPartial bool -+ -+ // Deterministic controls whether the same message will always be -+ // serialized to the same bytes within the same binary. -+ // -+ // Setting this option guarantees that repeated serialization of -+ // the same message will return the same bytes, and that different -+ // processes of the same binary (which may be executing on different -+ // machines) will serialize equal messages to the same bytes. -+ // It has no effect on the resulting size of the encoded message compared -+ // to a non-deterministic marshal. -+ // -+ // Note that the deterministic serialization is NOT canonical across -+ // languages. It is not guaranteed to remain stable over time. It is -+ // unstable across different builds with schema changes due to unknown -+ // fields. Users who need canonical serialization (e.g., persistent -+ // storage in a canonical form, fingerprinting, etc.) must define -+ // their own canonicalization specification and implement their own -+ // serializer rather than relying on this API. -+ // -+ // If deterministic serialization is requested, map entries will be -+ // sorted by keys in lexographical order. This is an implementation -+ // detail and subject to change. -+ Deterministic bool -+ -+ // UseCachedSize indicates that the result of a previous Size call -+ // may be reused. -+ // -+ // Setting this option asserts that: -+ // -+ // 1. Size has previously been called on this message with identical -+ // options (except for UseCachedSize itself). -+ // -+ // 2. The message and all its submessages have not changed in any -+ // way since the Size call. -+ // -+ // If either of these invariants is violated, -+ // the results are undefined and may include panics or corrupted output. -+ // -+ // Implementations MAY take this option into account to provide -+ // better performance, but there is no guarantee that they will do so. -+ // There is absolutely no guarantee that Size followed by Marshal with -+ // UseCachedSize set will perform equivalently to Marshal alone. -+ UseCachedSize bool -+} -+ -+// Marshal returns the wire-format encoding of m. -+func Marshal(m Message) ([]byte, error) { -+ // Treat nil message interface as an empty message; nothing to output. -+ if m == nil { -+ return nil, nil -+ } -+ -+ out, err := MarshalOptions{}.marshal(nil, m.ProtoReflect()) -+ if len(out.Buf) == 0 && err == nil { -+ out.Buf = emptyBytesForMessage(m) -+ } -+ return out.Buf, err -+} -+ -+// Marshal returns the wire-format encoding of m. -+func (o MarshalOptions) Marshal(m Message) ([]byte, error) { -+ // Treat nil message interface as an empty message; nothing to output. -+ if m == nil { -+ return nil, nil -+ } -+ -+ out, err := o.marshal(nil, m.ProtoReflect()) -+ if len(out.Buf) == 0 && err == nil { -+ out.Buf = emptyBytesForMessage(m) -+ } -+ return out.Buf, err -+} -+ -+// emptyBytesForMessage returns a nil buffer if and only if m is invalid, -+// otherwise it returns a non-nil empty buffer. -+// -+// This is to assist the edge-case where user-code does the following: -+// -+// m1.OptionalBytes, _ = proto.Marshal(m2) -+// -+// where they expect the proto2 "optional_bytes" field to be populated -+// if any only if m2 is a valid message. -+func emptyBytesForMessage(m Message) []byte { -+ if m == nil || !m.ProtoReflect().IsValid() { -+ return nil -+ } -+ return emptyBuf[:] -+} -+ -+// MarshalAppend appends the wire-format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { -+ // Treat nil message interface as an empty message; nothing to append. -+ if m == nil { -+ return b, nil -+ } -+ -+ out, err := o.marshal(b, m.ProtoReflect()) -+ return out.Buf, err -+} -+ -+// MarshalState returns the wire-format encoding of a message. -+// -+// This method permits fine-grained control over the marshaler. -+// Most users should use Marshal instead. -+func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { -+ return o.marshal(in.Buf, in.Message) -+} -+ -+// marshal is a centralized function that all marshal operations go through. -+// For profiling purposes, avoid changing the name of this function or -+// introducing other code paths for marshal that do not go through this. -+func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoiface.MarshalOutput, err error) { -+ allowPartial := o.AllowPartial -+ o.AllowPartial = true -+ if methods := protoMethods(m); methods != nil && methods.Marshal != nil && -+ !(o.Deterministic && methods.Flags&protoiface.SupportMarshalDeterministic == 0) { -+ in := protoiface.MarshalInput{ -+ Message: m, -+ Buf: b, -+ } -+ if o.Deterministic { -+ in.Flags |= protoiface.MarshalDeterministic -+ } -+ if o.UseCachedSize { -+ in.Flags |= protoiface.MarshalUseCachedSize -+ } -+ if methods.Size != nil { -+ sout := methods.Size(protoiface.SizeInput{ -+ Message: m, -+ Flags: in.Flags, -+ }) -+ if cap(b) < len(b)+sout.Size { -+ in.Buf = make([]byte, len(b), growcap(cap(b), len(b)+sout.Size)) -+ copy(in.Buf, b) -+ } -+ in.Flags |= protoiface.MarshalUseCachedSize -+ } -+ out, err = methods.Marshal(in) -+ } else { -+ out.Buf, err = o.marshalMessageSlow(b, m) -+ } -+ if err != nil { -+ return out, err -+ } -+ if allowPartial { -+ return out, nil -+ } -+ return out, checkInitialized(m) -+} -+ -+func (o MarshalOptions) marshalMessage(b []byte, m protoreflect.Message) ([]byte, error) { -+ out, err := o.marshal(b, m) -+ return out.Buf, err -+} -+ -+// growcap scales up the capacity of a slice. -+// -+// Given a slice with a current capacity of oldcap and a desired -+// capacity of wantcap, growcap returns a new capacity >= wantcap. -+// -+// The algorithm is mostly identical to the one used by append as of Go 1.14. -+func growcap(oldcap, wantcap int) (newcap int) { -+ if wantcap > oldcap*2 { -+ newcap = wantcap -+ } else if oldcap < 1024 { -+ // The Go 1.14 runtime takes this case when len(s) < 1024, -+ // not when cap(s) < 1024. The difference doesn't seem -+ // significant here. -+ newcap = oldcap * 2 -+ } else { -+ newcap = oldcap -+ for 0 < newcap && newcap < wantcap { -+ newcap += newcap / 4 -+ } -+ if newcap <= 0 { -+ newcap = wantcap -+ } -+ } -+ return newcap -+} -+ -+func (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([]byte, error) { -+ if messageset.IsMessageSet(m.Descriptor()) { -+ return o.marshalMessageSet(b, m) -+ } -+ fieldOrder := order.AnyFieldOrder -+ if o.Deterministic { -+ // TODO: This should use a more natural ordering like NumberFieldOrder, -+ // but doing so breaks golden tests that make invalid assumption about -+ // output stability of this implementation. -+ fieldOrder = order.LegacyFieldOrder -+ } -+ var err error -+ order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ b, err = o.marshalField(b, fd, v) -+ return err == nil -+ }) -+ if err != nil { -+ return b, err -+ } -+ b = append(b, m.GetUnknown()...) -+ return b, nil -+} -+ -+func (o MarshalOptions) marshalField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { -+ switch { -+ case fd.IsList(): -+ return o.marshalList(b, fd, value.List()) -+ case fd.IsMap(): -+ return o.marshalMap(b, fd, value.Map()) -+ default: -+ b = protowire.AppendTag(b, fd.Number(), wireTypes[fd.Kind()]) -+ return o.marshalSingular(b, fd, value) -+ } -+} -+ -+func (o MarshalOptions) marshalList(b []byte, fd protoreflect.FieldDescriptor, list protoreflect.List) ([]byte, error) { -+ if fd.IsPacked() && list.Len() > 0 { -+ b = protowire.AppendTag(b, fd.Number(), protowire.BytesType) -+ b, pos := appendSpeculativeLength(b) -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ var err error -+ b, err = o.marshalSingular(b, fd, list.Get(i)) -+ if err != nil { -+ return b, err -+ } -+ } -+ b = finishSpeculativeLength(b, pos) -+ return b, nil -+ } -+ -+ kind := fd.Kind() -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ var err error -+ b = protowire.AppendTag(b, fd.Number(), wireTypes[kind]) -+ b, err = o.marshalSingular(b, fd, list.Get(i)) -+ if err != nil { -+ return b, err -+ } -+ } -+ return b, nil -+} -+ -+func (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) ([]byte, error) { -+ keyf := fd.MapKey() -+ valf := fd.MapValue() -+ keyOrder := order.AnyKeyOrder -+ if o.Deterministic { -+ keyOrder = order.GenericKeyOrder -+ } -+ var err error -+ order.RangeEntries(mapv, keyOrder, func(key protoreflect.MapKey, value protoreflect.Value) bool { -+ b = protowire.AppendTag(b, fd.Number(), protowire.BytesType) -+ var pos int -+ b, pos = appendSpeculativeLength(b) -+ -+ b, err = o.marshalField(b, keyf, key.Value()) -+ if err != nil { -+ return false -+ } -+ b, err = o.marshalField(b, valf, value) -+ if err != nil { -+ return false -+ } -+ b = finishSpeculativeLength(b, pos) -+ return true -+ }) -+ return b, err -+} -+ -+// When encoding length-prefixed fields, we speculatively set aside some number of bytes -+// for the length, encode the data, and then encode the length (shifting the data if necessary -+// to make room). -+const speculativeLength = 1 -+ -+func appendSpeculativeLength(b []byte) ([]byte, int) { -+ pos := len(b) -+ b = append(b, "\x00\x00\x00\x00"[:speculativeLength]...) -+ return b, pos -+} -+ -+func finishSpeculativeLength(b []byte, pos int) []byte { -+ mlen := len(b) - pos - speculativeLength -+ msiz := protowire.SizeVarint(uint64(mlen)) -+ if msiz != speculativeLength { -+ for i := 0; i < msiz-speculativeLength; i++ { -+ b = append(b, 0) -+ } -+ copy(b[pos+msiz:], b[pos+speculativeLength:]) -+ b = b[:pos+msiz+mlen] -+ } -+ protowire.AppendVarint(b[:pos], uint64(mlen)) -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/proto/encode_gen.go b/vendor/google.golang.org/protobuf/proto/encode_gen.go -new file mode 100644 -index 00000000..185dacfb ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/encode_gen.go -@@ -0,0 +1,97 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package proto -+ -+import ( -+ "math" -+ "unicode/utf8" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var wireTypes = map[protoreflect.Kind]protowire.Type{ -+ protoreflect.BoolKind: protowire.VarintType, -+ protoreflect.EnumKind: protowire.VarintType, -+ protoreflect.Int32Kind: protowire.VarintType, -+ protoreflect.Sint32Kind: protowire.VarintType, -+ protoreflect.Uint32Kind: protowire.VarintType, -+ protoreflect.Int64Kind: protowire.VarintType, -+ protoreflect.Sint64Kind: protowire.VarintType, -+ protoreflect.Uint64Kind: protowire.VarintType, -+ protoreflect.Sfixed32Kind: protowire.Fixed32Type, -+ protoreflect.Fixed32Kind: protowire.Fixed32Type, -+ protoreflect.FloatKind: protowire.Fixed32Type, -+ protoreflect.Sfixed64Kind: protowire.Fixed64Type, -+ protoreflect.Fixed64Kind: protowire.Fixed64Type, -+ protoreflect.DoubleKind: protowire.Fixed64Type, -+ protoreflect.StringKind: protowire.BytesType, -+ protoreflect.BytesKind: protowire.BytesType, -+ protoreflect.MessageKind: protowire.BytesType, -+ protoreflect.GroupKind: protowire.StartGroupType, -+} -+ -+func (o MarshalOptions) marshalSingular(b []byte, fd protoreflect.FieldDescriptor, v protoreflect.Value) ([]byte, error) { -+ switch fd.Kind() { -+ case protoreflect.BoolKind: -+ b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) -+ case protoreflect.EnumKind: -+ b = protowire.AppendVarint(b, uint64(v.Enum())) -+ case protoreflect.Int32Kind: -+ b = protowire.AppendVarint(b, uint64(int32(v.Int()))) -+ case protoreflect.Sint32Kind: -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) -+ case protoreflect.Uint32Kind: -+ b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) -+ case protoreflect.Int64Kind: -+ b = protowire.AppendVarint(b, uint64(v.Int())) -+ case protoreflect.Sint64Kind: -+ b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) -+ case protoreflect.Uint64Kind: -+ b = protowire.AppendVarint(b, v.Uint()) -+ case protoreflect.Sfixed32Kind: -+ b = protowire.AppendFixed32(b, uint32(v.Int())) -+ case protoreflect.Fixed32Kind: -+ b = protowire.AppendFixed32(b, uint32(v.Uint())) -+ case protoreflect.FloatKind: -+ b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) -+ case protoreflect.Sfixed64Kind: -+ b = protowire.AppendFixed64(b, uint64(v.Int())) -+ case protoreflect.Fixed64Kind: -+ b = protowire.AppendFixed64(b, v.Uint()) -+ case protoreflect.DoubleKind: -+ b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) -+ case protoreflect.StringKind: -+ if strs.EnforceUTF8(fd) && !utf8.ValidString(v.String()) { -+ return b, errors.InvalidUTF8(string(fd.FullName())) -+ } -+ b = protowire.AppendString(b, v.String()) -+ case protoreflect.BytesKind: -+ b = protowire.AppendBytes(b, v.Bytes()) -+ case protoreflect.MessageKind: -+ var pos int -+ var err error -+ b, pos = appendSpeculativeLength(b) -+ b, err = o.marshalMessage(b, v.Message()) -+ if err != nil { -+ return b, err -+ } -+ b = finishSpeculativeLength(b, pos) -+ case protoreflect.GroupKind: -+ var err error -+ b, err = o.marshalMessage(b, v.Message()) -+ if err != nil { -+ return b, err -+ } -+ b = protowire.AppendVarint(b, protowire.EncodeTag(fd.Number(), protowire.EndGroupType)) -+ default: -+ return b, errors.New("invalid kind %v", fd.Kind()) -+ } -+ return b, nil -+} -diff --git a/vendor/google.golang.org/protobuf/proto/equal.go b/vendor/google.golang.org/protobuf/proto/equal.go -new file mode 100644 -index 00000000..1a0be1b0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/equal.go -@@ -0,0 +1,57 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "reflect" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// Equal reports whether two messages are equal, -+// by recursively comparing the fields of the message. -+// -+// - Bytes fields are equal if they contain identical bytes. -+// Empty bytes (regardless of nil-ness) are considered equal. -+// -+// - Floating-point fields are equal if they contain the same value. -+// Unlike the == operator, a NaN is equal to another NaN. -+// -+// - Other scalar fields are equal if they contain the same value. -+// -+// - Message fields are equal if they have -+// the same set of populated known and extension field values, and -+// the same set of unknown fields values. -+// -+// - Lists are equal if they are the same length and -+// each corresponding element is equal. -+// -+// - Maps are equal if they have the same set of keys and -+// the corresponding value for each key is equal. -+// -+// An invalid message is not equal to a valid message. -+// An invalid message is only equal to another invalid message of the -+// same type. An invalid message often corresponds to a nil pointer -+// of the concrete message type. For example, (*pb.M)(nil) is not equal -+// to &pb.M{}. -+// If two valid messages marshal to the same bytes under deterministic -+// serialization, then Equal is guaranteed to report true. -+func Equal(x, y Message) bool { -+ if x == nil || y == nil { -+ return x == nil && y == nil -+ } -+ if reflect.TypeOf(x).Kind() == reflect.Ptr && x == y { -+ // Avoid an expensive comparison if both inputs are identical pointers. -+ return true -+ } -+ mx := x.ProtoReflect() -+ my := y.ProtoReflect() -+ if mx.IsValid() != my.IsValid() { -+ return false -+ } -+ vx := protoreflect.ValueOfMessage(mx) -+ vy := protoreflect.ValueOfMessage(my) -+ return vx.Equal(vy) -+} -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -new file mode 100644 -index 00000000..5f293cda ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -0,0 +1,92 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// HasExtension reports whether an extension field is populated. -+// It returns false if m is invalid or if xt does not extend m. -+func HasExtension(m Message, xt protoreflect.ExtensionType) bool { -+ // Treat nil message interface as an empty message; no populated fields. -+ if m == nil { -+ return false -+ } -+ -+ // As a special-case, we reports invalid or mismatching descriptors -+ // as always not being populated (since they aren't). -+ if xt == nil || m.ProtoReflect().Descriptor() != xt.TypeDescriptor().ContainingMessage() { -+ return false -+ } -+ -+ return m.ProtoReflect().Has(xt.TypeDescriptor()) -+} -+ -+// ClearExtension clears an extension field such that subsequent -+// HasExtension calls return false. -+// It panics if m is invalid or if xt does not extend m. -+func ClearExtension(m Message, xt protoreflect.ExtensionType) { -+ m.ProtoReflect().Clear(xt.TypeDescriptor()) -+} -+ -+// GetExtension retrieves the value for an extension field. -+// If the field is unpopulated, it returns the default value for -+// scalars and an immutable, empty value for lists or messages. -+// It panics if xt does not extend m. -+func GetExtension(m Message, xt protoreflect.ExtensionType) interface{} { -+ // Treat nil message interface as an empty message; return the default. -+ if m == nil { -+ return xt.InterfaceOf(xt.Zero()) -+ } -+ -+ return xt.InterfaceOf(m.ProtoReflect().Get(xt.TypeDescriptor())) -+} -+ -+// SetExtension stores the value of an extension field. -+// It panics if m is invalid, xt does not extend m, or if type of v -+// is invalid for the specified extension field. -+func SetExtension(m Message, xt protoreflect.ExtensionType, v interface{}) { -+ xd := xt.TypeDescriptor() -+ pv := xt.ValueOf(v) -+ -+ // Specially treat an invalid list, map, or message as clear. -+ isValid := true -+ switch { -+ case xd.IsList(): -+ isValid = pv.List().IsValid() -+ case xd.IsMap(): -+ isValid = pv.Map().IsValid() -+ case xd.Message() != nil: -+ isValid = pv.Message().IsValid() -+ } -+ if !isValid { -+ m.ProtoReflect().Clear(xd) -+ return -+ } -+ -+ m.ProtoReflect().Set(xd, pv) -+} -+ -+// RangeExtensions iterates over every populated extension field in m in an -+// undefined order, calling f for each extension type and value encountered. -+// It returns immediately if f returns false. -+// While iterating, mutating operations may only be performed -+// on the current extension field. -+func RangeExtensions(m Message, f func(protoreflect.ExtensionType, interface{}) bool) { -+ // Treat nil message interface as an empty message; nothing to range over. -+ if m == nil { -+ return -+ } -+ -+ m.ProtoReflect().Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ if fd.IsExtension() { -+ xt := fd.(protoreflect.ExtensionTypeDescriptor).Type() -+ vi := xt.InterfaceOf(v) -+ return f(xt, vi) -+ } -+ return true -+ }) -+} -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -new file mode 100644 -index 00000000..d761ab33 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -0,0 +1,139 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// Merge merges src into dst, which must be a message with the same descriptor. -+// -+// Populated scalar fields in src are copied to dst, while populated -+// singular messages in src are merged into dst by recursively calling Merge. -+// The elements of every list field in src is appended to the corresponded -+// list fields in dst. The entries of every map field in src is copied into -+// the corresponding map field in dst, possibly replacing existing entries. -+// The unknown fields of src are appended to the unknown fields of dst. -+// -+// It is semantically equivalent to unmarshaling the encoded form of src -+// into dst with the UnmarshalOptions.Merge option specified. -+func Merge(dst, src Message) { -+ // TODO: Should nil src be treated as semantically equivalent to a -+ // untyped, read-only, empty message? What about a nil dst? -+ -+ dstMsg, srcMsg := dst.ProtoReflect(), src.ProtoReflect() -+ if dstMsg.Descriptor() != srcMsg.Descriptor() { -+ if got, want := dstMsg.Descriptor().FullName(), srcMsg.Descriptor().FullName(); got != want { -+ panic(fmt.Sprintf("descriptor mismatch: %v != %v", got, want)) -+ } -+ panic("descriptor mismatch") -+ } -+ mergeOptions{}.mergeMessage(dstMsg, srcMsg) -+} -+ -+// Clone returns a deep copy of m. -+// If the top-level message is invalid, it returns an invalid message as well. -+func Clone(m Message) Message { -+ // NOTE: Most usages of Clone assume the following properties: -+ // t := reflect.TypeOf(m) -+ // t == reflect.TypeOf(m.ProtoReflect().New().Interface()) -+ // t == reflect.TypeOf(m.ProtoReflect().Type().Zero().Interface()) -+ // -+ // Embedding protobuf messages breaks this since the parent type will have -+ // a forwarded ProtoReflect method, but the Interface method will return -+ // the underlying embedded message type. -+ if m == nil { -+ return nil -+ } -+ src := m.ProtoReflect() -+ if !src.IsValid() { -+ return src.Type().Zero().Interface() -+ } -+ dst := src.New() -+ mergeOptions{}.mergeMessage(dst, src) -+ return dst.Interface() -+} -+ -+// mergeOptions provides a namespace for merge functions, and can be -+// exported in the future if we add user-visible merge options. -+type mergeOptions struct{} -+ -+func (o mergeOptions) mergeMessage(dst, src protoreflect.Message) { -+ methods := protoMethods(dst) -+ if methods != nil && methods.Merge != nil { -+ in := protoiface.MergeInput{ -+ Destination: dst, -+ Source: src, -+ } -+ out := methods.Merge(in) -+ if out.Flags&protoiface.MergeComplete != 0 { -+ return -+ } -+ } -+ -+ if !dst.IsValid() { -+ panic(fmt.Sprintf("cannot merge into invalid %v message", dst.Descriptor().FullName())) -+ } -+ -+ src.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ switch { -+ case fd.IsList(): -+ o.mergeList(dst.Mutable(fd).List(), v.List(), fd) -+ case fd.IsMap(): -+ o.mergeMap(dst.Mutable(fd).Map(), v.Map(), fd.MapValue()) -+ case fd.Message() != nil: -+ o.mergeMessage(dst.Mutable(fd).Message(), v.Message()) -+ case fd.Kind() == protoreflect.BytesKind: -+ dst.Set(fd, o.cloneBytes(v)) -+ default: -+ dst.Set(fd, v) -+ } -+ return true -+ }) -+ -+ if len(src.GetUnknown()) > 0 { -+ dst.SetUnknown(append(dst.GetUnknown(), src.GetUnknown()...)) -+ } -+} -+ -+func (o mergeOptions) mergeList(dst, src protoreflect.List, fd protoreflect.FieldDescriptor) { -+ // Merge semantics appends to the end of the existing list. -+ for i, n := 0, src.Len(); i < n; i++ { -+ switch v := src.Get(i); { -+ case fd.Message() != nil: -+ dstv := dst.NewElement() -+ o.mergeMessage(dstv.Message(), v.Message()) -+ dst.Append(dstv) -+ case fd.Kind() == protoreflect.BytesKind: -+ dst.Append(o.cloneBytes(v)) -+ default: -+ dst.Append(v) -+ } -+ } -+} -+ -+func (o mergeOptions) mergeMap(dst, src protoreflect.Map, fd protoreflect.FieldDescriptor) { -+ // Merge semantics replaces, rather than merges into existing entries. -+ src.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { -+ switch { -+ case fd.Message() != nil: -+ dstv := dst.NewValue() -+ o.mergeMessage(dstv.Message(), v.Message()) -+ dst.Set(k, dstv) -+ case fd.Kind() == protoreflect.BytesKind: -+ dst.Set(k, o.cloneBytes(v)) -+ default: -+ dst.Set(k, v) -+ } -+ return true -+ }) -+} -+ -+func (o mergeOptions) cloneBytes(v protoreflect.Value) protoreflect.Value { -+ return protoreflect.ValueOfBytes(append([]byte{}, v.Bytes()...)) -+} -diff --git a/vendor/google.golang.org/protobuf/proto/messageset.go b/vendor/google.golang.org/protobuf/proto/messageset.go -new file mode 100644 -index 00000000..312d5d45 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/messageset.go -@@ -0,0 +1,93 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/order" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+) -+ -+func (o MarshalOptions) sizeMessageSet(m protoreflect.Message) (size int) { -+ m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ size += messageset.SizeField(fd.Number()) -+ size += protowire.SizeTag(messageset.FieldMessage) -+ size += protowire.SizeBytes(o.size(v.Message())) -+ return true -+ }) -+ size += messageset.SizeUnknown(m.GetUnknown()) -+ return size -+} -+ -+func (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]byte, error) { -+ if !flags.ProtoLegacy { -+ return b, errors.New("no support for message_set_wire_format") -+ } -+ fieldOrder := order.AnyFieldOrder -+ if o.Deterministic { -+ fieldOrder = order.NumberFieldOrder -+ } -+ var err error -+ order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ b, err = o.marshalMessageSetField(b, fd, v) -+ return err == nil -+ }) -+ if err != nil { -+ return b, err -+ } -+ return messageset.AppendUnknown(b, m.GetUnknown()) -+} -+ -+func (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { -+ b = messageset.AppendFieldStart(b, fd.Number()) -+ b = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType) -+ b = protowire.AppendVarint(b, uint64(o.Size(value.Message().Interface()))) -+ b, err := o.marshalMessage(b, value.Message()) -+ if err != nil { -+ return b, err -+ } -+ b = messageset.AppendFieldEnd(b) -+ return b, nil -+} -+ -+func (o UnmarshalOptions) unmarshalMessageSet(b []byte, m protoreflect.Message) error { -+ if !flags.ProtoLegacy { -+ return errors.New("no support for message_set_wire_format") -+ } -+ return messageset.Unmarshal(b, false, func(num protowire.Number, v []byte) error { -+ err := o.unmarshalMessageSetField(m, num, v) -+ if err == errUnknown { -+ unknown := m.GetUnknown() -+ unknown = protowire.AppendTag(unknown, num, protowire.BytesType) -+ unknown = protowire.AppendBytes(unknown, v) -+ m.SetUnknown(unknown) -+ return nil -+ } -+ return err -+ }) -+} -+ -+func (o UnmarshalOptions) unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte) error { -+ md := m.Descriptor() -+ if !md.ExtensionRanges().Has(num) { -+ return errUnknown -+ } -+ xt, err := o.Resolver.FindExtensionByNumber(md.FullName(), num) -+ if err == protoregistry.NotFound { -+ return errUnknown -+ } -+ if err != nil { -+ return errors.New("%v: unable to resolve extension %v: %v", md.FullName(), num, err) -+ } -+ xd := xt.TypeDescriptor() -+ if err := o.unmarshalMessage(v, m.Mutable(xd).Message()); err != nil { -+ return err -+ } -+ return nil -+} -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -new file mode 100644 -index 00000000..1f0d183b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -0,0 +1,43 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// Message is the top-level interface that all messages must implement. -+// It provides access to a reflective view of a message. -+// Any implementation of this interface may be used with all functions in the -+// protobuf module that accept a Message, except where otherwise specified. -+// -+// This is the v2 interface definition for protobuf messages. -+// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// -+// To convert a v1 message to a v2 message, -+// use "github.com/golang/protobuf/proto".MessageV2. -+// To convert a v2 message to a v1 message, -+// use "github.com/golang/protobuf/proto".MessageV1. -+type Message = protoreflect.ProtoMessage -+ -+// Error matches all errors produced by packages in the protobuf module. -+// -+// That is, errors.Is(err, Error) reports whether an error is produced -+// by this module. -+var Error error -+ -+func init() { -+ Error = errors.Error -+} -+ -+// MessageName returns the full name of m. -+// If m is nil, it returns an empty string. -+func MessageName(m Message) protoreflect.FullName { -+ if m == nil { -+ return "" -+ } -+ return m.ProtoReflect().Descriptor().FullName() -+} -diff --git a/vendor/google.golang.org/protobuf/proto/proto_methods.go b/vendor/google.golang.org/protobuf/proto/proto_methods.go -new file mode 100644 -index 00000000..465e057b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/proto_methods.go -@@ -0,0 +1,20 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// The protoreflect build tag disables use of fast-path methods. -+//go:build !protoreflect -+// +build !protoreflect -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+const hasProtoMethods = true -+ -+func protoMethods(m protoreflect.Message) *protoiface.Methods { -+ return m.ProtoMethods() -+} -diff --git a/vendor/google.golang.org/protobuf/proto/proto_reflect.go b/vendor/google.golang.org/protobuf/proto/proto_reflect.go -new file mode 100644 -index 00000000..494d6cee ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/proto_reflect.go -@@ -0,0 +1,20 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// The protoreflect build tag disables use of fast-path methods. -+//go:build protoreflect -+// +build protoreflect -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+const hasProtoMethods = false -+ -+func protoMethods(m protoreflect.Message) *protoiface.Methods { -+ return nil -+} -diff --git a/vendor/google.golang.org/protobuf/proto/reset.go b/vendor/google.golang.org/protobuf/proto/reset.go -new file mode 100644 -index 00000000..3d7f8943 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/reset.go -@@ -0,0 +1,43 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// Reset clears every field in the message. -+// The resulting message shares no observable memory with its previous state -+// other than the memory for the message itself. -+func Reset(m Message) { -+ if mr, ok := m.(interface{ Reset() }); ok && hasProtoMethods { -+ mr.Reset() -+ return -+ } -+ resetMessage(m.ProtoReflect()) -+} -+ -+func resetMessage(m protoreflect.Message) { -+ if !m.IsValid() { -+ panic(fmt.Sprintf("cannot reset invalid %v message", m.Descriptor().FullName())) -+ } -+ -+ // Clear all known fields. -+ fds := m.Descriptor().Fields() -+ for i := 0; i < fds.Len(); i++ { -+ m.Clear(fds.Get(i)) -+ } -+ -+ // Clear extension fields. -+ m.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { -+ m.Clear(fd) -+ return true -+ }) -+ -+ // Clear unknown fields. -+ m.SetUnknown(nil) -+} -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -new file mode 100644 -index 00000000..554b9c6c ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -0,0 +1,97 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/runtime/protoiface" -+) -+ -+// Size returns the size in bytes of the wire-format encoding of m. -+func Size(m Message) int { -+ return MarshalOptions{}.Size(m) -+} -+ -+// Size returns the size in bytes of the wire-format encoding of m. -+func (o MarshalOptions) Size(m Message) int { -+ // Treat a nil message interface as an empty message; nothing to output. -+ if m == nil { -+ return 0 -+ } -+ -+ return o.size(m.ProtoReflect()) -+} -+ -+// size is a centralized function that all size operations go through. -+// For profiling purposes, avoid changing the name of this function or -+// introducing other code paths for size that do not go through this. -+func (o MarshalOptions) size(m protoreflect.Message) (size int) { -+ methods := protoMethods(m) -+ if methods != nil && methods.Size != nil { -+ out := methods.Size(protoiface.SizeInput{ -+ Message: m, -+ }) -+ return out.Size -+ } -+ if methods != nil && methods.Marshal != nil { -+ // This is not efficient, but we don't have any choice. -+ // This case is mainly used for legacy types with a Marshal method. -+ out, _ := methods.Marshal(protoiface.MarshalInput{ -+ Message: m, -+ }) -+ return len(out.Buf) -+ } -+ return o.sizeMessageSlow(m) -+} -+ -+func (o MarshalOptions) sizeMessageSlow(m protoreflect.Message) (size int) { -+ if messageset.IsMessageSet(m.Descriptor()) { -+ return o.sizeMessageSet(m) -+ } -+ m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { -+ size += o.sizeField(fd, v) -+ return true -+ }) -+ size += len(m.GetUnknown()) -+ return size -+} -+ -+func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) { -+ num := fd.Number() -+ switch { -+ case fd.IsList(): -+ return o.sizeList(num, fd, value.List()) -+ case fd.IsMap(): -+ return o.sizeMap(num, fd, value.Map()) -+ default: -+ return protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), value) -+ } -+} -+ -+func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ if fd.IsPacked() && list.Len() > 0 { -+ content := 0 -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ content += o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ } -+ return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ } -+ -+ for i, llen := 0, list.Len(); i < llen; i++ { -+ size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ } -+ return size -+} -+ -+func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -+ size += protowire.SizeTag(num) -+ size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) -+ return true -+ }) -+ return size -+} -diff --git a/vendor/google.golang.org/protobuf/proto/size_gen.go b/vendor/google.golang.org/protobuf/proto/size_gen.go -new file mode 100644 -index 00000000..3cf61a82 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/size_gen.go -@@ -0,0 +1,55 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-types. DO NOT EDIT. -+ -+package proto -+ -+import ( -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+func (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { -+ switch kind { -+ case protoreflect.BoolKind: -+ return protowire.SizeVarint(protowire.EncodeBool(v.Bool())) -+ case protoreflect.EnumKind: -+ return protowire.SizeVarint(uint64(v.Enum())) -+ case protoreflect.Int32Kind: -+ return protowire.SizeVarint(uint64(int32(v.Int()))) -+ case protoreflect.Sint32Kind: -+ return protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) -+ case protoreflect.Uint32Kind: -+ return protowire.SizeVarint(uint64(uint32(v.Uint()))) -+ case protoreflect.Int64Kind: -+ return protowire.SizeVarint(uint64(v.Int())) -+ case protoreflect.Sint64Kind: -+ return protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) -+ case protoreflect.Uint64Kind: -+ return protowire.SizeVarint(v.Uint()) -+ case protoreflect.Sfixed32Kind: -+ return protowire.SizeFixed32() -+ case protoreflect.Fixed32Kind: -+ return protowire.SizeFixed32() -+ case protoreflect.FloatKind: -+ return protowire.SizeFixed32() -+ case protoreflect.Sfixed64Kind: -+ return protowire.SizeFixed64() -+ case protoreflect.Fixed64Kind: -+ return protowire.SizeFixed64() -+ case protoreflect.DoubleKind: -+ return protowire.SizeFixed64() -+ case protoreflect.StringKind: -+ return protowire.SizeBytes(len(v.String())) -+ case protoreflect.BytesKind: -+ return protowire.SizeBytes(len(v.Bytes())) -+ case protoreflect.MessageKind: -+ return protowire.SizeBytes(o.size(v.Message())) -+ case protoreflect.GroupKind: -+ return protowire.SizeGroup(num, o.size(v.Message())) -+ default: -+ return 0 -+ } -+} -diff --git a/vendor/google.golang.org/protobuf/proto/wrappers.go b/vendor/google.golang.org/protobuf/proto/wrappers.go -new file mode 100644 -index 00000000..653b12c3 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/proto/wrappers.go -@@ -0,0 +1,29 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package proto -+ -+// Bool stores v in a new bool value and returns a pointer to it. -+func Bool(v bool) *bool { return &v } -+ -+// Int32 stores v in a new int32 value and returns a pointer to it. -+func Int32(v int32) *int32 { return &v } -+ -+// Int64 stores v in a new int64 value and returns a pointer to it. -+func Int64(v int64) *int64 { return &v } -+ -+// Float32 stores v in a new float32 value and returns a pointer to it. -+func Float32(v float32) *float32 { return &v } -+ -+// Float64 stores v in a new float64 value and returns a pointer to it. -+func Float64(v float64) *float64 { return &v } -+ -+// Uint32 stores v in a new uint32 value and returns a pointer to it. -+func Uint32(v uint32) *uint32 { return &v } -+ -+// Uint64 stores v in a new uint64 value and returns a pointer to it. -+func Uint64(v uint64) *uint64 { return &v } -+ -+// String stores v in a new string value and returns a pointer to it. -+func String(v string) *string { return &v } -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -new file mode 100644 -index 00000000..e4dfb120 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -0,0 +1,276 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protodesc provides functionality for converting -+// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// -+// The google.protobuf.FileDescriptorProto is a protobuf message that describes -+// the type information for a .proto file in a form that is easily serializable. -+// The protoreflect.FileDescriptor is a more structured representation of -+// the FileDescriptorProto message where references and remote dependencies -+// can be directly followed. -+package protodesc -+ -+import ( -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ -+ "google.golang.org/protobuf/types/descriptorpb" -+) -+ -+// Resolver is the resolver used by NewFile to resolve dependencies. -+// The enums and messages provided must belong to some parent file, -+// which is also registered. -+// -+// It is implemented by protoregistry.Files. -+type Resolver interface { -+ FindFileByPath(string) (protoreflect.FileDescriptor, error) -+ FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -+} -+ -+// FileOptions configures the construction of file descriptors. -+type FileOptions struct { -+ pragma.NoUnkeyedLiterals -+ -+ // AllowUnresolvable configures New to permissively allow unresolvable -+ // file, enum, or message dependencies. Unresolved dependencies are replaced -+ // by placeholder equivalents. -+ // -+ // The following dependencies may be left unresolved: -+ // • Resolving an imported file. -+ // • Resolving the type for a message field or extension field. -+ // If the kind of the field is unknown, then a placeholder is used for both -+ // the Enum and Message accessors on the protoreflect.FieldDescriptor. -+ // • Resolving an enum value set as the default for an optional enum field. -+ // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the -+ // first value in the associated enum (or zero if the also enum dependency -+ // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue -+ // is populated with a placeholder. -+ // • Resolving the extended message type for an extension field. -+ // • Resolving the input or output message type for a service method. -+ // -+ // If the unresolved dependency uses a relative name, -+ // then the placeholder will contain an invalid FullName with a "*." prefix, -+ // indicating that the starting prefix of the full name is unknown. -+ AllowUnresolvable bool -+} -+ -+// NewFile creates a new protoreflect.FileDescriptor from the provided -+// file descriptor message. See FileOptions.New for more information. -+func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { -+ return FileOptions{}.New(fd, r) -+} -+ -+// NewFiles creates a new protoregistry.Files from the provided -+// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { -+ return FileOptions{}.NewFiles(fd) -+} -+ -+// New creates a new protoreflect.FileDescriptor from the provided -+// file descriptor message. The file must represent a valid proto file according -+// to protobuf semantics. The returned descriptor is a deep copy of the input. -+// -+// Any imported files, enum types, or message types referenced in the file are -+// resolved using the provided registry. When looking up an import file path, -+// the path must be unique. The newly created file descriptor is not registered -+// back into the provided file registry. -+func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { -+ if r == nil { -+ r = (*protoregistry.Files)(nil) // empty resolver -+ } -+ -+ // Handle the file descriptor content. -+ f := &filedesc.File{L2: &filedesc.FileL2{}} -+ switch fd.GetSyntax() { -+ case "proto2", "": -+ f.L1.Syntax = protoreflect.Proto2 -+ case "proto3": -+ f.L1.Syntax = protoreflect.Proto3 -+ default: -+ return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) -+ } -+ f.L1.Path = fd.GetName() -+ if f.L1.Path == "" { -+ return nil, errors.New("file path must be populated") -+ } -+ f.L1.Package = protoreflect.FullName(fd.GetPackage()) -+ if !f.L1.Package.IsValid() && f.L1.Package != "" { -+ return nil, errors.New("invalid package: %q", f.L1.Package) -+ } -+ if opts := fd.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.FileOptions) -+ f.L2.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ -+ f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) -+ for _, i := range fd.GetPublicDependency() { -+ if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic { -+ return nil, errors.New("invalid or duplicate public import index: %d", i) -+ } -+ f.L2.Imports[i].IsPublic = true -+ } -+ for _, i := range fd.GetWeakDependency() { -+ if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak { -+ return nil, errors.New("invalid or duplicate weak import index: %d", i) -+ } -+ f.L2.Imports[i].IsWeak = true -+ } -+ imps := importSet{f.Path(): true} -+ for i, path := range fd.GetDependency() { -+ imp := &f.L2.Imports[i] -+ f, err := r.FindFileByPath(path) -+ if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) { -+ f = filedesc.PlaceholderFile(path) -+ } else if err != nil { -+ return nil, errors.New("could not resolve import %q: %v", path, err) -+ } -+ imp.FileDescriptor = f -+ -+ if imps[imp.Path()] { -+ return nil, errors.New("already imported %q", path) -+ } -+ imps[imp.Path()] = true -+ } -+ for i := range fd.GetDependency() { -+ imp := &f.L2.Imports[i] -+ imps.importPublic(imp.Imports()) -+ } -+ -+ // Handle source locations. -+ f.L2.Locations.File = f -+ for _, loc := range fd.GetSourceCodeInfo().GetLocation() { -+ var l protoreflect.SourceLocation -+ // TODO: Validate that the path points to an actual declaration? -+ l.Path = protoreflect.SourcePath(loc.GetPath()) -+ s := loc.GetSpan() -+ switch len(s) { -+ case 3: -+ l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2]) -+ case 4: -+ l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3]) -+ default: -+ return nil, errors.New("invalid span: %v", s) -+ } -+ // TODO: Validate that the span information is sensible? -+ // See https://github.com/protocolbuffers/protobuf/issues/6378. -+ if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 || -+ (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) { -+ return nil, errors.New("invalid span: %v", s) -+ } -+ l.LeadingDetachedComments = loc.GetLeadingDetachedComments() -+ l.LeadingComments = loc.GetLeadingComments() -+ l.TrailingComments = loc.GetTrailingComments() -+ f.L2.Locations.List = append(f.L2.Locations.List, l) -+ } -+ -+ // Step 1: Allocate and derive the names for all declarations. -+ // This copies all fields from the descriptor proto except: -+ // google.protobuf.FieldDescriptorProto.type_name -+ // google.protobuf.FieldDescriptorProto.default_value -+ // google.protobuf.FieldDescriptorProto.oneof_index -+ // google.protobuf.FieldDescriptorProto.extendee -+ // google.protobuf.MethodDescriptorProto.input -+ // google.protobuf.MethodDescriptorProto.output -+ var err error -+ sb := new(strs.Builder) -+ r1 := make(descsByName) -+ if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil { -+ return nil, err -+ } -+ if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil { -+ return nil, err -+ } -+ if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil { -+ return nil, err -+ } -+ if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil { -+ return nil, err -+ } -+ -+ // Step 2: Resolve every dependency reference not handled by step 1. -+ r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable} -+ if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil { -+ return nil, err -+ } -+ if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil { -+ return nil, err -+ } -+ if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil { -+ return nil, err -+ } -+ -+ // Step 3: Validate every enum, message, and extension declaration. -+ if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { -+ return nil, err -+ } -+ if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { -+ return nil, err -+ } -+ if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { -+ return nil, err -+ } -+ -+ return f, nil -+} -+ -+type importSet map[string]bool -+ -+func (is importSet) importPublic(imps protoreflect.FileImports) { -+ for i := 0; i < imps.Len(); i++ { -+ if imp := imps.Get(i); imp.IsPublic { -+ is[imp.Path()] = true -+ is.importPublic(imp.Imports()) -+ } -+ } -+} -+ -+// NewFiles creates a new protoregistry.Files from the provided -+// FileDescriptorSet message. The descriptor set must include only -+// valid files according to protobuf semantics. The returned descriptors -+// are a deep copy of the input. -+func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { -+ files := make(map[string]*descriptorpb.FileDescriptorProto) -+ for _, fd := range fds.File { -+ if _, ok := files[fd.GetName()]; ok { -+ return nil, errors.New("file appears multiple times: %q", fd.GetName()) -+ } -+ files[fd.GetName()] = fd -+ } -+ r := &protoregistry.Files{} -+ for _, fd := range files { -+ if err := o.addFileDeps(r, fd, files); err != nil { -+ return nil, err -+ } -+ } -+ return r, nil -+} -+func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error { -+ // Set the entry to nil while descending into a file's dependencies to detect cycles. -+ files[fd.GetName()] = nil -+ for _, dep := range fd.Dependency { -+ depfd, ok := files[dep] -+ if depfd == nil { -+ if ok { -+ return errors.New("import cycle in file: %q", dep) -+ } -+ continue -+ } -+ if err := o.addFileDeps(r, depfd, files); err != nil { -+ return err -+ } -+ } -+ // Delete the entry once dependencies are processed. -+ delete(files, fd.GetName()) -+ f, err := o.New(fd, r) -+ if err != nil { -+ return err -+ } -+ return r.RegisterFile(f) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -new file mode 100644 -index 00000000..37efda1a ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -0,0 +1,248 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ -+ "google.golang.org/protobuf/types/descriptorpb" -+) -+ -+type descsByName map[protoreflect.FullName]protoreflect.Descriptor -+ -+func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) { -+ es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers -+ for i, ed := range eds { -+ e := &es[i] -+ e.L2 = new(filedesc.EnumL2) -+ if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := ed.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.EnumOptions) -+ e.L2.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ for _, s := range ed.GetReservedName() { -+ e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) -+ } -+ for _, rr := range ed.GetReservedRange() { -+ e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{ -+ protoreflect.EnumNumber(rr.GetStart()), -+ protoreflect.EnumNumber(rr.GetEnd()), -+ }) -+ } -+ if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil { -+ return nil, err -+ } -+ } -+ return es, nil -+} -+ -+func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) { -+ vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers -+ for i, vd := range vds { -+ v := &vs[i] -+ if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := vd.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions) -+ v.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ v.L1.Number = protoreflect.EnumNumber(vd.GetNumber()) -+ } -+ return vs, nil -+} -+ -+func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) { -+ ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers -+ for i, md := range mds { -+ m := &ms[i] -+ m.L2 = new(filedesc.MessageL2) -+ if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := md.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.MessageOptions) -+ m.L2.Options = func() protoreflect.ProtoMessage { return opts } -+ m.L1.IsMapEntry = opts.GetMapEntry() -+ m.L1.IsMessageSet = opts.GetMessageSetWireFormat() -+ } -+ for _, s := range md.GetReservedName() { -+ m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s)) -+ } -+ for _, rr := range md.GetReservedRange() { -+ m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{ -+ protoreflect.FieldNumber(rr.GetStart()), -+ protoreflect.FieldNumber(rr.GetEnd()), -+ }) -+ } -+ for _, xr := range md.GetExtensionRange() { -+ m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ -+ protoreflect.FieldNumber(xr.GetStart()), -+ protoreflect.FieldNumber(xr.GetEnd()), -+ }) -+ var optsFunc func() protoreflect.ProtoMessage -+ if opts := xr.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions) -+ optsFunc = func() protoreflect.ProtoMessage { return opts } -+ } -+ m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc) -+ } -+ if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil { -+ return nil, err -+ } -+ if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil { -+ return nil, err -+ } -+ if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil { -+ return nil, err -+ } -+ if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil { -+ return nil, err -+ } -+ if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil { -+ return nil, err -+ } -+ } -+ return ms, nil -+} -+ -+func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { -+ fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers -+ for i, fd := range fds { -+ f := &fs[i] -+ if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ f.L1.IsProto3Optional = fd.GetProto3Optional() -+ if opts := fd.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.FieldOptions) -+ f.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ f.L1.IsWeak = opts.GetWeak() -+ f.L1.HasPacked = opts.Packed != nil -+ f.L1.IsPacked = opts.GetPacked() -+ } -+ f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) -+ f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) -+ if fd.Type != nil { -+ f.L1.Kind = protoreflect.Kind(fd.GetType()) -+ } -+ if fd.JsonName != nil { -+ f.L1.StringName.InitJSON(fd.GetJsonName()) -+ } -+ } -+ return fs, nil -+} -+ -+func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) { -+ os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers -+ for i, od := range ods { -+ o := &os[i] -+ if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := od.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.OneofOptions) -+ o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ } -+ return os, nil -+} -+ -+func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) { -+ xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers -+ for i, xd := range xds { -+ x := &xs[i] -+ x.L2 = new(filedesc.ExtensionL2) -+ if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := xd.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.FieldOptions) -+ x.L2.Options = func() protoreflect.ProtoMessage { return opts } -+ x.L2.IsPacked = opts.GetPacked() -+ } -+ x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) -+ x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) -+ if xd.Type != nil { -+ x.L1.Kind = protoreflect.Kind(xd.GetType()) -+ } -+ if xd.JsonName != nil { -+ x.L2.StringName.InitJSON(xd.GetJsonName()) -+ } -+ } -+ return xs, nil -+} -+ -+func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) { -+ ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers -+ for i, sd := range sds { -+ s := &ss[i] -+ s.L2 = new(filedesc.ServiceL2) -+ if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := sd.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.ServiceOptions) -+ s.L2.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil { -+ return nil, err -+ } -+ } -+ return ss, nil -+} -+ -+func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) { -+ ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers -+ for i, md := range mds { -+ m := &ms[i] -+ if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { -+ return nil, err -+ } -+ if opts := md.GetOptions(); opts != nil { -+ opts = proto.Clone(opts).(*descriptorpb.MethodOptions) -+ m.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ } -+ m.L1.IsStreamingClient = md.GetClientStreaming() -+ m.L1.IsStreamingServer = md.GetServerStreaming() -+ } -+ return ms, nil -+} -+ -+func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) { -+ if !protoreflect.Name(name).IsValid() { -+ return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name) -+ } -+ -+ // Derive the full name of the child. -+ // Note that enum values are a sibling to the enum parent in the namespace. -+ var fullName protoreflect.FullName -+ if _, ok := parent.(protoreflect.EnumDescriptor); ok { -+ fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name)) -+ } else { -+ fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name)) -+ } -+ if _, ok := r[fullName]; ok { -+ return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName) -+ } -+ r[fullName] = child -+ -+ // TODO: Verify that the full name does not already exist in the resolver? -+ // This is not as critical since most usages of NewFile will register -+ // the created file back into the registry, which will perform this check. -+ -+ return filedesc.BaseL0{ -+ FullName: fullName, -+ ParentFile: parent.ParentFile().(*filedesc.File), -+ Parent: parent, -+ Index: idx, -+ }, nil -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -new file mode 100644 -index 00000000..27d7e350 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -0,0 +1,286 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "google.golang.org/protobuf/internal/encoding/defval" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/reflect/protoregistry" -+ -+ "google.golang.org/protobuf/types/descriptorpb" -+) -+ -+// resolver is a wrapper around a local registry of declarations within the file -+// and the remote resolver. The remote resolver is restricted to only return -+// descriptors that have been imported. -+type resolver struct { -+ local descsByName -+ remote Resolver -+ imports importSet -+ -+ allowUnresolvable bool -+} -+ -+func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) { -+ for i, md := range mds { -+ m := &ms[i] -+ for j, fd := range md.GetField() { -+ f := &m.L2.Fields.List[j] -+ if f.L1.Cardinality == protoreflect.Required { -+ m.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number) -+ } -+ if fd.OneofIndex != nil { -+ k := int(fd.GetOneofIndex()) -+ if !(0 <= k && k < len(md.GetOneofDecl())) { -+ return errors.New("message field %q has an invalid oneof index: %d", f.FullName(), k) -+ } -+ o := &m.L2.Oneofs.List[k] -+ f.L1.ContainingOneof = o -+ o.L1.Fields.List = append(o.L1.Fields.List, f) -+ } -+ -+ if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil { -+ return errors.New("message field %q cannot resolve type: %v", f.FullName(), err) -+ } -+ if fd.DefaultValue != nil { -+ v, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable) -+ if err != nil { -+ return errors.New("message field %q has invalid default: %v", f.FullName(), err) -+ } -+ f.L1.Default = filedesc.DefaultValue(v, ev) -+ } -+ } -+ -+ if err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil { -+ return err -+ } -+ if err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) { -+ for i, xd := range xds { -+ x := &xs[i] -+ if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil { -+ return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err) -+ } -+ if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil { -+ return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err) -+ } -+ if xd.DefaultValue != nil { -+ v, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable) -+ if err != nil { -+ return errors.New("extension field %q has invalid default: %v", x.FullName(), err) -+ } -+ x.L2.Default = filedesc.DefaultValue(v, ev) -+ } -+ } -+ return nil -+} -+ -+func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) { -+ for i, sd := range sds { -+ s := &ss[i] -+ for j, md := range sd.GetMethod() { -+ m := &s.L2.Methods.List[j] -+ m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false) -+ if err != nil { -+ return errors.New("service method %q cannot resolve input: %v", m.FullName(), err) -+ } -+ m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false) -+ if err != nil { -+ return errors.New("service method %q cannot resolve output: %v", m.FullName(), err) -+ } -+ } -+ } -+ return nil -+} -+ -+// findTarget finds an enum or message descriptor if k is an enum, message, -+// group, or unknown. If unknown, and the name could be resolved, the kind -+// returned kind is set based on the type of the resolved descriptor. -+func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) { -+ switch k { -+ case protoreflect.EnumKind: -+ ed, err := r.findEnumDescriptor(scope, ref, isWeak) -+ if err != nil { -+ return 0, nil, nil, err -+ } -+ return k, ed, nil, nil -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ md, err := r.findMessageDescriptor(scope, ref, isWeak) -+ if err != nil { -+ return 0, nil, nil, err -+ } -+ return k, nil, md, nil -+ case 0: -+ // Handle unspecified kinds (possible with parsers that operate -+ // on a per-file basis without knowledge of dependencies). -+ d, err := r.findDescriptor(scope, ref) -+ if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { -+ return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil -+ } else if err == protoregistry.NotFound { -+ return 0, nil, nil, errors.New("%q not found", ref.FullName()) -+ } else if err != nil { -+ return 0, nil, nil, err -+ } -+ switch d := d.(type) { -+ case protoreflect.EnumDescriptor: -+ return protoreflect.EnumKind, d, nil, nil -+ case protoreflect.MessageDescriptor: -+ return protoreflect.MessageKind, nil, d, nil -+ default: -+ return 0, nil, nil, errors.New("unknown kind") -+ } -+ default: -+ if ref != "" { -+ return 0, nil, nil, errors.New("target name cannot be specified for %v", k) -+ } -+ if !k.IsValid() { -+ return 0, nil, nil, errors.New("invalid kind: %d", k) -+ } -+ return k, nil, nil, nil -+ } -+} -+ -+// findDescriptor finds the descriptor by name, -+// which may be a relative name within some scope. -+// -+// Suppose the scope was "fizz.buzz" and the reference was "Foo.Bar", -+// then the following full names are searched: -+// - fizz.buzz.Foo.Bar -+// - fizz.Foo.Bar -+// - Foo.Bar -+func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) { -+ if !ref.IsValid() { -+ return nil, errors.New("invalid name reference: %q", ref) -+ } -+ if ref.IsFull() { -+ scope, ref = "", ref[1:] -+ } -+ var foundButNotImported protoreflect.Descriptor -+ for { -+ // Derive the full name to search. -+ s := protoreflect.FullName(ref) -+ if scope != "" { -+ s = scope + "." + s -+ } -+ -+ // Check the current file for the descriptor. -+ if d, ok := r.local[s]; ok { -+ return d, nil -+ } -+ -+ // Check the remote registry for the descriptor. -+ d, err := r.remote.FindDescriptorByName(s) -+ if err == nil { -+ // Only allow descriptors covered by one of the imports. -+ if r.imports[d.ParentFile().Path()] { -+ return d, nil -+ } -+ foundButNotImported = d -+ } else if err != protoregistry.NotFound { -+ return nil, errors.Wrap(err, "%q", s) -+ } -+ -+ // Continue on at a higher level of scoping. -+ if scope == "" { -+ if d := foundButNotImported; d != nil { -+ return nil, errors.New("resolved %q, but %q is not imported", d.FullName(), d.ParentFile().Path()) -+ } -+ return nil, protoregistry.NotFound -+ } -+ scope = scope.Parent() -+ } -+} -+ -+func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) { -+ d, err := r.findDescriptor(scope, ref) -+ if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { -+ return filedesc.PlaceholderEnum(ref.FullName()), nil -+ } else if err == protoregistry.NotFound { -+ return nil, errors.New("%q not found", ref.FullName()) -+ } else if err != nil { -+ return nil, err -+ } -+ ed, ok := d.(protoreflect.EnumDescriptor) -+ if !ok { -+ return nil, errors.New("resolved %q, but it is not an enum", d.FullName()) -+ } -+ return ed, nil -+} -+ -+func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) { -+ d, err := r.findDescriptor(scope, ref) -+ if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { -+ return filedesc.PlaceholderMessage(ref.FullName()), nil -+ } else if err == protoregistry.NotFound { -+ return nil, errors.New("%q not found", ref.FullName()) -+ } else if err != nil { -+ return nil, err -+ } -+ md, ok := d.(protoreflect.MessageDescriptor) -+ if !ok { -+ return nil, errors.New("resolved %q, but it is not an message", d.FullName()) -+ } -+ return md, nil -+} -+ -+// partialName is the partial name. A leading dot means that the name is full, -+// otherwise the name is relative to some current scope. -+// See google.protobuf.FieldDescriptorProto.type_name. -+type partialName string -+ -+func (s partialName) IsFull() bool { -+ return len(s) > 0 && s[0] == '.' -+} -+ -+func (s partialName) IsValid() bool { -+ if s.IsFull() { -+ return protoreflect.FullName(s[1:]).IsValid() -+ } -+ return protoreflect.FullName(s).IsValid() -+} -+ -+const unknownPrefix = "*." -+ -+// FullName converts the partial name to a full name on a best-effort basis. -+// If relative, it creates an invalid full name, using a "*." prefix -+// to indicate that the start of the full name is unknown. -+func (s partialName) FullName() protoreflect.FullName { -+ if s.IsFull() { -+ return protoreflect.FullName(s[1:]) -+ } -+ return protoreflect.FullName(unknownPrefix + s) -+} -+ -+func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { -+ var evs protoreflect.EnumValueDescriptors -+ if fd.Enum() != nil { -+ evs = fd.Enum().Values() -+ } -+ v, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor) -+ if err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() { -+ v = protoreflect.ValueOfEnum(0) -+ if evs.Len() > 0 { -+ v = protoreflect.ValueOfEnum(evs.Get(0).Number()) -+ } -+ ev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s))) -+ } else if err != nil { -+ return v, ev, err -+ } -+ if fd.Syntax() == protoreflect.Proto3 { -+ return v, ev, errors.New("cannot be specified under proto3 semantics") -+ } -+ if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { -+ return v, ev, errors.New("cannot be specified on composite types") -+ } -+ return v, ev, nil -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -new file mode 100644 -index 00000000..9af1d564 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -0,0 +1,374 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "strings" -+ "unicode" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ -+ "google.golang.org/protobuf/types/descriptorpb" -+) -+ -+func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error { -+ for i, ed := range eds { -+ e := &es[i] -+ if err := e.L2.ReservedNames.CheckValid(); err != nil { -+ return errors.New("enum %q reserved names has %v", e.FullName(), err) -+ } -+ if err := e.L2.ReservedRanges.CheckValid(); err != nil { -+ return errors.New("enum %q reserved ranges has %v", e.FullName(), err) -+ } -+ if len(ed.GetValue()) == 0 { -+ return errors.New("enum %q must contain at least one value declaration", e.FullName()) -+ } -+ allowAlias := ed.GetOptions().GetAllowAlias() -+ foundAlias := false -+ for i := 0; i < e.Values().Len(); i++ { -+ v1 := e.Values().Get(i) -+ if v2 := e.Values().ByNumber(v1.Number()); v1 != v2 { -+ foundAlias = true -+ if !allowAlias { -+ return errors.New("enum %q has conflicting non-aliased values on number %d: %q with %q", e.FullName(), v1.Number(), v1.Name(), v2.Name()) -+ } -+ } -+ } -+ if allowAlias && !foundAlias { -+ return errors.New("enum %q allows aliases, but none were found", e.FullName()) -+ } -+ if e.Syntax() == protoreflect.Proto3 { -+ if v := e.Values().Get(0); v.Number() != 0 { -+ return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) -+ } -+ // Verify that value names in proto3 do not conflict if the -+ // case-insensitive prefix is removed. -+ // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 -+ names := map[string]protoreflect.EnumValueDescriptor{} -+ prefix := strings.Replace(strings.ToLower(string(e.Name())), "_", "", -1) -+ for i := 0; i < e.Values().Len(); i++ { -+ v1 := e.Values().Get(i) -+ s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) -+ if v2, ok := names[s]; ok && v1.Number() != v2.Number() { -+ return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) -+ } -+ names[s] = v1 -+ } -+ } -+ -+ for j, vd := range ed.GetValue() { -+ v := &e.L2.Values.List[j] -+ if vd.Number == nil { -+ return errors.New("enum value %q must have a specified number", v.FullName()) -+ } -+ if e.L2.ReservedNames.Has(v.Name()) { -+ return errors.New("enum value %q must not use reserved name", v.FullName()) -+ } -+ if e.L2.ReservedRanges.Has(v.Number()) { -+ return errors.New("enum value %q must not use reserved number %d", v.FullName(), v.Number()) -+ } -+ } -+ } -+ return nil -+} -+ -+func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { -+ for i, md := range mds { -+ m := &ms[i] -+ -+ // Handle the message descriptor itself. -+ isMessageSet := md.GetOptions().GetMessageSetWireFormat() -+ if err := m.L2.ReservedNames.CheckValid(); err != nil { -+ return errors.New("message %q reserved names has %v", m.FullName(), err) -+ } -+ if err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil { -+ return errors.New("message %q reserved ranges has %v", m.FullName(), err) -+ } -+ if err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil { -+ return errors.New("message %q extension ranges has %v", m.FullName(), err) -+ } -+ if err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil { -+ return errors.New("message %q reserved and extension ranges has %v", m.FullName(), err) -+ } -+ for i := 0; i < m.Fields().Len(); i++ { -+ f1 := m.Fields().Get(i) -+ if f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 { -+ return errors.New("message %q has conflicting fields: %q with %q", m.FullName(), f1.Name(), f2.Name()) -+ } -+ } -+ if isMessageSet && !flags.ProtoLegacy { -+ return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) -+ } -+ if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) -+ } -+ if m.Syntax() == protoreflect.Proto3 { -+ if m.ExtensionRanges().Len() > 0 { -+ return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) -+ } -+ // Verify that field names in proto3 do not conflict if lowercased -+ // with all underscores removed. -+ // See protoc v3.8.0: src/google/protobuf/descriptor.cc:5830-5847 -+ names := map[string]protoreflect.FieldDescriptor{} -+ for i := 0; i < m.Fields().Len(); i++ { -+ f1 := m.Fields().Get(i) -+ s := strings.Replace(strings.ToLower(string(f1.Name())), "_", "", -1) -+ if f2, ok := names[s]; ok { -+ return errors.New("message %q using proto3 semantics has conflict: %q with %q", m.FullName(), f1.Name(), f2.Name()) -+ } -+ names[s] = f1 -+ } -+ } -+ -+ for j, fd := range md.GetField() { -+ f := &m.L2.Fields.List[j] -+ if m.L2.ReservedNames.Has(f.Name()) { -+ return errors.New("message field %q must not use reserved name", f.FullName()) -+ } -+ if !f.Number().IsValid() { -+ return errors.New("message field %q has an invalid number: %d", f.FullName(), f.Number()) -+ } -+ if !f.Cardinality().IsValid() { -+ return errors.New("message field %q has an invalid cardinality: %d", f.FullName(), f.Cardinality()) -+ } -+ if m.L2.ReservedRanges.Has(f.Number()) { -+ return errors.New("message field %q must not use reserved number %d", f.FullName(), f.Number()) -+ } -+ if m.L2.ExtensionRanges.Has(f.Number()) { -+ return errors.New("message field %q with number %d in extension range", f.FullName(), f.Number()) -+ } -+ if fd.Extendee != nil { -+ return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) -+ } -+ if f.L1.IsProto3Optional { -+ if f.Syntax() != protoreflect.Proto3 { -+ return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) -+ } -+ if f.Cardinality() != protoreflect.Optional { -+ return errors.New("message field %q under proto3 optional semantics must have optional cardinality", f.FullName()) -+ } -+ if f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 { -+ return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName()) -+ } -+ } -+ if f.IsWeak() && !flags.ProtoLegacy { -+ return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) -+ } -+ if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { -+ return errors.New("message field %q may only be weak for an optional message", f.FullName()) -+ } -+ if f.IsPacked() && !isPackable(f) { -+ return errors.New("message field %q is not packable", f.FullName()) -+ } -+ if err := checkValidGroup(f); err != nil { -+ return errors.New("message field %q is an invalid group: %v", f.FullName(), err) -+ } -+ if err := checkValidMap(f); err != nil { -+ return errors.New("message field %q is an invalid map: %v", f.FullName(), err) -+ } -+ if f.Syntax() == protoreflect.Proto3 { -+ if f.Cardinality() == protoreflect.Required { -+ return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) -+ } -+ if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { -+ return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) -+ } -+ } -+ } -+ seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs -+ for j := range md.GetOneofDecl() { -+ o := &m.L2.Oneofs.List[j] -+ if o.Fields().Len() == 0 { -+ return errors.New("message oneof %q must contain at least one field declaration", o.FullName()) -+ } -+ if n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) { -+ return errors.New("message oneof %q must have consecutively declared fields", o.FullName()) -+ } -+ -+ if o.IsSynthetic() { -+ seenSynthetic = true -+ continue -+ } -+ if !o.IsSynthetic() && seenSynthetic { -+ return errors.New("message oneof %q must be declared before synthetic oneofs", o.FullName()) -+ } -+ -+ for i := 0; i < o.Fields().Len(); i++ { -+ f := o.Fields().Get(i) -+ if f.Cardinality() != protoreflect.Optional { -+ return errors.New("message field %q belongs in a oneof and must be optional", f.FullName()) -+ } -+ if f.IsWeak() { -+ return errors.New("message field %q belongs in a oneof and must not be a weak reference", f.FullName()) -+ } -+ } -+ } -+ -+ if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { -+ return err -+ } -+ if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { -+ return err -+ } -+ if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { -+ return err -+ } -+ } -+ return nil -+} -+ -+func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { -+ for i, xd := range xds { -+ x := &xs[i] -+ // NOTE: Avoid using the IsValid method since extensions to MessageSet -+ // may have a field number higher than normal. This check only verifies -+ // that the number is not negative or reserved. We check again later -+ // if we know that the extendee is definitely not a MessageSet. -+ if n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) { -+ return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) -+ } -+ if !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required { -+ return errors.New("extension field %q has an invalid cardinality: %d", x.FullName(), x.Cardinality()) -+ } -+ if xd.JsonName != nil { -+ // A bug in older versions of protoc would always populate the -+ // "json_name" option for extensions when it is meaningless. -+ // When it did so, it would always use the camel-cased field name. -+ if xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) { -+ return errors.New("extension field %q may not have an explicitly set JSON name: %q", x.FullName(), xd.GetJsonName()) -+ } -+ } -+ if xd.OneofIndex != nil { -+ return errors.New("extension field %q may not be part of a oneof", x.FullName()) -+ } -+ if md := x.ContainingMessage(); !md.IsPlaceholder() { -+ if !md.ExtensionRanges().Has(x.Number()) { -+ return errors.New("extension field %q extends %q with non-extension field number: %d", x.FullName(), md.FullName(), x.Number()) -+ } -+ isMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat() -+ if isMessageSet && !isOptionalMessage(x) { -+ return errors.New("extension field %q extends MessageSet and must be an optional message", x.FullName()) -+ } -+ if !isMessageSet && !x.Number().IsValid() { -+ return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) -+ } -+ } -+ if xd.GetOptions().GetWeak() { -+ return errors.New("extension field %q cannot be a weak reference", x.FullName()) -+ } -+ if x.IsPacked() && !isPackable(x) { -+ return errors.New("extension field %q is not packable", x.FullName()) -+ } -+ if err := checkValidGroup(x); err != nil { -+ return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) -+ } -+ if md := x.Message(); md != nil && md.IsMapEntry() { -+ return errors.New("extension field %q cannot be a map entry", x.FullName()) -+ } -+ if x.Syntax() == protoreflect.Proto3 { -+ switch x.ContainingMessage().FullName() { -+ case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ case (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName(): -+ default: -+ return errors.New("extension field %q cannot be declared in proto3 unless extended descriptor options", x.FullName()) -+ } -+ } -+ } -+ return nil -+} -+ -+// isOptionalMessage reports whether this is an optional message. -+// If the kind is unknown, it is assumed to be a message. -+func isOptionalMessage(fd protoreflect.FieldDescriptor) bool { -+ return (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional -+} -+ -+// isPackable checks whether the pack option can be specified. -+func isPackable(fd protoreflect.FieldDescriptor) bool { -+ switch fd.Kind() { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ return fd.IsList() -+} -+ -+// checkValidGroup reports whether fd is a valid group according to the same -+// rules that protoc imposes. -+func checkValidGroup(fd protoreflect.FieldDescriptor) error { -+ md := fd.Message() -+ switch { -+ case fd.Kind() != protoreflect.GroupKind: -+ return nil -+ case fd.Syntax() != protoreflect.Proto2: -+ return errors.New("invalid under proto2 semantics") -+ case md == nil || md.IsPlaceholder(): -+ return errors.New("message must be resolvable") -+ case fd.FullName().Parent() != md.FullName().Parent(): -+ return errors.New("message and field must be declared in the same scope") -+ case !unicode.IsUpper(rune(md.Name()[0])): -+ return errors.New("message name must start with an uppercase") -+ case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): -+ return errors.New("field name must be lowercased form of the message name") -+ } -+ return nil -+} -+ -+// checkValidMap checks whether the field is a valid map according to the same -+// rules that protoc imposes. -+// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115 -+func checkValidMap(fd protoreflect.FieldDescriptor) error { -+ md := fd.Message() -+ switch { -+ case md == nil || !md.IsMapEntry(): -+ return nil -+ case fd.FullName().Parent() != md.FullName().Parent(): -+ return errors.New("message and field must be declared in the same scope") -+ case md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))): -+ return errors.New("incorrect implicit map entry name") -+ case fd.Cardinality() != protoreflect.Repeated: -+ return errors.New("field must be repeated") -+ case md.Fields().Len() != 2: -+ return errors.New("message must have exactly two fields") -+ case md.ExtensionRanges().Len() > 0: -+ return errors.New("message must not have any extension ranges") -+ case md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0: -+ return errors.New("message must not have any nested declarations") -+ } -+ kf := md.Fields().Get(0) -+ vf := md.Fields().Get(1) -+ switch { -+ case kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault(): -+ return errors.New("invalid key field") -+ case vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault(): -+ return errors.New("invalid value field") -+ } -+ switch kf.Kind() { -+ case protoreflect.BoolKind: // bool -+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32 -+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64 -+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32 -+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64 -+ case protoreflect.StringKind: // string -+ default: -+ return errors.New("invalid key kind: %v", kf.Kind()) -+ } -+ if e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 { -+ return errors.New("map enum value must have zero number for the first value") -+ } -+ return nil -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -new file mode 100644 -index 00000000..a7c5ceff ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -0,0 +1,252 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "strings" -+ -+ "google.golang.org/protobuf/internal/encoding/defval" -+ "google.golang.org/protobuf/internal/strs" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ -+ "google.golang.org/protobuf/types/descriptorpb" -+) -+ -+// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// google.protobuf.FileDescriptorProto message. -+func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { -+ p := &descriptorpb.FileDescriptorProto{ -+ Name: proto.String(file.Path()), -+ Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions), -+ } -+ if file.Package() != "" { -+ p.Package = proto.String(string(file.Package())) -+ } -+ for i, imports := 0, file.Imports(); i < imports.Len(); i++ { -+ imp := imports.Get(i) -+ p.Dependency = append(p.Dependency, imp.Path()) -+ if imp.IsPublic { -+ p.PublicDependency = append(p.PublicDependency, int32(i)) -+ } -+ if imp.IsWeak { -+ p.WeakDependency = append(p.WeakDependency, int32(i)) -+ } -+ } -+ for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ { -+ loc := locs.Get(i) -+ l := &descriptorpb.SourceCodeInfo_Location{} -+ l.Path = append(l.Path, loc.Path...) -+ if loc.StartLine == loc.EndLine { -+ l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)} -+ } else { -+ l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)} -+ } -+ l.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...) -+ if loc.LeadingComments != "" { -+ l.LeadingComments = proto.String(loc.LeadingComments) -+ } -+ if loc.TrailingComments != "" { -+ l.TrailingComments = proto.String(loc.TrailingComments) -+ } -+ if p.SourceCodeInfo == nil { -+ p.SourceCodeInfo = &descriptorpb.SourceCodeInfo{} -+ } -+ p.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l) -+ -+ } -+ for i, messages := 0, file.Messages(); i < messages.Len(); i++ { -+ p.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i))) -+ } -+ for i, enums := 0, file.Enums(); i < enums.Len(); i++ { -+ p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) -+ } -+ for i, services := 0, file.Services(); i < services.Len(); i++ { -+ p.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i))) -+ } -+ for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { -+ p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) -+ } -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ p.Syntax = proto.String(file.Syntax().String()) -+ } -+ return p -+} -+ -+// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// google.protobuf.DescriptorProto message. -+func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { -+ p := &descriptorpb.DescriptorProto{ -+ Name: proto.String(string(message.Name())), -+ Options: proto.Clone(message.Options()).(*descriptorpb.MessageOptions), -+ } -+ for i, fields := 0, message.Fields(); i < fields.Len(); i++ { -+ p.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i))) -+ } -+ for i, exts := 0, message.Extensions(); i < exts.Len(); i++ { -+ p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) -+ } -+ for i, messages := 0, message.Messages(); i < messages.Len(); i++ { -+ p.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i))) -+ } -+ for i, enums := 0, message.Enums(); i < enums.Len(); i++ { -+ p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) -+ } -+ for i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ { -+ xrange := xranges.Get(i) -+ p.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{ -+ Start: proto.Int32(int32(xrange[0])), -+ End: proto.Int32(int32(xrange[1])), -+ Options: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions), -+ }) -+ } -+ for i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ { -+ p.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i))) -+ } -+ for i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ { -+ rrange := ranges.Get(i) -+ p.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{ -+ Start: proto.Int32(int32(rrange[0])), -+ End: proto.Int32(int32(rrange[1])), -+ }) -+ } -+ for i, names := 0, message.ReservedNames(); i < names.Len(); i++ { -+ p.ReservedName = append(p.ReservedName, string(names.Get(i))) -+ } -+ return p -+} -+ -+// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// google.protobuf.FieldDescriptorProto message. -+func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { -+ p := &descriptorpb.FieldDescriptorProto{ -+ Name: proto.String(string(field.Name())), -+ Number: proto.Int32(int32(field.Number())), -+ Label: descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(), -+ Options: proto.Clone(field.Options()).(*descriptorpb.FieldOptions), -+ } -+ if field.IsExtension() { -+ p.Extendee = fullNameOf(field.ContainingMessage()) -+ } -+ if field.Kind().IsValid() { -+ p.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum() -+ } -+ if field.Enum() != nil { -+ p.TypeName = fullNameOf(field.Enum()) -+ } -+ if field.Message() != nil { -+ p.TypeName = fullNameOf(field.Message()) -+ } -+ if field.HasJSONName() { -+ // A bug in older versions of protoc would always populate the -+ // "json_name" option for extensions when it is meaningless. -+ // When it did so, it would always use the camel-cased field name. -+ if field.IsExtension() { -+ p.JsonName = proto.String(strs.JSONCamelCase(string(field.Name()))) -+ } else { -+ p.JsonName = proto.String(field.JSONName()) -+ } -+ } -+ if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { -+ p.Proto3Optional = proto.Bool(true) -+ } -+ if field.HasDefault() { -+ def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) -+ if err != nil && field.DefaultEnumValue() != nil { -+ def = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values -+ } else if err != nil { -+ panic(fmt.Sprintf("%v: %v", field.FullName(), err)) -+ } -+ p.DefaultValue = proto.String(def) -+ } -+ if oneof := field.ContainingOneof(); oneof != nil { -+ p.OneofIndex = proto.Int32(int32(oneof.Index())) -+ } -+ return p -+} -+ -+// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// google.protobuf.OneofDescriptorProto message. -+func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { -+ return &descriptorpb.OneofDescriptorProto{ -+ Name: proto.String(string(oneof.Name())), -+ Options: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions), -+ } -+} -+ -+// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// google.protobuf.EnumDescriptorProto message. -+func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { -+ p := &descriptorpb.EnumDescriptorProto{ -+ Name: proto.String(string(enum.Name())), -+ Options: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions), -+ } -+ for i, values := 0, enum.Values(); i < values.Len(); i++ { -+ p.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i))) -+ } -+ for i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ { -+ rrange := ranges.Get(i) -+ p.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{ -+ Start: proto.Int32(int32(rrange[0])), -+ End: proto.Int32(int32(rrange[1])), -+ }) -+ } -+ for i, names := 0, enum.ReservedNames(); i < names.Len(); i++ { -+ p.ReservedName = append(p.ReservedName, string(names.Get(i))) -+ } -+ return p -+} -+ -+// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// google.protobuf.EnumValueDescriptorProto message. -+func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { -+ return &descriptorpb.EnumValueDescriptorProto{ -+ Name: proto.String(string(value.Name())), -+ Number: proto.Int32(int32(value.Number())), -+ Options: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions), -+ } -+} -+ -+// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// google.protobuf.ServiceDescriptorProto message. -+func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { -+ p := &descriptorpb.ServiceDescriptorProto{ -+ Name: proto.String(string(service.Name())), -+ Options: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions), -+ } -+ for i, methods := 0, service.Methods(); i < methods.Len(); i++ { -+ p.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i))) -+ } -+ return p -+} -+ -+// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// google.protobuf.MethodDescriptorProto message. -+func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { -+ p := &descriptorpb.MethodDescriptorProto{ -+ Name: proto.String(string(method.Name())), -+ InputType: fullNameOf(method.Input()), -+ OutputType: fullNameOf(method.Output()), -+ Options: proto.Clone(method.Options()).(*descriptorpb.MethodOptions), -+ } -+ if method.IsStreamingClient() { -+ p.ClientStreaming = proto.Bool(true) -+ } -+ if method.IsStreamingServer() { -+ p.ServerStreaming = proto.Bool(true) -+ } -+ return p -+} -+ -+func fullNameOf(d protoreflect.Descriptor) *string { -+ if d == nil { -+ return nil -+ } -+ if strings.HasPrefix(string(d.FullName()), unknownPrefix) { -+ return proto.String(string(d.FullName()[len(unknownPrefix):])) -+ } -+ return proto.String("." + string(d.FullName())) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go -new file mode 100644 -index 00000000..d5d5af6e ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go -@@ -0,0 +1,78 @@ -+// Copyright 2020 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+import ( -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+// The following types are used by the fast-path Message.ProtoMethods method. -+// -+// To avoid polluting the public protoreflect API with types used only by -+// low-level implementations, the canonical definitions of these types are -+// in the runtime/protoiface package. The definitions here and in protoiface -+// must be kept in sync. -+type ( -+ methods = struct { -+ pragma.NoUnkeyedLiterals -+ Flags supportFlags -+ Size func(sizeInput) sizeOutput -+ Marshal func(marshalInput) (marshalOutput, error) -+ Unmarshal func(unmarshalInput) (unmarshalOutput, error) -+ Merge func(mergeInput) mergeOutput -+ CheckInitialized func(checkInitializedInput) (checkInitializedOutput, error) -+ } -+ supportFlags = uint64 -+ sizeInput = struct { -+ pragma.NoUnkeyedLiterals -+ Message Message -+ Flags uint8 -+ } -+ sizeOutput = struct { -+ pragma.NoUnkeyedLiterals -+ Size int -+ } -+ marshalInput = struct { -+ pragma.NoUnkeyedLiterals -+ Message Message -+ Buf []byte -+ Flags uint8 -+ } -+ marshalOutput = struct { -+ pragma.NoUnkeyedLiterals -+ Buf []byte -+ } -+ unmarshalInput = struct { -+ pragma.NoUnkeyedLiterals -+ Message Message -+ Buf []byte -+ Flags uint8 -+ Resolver interface { -+ FindExtensionByName(field FullName) (ExtensionType, error) -+ FindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error) -+ } -+ Depth int -+ } -+ unmarshalOutput = struct { -+ pragma.NoUnkeyedLiterals -+ Flags uint8 -+ } -+ mergeInput = struct { -+ pragma.NoUnkeyedLiterals -+ Source Message -+ Destination Message -+ } -+ mergeOutput = struct { -+ pragma.NoUnkeyedLiterals -+ Flags uint8 -+ } -+ checkInitializedInput = struct { -+ pragma.NoUnkeyedLiterals -+ Message Message -+ } -+ checkInitializedOutput = struct { -+ pragma.NoUnkeyedLiterals -+ } -+) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -new file mode 100644 -index 00000000..55aa1492 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -0,0 +1,508 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protoreflect provides interfaces to dynamically manipulate messages. -+// -+// This package includes type descriptors which describe the structure of types -+// defined in proto source files and value interfaces which provide the -+// ability to examine and manipulate the contents of messages. -+// -+// # Protocol Buffer Descriptors -+// -+// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// are immutable objects that represent protobuf type information. -+// They are wrappers around the messages declared in descriptor.proto. -+// Protobuf descriptors alone lack any information regarding Go types. -+// -+// Enums and messages generated by this module implement Enum and ProtoMessage, -+// where the Descriptor and ProtoReflect.Descriptor accessors respectively -+// return the protobuf descriptor for the values. -+// -+// The protobuf descriptor interfaces are not meant to be implemented by -+// user code since they might need to be extended in the future to support -+// additions to the protobuf language. -+// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// google.protobuf.DescriptorProto messages and protobuf descriptors. -+// -+// # Go Type Descriptors -+// -+// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// a concrete Go type that represents the associated protobuf descriptor. -+// There is commonly a one-to-one relationship between protobuf descriptors and -+// Go type descriptors, but it can potentially be a one-to-many relationship. -+// -+// Enums and messages generated by this module implement Enum and ProtoMessage, -+// where the Type and ProtoReflect.Type accessors respectively -+// return the protobuf descriptor for the values. -+// -+// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// create Go type descriptors from protobuf descriptors. -+// -+// # Value Interfaces -+// -+// The Enum and Message interfaces provide a reflective view over an -+// enum or message instance. For enums, it provides the ability to retrieve -+// the enum value number for any concrete enum type. For messages, it provides -+// the ability to access or manipulate fields of the message. -+// -+// To convert a proto.Message to a protoreflect.Message, use the -+// former's ProtoReflect method. Since the ProtoReflect method is new to the -+// v2 message interface, it may not be present on older message implementations. -+// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// to obtain a reflective view on older messages. -+// -+// # Relationships -+// -+// The following diagrams demonstrate the relationships between -+// various types declared in this package. -+// -+// ┌───────────────────────────────────┠-+// V │ -+// ┌────────────── New(n) ─────────────┠│ -+// │ │ │ -+// │ ┌──── Descriptor() ──┠│ ┌── Number() ──┠│ -+// │ │ V V │ V │ -+// â•”â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•— -+// â•‘ EnumType â•‘ â•‘ EnumDescriptor â•‘ â•‘ Enum â•‘ â•‘ EnumNumber â•‘ -+// â•šâ•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â• -+// Λ Λ │ │ -+// │ └─── Descriptor() ──┘ │ -+// │ │ -+// └────────────────── Type() ───────┘ -+// -+// • An EnumType describes a concrete Go enum type. -+// It has an EnumDescriptor and can construct an Enum instance. -+// -+// • An EnumDescriptor describes an abstract protobuf enum type. -+// -+// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// -+// ┌──────────────── New() ─────────────────┠-+// │ │ -+// │ ┌─── Descriptor() ─────┠│ ┌── Interface() ───┠-+// │ │ V V │ V -+// â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+// â•‘ MessageType â•‘ â•‘ MessageDescriptor â•‘ â•‘ Message â•‘ â•‘ ProtoMessage â•‘ -+// â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+// Λ Λ │ │ Λ │ -+// │ └──── Descriptor() ────┘ │ └─ ProtoReflect() ─┘ -+// │ │ -+// └─────────────────── Type() ─────────┘ -+// -+// • A MessageType describes a concrete Go message type. -+// It has a MessageDescriptor and can construct a Message instance. -+// Just as how Go's reflect.Type is a reflective description of a Go type, -+// a MessageType is a reflective description of a Go type for a protobuf message. -+// -+// • A MessageDescriptor describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a MessageType -+// from just a MessageDescriptor, you can consider looking up the message type -+// in the global registry using protoregistry.GlobalTypes.FindMessageByName -+// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// -+// • A Message is a reflective view over a concrete message instance. -+// Generated messages implement ProtoMessage, which can convert to a Message. -+// Just as how Go's reflect.Value is a reflective view over a Go value, -+// a Message is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the ProtoReflect method is similar to -+// calling reflect.ValueOf, and the Message.Interface method is similar to -+// calling reflect.Value.Interface. -+// -+// ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠-+// │ V │ V -+// â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+// â•‘ ExtensionType â•‘ â•‘ ExtensionTypeDescriptor â•‘ â•‘ ExtensionDescriptor â•‘ -+// â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+// Λ │ │ Λ │ Λ -+// └─────── Type() ───────┘ │ └─── may implement ────┘ │ -+// │ │ -+// └────── implements ────────┘ -+// -+// • An ExtensionType describes a concrete Go implementation of an extension. -+// It has an ExtensionTypeDescriptor and can convert to/from -+// abstract Values and Go values. -+// -+// • An ExtensionTypeDescriptor is an ExtensionDescriptor -+// which also has an ExtensionType. -+// -+// • An ExtensionDescriptor describes an abstract protobuf extension field and -+// may not always be an ExtensionTypeDescriptor. -+package protoreflect -+ -+import ( -+ "fmt" -+ "strings" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type doNotImplement pragma.DoNotImplement -+ -+// ProtoMessage is the top-level interface that all proto messages implement. -+// This is declared in the protoreflect package to avoid a cyclic dependency; -+// use the proto.Message type instead, which aliases this type. -+type ProtoMessage interface{ ProtoReflect() Message } -+ -+// Syntax is the language version of the proto file. -+type Syntax syntax -+ -+type syntax int8 // keep exact type opaque as the int type may change -+ -+const ( -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+) -+ -+// IsValid reports whether the syntax is valid. -+func (s Syntax) IsValid() bool { -+ switch s { -+ case Proto2, Proto3: -+ return true -+ default: -+ return false -+ } -+} -+ -+// String returns s as a proto source identifier (e.g., "proto2"). -+func (s Syntax) String() string { -+ switch s { -+ case Proto2: -+ return "proto2" -+ case Proto3: -+ return "proto3" -+ default: -+ return fmt.Sprintf("", s) -+ } -+} -+ -+// GoString returns s as a Go source identifier (e.g., "Proto2"). -+func (s Syntax) GoString() string { -+ switch s { -+ case Proto2: -+ return "Proto2" -+ case Proto3: -+ return "Proto3" -+ default: -+ return fmt.Sprintf("Syntax(%d)", s) -+ } -+} -+ -+// Cardinality determines whether a field is optional, required, or repeated. -+type Cardinality cardinality -+ -+type cardinality int8 // keep exact type opaque as the int type may change -+ -+// Constants as defined by the google.protobuf.Cardinality enumeration. -+const ( -+ Optional Cardinality = 1 // appears zero or one times -+ Required Cardinality = 2 // appears exactly one time; invalid with Proto3 -+ Repeated Cardinality = 3 // appears zero or more times -+) -+ -+// IsValid reports whether the cardinality is valid. -+func (c Cardinality) IsValid() bool { -+ switch c { -+ case Optional, Required, Repeated: -+ return true -+ default: -+ return false -+ } -+} -+ -+// String returns c as a proto source identifier (e.g., "optional"). -+func (c Cardinality) String() string { -+ switch c { -+ case Optional: -+ return "optional" -+ case Required: -+ return "required" -+ case Repeated: -+ return "repeated" -+ default: -+ return fmt.Sprintf("", c) -+ } -+} -+ -+// GoString returns c as a Go source identifier (e.g., "Optional"). -+func (c Cardinality) GoString() string { -+ switch c { -+ case Optional: -+ return "Optional" -+ case Required: -+ return "Required" -+ case Repeated: -+ return "Repeated" -+ default: -+ return fmt.Sprintf("Cardinality(%d)", c) -+ } -+} -+ -+// Kind indicates the basic proto kind of a field. -+type Kind kind -+ -+type kind int8 // keep exact type opaque as the int type may change -+ -+// Constants as defined by the google.protobuf.Field.Kind enumeration. -+const ( -+ BoolKind Kind = 8 -+ EnumKind Kind = 14 -+ Int32Kind Kind = 5 -+ Sint32Kind Kind = 17 -+ Uint32Kind Kind = 13 -+ Int64Kind Kind = 3 -+ Sint64Kind Kind = 18 -+ Uint64Kind Kind = 4 -+ Sfixed32Kind Kind = 15 -+ Fixed32Kind Kind = 7 -+ FloatKind Kind = 2 -+ Sfixed64Kind Kind = 16 -+ Fixed64Kind Kind = 6 -+ DoubleKind Kind = 1 -+ StringKind Kind = 9 -+ BytesKind Kind = 12 -+ MessageKind Kind = 11 -+ GroupKind Kind = 10 -+) -+ -+// IsValid reports whether the kind is valid. -+func (k Kind) IsValid() bool { -+ switch k { -+ case BoolKind, EnumKind, -+ Int32Kind, Sint32Kind, Uint32Kind, -+ Int64Kind, Sint64Kind, Uint64Kind, -+ Sfixed32Kind, Fixed32Kind, FloatKind, -+ Sfixed64Kind, Fixed64Kind, DoubleKind, -+ StringKind, BytesKind, MessageKind, GroupKind: -+ return true -+ default: -+ return false -+ } -+} -+ -+// String returns k as a proto source identifier (e.g., "bool"). -+func (k Kind) String() string { -+ switch k { -+ case BoolKind: -+ return "bool" -+ case EnumKind: -+ return "enum" -+ case Int32Kind: -+ return "int32" -+ case Sint32Kind: -+ return "sint32" -+ case Uint32Kind: -+ return "uint32" -+ case Int64Kind: -+ return "int64" -+ case Sint64Kind: -+ return "sint64" -+ case Uint64Kind: -+ return "uint64" -+ case Sfixed32Kind: -+ return "sfixed32" -+ case Fixed32Kind: -+ return "fixed32" -+ case FloatKind: -+ return "float" -+ case Sfixed64Kind: -+ return "sfixed64" -+ case Fixed64Kind: -+ return "fixed64" -+ case DoubleKind: -+ return "double" -+ case StringKind: -+ return "string" -+ case BytesKind: -+ return "bytes" -+ case MessageKind: -+ return "message" -+ case GroupKind: -+ return "group" -+ default: -+ return fmt.Sprintf("", k) -+ } -+} -+ -+// GoString returns k as a Go source identifier (e.g., "BoolKind"). -+func (k Kind) GoString() string { -+ switch k { -+ case BoolKind: -+ return "BoolKind" -+ case EnumKind: -+ return "EnumKind" -+ case Int32Kind: -+ return "Int32Kind" -+ case Sint32Kind: -+ return "Sint32Kind" -+ case Uint32Kind: -+ return "Uint32Kind" -+ case Int64Kind: -+ return "Int64Kind" -+ case Sint64Kind: -+ return "Sint64Kind" -+ case Uint64Kind: -+ return "Uint64Kind" -+ case Sfixed32Kind: -+ return "Sfixed32Kind" -+ case Fixed32Kind: -+ return "Fixed32Kind" -+ case FloatKind: -+ return "FloatKind" -+ case Sfixed64Kind: -+ return "Sfixed64Kind" -+ case Fixed64Kind: -+ return "Fixed64Kind" -+ case DoubleKind: -+ return "DoubleKind" -+ case StringKind: -+ return "StringKind" -+ case BytesKind: -+ return "BytesKind" -+ case MessageKind: -+ return "MessageKind" -+ case GroupKind: -+ return "GroupKind" -+ default: -+ return fmt.Sprintf("Kind(%d)", k) -+ } -+} -+ -+// FieldNumber is the field number in a message. -+type FieldNumber = protowire.Number -+ -+// FieldNumbers represent a list of field numbers. -+type FieldNumbers interface { -+ // Len reports the number of fields in the list. -+ Len() int -+ // Get returns the ith field number. It panics if out of bounds. -+ Get(i int) FieldNumber -+ // Has reports whether n is within the list of fields. -+ Has(n FieldNumber) bool -+ -+ doNotImplement -+} -+ -+// FieldRanges represent a list of field number ranges. -+type FieldRanges interface { -+ // Len reports the number of ranges in the list. -+ Len() int -+ // Get returns the ith range. It panics if out of bounds. -+ Get(i int) [2]FieldNumber // start inclusive; end exclusive -+ // Has reports whether n is within any of the ranges. -+ Has(n FieldNumber) bool -+ -+ doNotImplement -+} -+ -+// EnumNumber is the numeric value for an enum. -+type EnumNumber int32 -+ -+// EnumRanges represent a list of enum number ranges. -+type EnumRanges interface { -+ // Len reports the number of ranges in the list. -+ Len() int -+ // Get returns the ith range. It panics if out of bounds. -+ Get(i int) [2]EnumNumber // start inclusive; end inclusive -+ // Has reports whether n is within any of the ranges. -+ Has(n EnumNumber) bool -+ -+ doNotImplement -+} -+ -+// Name is the short name for a proto declaration. This is not the name -+// as used in Go source code, which might not be identical to the proto name. -+type Name string // e.g., "Kind" -+ -+// IsValid reports whether s is a syntactically valid name. -+// An empty name is invalid. -+func (s Name) IsValid() bool { -+ return consumeIdent(string(s)) == len(s) -+} -+ -+// Names represent a list of names. -+type Names interface { -+ // Len reports the number of names in the list. -+ Len() int -+ // Get returns the ith name. It panics if out of bounds. -+ Get(i int) Name -+ // Has reports whether s matches any names in the list. -+ Has(s Name) bool -+ -+ doNotImplement -+} -+ -+// FullName is a qualified name that uniquely identifies a proto declaration. -+// A qualified name is the concatenation of the proto package along with the -+// fully-declared name (i.e., name of parent preceding the name of the child), -+// with a '.' delimiter placed between each Name. -+// -+// This should not have any leading or trailing dots. -+type FullName string // e.g., "google.protobuf.Field.Kind" -+ -+// IsValid reports whether s is a syntactically valid full name. -+// An empty full name is invalid. -+func (s FullName) IsValid() bool { -+ i := consumeIdent(string(s)) -+ if i < 0 { -+ return false -+ } -+ for len(s) > i { -+ if s[i] != '.' { -+ return false -+ } -+ i++ -+ n := consumeIdent(string(s[i:])) -+ if n < 0 { -+ return false -+ } -+ i += n -+ } -+ return true -+} -+ -+func consumeIdent(s string) (i int) { -+ if len(s) == 0 || !isLetter(s[i]) { -+ return -1 -+ } -+ i++ -+ for len(s) > i && isLetterDigit(s[i]) { -+ i++ -+ } -+ return i -+} -+func isLetter(c byte) bool { -+ return c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') -+} -+func isLetterDigit(c byte) bool { -+ return isLetter(c) || ('0' <= c && c <= '9') -+} -+ -+// Name returns the short name, which is the last identifier segment. -+// A single segment FullName is the Name itself. -+func (n FullName) Name() Name { -+ if i := strings.LastIndexByte(string(n), '.'); i >= 0 { -+ return Name(n[i+1:]) -+ } -+ return Name(n) -+} -+ -+// Parent returns the full name with the trailing identifier removed. -+// A single segment FullName has no parent. -+func (n FullName) Parent() FullName { -+ if i := strings.LastIndexByte(string(n), '.'); i >= 0 { -+ return n[:i] -+ } -+ return "" -+} -+ -+// Append returns the qualified name appended with the provided short name. -+// -+// Invariant: n == n.Parent().Append(n.Name()) // assuming n is valid -+func (n FullName) Append(s Name) FullName { -+ if n == "" { -+ return FullName(s) -+ } -+ return n + "." + FullName(s) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go -new file mode 100644 -index 00000000..0b994288 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go -@@ -0,0 +1,129 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+import ( -+ "strconv" -+) -+ -+// SourceLocations is a list of source locations. -+type SourceLocations interface { -+ // Len reports the number of source locations in the proto file. -+ Len() int -+ // Get returns the ith SourceLocation. It panics if out of bounds. -+ Get(int) SourceLocation -+ -+ // ByPath returns the SourceLocation for the given path, -+ // returning the first location if multiple exist for the same path. -+ // If multiple locations exist for the same path, -+ // then SourceLocation.Next index can be used to identify the -+ // index of the next SourceLocation. -+ // If no location exists for this path, it returns the zero value. -+ ByPath(path SourcePath) SourceLocation -+ -+ // ByDescriptor returns the SourceLocation for the given descriptor, -+ // returning the first location if multiple exist for the same path. -+ // If no location exists for this descriptor, it returns the zero value. -+ ByDescriptor(desc Descriptor) SourceLocation -+ -+ doNotImplement -+} -+ -+// SourceLocation describes a source location and -+// corresponds with the google.protobuf.SourceCodeInfo.Location message. -+type SourceLocation struct { -+ // Path is the path to the declaration from the root file descriptor. -+ // The contents of this slice must not be mutated. -+ Path SourcePath -+ -+ // StartLine and StartColumn are the zero-indexed starting location -+ // in the source file for the declaration. -+ StartLine, StartColumn int -+ // EndLine and EndColumn are the zero-indexed ending location -+ // in the source file for the declaration. -+ // In the descriptor.proto, the end line may be omitted if it is identical -+ // to the start line. Here, it is always populated. -+ EndLine, EndColumn int -+ -+ // LeadingDetachedComments are the leading detached comments -+ // for the declaration. The contents of this slice must not be mutated. -+ LeadingDetachedComments []string -+ // LeadingComments is the leading attached comment for the declaration. -+ LeadingComments string -+ // TrailingComments is the trailing attached comment for the declaration. -+ TrailingComments string -+ -+ // Next is an index into SourceLocations for the next source location that -+ // has the same Path. It is zero if there is no next location. -+ Next int -+} -+ -+// SourcePath identifies part of a file descriptor for a source location. -+// The SourcePath is a sequence of either field numbers or indexes into -+// a repeated field that form a path starting from the root file descriptor. -+// -+// See google.protobuf.SourceCodeInfo.Location.path. -+type SourcePath []int32 -+ -+// Equal reports whether p1 equals p2. -+func (p1 SourcePath) Equal(p2 SourcePath) bool { -+ if len(p1) != len(p2) { -+ return false -+ } -+ for i := range p1 { -+ if p1[i] != p2[i] { -+ return false -+ } -+ } -+ return true -+} -+ -+// String formats the path in a humanly readable manner. -+// The output is guaranteed to be deterministic, -+// making it suitable for use as a key into a Go map. -+// It is not guaranteed to be stable as the exact output could change -+// in a future version of this module. -+// -+// Example output: -+// -+// .message_type[6].nested_type[15].field[3] -+func (p SourcePath) String() string { -+ b := p.appendFileDescriptorProto(nil) -+ for _, i := range p { -+ b = append(b, '.') -+ b = strconv.AppendInt(b, int64(i), 10) -+ } -+ return string(b) -+} -+ -+type appendFunc func(*SourcePath, []byte) []byte -+ -+func (p *SourcePath) appendSingularField(b []byte, name string, f appendFunc) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ b = append(b, '.') -+ b = append(b, name...) -+ *p = (*p)[1:] -+ if f != nil { -+ b = f(p, b) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendRepeatedField(b []byte, name string, f appendFunc) []byte { -+ b = p.appendSingularField(b, name, nil) -+ if len(*p) == 0 || (*p)[0] < 0 { -+ return b -+ } -+ b = append(b, '[') -+ b = strconv.AppendUint(b, uint64((*p)[0]), 10) -+ b = append(b, ']') -+ *p = (*p)[1:] -+ if f != nil { -+ b = f(p, b) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -new file mode 100644 -index 00000000..54ce326d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -0,0 +1,475 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package protoreflect -+ -+func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendSingularField(b, "package", nil) -+ case 3: -+ b = p.appendRepeatedField(b, "dependency", nil) -+ case 10: -+ b = p.appendRepeatedField(b, "public_dependency", nil) -+ case 11: -+ b = p.appendRepeatedField(b, "weak_dependency", nil) -+ case 4: -+ b = p.appendRepeatedField(b, "message_type", (*SourcePath).appendDescriptorProto) -+ case 5: -+ b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) -+ case 6: -+ b = p.appendRepeatedField(b, "service", (*SourcePath).appendServiceDescriptorProto) -+ case 7: -+ b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) -+ case 8: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendFileOptions) -+ case 9: -+ b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) -+ case 12: -+ b = p.appendSingularField(b, "syntax", nil) -+ case 13: -+ b = p.appendSingularField(b, "edition", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendRepeatedField(b, "field", (*SourcePath).appendFieldDescriptorProto) -+ case 6: -+ b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) -+ case 3: -+ b = p.appendRepeatedField(b, "nested_type", (*SourcePath).appendDescriptorProto) -+ case 4: -+ b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) -+ case 5: -+ b = p.appendRepeatedField(b, "extension_range", (*SourcePath).appendDescriptorProto_ExtensionRange) -+ case 8: -+ b = p.appendRepeatedField(b, "oneof_decl", (*SourcePath).appendOneofDescriptorProto) -+ case 7: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendMessageOptions) -+ case 9: -+ b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendDescriptorProto_ReservedRange) -+ case 10: -+ b = p.appendRepeatedField(b, "reserved_name", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendRepeatedField(b, "value", (*SourcePath).appendEnumValueDescriptorProto) -+ case 3: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendEnumOptions) -+ case 4: -+ b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange) -+ case 5: -+ b = p.appendRepeatedField(b, "reserved_name", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendRepeatedField(b, "method", (*SourcePath).appendMethodDescriptorProto) -+ case 3: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendServiceOptions) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 3: -+ b = p.appendSingularField(b, "number", nil) -+ case 4: -+ b = p.appendSingularField(b, "label", nil) -+ case 5: -+ b = p.appendSingularField(b, "type", nil) -+ case 6: -+ b = p.appendSingularField(b, "type_name", nil) -+ case 2: -+ b = p.appendSingularField(b, "extendee", nil) -+ case 7: -+ b = p.appendSingularField(b, "default_value", nil) -+ case 9: -+ b = p.appendSingularField(b, "oneof_index", nil) -+ case 10: -+ b = p.appendSingularField(b, "json_name", nil) -+ case 8: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendFieldOptions) -+ case 17: -+ b = p.appendSingularField(b, "proto3_optional", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendFileOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "java_package", nil) -+ case 8: -+ b = p.appendSingularField(b, "java_outer_classname", nil) -+ case 10: -+ b = p.appendSingularField(b, "java_multiple_files", nil) -+ case 20: -+ b = p.appendSingularField(b, "java_generate_equals_and_hash", nil) -+ case 27: -+ b = p.appendSingularField(b, "java_string_check_utf8", nil) -+ case 9: -+ b = p.appendSingularField(b, "optimize_for", nil) -+ case 11: -+ b = p.appendSingularField(b, "go_package", nil) -+ case 16: -+ b = p.appendSingularField(b, "cc_generic_services", nil) -+ case 17: -+ b = p.appendSingularField(b, "java_generic_services", nil) -+ case 18: -+ b = p.appendSingularField(b, "py_generic_services", nil) -+ case 42: -+ b = p.appendSingularField(b, "php_generic_services", nil) -+ case 23: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 31: -+ b = p.appendSingularField(b, "cc_enable_arenas", nil) -+ case 36: -+ b = p.appendSingularField(b, "objc_class_prefix", nil) -+ case 37: -+ b = p.appendSingularField(b, "csharp_namespace", nil) -+ case 39: -+ b = p.appendSingularField(b, "swift_prefix", nil) -+ case 40: -+ b = p.appendSingularField(b, "php_class_prefix", nil) -+ case 41: -+ b = p.appendSingularField(b, "php_namespace", nil) -+ case 44: -+ b = p.appendSingularField(b, "php_metadata_namespace", nil) -+ case 45: -+ b = p.appendSingularField(b, "ruby_package", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendSourceCodeInfo(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendRepeatedField(b, "location", (*SourcePath).appendSourceCodeInfo_Location) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "start", nil) -+ case 2: -+ b = p.appendSingularField(b, "end", nil) -+ case 3: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendExtensionRangeOptions) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendOneofOptions) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendMessageOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "message_set_wire_format", nil) -+ case 2: -+ b = p.appendSingularField(b, "no_standard_descriptor_accessor", nil) -+ case 3: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 7: -+ b = p.appendSingularField(b, "map_entry", nil) -+ case 11: -+ b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "start", nil) -+ case 2: -+ b = p.appendSingularField(b, "end", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendSingularField(b, "number", nil) -+ case 3: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendEnumValueOptions) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendEnumOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 2: -+ b = p.appendSingularField(b, "allow_alias", nil) -+ case 3: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 6: -+ b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "start", nil) -+ case 2: -+ b = p.appendSingularField(b, "end", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name", nil) -+ case 2: -+ b = p.appendSingularField(b, "input_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "output_type", nil) -+ case 4: -+ b = p.appendSingularField(b, "options", (*SourcePath).appendMethodOptions) -+ case 5: -+ b = p.appendSingularField(b, "client_streaming", nil) -+ case 6: -+ b = p.appendSingularField(b, "server_streaming", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendServiceOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 33: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendFieldOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "ctype", nil) -+ case 2: -+ b = p.appendSingularField(b, "packed", nil) -+ case 6: -+ b = p.appendSingularField(b, "jstype", nil) -+ case 5: -+ b = p.appendSingularField(b, "lazy", nil) -+ case 15: -+ b = p.appendSingularField(b, "unverified_lazy", nil) -+ case 3: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 10: -+ b = p.appendSingularField(b, "weak", nil) -+ case 16: -+ b = p.appendSingularField(b, "debug_redact", nil) -+ case 17: -+ b = p.appendSingularField(b, "retention", nil) -+ case 18: -+ b = p.appendSingularField(b, "target", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 2: -+ b = p.appendRepeatedField(b, "name", (*SourcePath).appendUninterpretedOption_NamePart) -+ case 3: -+ b = p.appendSingularField(b, "identifier_value", nil) -+ case 4: -+ b = p.appendSingularField(b, "positive_int_value", nil) -+ case 5: -+ b = p.appendSingularField(b, "negative_int_value", nil) -+ case 6: -+ b = p.appendSingularField(b, "double_value", nil) -+ case 7: -+ b = p.appendSingularField(b, "string_value", nil) -+ case 8: -+ b = p.appendSingularField(b, "aggregate_value", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendRepeatedField(b, "path", nil) -+ case 2: -+ b = p.appendRepeatedField(b, "span", nil) -+ case 3: -+ b = p.appendSingularField(b, "leading_comments", nil) -+ case 4: -+ b = p.appendSingularField(b, "trailing_comments", nil) -+ case 6: -+ b = p.appendRepeatedField(b, "leading_detached_comments", nil) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendOneofOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendMethodOptions(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 33: -+ b = p.appendSingularField(b, "deprecated", nil) -+ case 34: -+ b = p.appendSingularField(b, "idempotency_level", nil) -+ case 999: -+ b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ } -+ return b -+} -+ -+func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "name_part", nil) -+ case 2: -+ b = p.appendSingularField(b, "is_extension", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -new file mode 100644 -index 00000000..3867470d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -0,0 +1,666 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+// Descriptor provides a set of accessors that are common to every descriptor. -+// Each descriptor type wraps the equivalent google.protobuf.XXXDescriptorProto, -+// but provides efficient lookup and immutability. -+// -+// Each descriptor is comparable. Equality implies that the two types are -+// exactly identical. However, it is possible for the same semantically -+// identical proto type to be represented by multiple type descriptors. -+// -+// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// If t1 == t2, then the types are definitely equal and all accessors return -+// the same information. However, if t1 != t2, then it is still possible that -+// they still represent the same proto type (e.g., t1.FullName == t2.FullName). -+// This can occur if a descriptor type is created dynamically, or multiple -+// versions of the same proto type are accidentally linked into the Go binary. -+type Descriptor interface { -+ // ParentFile returns the parent file descriptor that this descriptor -+ // is declared within. The parent file for the file descriptor is itself. -+ // -+ // Support for this functionality is optional and may return nil. -+ ParentFile() FileDescriptor -+ -+ // Parent returns the parent containing this descriptor declaration. -+ // The following shows the mapping from child type to possible parent types: -+ // -+ // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+ // â•‘ Child type │ Possible parent types â•‘ -+ // â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•ªâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ -+ // â•‘ FileDescriptor │ nil â•‘ -+ // â•‘ MessageDescriptor │ FileDescriptor, MessageDescriptor â•‘ -+ // â•‘ FieldDescriptor │ FileDescriptor, MessageDescriptor â•‘ -+ // â•‘ OneofDescriptor │ MessageDescriptor â•‘ -+ // â•‘ EnumDescriptor │ FileDescriptor, MessageDescriptor â•‘ -+ // â•‘ EnumValueDescriptor │ EnumDescriptor â•‘ -+ // â•‘ ServiceDescriptor │ FileDescriptor â•‘ -+ // â•‘ MethodDescriptor │ ServiceDescriptor â•‘ -+ // â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+ // -+ // Support for this functionality is optional and may return nil. -+ Parent() Descriptor -+ -+ // Index returns the index of this descriptor within its parent. -+ // It returns 0 if the descriptor does not have a parent or if the parent -+ // is unknown. -+ Index() int -+ -+ // Syntax is the protobuf syntax. -+ Syntax() Syntax // e.g., Proto2 or Proto3 -+ -+ // Name is the short name of the declaration (i.e., FullName.Name). -+ Name() Name // e.g., "Any" -+ -+ // FullName is the fully-qualified name of the declaration. -+ // -+ // The FullName is a concatenation of the full name of the type that this -+ // type is declared within and the declaration name. For example, -+ // field "foo_field" in message "proto.package.MyMessage" is -+ // uniquely identified as "proto.package.MyMessage.foo_field". -+ // Enum values are an exception to the rule (see EnumValueDescriptor). -+ FullName() FullName // e.g., "google.protobuf.Any" -+ -+ // IsPlaceholder reports whether type information is missing since a -+ // dependency is not resolved, in which case only name information is known. -+ // -+ // Placeholder types may only be returned by the following accessors -+ // as a result of unresolved dependencies or weak imports: -+ // -+ // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+ // â•‘ Accessor │ Descriptor â•‘ -+ // â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•ªâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ -+ // â•‘ FileImports.FileDescriptor │ FileDescriptor â•‘ -+ // â•‘ FieldDescriptor.Enum │ EnumDescriptor â•‘ -+ // â•‘ FieldDescriptor.Message │ MessageDescriptor â•‘ -+ // â•‘ FieldDescriptor.DefaultEnumValue │ EnumValueDescriptor â•‘ -+ // â•‘ FieldDescriptor.ContainingMessage │ MessageDescriptor â•‘ -+ // â•‘ MethodDescriptor.Input │ MessageDescriptor â•‘ -+ // â•‘ MethodDescriptor.Output │ MessageDescriptor â•‘ -+ // â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+ // -+ // If true, only Name and FullName are valid. -+ // For FileDescriptor, the Path is also valid. -+ IsPlaceholder() bool -+ -+ // Options returns the descriptor options. The caller must not modify -+ // the returned value. -+ // -+ // To avoid a dependency cycle, this function returns a proto.Message value. -+ // The proto message type returned for each descriptor type is as follows: -+ // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+ // â•‘ Go type │ Protobuf message type â•‘ -+ // â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•ªâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ -+ // â•‘ FileDescriptor │ google.protobuf.FileOptions â•‘ -+ // â•‘ EnumDescriptor │ google.protobuf.EnumOptions â•‘ -+ // â•‘ EnumValueDescriptor │ google.protobuf.EnumValueOptions â•‘ -+ // â•‘ MessageDescriptor │ google.protobuf.MessageOptions â•‘ -+ // â•‘ FieldDescriptor │ google.protobuf.FieldOptions â•‘ -+ // â•‘ OneofDescriptor │ google.protobuf.OneofOptions â•‘ -+ // â•‘ ServiceDescriptor │ google.protobuf.ServiceOptions â•‘ -+ // â•‘ MethodDescriptor │ google.protobuf.MethodOptions â•‘ -+ // â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+ // -+ // This method returns a typed nil-pointer if no options are present. -+ // The caller must import the descriptorpb package to use this. -+ Options() ProtoMessage -+ -+ doNotImplement -+} -+ -+// FileDescriptor describes the types in a complete proto file and -+// corresponds with the google.protobuf.FileDescriptorProto message. -+// -+// Top-level declarations: -+// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+type FileDescriptor interface { -+ Descriptor // Descriptor.FullName is identical to Package -+ -+ // Path returns the file name, relative to the source tree root. -+ Path() string // e.g., "path/to/file.proto" -+ // Package returns the protobuf package namespace. -+ Package() FullName // e.g., "google.protobuf" -+ -+ // Imports is a list of imported proto files. -+ Imports() FileImports -+ -+ // Enums is a list of the top-level enum declarations. -+ Enums() EnumDescriptors -+ // Messages is a list of the top-level message declarations. -+ Messages() MessageDescriptors -+ // Extensions is a list of the top-level extension declarations. -+ Extensions() ExtensionDescriptors -+ // Services is a list of the top-level service declarations. -+ Services() ServiceDescriptors -+ -+ // SourceLocations is a list of source locations. -+ SourceLocations() SourceLocations -+ -+ isFileDescriptor -+} -+type isFileDescriptor interface{ ProtoType(FileDescriptor) } -+ -+// FileImports is a list of file imports. -+type FileImports interface { -+ // Len reports the number of files imported by this proto file. -+ Len() int -+ // Get returns the ith FileImport. It panics if out of bounds. -+ Get(i int) FileImport -+ -+ doNotImplement -+} -+ -+// FileImport is the declaration for a proto file import. -+type FileImport struct { -+ // FileDescriptor is the file type for the given import. -+ // It is a placeholder descriptor if IsWeak is set or if a dependency has -+ // not been regenerated to implement the new reflection APIs. -+ FileDescriptor -+ -+ // IsPublic reports whether this is a public import, which causes this file -+ // to alias declarations within the imported file. The intended use cases -+ // for this feature is the ability to move proto files without breaking -+ // existing dependencies. -+ // -+ // The current file and the imported file must be within proto package. -+ IsPublic bool -+ -+ // IsWeak reports whether this is a weak import, which does not impose -+ // a direct dependency on the target file. -+ // -+ // Weak imports are a legacy proto1 feature. Equivalent behavior is -+ // achieved using proto2 extension fields or proto3 Any messages. -+ IsWeak bool -+} -+ -+// MessageDescriptor describes a message and -+// corresponds with the google.protobuf.DescriptorProto message. -+// -+// Nested declarations: -+// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, -+// and/or MessageDescriptor. -+type MessageDescriptor interface { -+ Descriptor -+ -+ // IsMapEntry indicates that this is an auto-generated message type to -+ // represent the entry type for a map field. -+ // -+ // Map entry messages have only two fields: -+ // • a "key" field with a field number of 1 -+ // • a "value" field with a field number of 2 -+ // The key and value types are determined by these two fields. -+ // -+ // If IsMapEntry is true, it implies that FieldDescriptor.IsMap is true -+ // for some field with this message type. -+ IsMapEntry() bool -+ -+ // Fields is a list of nested field declarations. -+ Fields() FieldDescriptors -+ // Oneofs is a list of nested oneof declarations. -+ Oneofs() OneofDescriptors -+ -+ // ReservedNames is a list of reserved field names. -+ ReservedNames() Names -+ // ReservedRanges is a list of reserved ranges of field numbers. -+ ReservedRanges() FieldRanges -+ // RequiredNumbers is a list of required field numbers. -+ // In Proto3, it is always an empty list. -+ RequiredNumbers() FieldNumbers -+ // ExtensionRanges is the field ranges used for extension fields. -+ // In Proto3, it is always an empty ranges. -+ ExtensionRanges() FieldRanges -+ // ExtensionRangeOptions returns the ith extension range options. -+ // -+ // To avoid a dependency cycle, this method returns a proto.Message value, -+ // which always contains a google.protobuf.ExtensionRangeOptions message. -+ // This method returns a typed nil-pointer if no options are present. -+ // The caller must import the descriptorpb package to use this. -+ ExtensionRangeOptions(i int) ProtoMessage -+ -+ // Enums is a list of nested enum declarations. -+ Enums() EnumDescriptors -+ // Messages is a list of nested message declarations. -+ Messages() MessageDescriptors -+ // Extensions is a list of nested extension declarations. -+ Extensions() ExtensionDescriptors -+ -+ isMessageDescriptor -+} -+type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } -+ -+// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// It is recommended that implementations of this interface also implement the -+// MessageFieldTypes interface. -+type MessageType interface { -+ // New returns a newly allocated empty message. -+ // It may return nil for synthetic messages representing a map entry. -+ New() Message -+ -+ // Zero returns an empty, read-only message. -+ // It may return nil for synthetic messages representing a map entry. -+ Zero() Message -+ -+ // Descriptor returns the message descriptor. -+ // -+ // Invariant: t.Descriptor() == t.New().Descriptor() -+ Descriptor() MessageDescriptor -+} -+ -+// MessageFieldTypes extends a MessageType by providing type information -+// regarding enums and messages referenced by the message fields. -+type MessageFieldTypes interface { -+ MessageType -+ -+ // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // It returns nil if the ith field is not an enum kind. -+ // It panics if out of bounds. -+ // -+ // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() -+ Enum(i int) EnumType -+ -+ // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // It returns nil if the ith field is not a message or group kind. -+ // It panics if out of bounds. -+ // -+ // Invariant: mt.Message(i).Descriptor() == mt.Descriptor().Fields(i).Message() -+ Message(i int) MessageType -+} -+ -+// MessageDescriptors is a list of message declarations. -+type MessageDescriptors interface { -+ // Len reports the number of messages. -+ Len() int -+ // Get returns the ith MessageDescriptor. It panics if out of bounds. -+ Get(i int) MessageDescriptor -+ // ByName returns the MessageDescriptor for a message named s. -+ // It returns nil if not found. -+ ByName(s Name) MessageDescriptor -+ -+ doNotImplement -+} -+ -+// FieldDescriptor describes a field within a message and -+// corresponds with the google.protobuf.FieldDescriptorProto message. -+// -+// It is used for both normal fields defined within the parent message -+// (e.g., MessageDescriptor.Fields) and fields that extend some remote message -+// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+type FieldDescriptor interface { -+ Descriptor -+ -+ // Number reports the unique number for this field. -+ Number() FieldNumber -+ // Cardinality reports the cardinality for this field. -+ Cardinality() Cardinality -+ // Kind reports the basic kind for this field. -+ Kind() Kind -+ -+ // HasJSONName reports whether this field has an explicitly set JSON name. -+ HasJSONName() bool -+ -+ // JSONName reports the name used for JSON serialization. -+ // It is usually the camel-cased form of the field name. -+ // Extension fields are represented by the full name surrounded by brackets. -+ JSONName() string -+ -+ // TextName reports the name used for text serialization. -+ // It is usually the name of the field, except that groups use the name -+ // of the inlined message, and extension fields are represented by the -+ // full name surrounded by brackets. -+ TextName() string -+ -+ // HasPresence reports whether the field distinguishes between unpopulated -+ // and default values. -+ HasPresence() bool -+ -+ // IsExtension reports whether this is an extension field. If false, -+ // then Parent and ContainingMessage refer to the same message. -+ // Otherwise, ContainingMessage and Parent likely differ. -+ IsExtension() bool -+ -+ // HasOptionalKeyword reports whether the "optional" keyword was explicitly -+ // specified in the source .proto file. -+ HasOptionalKeyword() bool -+ -+ // IsWeak reports whether this is a weak field, which does not impose a -+ // direct dependency on the target type. -+ // If true, then Message returns a placeholder type. -+ IsWeak() bool -+ -+ // IsPacked reports whether repeated primitive numeric kinds should be -+ // serialized using a packed encoding. -+ // If true, then it implies Cardinality is Repeated. -+ IsPacked() bool -+ -+ // IsList reports whether this field represents a list, -+ // where the value type for the associated field is a List. -+ // It is equivalent to checking whether Cardinality is Repeated and -+ // that IsMap reports false. -+ IsList() bool -+ -+ // IsMap reports whether this field represents a map, -+ // where the value type for the associated field is a Map. -+ // It is equivalent to checking whether Cardinality is Repeated, -+ // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ IsMap() bool -+ -+ // MapKey returns the field descriptor for the key in the map entry. -+ // It returns nil if IsMap reports false. -+ MapKey() FieldDescriptor -+ -+ // MapValue returns the field descriptor for the value in the map entry. -+ // It returns nil if IsMap reports false. -+ MapValue() FieldDescriptor -+ -+ // HasDefault reports whether this field has a default value. -+ HasDefault() bool -+ -+ // Default returns the default value for scalar fields. -+ // For proto2, it is the default value as specified in the proto file, -+ // or the zero value if unspecified. -+ // For proto3, it is always the zero value of the scalar. -+ // The Value type is determined by the Kind. -+ Default() Value -+ -+ // DefaultEnumValue returns the enum value descriptor for the default value -+ // of an enum field, and is nil for any other kind of field. -+ DefaultEnumValue() EnumValueDescriptor -+ -+ // ContainingOneof is the containing oneof that this field belongs to, -+ // and is nil if this field is not part of a oneof. -+ ContainingOneof() OneofDescriptor -+ -+ // ContainingMessage is the containing message that this field belongs to. -+ // For extension fields, this may not necessarily be the parent message -+ // that the field is declared within. -+ ContainingMessage() MessageDescriptor -+ -+ // Enum is the enum descriptor if Kind is EnumKind. -+ // It returns nil for any other Kind. -+ Enum() EnumDescriptor -+ -+ // Message is the message descriptor if Kind is -+ // MessageKind or GroupKind. It returns nil for any other Kind. -+ Message() MessageDescriptor -+ -+ isFieldDescriptor -+} -+type isFieldDescriptor interface{ ProtoType(FieldDescriptor) } -+ -+// FieldDescriptors is a list of field declarations. -+type FieldDescriptors interface { -+ // Len reports the number of fields. -+ Len() int -+ // Get returns the ith FieldDescriptor. It panics if out of bounds. -+ Get(i int) FieldDescriptor -+ // ByName returns the FieldDescriptor for a field named s. -+ // It returns nil if not found. -+ ByName(s Name) FieldDescriptor -+ // ByJSONName returns the FieldDescriptor for a field with s as the JSON name. -+ // It returns nil if not found. -+ ByJSONName(s string) FieldDescriptor -+ // ByTextName returns the FieldDescriptor for a field with s as the text name. -+ // It returns nil if not found. -+ ByTextName(s string) FieldDescriptor -+ // ByNumber returns the FieldDescriptor for a field numbered n. -+ // It returns nil if not found. -+ ByNumber(n FieldNumber) FieldDescriptor -+ -+ doNotImplement -+} -+ -+// OneofDescriptor describes a oneof field set within a given message and -+// corresponds with the google.protobuf.OneofDescriptorProto message. -+type OneofDescriptor interface { -+ Descriptor -+ -+ // IsSynthetic reports whether this is a synthetic oneof created to support -+ // proto3 optional semantics. If true, Fields contains exactly one field -+ // with HasOptionalKeyword specified. -+ IsSynthetic() bool -+ -+ // Fields is a list of fields belonging to this oneof. -+ Fields() FieldDescriptors -+ -+ isOneofDescriptor -+} -+type isOneofDescriptor interface{ ProtoType(OneofDescriptor) } -+ -+// OneofDescriptors is a list of oneof declarations. -+type OneofDescriptors interface { -+ // Len reports the number of oneof fields. -+ Len() int -+ // Get returns the ith OneofDescriptor. It panics if out of bounds. -+ Get(i int) OneofDescriptor -+ // ByName returns the OneofDescriptor for a oneof named s. -+ // It returns nil if not found. -+ ByName(s Name) OneofDescriptor -+ -+ doNotImplement -+} -+ -+// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+type ExtensionDescriptor = FieldDescriptor -+ -+// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+type ExtensionTypeDescriptor interface { -+ ExtensionDescriptor -+ -+ // Type returns the associated ExtensionType. -+ Type() ExtensionType -+ -+ // Descriptor returns the plain ExtensionDescriptor without the -+ // associated ExtensionType. -+ Descriptor() ExtensionDescriptor -+} -+ -+// ExtensionDescriptors is a list of field declarations. -+type ExtensionDescriptors interface { -+ // Len reports the number of fields. -+ Len() int -+ // Get returns the ith ExtensionDescriptor. It panics if out of bounds. -+ Get(i int) ExtensionDescriptor -+ // ByName returns the ExtensionDescriptor for a field named s. -+ // It returns nil if not found. -+ ByName(s Name) ExtensionDescriptor -+ -+ doNotImplement -+} -+ -+// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// Go implementation. The nested field descriptor must be for a extension field. -+// -+// While a normal field is a member of the parent message that it is declared -+// within (see Descriptor.Parent), an extension field is a member of some other -+// target message (see ExtensionDescriptor.Extendee) and may have no -+// relationship with the parent. However, the full name of an extension field is -+// relative to the parent that it is declared within. -+// -+// For example: -+// -+// syntax = "proto2"; -+// package example; -+// message FooMessage { -+// extensions 100 to max; -+// } -+// message BarMessage { -+// extends FooMessage { optional BarMessage bar_field = 100; } -+// } -+// -+// Field "bar_field" is an extension of FooMessage, but its full name is -+// "example.BarMessage.bar_field" instead of "example.FooMessage.bar_field". -+type ExtensionType interface { -+ // New returns a new value for the field. -+ // For scalars, this returns the default value in native Go form. -+ New() Value -+ -+ // Zero returns a new value for the field. -+ // For scalars, this returns the default value in native Go form. -+ // For composite types, this returns an empty, read-only message, list, or map. -+ Zero() Value -+ -+ // TypeDescriptor returns the extension type descriptor. -+ TypeDescriptor() ExtensionTypeDescriptor -+ -+ // ValueOf wraps the input and returns it as a Value. -+ // ValueOf panics if the input value is invalid or not the appropriate type. -+ // -+ // ValueOf is more extensive than protoreflect.ValueOf for a given field's -+ // value as it has more type information available. -+ ValueOf(interface{}) Value -+ -+ // InterfaceOf completely unwraps the Value to the underlying Go type. -+ // InterfaceOf panics if the input is nil or does not represent the -+ // appropriate underlying Go type. For composite types, it panics if the -+ // value is not mutable. -+ // -+ // InterfaceOf is able to unwrap the Value further than Value.Interface -+ // as it has more type information available. -+ InterfaceOf(Value) interface{} -+ -+ // IsValidValue reports whether the Value is valid to assign to the field. -+ IsValidValue(Value) bool -+ -+ // IsValidInterface reports whether the input is valid to assign to the field. -+ IsValidInterface(interface{}) bool -+} -+ -+// EnumDescriptor describes an enum and -+// corresponds with the google.protobuf.EnumDescriptorProto message. -+// -+// Nested declarations: -+// EnumValueDescriptor. -+type EnumDescriptor interface { -+ Descriptor -+ -+ // Values is a list of nested enum value declarations. -+ Values() EnumValueDescriptors -+ -+ // ReservedNames is a list of reserved enum names. -+ ReservedNames() Names -+ // ReservedRanges is a list of reserved ranges of enum numbers. -+ ReservedRanges() EnumRanges -+ -+ isEnumDescriptor -+} -+type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } -+ -+// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+type EnumType interface { -+ // New returns an instance of this enum type with its value set to n. -+ New(n EnumNumber) Enum -+ -+ // Descriptor returns the enum descriptor. -+ // -+ // Invariant: t.Descriptor() == t.New(0).Descriptor() -+ Descriptor() EnumDescriptor -+} -+ -+// EnumDescriptors is a list of enum declarations. -+type EnumDescriptors interface { -+ // Len reports the number of enum types. -+ Len() int -+ // Get returns the ith EnumDescriptor. It panics if out of bounds. -+ Get(i int) EnumDescriptor -+ // ByName returns the EnumDescriptor for an enum named s. -+ // It returns nil if not found. -+ ByName(s Name) EnumDescriptor -+ -+ doNotImplement -+} -+ -+// EnumValueDescriptor describes an enum value and -+// corresponds with the google.protobuf.EnumValueDescriptorProto message. -+// -+// All other proto declarations are in the namespace of the parent. -+// However, enum values do not follow this rule and are within the namespace -+// of the parent's parent (i.e., they are a sibling of the containing enum). -+// Thus, a value named "FOO_VALUE" declared within an enum uniquely identified -+// as "proto.package.MyEnum" has a full name of "proto.package.FOO_VALUE". -+type EnumValueDescriptor interface { -+ Descriptor -+ -+ // Number returns the enum value as an integer. -+ Number() EnumNumber -+ -+ isEnumValueDescriptor -+} -+type isEnumValueDescriptor interface{ ProtoType(EnumValueDescriptor) } -+ -+// EnumValueDescriptors is a list of enum value declarations. -+type EnumValueDescriptors interface { -+ // Len reports the number of enum values. -+ Len() int -+ // Get returns the ith EnumValueDescriptor. It panics if out of bounds. -+ Get(i int) EnumValueDescriptor -+ // ByName returns the EnumValueDescriptor for the enum value named s. -+ // It returns nil if not found. -+ ByName(s Name) EnumValueDescriptor -+ // ByNumber returns the EnumValueDescriptor for the enum value numbered n. -+ // If multiple have the same number, the first one defined is returned -+ // It returns nil if not found. -+ ByNumber(n EnumNumber) EnumValueDescriptor -+ -+ doNotImplement -+} -+ -+// ServiceDescriptor describes a service and -+// corresponds with the google.protobuf.ServiceDescriptorProto message. -+// -+// Nested declarations: MethodDescriptor. -+type ServiceDescriptor interface { -+ Descriptor -+ -+ // Methods is a list of nested message declarations. -+ Methods() MethodDescriptors -+ -+ isServiceDescriptor -+} -+type isServiceDescriptor interface{ ProtoType(ServiceDescriptor) } -+ -+// ServiceDescriptors is a list of service declarations. -+type ServiceDescriptors interface { -+ // Len reports the number of services. -+ Len() int -+ // Get returns the ith ServiceDescriptor. It panics if out of bounds. -+ Get(i int) ServiceDescriptor -+ // ByName returns the ServiceDescriptor for a service named s. -+ // It returns nil if not found. -+ ByName(s Name) ServiceDescriptor -+ -+ doNotImplement -+} -+ -+// MethodDescriptor describes a method and -+// corresponds with the google.protobuf.MethodDescriptorProto message. -+type MethodDescriptor interface { -+ Descriptor -+ -+ // Input is the input message descriptor. -+ Input() MessageDescriptor -+ // Output is the output message descriptor. -+ Output() MessageDescriptor -+ // IsStreamingClient reports whether the client streams multiple messages. -+ IsStreamingClient() bool -+ // IsStreamingServer reports whether the server streams multiple messages. -+ IsStreamingServer() bool -+ -+ isMethodDescriptor -+} -+type isMethodDescriptor interface{ ProtoType(MethodDescriptor) } -+ -+// MethodDescriptors is a list of method declarations. -+type MethodDescriptors interface { -+ // Len reports the number of methods. -+ Len() int -+ // Get returns the ith MethodDescriptor. It panics if out of bounds. -+ Get(i int) MethodDescriptor -+ // ByName returns the MethodDescriptor for a service method named s. -+ // It returns nil if not found. -+ ByName(s Name) MethodDescriptor -+ -+ doNotImplement -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -new file mode 100644 -index 00000000..37601b78 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -0,0 +1,285 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+import "google.golang.org/protobuf/encoding/protowire" -+ -+// Enum is a reflection interface for a concrete enum value, -+// which provides type information and a getter for the enum number. -+// Enum does not provide a mutable API since enums are commonly backed by -+// Go constants, which are not addressable. -+type Enum interface { -+ // Descriptor returns enum descriptor, which contains only the protobuf -+ // type information for the enum. -+ Descriptor() EnumDescriptor -+ -+ // Type returns the enum type, which encapsulates both Go and protobuf -+ // type information. If the Go type information is not needed, -+ // it is recommended that the enum descriptor be used instead. -+ Type() EnumType -+ -+ // Number returns the enum value as an integer. -+ Number() EnumNumber -+} -+ -+// Message is a reflective interface for a concrete message value, -+// encapsulating both type and value information for the message. -+// -+// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// For non-extension fields, the descriptor must exactly match the -+// field known by the parent message. -+// For extension fields, the descriptor must implement ExtensionTypeDescriptor, -+// extend the parent message (i.e., have the same message FullName), and -+// be within the parent's extension range. -+// -+// Each field Value can be a scalar or a composite type (Message, List, or Map). -+// See Value for the Go types associated with a FieldDescriptor. -+// Providing a Value that is invalid or of an incorrect type panics. -+type Message interface { -+ // Descriptor returns message descriptor, which contains only the protobuf -+ // type information for the message. -+ Descriptor() MessageDescriptor -+ -+ // Type returns the message type, which encapsulates both Go and protobuf -+ // type information. If the Go type information is not needed, -+ // it is recommended that the message descriptor be used instead. -+ Type() MessageType -+ -+ // New returns a newly allocated and mutable empty message. -+ New() Message -+ -+ // Interface unwraps the message reflection interface and -+ // returns the underlying ProtoMessage interface. -+ Interface() ProtoMessage -+ -+ // Range iterates over every populated field in an undefined order, -+ // calling f for each field descriptor and value encountered. -+ // Range returns immediately if f returns false. -+ // While iterating, mutating operations may only be performed -+ // on the current field descriptor. -+ Range(f func(FieldDescriptor, Value) bool) -+ -+ // Has reports whether a field is populated. -+ // -+ // Some fields have the property of nullability where it is possible to -+ // distinguish between the default value of a field and whether the field -+ // was explicitly populated with the default value. Singular message fields, -+ // member fields of a oneof, and proto2 scalar fields are nullable. Such -+ // fields are populated only if explicitly set. -+ // -+ // In other cases (aside from the nullable cases above), -+ // a proto3 scalar field is populated if it contains a non-zero value, and -+ // a repeated field is populated if it is non-empty. -+ Has(FieldDescriptor) bool -+ -+ // Clear clears the field such that a subsequent Has call reports false. -+ // -+ // Clearing an extension field clears both the extension type and value -+ // associated with the given field number. -+ // -+ // Clear is a mutating operation and unsafe for concurrent use. -+ Clear(FieldDescriptor) -+ -+ // Get retrieves the value for a field. -+ // -+ // For unpopulated scalars, it returns the default value, where -+ // the default value of a bytes scalar is guaranteed to be a copy. -+ // For unpopulated composite types, it returns an empty, read-only view -+ // of the value; to obtain a mutable reference, use Mutable. -+ Get(FieldDescriptor) Value -+ -+ // Set stores the value for a field. -+ // -+ // For a field belonging to a oneof, it implicitly clears any other field -+ // that may be currently set within the same oneof. -+ // For extension fields, it implicitly stores the provided ExtensionType. -+ // When setting a composite type, it is unspecified whether the stored value -+ // aliases the source's memory in any way. If the composite value is an -+ // empty, read-only value, then it panics. -+ // -+ // Set is a mutating operation and unsafe for concurrent use. -+ Set(FieldDescriptor, Value) -+ -+ // Mutable returns a mutable reference to a composite type. -+ // -+ // If the field is unpopulated, it may allocate a composite value. -+ // For a field belonging to a oneof, it implicitly clears any other field -+ // that may be currently set within the same oneof. -+ // For extension fields, it implicitly stores the provided ExtensionType -+ // if not already stored. -+ // It panics if the field does not contain a composite type. -+ // -+ // Mutable is a mutating operation and unsafe for concurrent use. -+ Mutable(FieldDescriptor) Value -+ -+ // NewField returns a new value that is assignable to the field -+ // for the given descriptor. For scalars, this returns the default value. -+ // For lists, maps, and messages, this returns a new, empty, mutable value. -+ NewField(FieldDescriptor) Value -+ -+ // WhichOneof reports which field within the oneof is populated, -+ // returning nil if none are populated. -+ // It panics if the oneof descriptor does not belong to this message. -+ WhichOneof(OneofDescriptor) FieldDescriptor -+ -+ // GetUnknown retrieves the entire list of unknown fields. -+ // The caller may only mutate the contents of the RawFields -+ // if the mutated bytes are stored back into the message with SetUnknown. -+ GetUnknown() RawFields -+ -+ // SetUnknown stores an entire list of unknown fields. -+ // The raw fields must be syntactically valid according to the wire format. -+ // An implementation may panic if this is not the case. -+ // Once stored, the caller must not mutate the content of the RawFields. -+ // An empty RawFields may be passed to clear the fields. -+ // -+ // SetUnknown is a mutating operation and unsafe for concurrent use. -+ SetUnknown(RawFields) -+ -+ // IsValid reports whether the message is valid. -+ // -+ // An invalid message is an empty, read-only value. -+ // -+ // An invalid message often corresponds to a nil pointer of the concrete -+ // message type, but the details are implementation dependent. -+ // Validity is not part of the protobuf data model, and may not -+ // be preserved in marshaling or other operations. -+ IsValid() bool -+ -+ // ProtoMethods returns optional fast-path implementations of various operations. -+ // This method may return nil. -+ // -+ // The returned methods type is identical to -+ // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // Consult the protoiface package documentation for details. -+ ProtoMethods() *methods -+} -+ -+// RawFields is the raw bytes for an ordered sequence of fields. -+// Each field contains both the tag (representing field number and wire type), -+// and also the wire data itself. -+type RawFields []byte -+ -+// IsValid reports whether b is syntactically correct wire format. -+func (b RawFields) IsValid() bool { -+ for len(b) > 0 { -+ _, _, n := protowire.ConsumeField(b) -+ if n < 0 { -+ return false -+ } -+ b = b[n:] -+ } -+ return true -+} -+ -+// List is a zero-indexed, ordered list. -+// The element Value type is determined by FieldDescriptor.Kind. -+// Providing a Value that is invalid or of an incorrect type panics. -+type List interface { -+ // Len reports the number of entries in the List. -+ // Get, Set, and Truncate panic with out of bound indexes. -+ Len() int -+ -+ // Get retrieves the value at the given index. -+ // It never returns an invalid value. -+ Get(int) Value -+ -+ // Set stores a value for the given index. -+ // When setting a composite type, it is unspecified whether the set -+ // value aliases the source's memory in any way. -+ // -+ // Set is a mutating operation and unsafe for concurrent use. -+ Set(int, Value) -+ -+ // Append appends the provided value to the end of the list. -+ // When appending a composite type, it is unspecified whether the appended -+ // value aliases the source's memory in any way. -+ // -+ // Append is a mutating operation and unsafe for concurrent use. -+ Append(Value) -+ -+ // AppendMutable appends a new, empty, mutable message value to the end -+ // of the list and returns it. -+ // It panics if the list does not contain a message type. -+ AppendMutable() Value -+ -+ // Truncate truncates the list to a smaller length. -+ // -+ // Truncate is a mutating operation and unsafe for concurrent use. -+ Truncate(int) -+ -+ // NewElement returns a new value for a list element. -+ // For enums, this returns the first enum value. -+ // For other scalars, this returns the zero value. -+ // For messages, this returns a new, empty, mutable value. -+ NewElement() Value -+ -+ // IsValid reports whether the list is valid. -+ // -+ // An invalid list is an empty, read-only value. -+ // -+ // Validity is not part of the protobuf data model, and may not -+ // be preserved in marshaling or other operations. -+ IsValid() bool -+} -+ -+// Map is an unordered, associative map. -+// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. -+// The entry Value type is determined by FieldDescriptor.MapValue.Kind. -+// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+type Map interface { -+ // Len reports the number of elements in the map. -+ Len() int -+ -+ // Range iterates over every map entry in an undefined order, -+ // calling f for each key and value encountered. -+ // Range calls f Len times unless f returns false, which stops iteration. -+ // While iterating, mutating operations may only be performed -+ // on the current map key. -+ Range(f func(MapKey, Value) bool) -+ -+ // Has reports whether an entry with the given key is in the map. -+ Has(MapKey) bool -+ -+ // Clear clears the entry associated with they given key. -+ // The operation does nothing if there is no entry associated with the key. -+ // -+ // Clear is a mutating operation and unsafe for concurrent use. -+ Clear(MapKey) -+ -+ // Get retrieves the value for an entry with the given key. -+ // It returns an invalid value for non-existent entries. -+ Get(MapKey) Value -+ -+ // Set stores the value for an entry with the given key. -+ // It panics when given a key or value that is invalid or the wrong type. -+ // When setting a composite type, it is unspecified whether the set -+ // value aliases the source's memory in any way. -+ // -+ // Set is a mutating operation and unsafe for concurrent use. -+ Set(MapKey, Value) -+ -+ // Mutable retrieves a mutable reference to the entry for the given key. -+ // If no entry exists for the key, it creates a new, empty, mutable value -+ // and stores it as the entry for the key. -+ // It panics if the map value is not a message. -+ Mutable(MapKey) Value -+ -+ // NewValue returns a new value assignable as a map value. -+ // For enums, this returns the first enum value. -+ // For other scalars, this returns the zero value. -+ // For messages, this returns a new, empty, mutable value. -+ NewValue() Value -+ -+ // IsValid reports whether the map is valid. -+ // -+ // An invalid map is an empty, read-only value. -+ // -+ // An invalid message often corresponds to a nil Go map value, -+ // but the details are implementation dependent. -+ // Validity is not part of the protobuf data model, and may not -+ // be preserved in marshaling or other operations. -+ IsValid() bool -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -new file mode 100644 -index 00000000..59165254 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -0,0 +1,168 @@ -+// Copyright 2022 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+import ( -+ "bytes" -+ "fmt" -+ "math" -+ "reflect" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+) -+ -+// Equal reports whether v1 and v2 are recursively equal. -+// -+// - Values of different types are always unequal. -+// -+// - Bytes values are equal if they contain identical bytes. -+// Empty bytes (regardless of nil-ness) are considered equal. -+// -+// - Floating point values are equal if they contain the same value. -+// Unlike the == operator, a NaN is equal to another NaN. -+// -+// - Enums are equal if they contain the same number. -+// Since Value does not contain an enum descriptor, -+// enum values do not consider the type of the enum. -+// -+// - Other scalar values are equal if they contain the same value. -+// -+// - Message values are equal if they belong to the same message descriptor, -+// have the same set of populated known and extension field values, -+// and the same set of unknown fields values. -+// -+// - Lists are equal if they are the same length and -+// each corresponding element is equal. -+// -+// - Maps are equal if they have the same set of keys and -+// the corresponding value for each key is equal. -+func (v1 Value) Equal(v2 Value) bool { -+ return equalValue(v1, v2) -+} -+ -+func equalValue(x, y Value) bool { -+ eqType := x.typ == y.typ -+ switch x.typ { -+ case nilType: -+ return eqType -+ case boolType: -+ return eqType && x.Bool() == y.Bool() -+ case int32Type, int64Type: -+ return eqType && x.Int() == y.Int() -+ case uint32Type, uint64Type: -+ return eqType && x.Uint() == y.Uint() -+ case float32Type, float64Type: -+ return eqType && equalFloat(x.Float(), y.Float()) -+ case stringType: -+ return eqType && x.String() == y.String() -+ case bytesType: -+ return eqType && bytes.Equal(x.Bytes(), y.Bytes()) -+ case enumType: -+ return eqType && x.Enum() == y.Enum() -+ default: -+ switch x := x.Interface().(type) { -+ case Message: -+ y, ok := y.Interface().(Message) -+ return ok && equalMessage(x, y) -+ case List: -+ y, ok := y.Interface().(List) -+ return ok && equalList(x, y) -+ case Map: -+ y, ok := y.Interface().(Map) -+ return ok && equalMap(x, y) -+ default: -+ panic(fmt.Sprintf("unknown type: %T", x)) -+ } -+ } -+} -+ -+// equalFloat compares two floats, where NaNs are treated as equal. -+func equalFloat(x, y float64) bool { -+ if math.IsNaN(x) || math.IsNaN(y) { -+ return math.IsNaN(x) && math.IsNaN(y) -+ } -+ return x == y -+} -+ -+// equalMessage compares two messages. -+func equalMessage(mx, my Message) bool { -+ if mx.Descriptor() != my.Descriptor() { -+ return false -+ } -+ -+ nx := 0 -+ equal := true -+ mx.Range(func(fd FieldDescriptor, vx Value) bool { -+ nx++ -+ vy := my.Get(fd) -+ equal = my.Has(fd) && equalValue(vx, vy) -+ return equal -+ }) -+ if !equal { -+ return false -+ } -+ ny := 0 -+ my.Range(func(fd FieldDescriptor, vx Value) bool { -+ ny++ -+ return true -+ }) -+ if nx != ny { -+ return false -+ } -+ -+ return equalUnknown(mx.GetUnknown(), my.GetUnknown()) -+} -+ -+// equalList compares two lists. -+func equalList(x, y List) bool { -+ if x.Len() != y.Len() { -+ return false -+ } -+ for i := x.Len() - 1; i >= 0; i-- { -+ if !equalValue(x.Get(i), y.Get(i)) { -+ return false -+ } -+ } -+ return true -+} -+ -+// equalMap compares two maps. -+func equalMap(x, y Map) bool { -+ if x.Len() != y.Len() { -+ return false -+ } -+ equal := true -+ x.Range(func(k MapKey, vx Value) bool { -+ vy := y.Get(k) -+ equal = y.Has(k) && equalValue(vx, vy) -+ return equal -+ }) -+ return equal -+} -+ -+// equalUnknown compares unknown fields by direct comparison on the raw bytes -+// of each individual field number. -+func equalUnknown(x, y RawFields) bool { -+ if len(x) != len(y) { -+ return false -+ } -+ if bytes.Equal([]byte(x), []byte(y)) { -+ return true -+ } -+ -+ mx := make(map[FieldNumber]RawFields) -+ my := make(map[FieldNumber]RawFields) -+ for len(x) > 0 { -+ fnum, _, n := protowire.ConsumeField(x) -+ mx[fnum] = append(mx[fnum], x[:n]...) -+ x = x[n:] -+ } -+ for len(y) > 0 { -+ fnum, _, n := protowire.ConsumeField(y) -+ my[fnum] = append(my[fnum], y[:n]...) -+ y = y[n:] -+ } -+ return reflect.DeepEqual(mx, my) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go -new file mode 100644 -index 00000000..7ced876f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go -@@ -0,0 +1,60 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build purego || appengine -+// +build purego appengine -+ -+package protoreflect -+ -+import "google.golang.org/protobuf/internal/pragma" -+ -+type valueType int -+ -+const ( -+ nilType valueType = iota -+ boolType -+ int32Type -+ int64Type -+ uint32Type -+ uint64Type -+ float32Type -+ float64Type -+ stringType -+ bytesType -+ enumType -+ ifaceType -+) -+ -+// value is a union where only one type can be represented at a time. -+// This uses a distinct field for each type. This is type safe in Go, but -+// occupies more memory than necessary (72B). -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ typ valueType // 8B -+ num uint64 // 8B -+ str string // 16B -+ bin []byte // 24B -+ iface interface{} // 16B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, str: v} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, bin: v} -+} -+func valueOfIface(v interface{}) Value { -+ return Value{typ: ifaceType, iface: v} -+} -+ -+func (v Value) getString() string { -+ return v.str -+} -+func (v Value) getBytes() []byte { -+ return v.bin -+} -+func (v Value) getIface() interface{} { -+ return v.iface -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -new file mode 100644 -index 00000000..08e5ef73 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -0,0 +1,438 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoreflect -+ -+import ( -+ "fmt" -+ "math" -+) -+ -+// Value is a union where only one Go type may be set at a time. -+// The Value is used to represent all possible values a field may take. -+// The following shows which Go type is used to represent each proto Kind: -+// -+// â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+// â•‘ Go type │ Protobuf kind â•‘ -+// â• â•â•â•â•â•â•â•â•â•â•â•â•â•ªâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ -+// â•‘ bool │ BoolKind â•‘ -+// â•‘ int32 │ Int32Kind, Sint32Kind, Sfixed32Kind â•‘ -+// â•‘ int64 │ Int64Kind, Sint64Kind, Sfixed64Kind â•‘ -+// â•‘ uint32 │ Uint32Kind, Fixed32Kind â•‘ -+// â•‘ uint64 │ Uint64Kind, Fixed64Kind â•‘ -+// â•‘ float32 │ FloatKind â•‘ -+// â•‘ float64 │ DoubleKind â•‘ -+// â•‘ string │ StringKind â•‘ -+// â•‘ []byte │ BytesKind â•‘ -+// â•‘ EnumNumber │ EnumKind â•‘ -+// â•‘ Message │ MessageKind, GroupKind â•‘ -+// â•šâ•â•â•â•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+// -+// Multiple protobuf Kinds may be represented by a single Go type if the type -+// can losslessly represent the information for the proto kind. For example, -+// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// but use different integer encoding methods. -+// -+// The List or Map types are used if the field cardinality is repeated. -+// A field is a List if FieldDescriptor.IsList reports true. -+// A field is a Map if FieldDescriptor.IsMap reports true. -+// -+// Converting to/from a Value and a concrete Go value panics on type mismatch. -+// For example, ValueOf("hello").Int() panics because this attempts to -+// retrieve an int64 from a string. -+// -+// List, Map, and Message Values are called "composite" values. -+// -+// A composite Value may alias (reference) memory at some location, -+// such that changes to the Value updates the that location. -+// A composite value acquired with a Mutable method, such as Message.Mutable, -+// always references the source object. -+// -+// For example: -+// -+// // Append a 0 to a "repeated int32" field. -+// // Since the Value returned by Mutable is guaranteed to alias -+// // the source message, modifying the Value modifies the message. -+// message.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0)) -+// -+// // Assign [0] to a "repeated int32" field by creating a new Value, -+// // modifying it, and assigning it. -+// list := message.NewField(fieldDesc).List() -+// list.Append(protoreflect.ValueOfInt32(0)) -+// message.Set(fieldDesc, list) -+// // ERROR: Since it is not defined whether Set aliases the source, -+// // appending to the List here may or may not modify the message. -+// list.Append(protoreflect.ValueOfInt32(0)) -+// -+// Some operations, such as Message.Get, may return an "empty, read-only" -+// composite Value. Modifying an empty, read-only value panics. -+type Value value -+ -+// The protoreflect API uses a custom Value union type instead of interface{} -+// to keep the future open for performance optimizations. Using an interface{} -+// always incurs an allocation for primitives (e.g., int64) since it needs to -+// be boxed on the heap (as interfaces can only contain pointers natively). -+// Instead, we represent the Value union as a flat struct that internally keeps -+// track of which type is set. Using unsafe, the Value union can be reduced -+// down to 24B, which is identical in size to a slice. -+// -+// The latest compiler (Go1.11) currently suffers from some limitations: -+// • With inlining, the compiler should be able to statically prove that -+// only one of these switch cases are taken and inline one specific case. -+// See https://golang.org/issue/22310. -+ -+// ValueOf returns a Value initialized with the concrete value stored in v. -+// This panics if the type does not match one of the allowed types in the -+// Value union. -+func ValueOf(v interface{}) Value { -+ switch v := v.(type) { -+ case nil: -+ return Value{} -+ case bool: -+ return ValueOfBool(v) -+ case int32: -+ return ValueOfInt32(v) -+ case int64: -+ return ValueOfInt64(v) -+ case uint32: -+ return ValueOfUint32(v) -+ case uint64: -+ return ValueOfUint64(v) -+ case float32: -+ return ValueOfFloat32(v) -+ case float64: -+ return ValueOfFloat64(v) -+ case string: -+ return ValueOfString(v) -+ case []byte: -+ return ValueOfBytes(v) -+ case EnumNumber: -+ return ValueOfEnum(v) -+ case Message, List, Map: -+ return valueOfIface(v) -+ case ProtoMessage: -+ panic(fmt.Sprintf("invalid proto.Message(%T) type, expected a protoreflect.Message type", v)) -+ default: -+ panic(fmt.Sprintf("invalid type: %T", v)) -+ } -+} -+ -+// ValueOfBool returns a new boolean value. -+func ValueOfBool(v bool) Value { -+ if v { -+ return Value{typ: boolType, num: 1} -+ } else { -+ return Value{typ: boolType, num: 0} -+ } -+} -+ -+// ValueOfInt32 returns a new int32 value. -+func ValueOfInt32(v int32) Value { -+ return Value{typ: int32Type, num: uint64(v)} -+} -+ -+// ValueOfInt64 returns a new int64 value. -+func ValueOfInt64(v int64) Value { -+ return Value{typ: int64Type, num: uint64(v)} -+} -+ -+// ValueOfUint32 returns a new uint32 value. -+func ValueOfUint32(v uint32) Value { -+ return Value{typ: uint32Type, num: uint64(v)} -+} -+ -+// ValueOfUint64 returns a new uint64 value. -+func ValueOfUint64(v uint64) Value { -+ return Value{typ: uint64Type, num: v} -+} -+ -+// ValueOfFloat32 returns a new float32 value. -+func ValueOfFloat32(v float32) Value { -+ return Value{typ: float32Type, num: uint64(math.Float64bits(float64(v)))} -+} -+ -+// ValueOfFloat64 returns a new float64 value. -+func ValueOfFloat64(v float64) Value { -+ return Value{typ: float64Type, num: uint64(math.Float64bits(float64(v)))} -+} -+ -+// ValueOfString returns a new string value. -+func ValueOfString(v string) Value { -+ return valueOfString(v) -+} -+ -+// ValueOfBytes returns a new bytes value. -+func ValueOfBytes(v []byte) Value { -+ return valueOfBytes(v[:len(v):len(v)]) -+} -+ -+// ValueOfEnum returns a new enum value. -+func ValueOfEnum(v EnumNumber) Value { -+ return Value{typ: enumType, num: uint64(v)} -+} -+ -+// ValueOfMessage returns a new Message value. -+func ValueOfMessage(v Message) Value { -+ return valueOfIface(v) -+} -+ -+// ValueOfList returns a new List value. -+func ValueOfList(v List) Value { -+ return valueOfIface(v) -+} -+ -+// ValueOfMap returns a new Map value. -+func ValueOfMap(v Map) Value { -+ return valueOfIface(v) -+} -+ -+// IsValid reports whether v is populated with a value. -+func (v Value) IsValid() bool { -+ return v.typ != nilType -+} -+ -+// Interface returns v as an interface{}. -+// -+// Invariant: v == ValueOf(v).Interface() -+func (v Value) Interface() interface{} { -+ switch v.typ { -+ case nilType: -+ return nil -+ case boolType: -+ return v.Bool() -+ case int32Type: -+ return int32(v.Int()) -+ case int64Type: -+ return int64(v.Int()) -+ case uint32Type: -+ return uint32(v.Uint()) -+ case uint64Type: -+ return uint64(v.Uint()) -+ case float32Type: -+ return float32(v.Float()) -+ case float64Type: -+ return float64(v.Float()) -+ case stringType: -+ return v.String() -+ case bytesType: -+ return v.Bytes() -+ case enumType: -+ return v.Enum() -+ default: -+ return v.getIface() -+ } -+} -+ -+func (v Value) typeName() string { -+ switch v.typ { -+ case nilType: -+ return "nil" -+ case boolType: -+ return "bool" -+ case int32Type: -+ return "int32" -+ case int64Type: -+ return "int64" -+ case uint32Type: -+ return "uint32" -+ case uint64Type: -+ return "uint64" -+ case float32Type: -+ return "float32" -+ case float64Type: -+ return "float64" -+ case stringType: -+ return "string" -+ case bytesType: -+ return "bytes" -+ case enumType: -+ return "enum" -+ default: -+ switch v := v.getIface().(type) { -+ case Message: -+ return "message" -+ case List: -+ return "list" -+ case Map: -+ return "map" -+ default: -+ return fmt.Sprintf("", v) -+ } -+ } -+} -+ -+func (v Value) panicMessage(what string) string { -+ return fmt.Sprintf("type mismatch: cannot convert %v to %s", v.typeName(), what) -+} -+ -+// Bool returns v as a bool and panics if the type is not a bool. -+func (v Value) Bool() bool { -+ switch v.typ { -+ case boolType: -+ return v.num > 0 -+ default: -+ panic(v.panicMessage("bool")) -+ } -+} -+ -+// Int returns v as a int64 and panics if the type is not a int32 or int64. -+func (v Value) Int() int64 { -+ switch v.typ { -+ case int32Type, int64Type: -+ return int64(v.num) -+ default: -+ panic(v.panicMessage("int")) -+ } -+} -+ -+// Uint returns v as a uint64 and panics if the type is not a uint32 or uint64. -+func (v Value) Uint() uint64 { -+ switch v.typ { -+ case uint32Type, uint64Type: -+ return uint64(v.num) -+ default: -+ panic(v.panicMessage("uint")) -+ } -+} -+ -+// Float returns v as a float64 and panics if the type is not a float32 or float64. -+func (v Value) Float() float64 { -+ switch v.typ { -+ case float32Type, float64Type: -+ return math.Float64frombits(uint64(v.num)) -+ default: -+ panic(v.panicMessage("float")) -+ } -+} -+ -+// String returns v as a string. Since this method implements fmt.Stringer, -+// this returns the formatted string value for any non-string type. -+func (v Value) String() string { -+ switch v.typ { -+ case stringType: -+ return v.getString() -+ default: -+ return fmt.Sprint(v.Interface()) -+ } -+} -+ -+// Bytes returns v as a []byte and panics if the type is not a []byte. -+func (v Value) Bytes() []byte { -+ switch v.typ { -+ case bytesType: -+ return v.getBytes() -+ default: -+ panic(v.panicMessage("bytes")) -+ } -+} -+ -+// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+func (v Value) Enum() EnumNumber { -+ switch v.typ { -+ case enumType: -+ return EnumNumber(v.num) -+ default: -+ panic(v.panicMessage("enum")) -+ } -+} -+ -+// Message returns v as a Message and panics if the type is not a Message. -+func (v Value) Message() Message { -+ switch vi := v.getIface().(type) { -+ case Message: -+ return vi -+ default: -+ panic(v.panicMessage("message")) -+ } -+} -+ -+// List returns v as a List and panics if the type is not a List. -+func (v Value) List() List { -+ switch vi := v.getIface().(type) { -+ case List: -+ return vi -+ default: -+ panic(v.panicMessage("list")) -+ } -+} -+ -+// Map returns v as a Map and panics if the type is not a Map. -+func (v Value) Map() Map { -+ switch vi := v.getIface().(type) { -+ case Map: -+ return vi -+ default: -+ panic(v.panicMessage("map")) -+ } -+} -+ -+// MapKey returns v as a MapKey and panics for invalid MapKey types. -+func (v Value) MapKey() MapKey { -+ switch v.typ { -+ case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -+ return MapKey(v) -+ default: -+ panic(v.panicMessage("map key")) -+ } -+} -+ -+// MapKey is used to index maps, where the Go type of the MapKey must match -+// the specified key Kind (see MessageDescriptor.IsMapEntry). -+// The following shows what Go type is used to represent each proto Kind: -+// -+// â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— -+// â•‘ Go type │ Protobuf kind â•‘ -+// â• â•â•â•â•â•â•â•â•â•â•ªâ•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£ -+// â•‘ bool │ BoolKind â•‘ -+// â•‘ int32 │ Int32Kind, Sint32Kind, Sfixed32Kind â•‘ -+// â•‘ int64 │ Int64Kind, Sint64Kind, Sfixed64Kind â•‘ -+// â•‘ uint32 │ Uint32Kind, Fixed32Kind â•‘ -+// â•‘ uint64 │ Uint64Kind, Fixed64Kind â•‘ -+// â•‘ string │ StringKind â•‘ -+// â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• -+// -+// A MapKey is constructed and accessed through a Value: -+// -+// k := ValueOf("hash").MapKey() // convert string to MapKey -+// s := k.String() // convert MapKey to string -+// -+// The MapKey is a strict subset of valid types used in Value; -+// converting a Value to a MapKey with an invalid type panics. -+type MapKey value -+ -+// IsValid reports whether k is populated with a value. -+func (k MapKey) IsValid() bool { -+ return Value(k).IsValid() -+} -+ -+// Interface returns k as an interface{}. -+func (k MapKey) Interface() interface{} { -+ return Value(k).Interface() -+} -+ -+// Bool returns k as a bool and panics if the type is not a bool. -+func (k MapKey) Bool() bool { -+ return Value(k).Bool() -+} -+ -+// Int returns k as a int64 and panics if the type is not a int32 or int64. -+func (k MapKey) Int() int64 { -+ return Value(k).Int() -+} -+ -+// Uint returns k as a uint64 and panics if the type is not a uint32 or uint64. -+func (k MapKey) Uint() uint64 { -+ return Value(k).Uint() -+} -+ -+// String returns k as a string. Since this method implements fmt.Stringer, -+// this returns the formatted string value for any non-string type. -+func (k MapKey) String() string { -+ return Value(k).String() -+} -+ -+// Value returns k as a Value. -+func (k MapKey) Value() Value { -+ return Value(k) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -new file mode 100644 -index 00000000..702ddf22 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -@@ -0,0 +1,99 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine -+// +build !purego,!appengine -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ stringHeader struct { -+ Data unsafe.Pointer -+ Len int -+ } -+ sliceHeader struct { -+ Data unsafe.Pointer -+ Len int -+ Cap int -+ } -+ ifaceHeader struct { -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ p := (*stringHeader)(unsafe.Pointer(&v)) -+ return Value{typ: stringType, ptr: p.Data, num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ p := (*sliceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: bytesType, ptr: p.Data, num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() (x string) { -+ *(*stringHeader)(unsafe.Pointer(&x)) = stringHeader{Data: v.ptr, Len: int(v.num)} -+ return x -+} -+func (v Value) getBytes() (x []byte) { -+ *(*sliceHeader)(unsafe.Pointer(&x)) = sliceHeader{Data: v.ptr, Len: int(v.num), Cap: int(v.num)} -+ return x -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -new file mode 100644 -index 00000000..aeb55977 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -0,0 +1,882 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protoregistry provides data structures to register and lookup -+// protobuf descriptor types. -+// -+// The Files registry contains file descriptors and provides the ability -+// to iterate over the files or lookup a specific descriptor within the files. -+// Files only contains protobuf descriptors and has no understanding of Go -+// type information that may be associated with each descriptor. -+// -+// The Types registry contains descriptor types for which there is a known -+// Go type associated with that descriptor. It provides the ability to iterate -+// over the registered types or lookup a type by name. -+package protoregistry -+ -+import ( -+ "fmt" -+ "os" -+ "strings" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/encoding/messageset" -+ "google.golang.org/protobuf/internal/errors" -+ "google.golang.org/protobuf/internal/flags" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// conflictPolicy configures the policy for handling registration conflicts. -+// -+// It can be over-written at compile time with a linker-initialized variable: -+// -+// go build -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" -+// -+// It can be over-written at program execution with an environment variable: -+// -+// GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn ./main -+// -+// Neither of the above are covered by the compatibility promise and -+// may be removed in a future release of this module. -+var conflictPolicy = "panic" // "panic" | "warn" | "ignore" -+ -+// ignoreConflict reports whether to ignore a registration conflict -+// given the descriptor being registered and the error. -+// It is a variable so that the behavior is easily overridden in another file. -+var ignoreConflict = func(d protoreflect.Descriptor, err error) bool { -+ const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT" -+ const faq = "https://protobuf.dev/reference/go/faq#namespace-conflict" -+ policy := conflictPolicy -+ if v := os.Getenv(env); v != "" { -+ policy = v -+ } -+ switch policy { -+ case "panic": -+ panic(fmt.Sprintf("%v\nSee %v\n", err, faq)) -+ case "warn": -+ fmt.Fprintf(os.Stderr, "WARNING: %v\nSee %v\n\n", err, faq) -+ return true -+ case "ignore": -+ return true -+ default: -+ panic("invalid " + env + " value: " + os.Getenv(env)) -+ } -+} -+ -+var globalMutex sync.RWMutex -+ -+// GlobalFiles is a global registry of file descriptors. -+var GlobalFiles *Files = new(Files) -+ -+// GlobalTypes is the registry used by default for type lookups -+// unless a local registry is provided by the user. -+var GlobalTypes *Types = new(Types) -+ -+// NotFound is a sentinel error value to indicate that the type was not found. -+// -+// Since registry lookup can happen in the critical performance path, resolvers -+// must return this exact error value, not an error wrapping it. -+var NotFound = errors.New("not found") -+ -+// Files is a registry for looking up or iterating over files and the -+// descriptors contained within them. -+// The Find and Range methods are safe for concurrent use. -+type Files struct { -+ // The map of descsByName contains: -+ // EnumDescriptor -+ // EnumValueDescriptor -+ // MessageDescriptor -+ // ExtensionDescriptor -+ // ServiceDescriptor -+ // *packageDescriptor -+ // -+ // Note that files are stored as a slice, since a package may contain -+ // multiple files. Only top-level declarations are registered. -+ // Note that enum values are in the top-level since that are in the same -+ // scope as the parent enum. -+ descsByName map[protoreflect.FullName]interface{} -+ filesByPath map[string][]protoreflect.FileDescriptor -+ numFiles int -+} -+ -+type packageDescriptor struct { -+ files []protoreflect.FileDescriptor -+} -+ -+// RegisterFile registers the provided file descriptor. -+// -+// If any descriptor within the file conflicts with the descriptor of any -+// previously registered file (e.g., two enums with the same full name), -+// then the file is not registered and an error is returned. -+// -+// It is permitted for multiple files to have the same file path. -+func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error { -+ if r == GlobalFiles { -+ globalMutex.Lock() -+ defer globalMutex.Unlock() -+ } -+ if r.descsByName == nil { -+ r.descsByName = map[protoreflect.FullName]interface{}{ -+ "": &packageDescriptor{}, -+ } -+ r.filesByPath = make(map[string][]protoreflect.FileDescriptor) -+ } -+ path := file.Path() -+ if prev := r.filesByPath[path]; len(prev) > 0 { -+ r.checkGenProtoConflict(path) -+ err := errors.New("file %q is already registered", file.Path()) -+ err = amendErrorWithCaller(err, prev[0], file) -+ if !(r == GlobalFiles && ignoreConflict(file, err)) { -+ return err -+ } -+ } -+ -+ for name := file.Package(); name != ""; name = name.Parent() { -+ switch prev := r.descsByName[name]; prev.(type) { -+ case nil, *packageDescriptor: -+ default: -+ err := errors.New("file %q has a package name conflict over %v", file.Path(), name) -+ err = amendErrorWithCaller(err, prev, file) -+ if r == GlobalFiles && ignoreConflict(file, err) { -+ err = nil -+ } -+ return err -+ } -+ } -+ var err error -+ var hasConflict bool -+ rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) { -+ if prev := r.descsByName[d.FullName()]; prev != nil { -+ hasConflict = true -+ err = errors.New("file %q has a name conflict over %v", file.Path(), d.FullName()) -+ err = amendErrorWithCaller(err, prev, file) -+ if r == GlobalFiles && ignoreConflict(d, err) { -+ err = nil -+ } -+ } -+ }) -+ if hasConflict { -+ return err -+ } -+ -+ for name := file.Package(); name != ""; name = name.Parent() { -+ if r.descsByName[name] == nil { -+ r.descsByName[name] = &packageDescriptor{} -+ } -+ } -+ p := r.descsByName[file.Package()].(*packageDescriptor) -+ p.files = append(p.files, file) -+ rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) { -+ r.descsByName[d.FullName()] = d -+ }) -+ r.filesByPath[path] = append(r.filesByPath[path], file) -+ r.numFiles++ -+ return nil -+} -+ -+// Several well-known types were hosted in the google.golang.org/genproto module -+// but were later moved to this module. To avoid a weak dependency on the -+// genproto module (and its relatively large set of transitive dependencies), -+// we rely on a registration conflict to determine whether the genproto version -+// is too old (i.e., does not contain aliases to the new type declarations). -+func (r *Files) checkGenProtoConflict(path string) { -+ if r != GlobalFiles { -+ return -+ } -+ var prevPath string -+ const prevModule = "google.golang.org/genproto" -+ const prevVersion = "cb27e3aa (May 26th, 2020)" -+ switch path { -+ case "google/protobuf/field_mask.proto": -+ prevPath = prevModule + "/protobuf/field_mask" -+ case "google/protobuf/api.proto": -+ prevPath = prevModule + "/protobuf/api" -+ case "google/protobuf/type.proto": -+ prevPath = prevModule + "/protobuf/ptype" -+ case "google/protobuf/source_context.proto": -+ prevPath = prevModule + "/protobuf/source_context" -+ default: -+ return -+ } -+ pkgName := strings.TrimSuffix(strings.TrimPrefix(path, "google/protobuf/"), ".proto") -+ pkgName = strings.Replace(pkgName, "_", "", -1) + "pb" // e.g., "field_mask" => "fieldmaskpb" -+ currPath := "google.golang.org/protobuf/types/known/" + pkgName -+ panic(fmt.Sprintf(""+ -+ "duplicate registration of %q\n"+ -+ "\n"+ -+ "The generated definition for this file has moved:\n"+ -+ "\tfrom: %q\n"+ -+ "\tto: %q\n"+ -+ "A dependency on the %q module must\n"+ -+ "be at version %v or higher.\n"+ -+ "\n"+ -+ "Upgrade the dependency by running:\n"+ -+ "\tgo get -u %v\n", -+ path, prevPath, currPath, prevModule, prevVersion, prevPath)) -+} -+ -+// FindDescriptorByName looks up a descriptor by the full name. -+// -+// This returns (nil, NotFound) if not found. -+func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ prefix := name -+ suffix := nameSuffix("") -+ for prefix != "" { -+ if d, ok := r.descsByName[prefix]; ok { -+ switch d := d.(type) { -+ case protoreflect.EnumDescriptor: -+ if d.FullName() == name { -+ return d, nil -+ } -+ case protoreflect.EnumValueDescriptor: -+ if d.FullName() == name { -+ return d, nil -+ } -+ case protoreflect.MessageDescriptor: -+ if d.FullName() == name { -+ return d, nil -+ } -+ if d := findDescriptorInMessage(d, suffix); d != nil && d.FullName() == name { -+ return d, nil -+ } -+ case protoreflect.ExtensionDescriptor: -+ if d.FullName() == name { -+ return d, nil -+ } -+ case protoreflect.ServiceDescriptor: -+ if d.FullName() == name { -+ return d, nil -+ } -+ if d := d.Methods().ByName(suffix.Pop()); d != nil && d.FullName() == name { -+ return d, nil -+ } -+ } -+ return nil, NotFound -+ } -+ prefix = prefix.Parent() -+ suffix = nameSuffix(name[len(prefix)+len("."):]) -+ } -+ return nil, NotFound -+} -+ -+func findDescriptorInMessage(md protoreflect.MessageDescriptor, suffix nameSuffix) protoreflect.Descriptor { -+ name := suffix.Pop() -+ if suffix == "" { -+ if ed := md.Enums().ByName(name); ed != nil { -+ return ed -+ } -+ for i := md.Enums().Len() - 1; i >= 0; i-- { -+ if vd := md.Enums().Get(i).Values().ByName(name); vd != nil { -+ return vd -+ } -+ } -+ if xd := md.Extensions().ByName(name); xd != nil { -+ return xd -+ } -+ if fd := md.Fields().ByName(name); fd != nil { -+ return fd -+ } -+ if od := md.Oneofs().ByName(name); od != nil { -+ return od -+ } -+ } -+ if md := md.Messages().ByName(name); md != nil { -+ if suffix == "" { -+ return md -+ } -+ return findDescriptorInMessage(md, suffix) -+ } -+ return nil -+} -+ -+type nameSuffix string -+ -+func (s *nameSuffix) Pop() (name protoreflect.Name) { -+ if i := strings.IndexByte(string(*s), '.'); i >= 0 { -+ name, *s = protoreflect.Name((*s)[:i]), (*s)[i+1:] -+ } else { -+ name, *s = protoreflect.Name((*s)), "" -+ } -+ return name -+} -+ -+// FindFileByPath looks up a file by the path. -+// -+// This returns (nil, NotFound) if not found. -+// This returns an error if multiple files have the same path. -+func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ fds := r.filesByPath[path] -+ switch len(fds) { -+ case 0: -+ return nil, NotFound -+ case 1: -+ return fds[0], nil -+ default: -+ return nil, errors.New("multiple files named %q", path) -+ } -+} -+ -+// NumFiles reports the number of registered files, -+// including duplicate files with the same name. -+func (r *Files) NumFiles() int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ return r.numFiles -+} -+ -+// RangeFiles iterates over all registered files while f returns true. -+// If multiple files have the same name, RangeFiles iterates over all of them. -+// The iteration order is undefined. -+func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ for _, files := range r.filesByPath { -+ for _, file := range files { -+ if !f(file) { -+ return -+ } -+ } -+ } -+} -+ -+// NumFilesByPackage reports the number of registered files in a proto package. -+func (r *Files) NumFilesByPackage(name protoreflect.FullName) int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ p, ok := r.descsByName[name].(*packageDescriptor) -+ if !ok { -+ return 0 -+ } -+ return len(p.files) -+} -+ -+// RangeFilesByPackage iterates over all registered files in a given proto package -+// while f returns true. The iteration order is undefined. -+func (r *Files) RangeFilesByPackage(name protoreflect.FullName, f func(protoreflect.FileDescriptor) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalFiles { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ p, ok := r.descsByName[name].(*packageDescriptor) -+ if !ok { -+ return -+ } -+ for _, file := range p.files { -+ if !f(file) { -+ return -+ } -+ } -+} -+ -+// rangeTopLevelDescriptors iterates over all top-level descriptors in a file -+// which will be directly entered into the registry. -+func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflect.Descriptor)) { -+ eds := fd.Enums() -+ for i := eds.Len() - 1; i >= 0; i-- { -+ f(eds.Get(i)) -+ vds := eds.Get(i).Values() -+ for i := vds.Len() - 1; i >= 0; i-- { -+ f(vds.Get(i)) -+ } -+ } -+ mds := fd.Messages() -+ for i := mds.Len() - 1; i >= 0; i-- { -+ f(mds.Get(i)) -+ } -+ xds := fd.Extensions() -+ for i := xds.Len() - 1; i >= 0; i-- { -+ f(xds.Get(i)) -+ } -+ sds := fd.Services() -+ for i := sds.Len() - 1; i >= 0; i-- { -+ f(sds.Get(i)) -+ } -+} -+ -+// MessageTypeResolver is an interface for looking up messages. -+// -+// A compliant implementation must deterministically return the same type -+// if no error is encountered. -+// -+// The Types type implements this interface. -+type MessageTypeResolver interface { -+ // FindMessageByName looks up a message by its full name. -+ // E.g., "google.protobuf.Any" -+ // -+ // This return (nil, NotFound) if not found. -+ FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) -+ -+ // FindMessageByURL looks up a message by a URL identifier. -+ // See documentation on google.protobuf.Any.type_url for the URL format. -+ // -+ // This returns (nil, NotFound) if not found. -+ FindMessageByURL(url string) (protoreflect.MessageType, error) -+} -+ -+// ExtensionTypeResolver is an interface for looking up extensions. -+// -+// A compliant implementation must deterministically return the same type -+// if no error is encountered. -+// -+// The Types type implements this interface. -+type ExtensionTypeResolver interface { -+ // FindExtensionByName looks up a extension field by the field's full name. -+ // Note that this is the full name of the field as determined by -+ // where the extension is declared and is unrelated to the full name of the -+ // message being extended. -+ // -+ // This returns (nil, NotFound) if not found. -+ FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) -+ -+ // FindExtensionByNumber looks up a extension field by the field number -+ // within some parent message, identified by full name. -+ // -+ // This returns (nil, NotFound) if not found. -+ FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) -+} -+ -+var ( -+ _ MessageTypeResolver = (*Types)(nil) -+ _ ExtensionTypeResolver = (*Types)(nil) -+) -+ -+// Types is a registry for looking up or iterating over descriptor types. -+// The Find and Range methods are safe for concurrent use. -+type Types struct { -+ typesByName typesByName -+ extensionsByMessage extensionsByMessage -+ -+ numEnums int -+ numMessages int -+ numExtensions int -+} -+ -+type ( -+ typesByName map[protoreflect.FullName]interface{} -+ extensionsByMessage map[protoreflect.FullName]extensionsByNumber -+ extensionsByNumber map[protoreflect.FieldNumber]protoreflect.ExtensionType -+) -+ -+// RegisterMessage registers the provided message type. -+// -+// If a naming conflict occurs, the type is not registered and an error is returned. -+func (r *Types) RegisterMessage(mt protoreflect.MessageType) error { -+ // Under rare circumstances getting the descriptor might recursively -+ // examine the registry, so fetch it before locking. -+ md := mt.Descriptor() -+ -+ if r == GlobalTypes { -+ globalMutex.Lock() -+ defer globalMutex.Unlock() -+ } -+ -+ if err := r.register("message", md, mt); err != nil { -+ return err -+ } -+ r.numMessages++ -+ return nil -+} -+ -+// RegisterEnum registers the provided enum type. -+// -+// If a naming conflict occurs, the type is not registered and an error is returned. -+func (r *Types) RegisterEnum(et protoreflect.EnumType) error { -+ // Under rare circumstances getting the descriptor might recursively -+ // examine the registry, so fetch it before locking. -+ ed := et.Descriptor() -+ -+ if r == GlobalTypes { -+ globalMutex.Lock() -+ defer globalMutex.Unlock() -+ } -+ -+ if err := r.register("enum", ed, et); err != nil { -+ return err -+ } -+ r.numEnums++ -+ return nil -+} -+ -+// RegisterExtension registers the provided extension type. -+// -+// If a naming conflict occurs, the type is not registered and an error is returned. -+func (r *Types) RegisterExtension(xt protoreflect.ExtensionType) error { -+ // Under rare circumstances getting the descriptor might recursively -+ // examine the registry, so fetch it before locking. -+ // -+ // A known case where this can happen: Fetching the TypeDescriptor for a -+ // legacy ExtensionDesc can consult the global registry. -+ xd := xt.TypeDescriptor() -+ -+ if r == GlobalTypes { -+ globalMutex.Lock() -+ defer globalMutex.Unlock() -+ } -+ -+ field := xd.Number() -+ message := xd.ContainingMessage().FullName() -+ if prev := r.extensionsByMessage[message][field]; prev != nil { -+ err := errors.New("extension number %d is already registered on message %v", field, message) -+ err = amendErrorWithCaller(err, prev, xt) -+ if !(r == GlobalTypes && ignoreConflict(xd, err)) { -+ return err -+ } -+ } -+ -+ if err := r.register("extension", xd, xt); err != nil { -+ return err -+ } -+ if r.extensionsByMessage == nil { -+ r.extensionsByMessage = make(extensionsByMessage) -+ } -+ if r.extensionsByMessage[message] == nil { -+ r.extensionsByMessage[message] = make(extensionsByNumber) -+ } -+ r.extensionsByMessage[message][field] = xt -+ r.numExtensions++ -+ return nil -+} -+ -+func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interface{}) error { -+ name := desc.FullName() -+ prev := r.typesByName[name] -+ if prev != nil { -+ err := errors.New("%v %v is already registered", kind, name) -+ err = amendErrorWithCaller(err, prev, typ) -+ if !(r == GlobalTypes && ignoreConflict(desc, err)) { -+ return err -+ } -+ } -+ if r.typesByName == nil { -+ r.typesByName = make(typesByName) -+ } -+ r.typesByName[name] = typ -+ return nil -+} -+ -+// FindEnumByName looks up an enum by its full name. -+// E.g., "google.protobuf.Field.Kind". -+// -+// This returns (nil, NotFound) if not found. -+func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ if v := r.typesByName[enum]; v != nil { -+ if et, _ := v.(protoreflect.EnumType); et != nil { -+ return et, nil -+ } -+ return nil, errors.New("found wrong type: got %v, want enum", typeName(v)) -+ } -+ return nil, NotFound -+} -+ -+// FindMessageByName looks up a message by its full name, -+// e.g. "google.protobuf.Any". -+// -+// This returns (nil, NotFound) if not found. -+func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ if v := r.typesByName[message]; v != nil { -+ if mt, _ := v.(protoreflect.MessageType); mt != nil { -+ return mt, nil -+ } -+ return nil, errors.New("found wrong type: got %v, want message", typeName(v)) -+ } -+ return nil, NotFound -+} -+ -+// FindMessageByURL looks up a message by a URL identifier. -+// See documentation on google.protobuf.Any.type_url for the URL format. -+// -+// This returns (nil, NotFound) if not found. -+func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { -+ // This function is similar to FindMessageByName but -+ // truncates anything before and including '/' in the URL. -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ message := protoreflect.FullName(url) -+ if i := strings.LastIndexByte(url, '/'); i >= 0 { -+ message = message[i+len("/"):] -+ } -+ -+ if v := r.typesByName[message]; v != nil { -+ if mt, _ := v.(protoreflect.MessageType); mt != nil { -+ return mt, nil -+ } -+ return nil, errors.New("found wrong type: got %v, want message", typeName(v)) -+ } -+ return nil, NotFound -+} -+ -+// FindExtensionByName looks up a extension field by the field's full name. -+// Note that this is the full name of the field as determined by -+// where the extension is declared and is unrelated to the full name of the -+// message being extended. -+// -+// This returns (nil, NotFound) if not found. -+func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ if v := r.typesByName[field]; v != nil { -+ if xt, _ := v.(protoreflect.ExtensionType); xt != nil { -+ return xt, nil -+ } -+ -+ // MessageSet extensions are special in that the name of the extension -+ // is the name of the message type used to extend the MessageSet. -+ // This naming scheme is used by text and JSON serialization. -+ // -+ // This feature is protected by the ProtoLegacy flag since MessageSets -+ // are a proto1 feature that is long deprecated. -+ if flags.ProtoLegacy { -+ if _, ok := v.(protoreflect.MessageType); ok { -+ field := field.Append(messageset.ExtensionName) -+ if v := r.typesByName[field]; v != nil { -+ if xt, _ := v.(protoreflect.ExtensionType); xt != nil { -+ if messageset.IsMessageSetExtension(xt.TypeDescriptor()) { -+ return xt, nil -+ } -+ } -+ } -+ } -+ } -+ -+ return nil, errors.New("found wrong type: got %v, want extension", typeName(v)) -+ } -+ return nil, NotFound -+} -+ -+// FindExtensionByNumber looks up a extension field by the field number -+// within some parent message, identified by full name. -+// -+// This returns (nil, NotFound) if not found. -+func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { -+ if r == nil { -+ return nil, NotFound -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ if xt, ok := r.extensionsByMessage[message][field]; ok { -+ return xt, nil -+ } -+ return nil, NotFound -+} -+ -+// NumEnums reports the number of registered enums. -+func (r *Types) NumEnums() int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ return r.numEnums -+} -+ -+// RangeEnums iterates over all registered enums while f returns true. -+// Iteration order is undefined. -+func (r *Types) RangeEnums(f func(protoreflect.EnumType) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ for _, typ := range r.typesByName { -+ if et, ok := typ.(protoreflect.EnumType); ok { -+ if !f(et) { -+ return -+ } -+ } -+ } -+} -+ -+// NumMessages reports the number of registered messages. -+func (r *Types) NumMessages() int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ return r.numMessages -+} -+ -+// RangeMessages iterates over all registered messages while f returns true. -+// Iteration order is undefined. -+func (r *Types) RangeMessages(f func(protoreflect.MessageType) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ for _, typ := range r.typesByName { -+ if mt, ok := typ.(protoreflect.MessageType); ok { -+ if !f(mt) { -+ return -+ } -+ } -+ } -+} -+ -+// NumExtensions reports the number of registered extensions. -+func (r *Types) NumExtensions() int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ return r.numExtensions -+} -+ -+// RangeExtensions iterates over all registered extensions while f returns true. -+// Iteration order is undefined. -+func (r *Types) RangeExtensions(f func(protoreflect.ExtensionType) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ for _, typ := range r.typesByName { -+ if xt, ok := typ.(protoreflect.ExtensionType); ok { -+ if !f(xt) { -+ return -+ } -+ } -+ } -+} -+ -+// NumExtensionsByMessage reports the number of registered extensions for -+// a given message type. -+func (r *Types) NumExtensionsByMessage(message protoreflect.FullName) int { -+ if r == nil { -+ return 0 -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ return len(r.extensionsByMessage[message]) -+} -+ -+// RangeExtensionsByMessage iterates over all registered extensions filtered -+// by a given message type while f returns true. Iteration order is undefined. -+func (r *Types) RangeExtensionsByMessage(message protoreflect.FullName, f func(protoreflect.ExtensionType) bool) { -+ if r == nil { -+ return -+ } -+ if r == GlobalTypes { -+ globalMutex.RLock() -+ defer globalMutex.RUnlock() -+ } -+ for _, xt := range r.extensionsByMessage[message] { -+ if !f(xt) { -+ return -+ } -+ } -+} -+ -+func typeName(t interface{}) string { -+ switch t.(type) { -+ case protoreflect.EnumType: -+ return "enum" -+ case protoreflect.MessageType: -+ return "message" -+ case protoreflect.ExtensionType: -+ return "extension" -+ default: -+ return fmt.Sprintf("%T", t) -+ } -+} -+ -+func amendErrorWithCaller(err error, prev, curr interface{}) error { -+ prevPkg := goPackage(prev) -+ currPkg := goPackage(curr) -+ if prevPkg == "" || currPkg == "" || prevPkg == currPkg { -+ return err -+ } -+ return errors.New("%s\n\tpreviously from: %q\n\tcurrently from: %q", err, prevPkg, currPkg) -+} -+ -+func goPackage(v interface{}) string { -+ switch d := v.(type) { -+ case protoreflect.EnumType: -+ v = d.Descriptor() -+ case protoreflect.MessageType: -+ v = d.Descriptor() -+ case protoreflect.ExtensionType: -+ v = d.TypeDescriptor() -+ } -+ if d, ok := v.(protoreflect.Descriptor); ok { -+ v = d.ParentFile() -+ } -+ if d, ok := v.(interface{ GoPackagePath() string }); ok { -+ return d.GoPackagePath() -+ } -+ return "" -+} -diff --git a/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go b/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go -new file mode 100644 -index 00000000..c5872767 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go -@@ -0,0 +1,15 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoiface -+ -+type MessageV1 interface { -+ Reset() -+ String() string -+ ProtoMessage() -+} -+ -+type ExtensionRangeV1 struct { -+ Start, End int32 // both inclusive -+} -diff --git a/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go b/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go -new file mode 100644 -index 00000000..44cf467d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go -@@ -0,0 +1,168 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protoiface contains types referenced or implemented by messages. -+// -+// WARNING: This package should only be imported by message implementations. -+// The functionality found in this package should be accessed through -+// higher-level abstractions provided by the proto package. -+package protoiface -+ -+import ( -+ "google.golang.org/protobuf/internal/pragma" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// Methods is a set of optional fast-path implementations of various operations. -+type Methods = struct { -+ pragma.NoUnkeyedLiterals -+ -+ // Flags indicate support for optional features. -+ Flags SupportFlags -+ -+ // Size returns the size in bytes of the wire-format encoding of a message. -+ // Marshal must be provided if a custom Size is provided. -+ Size func(SizeInput) SizeOutput -+ -+ // Marshal formats a message in the wire-format encoding to the provided buffer. -+ // Size should be provided if a custom Marshal is provided. -+ // It must not return an error for a partial message. -+ Marshal func(MarshalInput) (MarshalOutput, error) -+ -+ // Unmarshal parses the wire-format encoding and merges the result into a message. -+ // It must not reset the target message or return an error for a partial message. -+ Unmarshal func(UnmarshalInput) (UnmarshalOutput, error) -+ -+ // Merge merges the contents of a source message into a destination message. -+ Merge func(MergeInput) MergeOutput -+ -+ // CheckInitialized returns an error if any required fields in the message are not set. -+ CheckInitialized func(CheckInitializedInput) (CheckInitializedOutput, error) -+} -+ -+// SupportFlags indicate support for optional features. -+type SupportFlags = uint64 -+ -+const ( -+ // SupportMarshalDeterministic reports whether MarshalOptions.Deterministic is supported. -+ SupportMarshalDeterministic SupportFlags = 1 << iota -+ -+ // SupportUnmarshalDiscardUnknown reports whether UnmarshalOptions.DiscardUnknown is supported. -+ SupportUnmarshalDiscardUnknown -+) -+ -+// SizeInput is input to the Size method. -+type SizeInput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Message protoreflect.Message -+ Flags MarshalInputFlags -+} -+ -+// SizeOutput is output from the Size method. -+type SizeOutput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Size int -+} -+ -+// MarshalInput is input to the Marshal method. -+type MarshalInput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Message protoreflect.Message -+ Buf []byte // output is appended to this buffer -+ Flags MarshalInputFlags -+} -+ -+// MarshalOutput is output from the Marshal method. -+type MarshalOutput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Buf []byte // contains marshaled message -+} -+ -+// MarshalInputFlags configure the marshaler. -+// Most flags correspond to fields in proto.MarshalOptions. -+type MarshalInputFlags = uint8 -+ -+const ( -+ MarshalDeterministic MarshalInputFlags = 1 << iota -+ MarshalUseCachedSize -+) -+ -+// UnmarshalInput is input to the Unmarshal method. -+type UnmarshalInput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Message protoreflect.Message -+ Buf []byte // input buffer -+ Flags UnmarshalInputFlags -+ Resolver interface { -+ FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) -+ FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) -+ } -+ Depth int -+} -+ -+// UnmarshalOutput is output from the Unmarshal method. -+type UnmarshalOutput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Flags UnmarshalOutputFlags -+} -+ -+// UnmarshalInputFlags configure the unmarshaler. -+// Most flags correspond to fields in proto.UnmarshalOptions. -+type UnmarshalInputFlags = uint8 -+ -+const ( -+ UnmarshalDiscardUnknown UnmarshalInputFlags = 1 << iota -+) -+ -+// UnmarshalOutputFlags are output from the Unmarshal method. -+type UnmarshalOutputFlags = uint8 -+ -+const ( -+ // UnmarshalInitialized may be set on return if all required fields are known to be set. -+ // If unset, then it does not necessarily indicate that the message is uninitialized, -+ // only that its status could not be confirmed. -+ UnmarshalInitialized UnmarshalOutputFlags = 1 << iota -+) -+ -+// MergeInput is input to the Merge method. -+type MergeInput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Source protoreflect.Message -+ Destination protoreflect.Message -+} -+ -+// MergeOutput is output from the Merge method. -+type MergeOutput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Flags MergeOutputFlags -+} -+ -+// MergeOutputFlags are output from the Merge method. -+type MergeOutputFlags = uint8 -+ -+const ( -+ // MergeComplete reports whether the merge was performed. -+ // If unset, the merger must have made no changes to the destination. -+ MergeComplete MergeOutputFlags = 1 << iota -+) -+ -+// CheckInitializedInput is input to the CheckInitialized method. -+type CheckInitializedInput = struct { -+ pragma.NoUnkeyedLiterals -+ -+ Message protoreflect.Message -+} -+ -+// CheckInitializedOutput is output from the CheckInitialized method. -+type CheckInitializedOutput = struct { -+ pragma.NoUnkeyedLiterals -+} -diff --git a/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go b/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go -new file mode 100644 -index 00000000..4a1ab7fb ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/runtime/protoimpl/impl.go -@@ -0,0 +1,44 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package protoimpl contains the default implementation for messages -+// generated by protoc-gen-go. -+// -+// WARNING: This package should only ever be imported by generated messages. -+// The compatibility agreement covers nothing except for functionality needed -+// to keep existing generated messages operational. Breakages that occur due -+// to unauthorized usages of this package are not the author's responsibility. -+package protoimpl -+ -+import ( -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/internal/filetype" -+ "google.golang.org/protobuf/internal/impl" -+) -+ -+// UnsafeEnabled specifies whether package unsafe can be used. -+const UnsafeEnabled = impl.UnsafeEnabled -+ -+type ( -+ // Types used by generated code in init functions. -+ DescBuilder = filedesc.Builder -+ TypeBuilder = filetype.Builder -+ -+ // Types used by generated code to implement EnumType, MessageType, and ExtensionType. -+ EnumInfo = impl.EnumInfo -+ MessageInfo = impl.MessageInfo -+ ExtensionInfo = impl.ExtensionInfo -+ -+ // Types embedded in generated messages. -+ MessageState = impl.MessageState -+ SizeCache = impl.SizeCache -+ WeakFields = impl.WeakFields -+ UnknownFields = impl.UnknownFields -+ ExtensionFields = impl.ExtensionFields -+ ExtensionFieldV1 = impl.ExtensionField -+ -+ Pointer = impl.Pointer -+) -+ -+var X impl.Export -diff --git a/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go b/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go -new file mode 100644 -index 00000000..a105cb23 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go -@@ -0,0 +1,60 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protoimpl -+ -+import ( -+ "google.golang.org/protobuf/internal/version" -+) -+ -+const ( -+ // MaxVersion is the maximum supported version for generated .pb.go files. -+ // It is always the current version of the module. -+ MaxVersion = version.Minor -+ -+ // GenVersion is the runtime version required by generated .pb.go files. -+ // This is incremented when generated code relies on new functionality -+ // in the runtime. -+ GenVersion = 20 -+ -+ // MinVersion is the minimum supported version for generated .pb.go files. -+ // This is incremented when the runtime drops support for old code. -+ MinVersion = 0 -+) -+ -+// EnforceVersion is used by code generated by protoc-gen-go -+// to statically enforce minimum and maximum versions of this package. -+// A compilation failure implies either that: -+// - the runtime package is too old and needs to be updated OR -+// - the generated code is too old and needs to be regenerated. -+// -+// The runtime package can be upgraded by running: -+// -+// go get google.golang.org/protobuf -+// -+// The generated code can be regenerated by running: -+// -+// protoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES} -+// -+// Example usage by generated code: -+// -+// const ( -+// // Verify that this generated code is sufficiently up-to-date. -+// _ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion) -+// // Verify that runtime/protoimpl is sufficiently up-to-date. -+// _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - genVersion) -+// ) -+// -+// The genVersion is the current minor version used to generated the code. -+// This compile-time check relies on negative integer overflow of a uint -+// being a compilation failure (guaranteed by the Go specification). -+type EnforceVersion uint -+ -+// This enforces the following invariant: -+// -+// MinVersion ≤ GenVersion ≤ MaxVersion -+const ( -+ _ = EnforceVersion(GenVersion - MinVersion) -+ _ = EnforceVersion(MaxVersion - GenVersion) -+) -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -new file mode 100644 -index 00000000..dac5671d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -0,0 +1,4350 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2008 Google Inc. All rights reserved. -+// https://developers.google.com/protocol-buffers/ -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// * Redistributions in binary form must reproduce the above -+// copyright notice, this list of conditions and the following disclaimer -+// in the documentation and/or other materials provided with the -+// distribution. -+// * Neither the name of Google Inc. nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+// Author: kenton@google.com (Kenton Varda) -+// Based on original Protocol Buffers design by -+// Sanjay Ghemawat, Jeff Dean, and others. -+// -+// The messages in this file describe the definitions found in .proto files. -+// A valid .proto file can be translated directly to a FileDescriptorProto -+// without any other information (e.g. without reading its imports). -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: google/protobuf/descriptor.proto -+ -+package descriptorpb -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type FieldDescriptorProto_Type int32 -+ -+const ( -+ // 0 is reserved for errors. -+ // Order is weird for historical reasons. -+ FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 -+ FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 -+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if -+ // negative values are likely. -+ FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 -+ FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 -+ // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if -+ // negative values are likely. -+ FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 -+ FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 -+ FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 -+ FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 -+ FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 -+ // Tag-delimited aggregate. -+ // Group type is deprecated and not supported in proto3. However, Proto3 -+ // implementations should still be able to parse the group wire format and -+ // treat group fields as unknown fields. -+ FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 -+ FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. -+ // New in version 2. -+ FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 -+ FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 -+ FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 -+ FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 -+ FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 -+ FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 // Uses ZigZag encoding. -+ FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 // Uses ZigZag encoding. -+) -+ -+// Enum value maps for FieldDescriptorProto_Type. -+var ( -+ FieldDescriptorProto_Type_name = map[int32]string{ -+ 1: "TYPE_DOUBLE", -+ 2: "TYPE_FLOAT", -+ 3: "TYPE_INT64", -+ 4: "TYPE_UINT64", -+ 5: "TYPE_INT32", -+ 6: "TYPE_FIXED64", -+ 7: "TYPE_FIXED32", -+ 8: "TYPE_BOOL", -+ 9: "TYPE_STRING", -+ 10: "TYPE_GROUP", -+ 11: "TYPE_MESSAGE", -+ 12: "TYPE_BYTES", -+ 13: "TYPE_UINT32", -+ 14: "TYPE_ENUM", -+ 15: "TYPE_SFIXED32", -+ 16: "TYPE_SFIXED64", -+ 17: "TYPE_SINT32", -+ 18: "TYPE_SINT64", -+ } -+ FieldDescriptorProto_Type_value = map[string]int32{ -+ "TYPE_DOUBLE": 1, -+ "TYPE_FLOAT": 2, -+ "TYPE_INT64": 3, -+ "TYPE_UINT64": 4, -+ "TYPE_INT32": 5, -+ "TYPE_FIXED64": 6, -+ "TYPE_FIXED32": 7, -+ "TYPE_BOOL": 8, -+ "TYPE_STRING": 9, -+ "TYPE_GROUP": 10, -+ "TYPE_MESSAGE": 11, -+ "TYPE_BYTES": 12, -+ "TYPE_UINT32": 13, -+ "TYPE_ENUM": 14, -+ "TYPE_SFIXED32": 15, -+ "TYPE_SFIXED64": 16, -+ "TYPE_SINT32": 17, -+ "TYPE_SINT64": 18, -+ } -+) -+ -+func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { -+ p := new(FieldDescriptorProto_Type) -+ *p = x -+ return p -+} -+ -+func (x FieldDescriptorProto_Type) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldDescriptorProto_Type) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldDescriptorProto_Type(num) -+ return nil -+} -+ -+// Deprecated: Use FieldDescriptorProto_Type.Descriptor instead. -+func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 0} -+} -+ -+type FieldDescriptorProto_Label int32 -+ -+const ( -+ // 0 is reserved for errors -+ FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 -+ FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+) -+ -+// Enum value maps for FieldDescriptorProto_Label. -+var ( -+ FieldDescriptorProto_Label_name = map[int32]string{ -+ 1: "LABEL_OPTIONAL", -+ 2: "LABEL_REQUIRED", -+ 3: "LABEL_REPEATED", -+ } -+ FieldDescriptorProto_Label_value = map[string]int32{ -+ "LABEL_OPTIONAL": 1, -+ "LABEL_REQUIRED": 2, -+ "LABEL_REPEATED": 3, -+ } -+) -+ -+func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { -+ p := new(FieldDescriptorProto_Label) -+ *p = x -+ return p -+} -+ -+func (x FieldDescriptorProto_Label) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+} -+ -+func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] -+} -+ -+func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldDescriptorProto_Label) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldDescriptorProto_Label(num) -+ return nil -+} -+ -+// Deprecated: Use FieldDescriptorProto_Label.Descriptor instead. -+func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 1} -+} -+ -+// Generated classes can be optimized for speed or code size. -+type FileOptions_OptimizeMode int32 -+ -+const ( -+ FileOptions_SPEED FileOptions_OptimizeMode = 1 // Generate complete code for parsing, serialization, -+ // etc. -+ FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 // Use ReflectionOps to implement these methods. -+ FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 // Generate code using MessageLite and the lite runtime. -+) -+ -+// Enum value maps for FileOptions_OptimizeMode. -+var ( -+ FileOptions_OptimizeMode_name = map[int32]string{ -+ 1: "SPEED", -+ 2: "CODE_SIZE", -+ 3: "LITE_RUNTIME", -+ } -+ FileOptions_OptimizeMode_value = map[string]int32{ -+ "SPEED": 1, -+ "CODE_SIZE": 2, -+ "LITE_RUNTIME": 3, -+ } -+) -+ -+func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { -+ p := new(FileOptions_OptimizeMode) -+ *p = x -+ return p -+} -+ -+func (x FileOptions_OptimizeMode) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+} -+ -+func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] -+} -+ -+func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FileOptions_OptimizeMode) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FileOptions_OptimizeMode(num) -+ return nil -+} -+ -+// Deprecated: Use FileOptions_OptimizeMode.Descriptor instead. -+func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10, 0} -+} -+ -+type FieldOptions_CType int32 -+ -+const ( -+ // Default mode. -+ FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_CORD FieldOptions_CType = 1 -+ FieldOptions_STRING_PIECE FieldOptions_CType = 2 -+) -+ -+// Enum value maps for FieldOptions_CType. -+var ( -+ FieldOptions_CType_name = map[int32]string{ -+ 0: "STRING", -+ 1: "CORD", -+ 2: "STRING_PIECE", -+ } -+ FieldOptions_CType_value = map[string]int32{ -+ "STRING": 0, -+ "CORD": 1, -+ "STRING_PIECE": 2, -+ } -+) -+ -+func (x FieldOptions_CType) Enum() *FieldOptions_CType { -+ p := new(FieldOptions_CType) -+ *p = x -+ return p -+} -+ -+func (x FieldOptions_CType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+} -+ -+func (FieldOptions_CType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] -+} -+ -+func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldOptions_CType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldOptions_CType(num) -+ return nil -+} -+ -+// Deprecated: Use FieldOptions_CType.Descriptor instead. -+func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+type FieldOptions_JSType int32 -+ -+const ( -+ // Use the default type. -+ FieldOptions_JS_NORMAL FieldOptions_JSType = 0 -+ // Use JavaScript strings. -+ FieldOptions_JS_STRING FieldOptions_JSType = 1 -+ // Use JavaScript numbers. -+ FieldOptions_JS_NUMBER FieldOptions_JSType = 2 -+) -+ -+// Enum value maps for FieldOptions_JSType. -+var ( -+ FieldOptions_JSType_name = map[int32]string{ -+ 0: "JS_NORMAL", -+ 1: "JS_STRING", -+ 2: "JS_NUMBER", -+ } -+ FieldOptions_JSType_value = map[string]int32{ -+ "JS_NORMAL": 0, -+ "JS_STRING": 1, -+ "JS_NUMBER": 2, -+ } -+) -+ -+func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { -+ p := new(FieldOptions_JSType) -+ *p = x -+ return p -+} -+ -+func (x FieldOptions_JSType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+} -+ -+func (FieldOptions_JSType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] -+} -+ -+func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldOptions_JSType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldOptions_JSType(num) -+ return nil -+} -+ -+// Deprecated: Use FieldOptions_JSType.Descriptor instead. -+func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1} -+} -+ -+// If set to RETENTION_SOURCE, the option will be omitted from the binary. -+// Note: as of January 2023, support for this is in progress and does not yet -+// have an effect (b/264593489). -+type FieldOptions_OptionRetention int32 -+ -+const ( -+ FieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0 -+ FieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1 -+ FieldOptions_RETENTION_SOURCE FieldOptions_OptionRetention = 2 -+) -+ -+// Enum value maps for FieldOptions_OptionRetention. -+var ( -+ FieldOptions_OptionRetention_name = map[int32]string{ -+ 0: "RETENTION_UNKNOWN", -+ 1: "RETENTION_RUNTIME", -+ 2: "RETENTION_SOURCE", -+ } -+ FieldOptions_OptionRetention_value = map[string]int32{ -+ "RETENTION_UNKNOWN": 0, -+ "RETENTION_RUNTIME": 1, -+ "RETENTION_SOURCE": 2, -+ } -+) -+ -+func (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention { -+ p := new(FieldOptions_OptionRetention) -+ *p = x -+ return p -+} -+ -+func (x FieldOptions_OptionRetention) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+} -+ -+func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] -+} -+ -+func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldOptions_OptionRetention(num) -+ return nil -+} -+ -+// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead. -+func (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2} -+} -+ -+// This indicates the types of entities that the field may apply to when used -+// as an option. If it is unset, then the field may be freely used as an -+// option on any kind of entity. Note: as of January 2023, support for this is -+// in progress and does not yet have an effect (b/264593489). -+type FieldOptions_OptionTargetType int32 -+ -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN FieldOptions_OptionTargetType = 0 -+ FieldOptions_TARGET_TYPE_FILE FieldOptions_OptionTargetType = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE FieldOptions_OptionTargetType = 3 -+ FieldOptions_TARGET_TYPE_FIELD FieldOptions_OptionTargetType = 4 -+ FieldOptions_TARGET_TYPE_ONEOF FieldOptions_OptionTargetType = 5 -+ FieldOptions_TARGET_TYPE_ENUM FieldOptions_OptionTargetType = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY FieldOptions_OptionTargetType = 7 -+ FieldOptions_TARGET_TYPE_SERVICE FieldOptions_OptionTargetType = 8 -+ FieldOptions_TARGET_TYPE_METHOD FieldOptions_OptionTargetType = 9 -+) -+ -+// Enum value maps for FieldOptions_OptionTargetType. -+var ( -+ FieldOptions_OptionTargetType_name = map[int32]string{ -+ 0: "TARGET_TYPE_UNKNOWN", -+ 1: "TARGET_TYPE_FILE", -+ 2: "TARGET_TYPE_EXTENSION_RANGE", -+ 3: "TARGET_TYPE_MESSAGE", -+ 4: "TARGET_TYPE_FIELD", -+ 5: "TARGET_TYPE_ONEOF", -+ 6: "TARGET_TYPE_ENUM", -+ 7: "TARGET_TYPE_ENUM_ENTRY", -+ 8: "TARGET_TYPE_SERVICE", -+ 9: "TARGET_TYPE_METHOD", -+ } -+ FieldOptions_OptionTargetType_value = map[string]int32{ -+ "TARGET_TYPE_UNKNOWN": 0, -+ "TARGET_TYPE_FILE": 1, -+ "TARGET_TYPE_EXTENSION_RANGE": 2, -+ "TARGET_TYPE_MESSAGE": 3, -+ "TARGET_TYPE_FIELD": 4, -+ "TARGET_TYPE_ONEOF": 5, -+ "TARGET_TYPE_ENUM": 6, -+ "TARGET_TYPE_ENUM_ENTRY": 7, -+ "TARGET_TYPE_SERVICE": 8, -+ "TARGET_TYPE_METHOD": 9, -+ } -+) -+ -+func (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType { -+ p := new(FieldOptions_OptionTargetType) -+ *p = x -+ return p -+} -+ -+func (x FieldOptions_OptionTargetType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+} -+ -+func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] -+} -+ -+func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FieldOptions_OptionTargetType(num) -+ return nil -+} -+ -+// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead. -+func (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3} -+} -+ -+// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, -+// or neither? HTTP based RPC implementation may choose GET verb for safe -+// methods, and PUT verb for idempotent methods instead of the default POST. -+type MethodOptions_IdempotencyLevel int32 -+ -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 -+ MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 // implies idempotent -+ MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 // idempotent, but may have side effects -+) -+ -+// Enum value maps for MethodOptions_IdempotencyLevel. -+var ( -+ MethodOptions_IdempotencyLevel_name = map[int32]string{ -+ 0: "IDEMPOTENCY_UNKNOWN", -+ 1: "NO_SIDE_EFFECTS", -+ 2: "IDEMPOTENT", -+ } -+ MethodOptions_IdempotencyLevel_value = map[string]int32{ -+ "IDEMPOTENCY_UNKNOWN": 0, -+ "NO_SIDE_EFFECTS": 1, -+ "IDEMPOTENT": 2, -+ } -+) -+ -+func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { -+ p := new(MethodOptions_IdempotencyLevel) -+ *p = x -+ return p -+} -+ -+func (x MethodOptions_IdempotencyLevel) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+} -+ -+func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] -+} -+ -+func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = MethodOptions_IdempotencyLevel(num) -+ return nil -+} -+ -+// Deprecated: Use MethodOptions_IdempotencyLevel.Descriptor instead. -+func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} -+} -+ -+// Represents the identified object's effect on the element in the original -+// .proto file. -+type GeneratedCodeInfo_Annotation_Semantic int32 -+ -+const ( -+ // There is no effect or the effect is indescribable. -+ GeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0 -+ // The element is set or otherwise mutated. -+ GeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1 -+ // An alias to the element is returned. -+ GeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2 -+) -+ -+// Enum value maps for GeneratedCodeInfo_Annotation_Semantic. -+var ( -+ GeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{ -+ 0: "NONE", -+ 1: "SET", -+ 2: "ALIAS", -+ } -+ GeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{ -+ "NONE": 0, -+ "SET": 1, -+ "ALIAS": 2, -+ } -+) -+ -+func (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic { -+ p := new(GeneratedCodeInfo_Annotation_Semantic) -+ *p = x -+ return p -+} -+ -+func (x GeneratedCodeInfo_Annotation_Semantic) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+} -+ -+func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] -+} -+ -+func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = GeneratedCodeInfo_Annotation_Semantic(num) -+ return nil -+} -+ -+// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. -+func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+} -+ -+// The protocol compiler can output a FileDescriptorSet containing the .proto -+// files it parses. -+type FileDescriptorSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` -+} -+ -+func (x *FileDescriptorSet) Reset() { -+ *x = FileDescriptorSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FileDescriptorSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FileDescriptorSet) ProtoMessage() {} -+ -+func (x *FileDescriptorSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_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 FileDescriptorSet.ProtoReflect.Descriptor instead. -+func (*FileDescriptorSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *FileDescriptorSet) GetFile() []*FileDescriptorProto { -+ if x != nil { -+ return x.File -+ } -+ return nil -+} -+ -+// Describes a complete .proto file. -+type FileDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // file name, relative to root of source tree -+ Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` // e.g. "foo", "foo.bar", etc. -+ // Names of files imported by this file. -+ Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` -+ // Indexes of the public imported files in the dependency list above. -+ PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` -+ // Indexes of the weak imported files in the dependency list. -+ // For Google-internal migration only. Do not use. -+ WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` -+ // All top-level definitions in this file. -+ MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` -+ EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` -+ Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` -+ Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` -+ Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` -+ // This field contains optional information about the original source code. -+ // You may safely remove this entire field without harming runtime -+ // functionality of the descriptors -- the information is needed only by -+ // development tools. -+ SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` -+ // The syntax of the proto file. -+ // The supported values are "proto2", "proto3", and "editions". -+ // -+ // If `edition` is present, this value must be "editions". -+ Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -+ // The edition of the proto file, which is an opaque string. -+ Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+} -+ -+func (x *FileDescriptorProto) Reset() { -+ *x = FileDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[1] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FileDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FileDescriptorProto) ProtoMessage() {} -+ -+func (x *FileDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_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 FileDescriptorProto.ProtoReflect.Descriptor instead. -+func (*FileDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1} -+} -+ -+func (x *FileDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *FileDescriptorProto) GetPackage() string { -+ if x != nil && x.Package != nil { -+ return *x.Package -+ } -+ return "" -+} -+ -+func (x *FileDescriptorProto) GetDependency() []string { -+ if x != nil { -+ return x.Dependency -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetPublicDependency() []int32 { -+ if x != nil { -+ return x.PublicDependency -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetWeakDependency() []int32 { -+ if x != nil { -+ return x.WeakDependency -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetMessageType() []*DescriptorProto { -+ if x != nil { -+ return x.MessageType -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { -+ if x != nil { -+ return x.EnumType -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetService() []*ServiceDescriptorProto { -+ if x != nil { -+ return x.Service -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { -+ if x != nil { -+ return x.Extension -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetOptions() *FileOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { -+ if x != nil { -+ return x.SourceCodeInfo -+ } -+ return nil -+} -+ -+func (x *FileDescriptorProto) GetSyntax() string { -+ if x != nil && x.Syntax != nil { -+ return *x.Syntax -+ } -+ return "" -+} -+ -+func (x *FileDescriptorProto) GetEdition() string { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return "" -+} -+ -+// Describes a message type. -+type DescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` -+ Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` -+ NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` -+ EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` -+ ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` -+ OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` -+ Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` -+ ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` -+ // Reserved field names, which may not be used by fields in the same message. -+ // A given name may only be reserved once. -+ ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` -+} -+ -+func (x *DescriptorProto) Reset() { -+ *x = DescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[2] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *DescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*DescriptorProto) ProtoMessage() {} -+ -+func (x *DescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_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 DescriptorProto.ProtoReflect.Descriptor instead. -+func (*DescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2} -+} -+ -+func (x *DescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *DescriptorProto) GetField() []*FieldDescriptorProto { -+ if x != nil { -+ return x.Field -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetExtension() []*FieldDescriptorProto { -+ if x != nil { -+ return x.Extension -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetNestedType() []*DescriptorProto { -+ if x != nil { -+ return x.NestedType -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetEnumType() []*EnumDescriptorProto { -+ if x != nil { -+ return x.EnumType -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { -+ if x != nil { -+ return x.ExtensionRange -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { -+ if x != nil { -+ return x.OneofDecl -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetOptions() *MessageOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { -+ if x != nil { -+ return x.ReservedRange -+ } -+ return nil -+} -+ -+func (x *DescriptorProto) GetReservedName() []string { -+ if x != nil { -+ return x.ReservedName -+ } -+ return nil -+} -+ -+type ExtensionRangeOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions) Reset() { -+ *x = ExtensionRangeOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[3] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[3] -+ 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 ExtensionRangeOptions.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3} -+} -+ -+func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+// Describes a field within a message. -+type FieldDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` -+ Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` -+ // If type_name is set, this need not be set. If both this and type_name -+ // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. -+ Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` -+ // For message and enum types, this is the name of the type. If the name -+ // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping -+ // rules are used to find the type (i.e. first the nested types within this -+ // message are searched, then within the parent, on up to the root -+ // namespace). -+ TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` -+ // For extensions, this is the name of the type being extended. It is -+ // resolved in the same manner as type_name. -+ Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` -+ // For numeric types, contains the original text representation of the value. -+ // For booleans, "true" or "false". -+ // For strings, contains the default text contents (not escaped in any way). -+ // For bytes, contains the C escaped value. All bytes >= 128 are escaped. -+ DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` -+ // If set, gives the index of a oneof in the containing type's oneof_decl -+ // list. This field is a member of that oneof. -+ OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` -+ // JSON name of this field. The value is set by protocol compiler. If the -+ // user has set a "json_name" option on this field, that option's value -+ // will be used. Otherwise, it's deduced from the field's name by converting -+ // it to camelCase. -+ JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` -+ Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` -+ // If true, this is a proto3 "optional". When a proto3 field is optional, it -+ // tracks presence regardless of field type. -+ // -+ // When proto3_optional is true, this field must be belong to a oneof to -+ // signal to old proto3 clients that presence is tracked for this field. This -+ // oneof is known as a "synthetic" oneof, and this field must be its sole -+ // member (each proto3 optional field gets its own synthetic oneof). Synthetic -+ // oneofs exist in the descriptor only, and do not generate any API. Synthetic -+ // oneofs must be ordered after all "real" oneofs. -+ // -+ // For message fields, proto3_optional doesn't create any semantic change, -+ // since non-repeated message fields always track presence. However it still -+ // indicates the semantic detail of whether the user wrote "optional" or not. -+ // This can be useful for round-tripping the .proto file. For consistency we -+ // give message fields a synthetic oneof also, even though it is not required -+ // to track presence. This is especially important because the parser can't -+ // tell if a field is a message or an enum, so it must always create a -+ // synthetic oneof. -+ // -+ // Proto2 optional fields do not set this flag, because they already indicate -+ // optional with `LABEL_OPTIONAL`. -+ Proto3Optional *bool `protobuf:"varint,17,opt,name=proto3_optional,json=proto3Optional" json:"proto3_optional,omitempty"` -+} -+ -+func (x *FieldDescriptorProto) Reset() { -+ *x = FieldDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[4] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldDescriptorProto) ProtoMessage() {} -+ -+func (x *FieldDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[4] -+ 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 FieldDescriptorProto.ProtoReflect.Descriptor instead. -+func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4} -+} -+ -+func (x *FieldDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *FieldDescriptorProto) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { -+ if x != nil && x.Label != nil { -+ return *x.Label -+ } -+ return FieldDescriptorProto_LABEL_OPTIONAL -+} -+ -+func (x *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return FieldDescriptorProto_TYPE_DOUBLE -+} -+ -+func (x *FieldDescriptorProto) GetTypeName() string { -+ if x != nil && x.TypeName != nil { -+ return *x.TypeName -+ } -+ return "" -+} -+ -+func (x *FieldDescriptorProto) GetExtendee() string { -+ if x != nil && x.Extendee != nil { -+ return *x.Extendee -+ } -+ return "" -+} -+ -+func (x *FieldDescriptorProto) GetDefaultValue() string { -+ if x != nil && x.DefaultValue != nil { -+ return *x.DefaultValue -+ } -+ return "" -+} -+ -+func (x *FieldDescriptorProto) GetOneofIndex() int32 { -+ if x != nil && x.OneofIndex != nil { -+ return *x.OneofIndex -+ } -+ return 0 -+} -+ -+func (x *FieldDescriptorProto) GetJsonName() string { -+ if x != nil && x.JsonName != nil { -+ return *x.JsonName -+ } -+ return "" -+} -+ -+func (x *FieldDescriptorProto) GetOptions() *FieldOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+func (x *FieldDescriptorProto) GetProto3Optional() bool { -+ if x != nil && x.Proto3Optional != nil { -+ return *x.Proto3Optional -+ } -+ return false -+} -+ -+// Describes a oneof. -+type OneofDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` -+} -+ -+func (x *OneofDescriptorProto) Reset() { -+ *x = OneofDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[5] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *OneofDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*OneofDescriptorProto) ProtoMessage() {} -+ -+func (x *OneofDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[5] -+ 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 OneofDescriptorProto.ProtoReflect.Descriptor instead. -+func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{5} -+} -+ -+func (x *OneofDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *OneofDescriptorProto) GetOptions() *OneofOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+// Describes an enum type. -+type EnumDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` -+ Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` -+ // Range of reserved numeric values. Reserved numeric values may not be used -+ // by enum values in the same enum declaration. Reserved ranges may not -+ // overlap. -+ ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` -+ // Reserved enum value names, which may not be reused. A given name may only -+ // be reserved once. -+ ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` -+} -+ -+func (x *EnumDescriptorProto) Reset() { -+ *x = EnumDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[6] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *EnumDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*EnumDescriptorProto) ProtoMessage() {} -+ -+func (x *EnumDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[6] -+ 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 EnumDescriptorProto.ProtoReflect.Descriptor instead. -+func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6} -+} -+ -+func (x *EnumDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { -+ if x != nil { -+ return x.Value -+ } -+ return nil -+} -+ -+func (x *EnumDescriptorProto) GetOptions() *EnumOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+func (x *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange { -+ if x != nil { -+ return x.ReservedRange -+ } -+ return nil -+} -+ -+func (x *EnumDescriptorProto) GetReservedName() []string { -+ if x != nil { -+ return x.ReservedName -+ } -+ return nil -+} -+ -+// Describes a value within an enum. -+type EnumValueDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` -+ Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` -+} -+ -+func (x *EnumValueDescriptorProto) Reset() { -+ *x = EnumValueDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[7] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *EnumValueDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*EnumValueDescriptorProto) ProtoMessage() {} -+ -+func (x *EnumValueDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[7] -+ 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 EnumValueDescriptorProto.ProtoReflect.Descriptor instead. -+func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{7} -+} -+ -+func (x *EnumValueDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *EnumValueDescriptorProto) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+// Describes a service. -+type ServiceDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` -+ Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` -+} -+ -+func (x *ServiceDescriptorProto) Reset() { -+ *x = ServiceDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[8] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ServiceDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ServiceDescriptorProto) ProtoMessage() {} -+ -+func (x *ServiceDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[8] -+ 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 ServiceDescriptorProto.ProtoReflect.Descriptor instead. -+func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{8} -+} -+ -+func (x *ServiceDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { -+ if x != nil { -+ return x.Method -+ } -+ return nil -+} -+ -+func (x *ServiceDescriptorProto) GetOptions() *ServiceOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+// Describes a method of a service. -+type MethodDescriptorProto struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` -+ // Input and output type names. These are resolved in the same way as -+ // FieldDescriptorProto.type_name, but must refer to a message type. -+ InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` -+ OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` -+ Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` -+ // Identifies if client streams multiple client messages -+ ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` -+ // Identifies if server streams multiple server messages -+ ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` -+} -+ -+// Default values for MethodDescriptorProto fields. -+const ( -+ Default_MethodDescriptorProto_ClientStreaming = bool(false) -+ Default_MethodDescriptorProto_ServerStreaming = bool(false) -+) -+ -+func (x *MethodDescriptorProto) Reset() { -+ *x = MethodDescriptorProto{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[9] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *MethodDescriptorProto) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*MethodDescriptorProto) ProtoMessage() {} -+ -+func (x *MethodDescriptorProto) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[9] -+ 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 MethodDescriptorProto.ProtoReflect.Descriptor instead. -+func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{9} -+} -+ -+func (x *MethodDescriptorProto) GetName() string { -+ if x != nil && x.Name != nil { -+ return *x.Name -+ } -+ return "" -+} -+ -+func (x *MethodDescriptorProto) GetInputType() string { -+ if x != nil && x.InputType != nil { -+ return *x.InputType -+ } -+ return "" -+} -+ -+func (x *MethodDescriptorProto) GetOutputType() string { -+ if x != nil && x.OutputType != nil { -+ return *x.OutputType -+ } -+ return "" -+} -+ -+func (x *MethodDescriptorProto) GetOptions() *MethodOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+func (x *MethodDescriptorProto) GetClientStreaming() bool { -+ if x != nil && x.ClientStreaming != nil { -+ return *x.ClientStreaming -+ } -+ return Default_MethodDescriptorProto_ClientStreaming -+} -+ -+func (x *MethodDescriptorProto) GetServerStreaming() bool { -+ if x != nil && x.ServerStreaming != nil { -+ return *x.ServerStreaming -+ } -+ return Default_MethodDescriptorProto_ServerStreaming -+} -+ -+type FileOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Sets the Java package where classes generated from this .proto will be -+ // placed. By default, the proto package is used, but this is often -+ // inappropriate because proto packages do not normally start with backwards -+ // domain names. -+ JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` -+ // Controls the name of the wrapper Java class generated for the .proto file. -+ // That class will always contain the .proto file's getDescriptor() method as -+ // well as any top-level extensions defined in the .proto file. -+ // If java_multiple_files is disabled, then all the other classes from the -+ // .proto file will be nested inside the single wrapper outer class. -+ JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` -+ // If enabled, then the Java code generator will generate a separate .java -+ // file for each top-level message, enum, and service defined in the .proto -+ // file. Thus, these types will *not* be nested inside the wrapper class -+ // named by java_outer_classname. However, the wrapper class will still be -+ // generated to contain the file's getDescriptor() method as well as any -+ // top-level extensions defined in the file. -+ JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` -+ // This option does nothing. -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` -+ // If set true, then the Java2 code generator will generate code that -+ // throws an exception whenever an attempt is made to assign a non-UTF-8 -+ // byte sequence to a string field. -+ // Message reflection will do the same. -+ // However, an extension field still accepts non-UTF-8 byte sequences. -+ // This option has no effect on when used with the lite runtime. -+ JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` -+ OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` -+ // Sets the Go package where structs generated from this .proto will be -+ // placed. If omitted, the Go package will be derived from the following: -+ // - The basename of the package import path, if provided. -+ // - Otherwise, the package statement in the .proto file, if present. -+ // - Otherwise, the basename of the .proto file, without extension. -+ GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` -+ // Should generic services be generated in each language? "Generic" services -+ // are not specific to any particular RPC system. They are generated by the -+ // main code generators in each language (without additional plugins). -+ // Generic services were the only kind of service generation supported by -+ // early versions of google.protobuf. -+ // -+ // Generic services are now considered deprecated in favor of using plugins -+ // that generate code specific to your particular RPC system. Therefore, -+ // these default to false. Old code which depends on generic services should -+ // explicitly set them to true. -+ CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` -+ JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` -+ PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -+ PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` -+ // Is this file deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for everything in the file, or it will be completely ignored; in the very -+ // least, this is a formalization for deprecating files. -+ Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Enables the use of arenas for the proto messages in this file. This applies -+ // only to generated classes for C++. -+ CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=1" json:"cc_enable_arenas,omitempty"` -+ // Sets the objective c class prefix which is prepended to all objective c -+ // generated classes from this .proto. There is no default. -+ ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` -+ // Namespace for generated classes; defaults to the package. -+ CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` -+ // By default Swift generators will take the proto package and CamelCase it -+ // replacing '.' with underscore and use that to prefix the types/symbols -+ // defined. When this options is provided, they will use this value instead -+ // to prefix the types/symbols defined. -+ SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` -+ // Sets the php class prefix which is prepended to all php generated classes -+ // from this .proto. Default is empty. -+ PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` -+ // Use this option to change the namespace of php generated classes. Default -+ // is empty. When this option is empty, the package name will be used for -+ // determining the namespace. -+ PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` -+ // Use this option to change the namespace of php generated metadata classes. -+ // Default is empty. When this option is empty, the proto file name will be -+ // used for determining the namespace. -+ PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` -+ // Use this option to change the package of ruby generated classes. Default -+ // is empty. When this option is not set, the package name will be used for -+ // determining the ruby package. -+ RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // The parser stores options it doesn't recognize here. -+ // See the documentation for the "Options" section above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for FileOptions fields. -+const ( -+ Default_FileOptions_JavaMultipleFiles = bool(false) -+ Default_FileOptions_JavaStringCheckUtf8 = bool(false) -+ Default_FileOptions_OptimizeFor = FileOptions_SPEED -+ Default_FileOptions_CcGenericServices = bool(false) -+ Default_FileOptions_JavaGenericServices = bool(false) -+ Default_FileOptions_PyGenericServices = bool(false) -+ Default_FileOptions_PhpGenericServices = bool(false) -+ Default_FileOptions_Deprecated = bool(false) -+ Default_FileOptions_CcEnableArenas = bool(true) -+) -+ -+func (x *FileOptions) Reset() { -+ *x = FileOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[10] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FileOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FileOptions) ProtoMessage() {} -+ -+func (x *FileOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[10] -+ 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 FileOptions.ProtoReflect.Descriptor instead. -+func (*FileOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10} -+} -+ -+func (x *FileOptions) GetJavaPackage() string { -+ if x != nil && x.JavaPackage != nil { -+ return *x.JavaPackage -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetJavaOuterClassname() string { -+ if x != nil && x.JavaOuterClassname != nil { -+ return *x.JavaOuterClassname -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetJavaMultipleFiles() bool { -+ if x != nil && x.JavaMultipleFiles != nil { -+ return *x.JavaMultipleFiles -+ } -+ return Default_FileOptions_JavaMultipleFiles -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *FileOptions) GetJavaGenerateEqualsAndHash() bool { -+ if x != nil && x.JavaGenerateEqualsAndHash != nil { -+ return *x.JavaGenerateEqualsAndHash -+ } -+ return false -+} -+ -+func (x *FileOptions) GetJavaStringCheckUtf8() bool { -+ if x != nil && x.JavaStringCheckUtf8 != nil { -+ return *x.JavaStringCheckUtf8 -+ } -+ return Default_FileOptions_JavaStringCheckUtf8 -+} -+ -+func (x *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { -+ if x != nil && x.OptimizeFor != nil { -+ return *x.OptimizeFor -+ } -+ return Default_FileOptions_OptimizeFor -+} -+ -+func (x *FileOptions) GetGoPackage() string { -+ if x != nil && x.GoPackage != nil { -+ return *x.GoPackage -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetCcGenericServices() bool { -+ if x != nil && x.CcGenericServices != nil { -+ return *x.CcGenericServices -+ } -+ return Default_FileOptions_CcGenericServices -+} -+ -+func (x *FileOptions) GetJavaGenericServices() bool { -+ if x != nil && x.JavaGenericServices != nil { -+ return *x.JavaGenericServices -+ } -+ return Default_FileOptions_JavaGenericServices -+} -+ -+func (x *FileOptions) GetPyGenericServices() bool { -+ if x != nil && x.PyGenericServices != nil { -+ return *x.PyGenericServices -+ } -+ return Default_FileOptions_PyGenericServices -+} -+ -+func (x *FileOptions) GetPhpGenericServices() bool { -+ if x != nil && x.PhpGenericServices != nil { -+ return *x.PhpGenericServices -+ } -+ return Default_FileOptions_PhpGenericServices -+} -+ -+func (x *FileOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_FileOptions_Deprecated -+} -+ -+func (x *FileOptions) GetCcEnableArenas() bool { -+ if x != nil && x.CcEnableArenas != nil { -+ return *x.CcEnableArenas -+ } -+ return Default_FileOptions_CcEnableArenas -+} -+ -+func (x *FileOptions) GetObjcClassPrefix() string { -+ if x != nil && x.ObjcClassPrefix != nil { -+ return *x.ObjcClassPrefix -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetCsharpNamespace() string { -+ if x != nil && x.CsharpNamespace != nil { -+ return *x.CsharpNamespace -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetSwiftPrefix() string { -+ if x != nil && x.SwiftPrefix != nil { -+ return *x.SwiftPrefix -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetPhpClassPrefix() string { -+ if x != nil && x.PhpClassPrefix != nil { -+ return *x.PhpClassPrefix -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetPhpNamespace() string { -+ if x != nil && x.PhpNamespace != nil { -+ return *x.PhpNamespace -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetPhpMetadataNamespace() string { -+ if x != nil && x.PhpMetadataNamespace != nil { -+ return *x.PhpMetadataNamespace -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetRubyPackage() string { -+ if x != nil && x.RubyPackage != nil { -+ return *x.RubyPackage -+ } -+ return "" -+} -+ -+func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type MessageOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Set true to use the old proto1 MessageSet wire format for extensions. -+ // This is provided for backwards-compatibility with the MessageSet wire -+ // format. You should not use this for any other reason: It's less -+ // efficient, has fewer features, and is more complicated. -+ // -+ // The message must be defined exactly as follows: -+ // -+ // message Foo { -+ // option message_set_wire_format = true; -+ // extensions 4 to max; -+ // } -+ // -+ // Note that the message cannot have any defined fields; MessageSets only -+ // have extensions. -+ // -+ // All extensions of your type must be singular messages; e.g. they cannot -+ // be int32s, enums, or repeated messages. -+ // -+ // Because this is an option, the above two restrictions are not enforced by -+ // the protocol compiler. -+ MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` -+ // Disables the generation of the standard "descriptor()" accessor, which can -+ // conflict with a field of the same name. This is meant to make migration -+ // from proto1 easier; new code should avoid fields named "descriptor". -+ NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` -+ // Is this message deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for the message, or it will be completely ignored; in the very least, -+ // this is a formalization for deprecating messages. -+ Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. -+ // -+ // Whether the message is an automatically generated map entry type for the -+ // maps field. -+ // -+ // For maps fields: -+ // -+ // map map_field = 1; -+ // -+ // The parsed descriptor looks like: -+ // -+ // message MapFieldEntry { -+ // option map_entry = true; -+ // optional KeyType key = 1; -+ // optional ValueType value = 2; -+ // } -+ // repeated MapFieldEntry map_field = 1; -+ // -+ // Implementations may choose not to generate the map_entry=true message, but -+ // use a native map in the target language to hold the keys and values. -+ // The reflection APIs in such implementations still need to work as -+ // if the field is a repeated message field. -+ MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` -+ // Enable the legacy handling of JSON field name conflicts. This lowercases -+ // and strips underscored from the fields before comparison in proto3 only. -+ // The new behavior takes `json_name` into account and applies to proto2 as -+ // well. -+ // -+ // This should only be used as a temporary measure against broken builds due -+ // to the change in behavior for JSON field name conflicts. -+ // -+ // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // teams have had time to migrate. -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for MessageOptions fields. -+const ( -+ Default_MessageOptions_MessageSetWireFormat = bool(false) -+ Default_MessageOptions_NoStandardDescriptorAccessor = bool(false) -+ Default_MessageOptions_Deprecated = bool(false) -+) -+ -+func (x *MessageOptions) Reset() { -+ *x = MessageOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[11] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *MessageOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*MessageOptions) ProtoMessage() {} -+ -+func (x *MessageOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[11] -+ 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 MessageOptions.ProtoReflect.Descriptor instead. -+func (*MessageOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11} -+} -+ -+func (x *MessageOptions) GetMessageSetWireFormat() bool { -+ if x != nil && x.MessageSetWireFormat != nil { -+ return *x.MessageSetWireFormat -+ } -+ return Default_MessageOptions_MessageSetWireFormat -+} -+ -+func (x *MessageOptions) GetNoStandardDescriptorAccessor() bool { -+ if x != nil && x.NoStandardDescriptorAccessor != nil { -+ return *x.NoStandardDescriptorAccessor -+ } -+ return Default_MessageOptions_NoStandardDescriptorAccessor -+} -+ -+func (x *MessageOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_MessageOptions_Deprecated -+} -+ -+func (x *MessageOptions) GetMapEntry() bool { -+ if x != nil && x.MapEntry != nil { -+ return *x.MapEntry -+ } -+ return false -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { -+ if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { -+ return *x.DeprecatedLegacyJsonFieldConflicts -+ } -+ return false -+} -+ -+func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type FieldOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // The ctype option instructs the C++ code generator to use a different -+ // representation of the field than it normally would. See the specific -+ // options below. This option is not yet implemented in the open source -+ // release -- sorry, we'll try to include it in a future version! -+ Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` -+ // The packed option can be enabled for repeated primitive fields to enable -+ // a more efficient representation on the wire. Rather than repeatedly -+ // writing the tag and type for each element, the entire array is encoded as -+ // a single length-delimited blob. In proto3, only explicit setting it to -+ // false will avoid using packed encoding. -+ Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` -+ // The jstype option determines the JavaScript type used for values of the -+ // field. The option is permitted only for 64 bit integral and fixed types -+ // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING -+ // is represented as JavaScript string, which avoids loss of precision that -+ // can happen when a large value is converted to a floating point JavaScript. -+ // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to -+ // use the JavaScript "number" type. The behavior of the default option -+ // JS_NORMAL is implementation dependent. -+ // -+ // This option is an enum to permit additional types to be added, e.g. -+ // goog.math.Integer. -+ Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` -+ // Should this field be parsed lazily? Lazy applies only to message-type -+ // fields. It means that when the outer message is initially parsed, the -+ // inner message's contents will not be parsed but instead stored in encoded -+ // form. The inner message will actually be parsed when it is first accessed. -+ // -+ // This is only a hint. Implementations are free to choose whether to use -+ // eager or lazy parsing regardless of the value of this option. However, -+ // setting this option true suggests that the protocol author believes that -+ // using lazy parsing on this field is worth the additional bookkeeping -+ // overhead typically needed to implement it. -+ // -+ // This option does not affect the public interface of any generated code; -+ // all method signatures remain the same. Furthermore, thread-safety of the -+ // interface is not affected by this option; const methods remain safe to -+ // call from multiple threads concurrently, while non-const methods continue -+ // to require exclusive access. -+ // -+ // Note that implementations may choose not to check required fields within -+ // a lazy sub-message. That is, calling IsInitialized() on the outer message -+ // may return true even if the inner message has missing required fields. -+ // This is necessary because otherwise the inner message would have to be -+ // parsed in order to perform the check, defeating the purpose of lazy -+ // parsing. An implementation which chooses not to check required fields -+ // must be consistent about it. That is, for any particular sub-message, the -+ // implementation must either *always* check its required fields, or *never* -+ // check its required fields, regardless of whether or not the message has -+ // been parsed. -+ // -+ // As of May 2022, lazy verifies the contents of the byte stream during -+ // parsing. An invalid byte stream will cause the overall parsing to fail. -+ Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` -+ // unverified_lazy does no correctness checks on the byte stream. This should -+ // only be used where lazy with verification is prohibitive for performance -+ // reasons. -+ UnverifiedLazy *bool `protobuf:"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0" json:"unverified_lazy,omitempty"` -+ // Is this field deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for accessors, or it will be completely ignored; in the very least, this -+ // is a formalization for deprecating fields. -+ Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // For Google-internal migration only. Do not use. -+ Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` -+ // Indicate that the field value should not be printed out when using debug -+ // formats, e.g. when the field contains sensitive credentials. -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for FieldOptions fields. -+const ( -+ Default_FieldOptions_Ctype = FieldOptions_STRING -+ Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL -+ Default_FieldOptions_Lazy = bool(false) -+ Default_FieldOptions_UnverifiedLazy = bool(false) -+ Default_FieldOptions_Deprecated = bool(false) -+ Default_FieldOptions_Weak = bool(false) -+ Default_FieldOptions_DebugRedact = bool(false) -+) -+ -+func (x *FieldOptions) Reset() { -+ *x = FieldOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[12] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions) ProtoMessage() {} -+ -+func (x *FieldOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[12] -+ 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 FieldOptions.ProtoReflect.Descriptor instead. -+func (*FieldOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12} -+} -+ -+func (x *FieldOptions) GetCtype() FieldOptions_CType { -+ if x != nil && x.Ctype != nil { -+ return *x.Ctype -+ } -+ return Default_FieldOptions_Ctype -+} -+ -+func (x *FieldOptions) GetPacked() bool { -+ if x != nil && x.Packed != nil { -+ return *x.Packed -+ } -+ return false -+} -+ -+func (x *FieldOptions) GetJstype() FieldOptions_JSType { -+ if x != nil && x.Jstype != nil { -+ return *x.Jstype -+ } -+ return Default_FieldOptions_Jstype -+} -+ -+func (x *FieldOptions) GetLazy() bool { -+ if x != nil && x.Lazy != nil { -+ return *x.Lazy -+ } -+ return Default_FieldOptions_Lazy -+} -+ -+func (x *FieldOptions) GetUnverifiedLazy() bool { -+ if x != nil && x.UnverifiedLazy != nil { -+ return *x.UnverifiedLazy -+ } -+ return Default_FieldOptions_UnverifiedLazy -+} -+ -+func (x *FieldOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_FieldOptions_Deprecated -+} -+ -+func (x *FieldOptions) GetWeak() bool { -+ if x != nil && x.Weak != nil { -+ return *x.Weak -+ } -+ return Default_FieldOptions_Weak -+} -+ -+func (x *FieldOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_FieldOptions_DebugRedact -+} -+ -+func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { -+ if x != nil && x.Retention != nil { -+ return *x.Retention -+ } -+ return FieldOptions_RETENTION_UNKNOWN -+} -+ -+func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -+ if x != nil && x.Target != nil { -+ return *x.Target -+ } -+ return FieldOptions_TARGET_TYPE_UNKNOWN -+} -+ -+func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type OneofOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+func (x *OneofOptions) Reset() { -+ *x = OneofOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[13] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *OneofOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*OneofOptions) ProtoMessage() {} -+ -+func (x *OneofOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[13] -+ 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 OneofOptions.ProtoReflect.Descriptor instead. -+func (*OneofOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} -+} -+ -+func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type EnumOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Set this option to true to allow mapping different tag names to the same -+ // value. -+ AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` -+ // Is this enum deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for the enum, or it will be completely ignored; in the very least, this -+ // is a formalization for deprecating enums. -+ Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Enable the legacy handling of JSON field name conflicts. This lowercases -+ // and strips underscored from the fields before comparison in proto3 only. -+ // The new behavior takes `json_name` into account and applies to proto2 as -+ // well. -+ // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // had time to migrate. -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for EnumOptions fields. -+const ( -+ Default_EnumOptions_Deprecated = bool(false) -+) -+ -+func (x *EnumOptions) Reset() { -+ *x = EnumOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[14] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *EnumOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*EnumOptions) ProtoMessage() {} -+ -+func (x *EnumOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[14] -+ 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 EnumOptions.ProtoReflect.Descriptor instead. -+func (*EnumOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14} -+} -+ -+func (x *EnumOptions) GetAllowAlias() bool { -+ if x != nil && x.AllowAlias != nil { -+ return *x.AllowAlias -+ } -+ return false -+} -+ -+func (x *EnumOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_EnumOptions_Deprecated -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { -+ if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { -+ return *x.DeprecatedLegacyJsonFieldConflicts -+ } -+ return false -+} -+ -+func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type EnumValueOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Is this enum value deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for the enum value, or it will be completely ignored; in the very least, -+ // this is a formalization for deprecating enum values. -+ Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for EnumValueOptions fields. -+const ( -+ Default_EnumValueOptions_Deprecated = bool(false) -+) -+ -+func (x *EnumValueOptions) Reset() { -+ *x = EnumValueOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[15] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *EnumValueOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*EnumValueOptions) ProtoMessage() {} -+ -+func (x *EnumValueOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[15] -+ 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 EnumValueOptions.ProtoReflect.Descriptor instead. -+func (*EnumValueOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15} -+} -+ -+func (x *EnumValueOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_EnumValueOptions_Deprecated -+} -+ -+func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type ServiceOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Is this service deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for the service, or it will be completely ignored; in the very least, -+ // this is a formalization for deprecating services. -+ Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for ServiceOptions fields. -+const ( -+ Default_ServiceOptions_Deprecated = bool(false) -+) -+ -+func (x *ServiceOptions) Reset() { -+ *x = ServiceOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[16] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ServiceOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ServiceOptions) ProtoMessage() {} -+ -+func (x *ServiceOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[16] -+ 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 ServiceOptions.ProtoReflect.Descriptor instead. -+func (*ServiceOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} -+} -+ -+func (x *ServiceOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_ServiceOptions_Deprecated -+} -+ -+func (x *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+type MethodOptions struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ // Is this method deprecated? -+ // Depending on the target platform, this can emit Deprecated annotations -+ // for the method, or it will be completely ignored; in the very least, -+ // this is a formalization for deprecating methods. -+ Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // The parser stores options it doesn't recognize here. See above. -+ UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -+} -+ -+// Default values for MethodOptions fields. -+const ( -+ Default_MethodOptions_Deprecated = bool(false) -+ Default_MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN -+) -+ -+func (x *MethodOptions) Reset() { -+ *x = MethodOptions{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[17] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *MethodOptions) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*MethodOptions) ProtoMessage() {} -+ -+func (x *MethodOptions) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[17] -+ 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 MethodOptions.ProtoReflect.Descriptor instead. -+func (*MethodOptions) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17} -+} -+ -+func (x *MethodOptions) GetDeprecated() bool { -+ if x != nil && x.Deprecated != nil { -+ return *x.Deprecated -+ } -+ return Default_MethodOptions_Deprecated -+} -+ -+func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { -+ if x != nil && x.IdempotencyLevel != nil { -+ return *x.IdempotencyLevel -+ } -+ return Default_MethodOptions_IdempotencyLevel -+} -+ -+func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { -+ if x != nil { -+ return x.UninterpretedOption -+ } -+ return nil -+} -+ -+// A message representing a option the parser does not recognize. This only -+// appears in options protos created by the compiler::Parser class. -+// DescriptorPool resolves these when building Descriptor objects. Therefore, -+// options protos in descriptor objects (e.g. returned by Descriptor::options(), -+// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions -+// in them. -+type UninterpretedOption struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` -+ // The value of the uninterpreted option, in whatever type the tokenizer -+ // identified it as during parsing. Exactly one of these should be set. -+ IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` -+ PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` -+ NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` -+ DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` -+ StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` -+ AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` -+} -+ -+func (x *UninterpretedOption) Reset() { -+ *x = UninterpretedOption{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[18] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *UninterpretedOption) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*UninterpretedOption) ProtoMessage() {} -+ -+func (x *UninterpretedOption) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[18] -+ 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 UninterpretedOption.ProtoReflect.Descriptor instead. -+func (*UninterpretedOption) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18} -+} -+ -+func (x *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { -+ if x != nil { -+ return x.Name -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetIdentifierValue() string { -+ if x != nil && x.IdentifierValue != nil { -+ return *x.IdentifierValue -+ } -+ return "" -+} -+ -+func (x *UninterpretedOption) GetPositiveIntValue() uint64 { -+ if x != nil && x.PositiveIntValue != nil { -+ return *x.PositiveIntValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetNegativeIntValue() int64 { -+ if x != nil && x.NegativeIntValue != nil { -+ return *x.NegativeIntValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// Encapsulates information about the original source file from which a -+// FileDescriptorProto was generated. -+type SourceCodeInfo struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // A Location identifies a piece of source code in a .proto file which -+ // corresponds to a particular definition. This information is intended -+ // to be useful to IDEs, code indexers, documentation generators, and similar -+ // tools. -+ // -+ // For example, say we have a file like: -+ // -+ // message Foo { -+ // optional string foo = 1; -+ // } -+ // -+ // Let's look at just the field definition: -+ // -+ // optional string foo = 1; -+ // ^ ^^ ^^ ^ ^^^ -+ // a bc de f ghi -+ // -+ // We have the following locations: -+ // -+ // span path represents -+ // [a,i) [ 4, 0, 2, 0 ] The whole field definition. -+ // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). -+ // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). -+ // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). -+ // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). -+ // -+ // Notes: -+ // - A location may refer to a repeated field itself (i.e. not to any -+ // particular index within it). This is used whenever a set of elements are -+ // logically enclosed in a single code segment. For example, an entire -+ // extend block (possibly containing multiple extension definitions) will -+ // have an outer location whose path refers to the "extensions" repeated -+ // field without an index. -+ // - Multiple locations may have the same path. This happens when a single -+ // logical declaration is spread out across multiple places. The most -+ // obvious example is the "extend" block again -- there may be multiple -+ // extend blocks in the same scope, each of which will have the same path. -+ // - A location's span is not always a subset of its parent's span. For -+ // example, the "extendee" of an extension declaration appears at the -+ // beginning of the "extend" block and is shared by all extensions within -+ // the block. -+ // - Just because a location's span is a subset of some other location's span -+ // does not mean that it is a descendant. For example, a "group" defines -+ // both a type and a field in a single declaration. Thus, the locations -+ // corresponding to the type and field and their components will overlap. -+ // - Code which tries to interpret locations should probably be designed to -+ // ignore those that it doesn't understand, as more types of locations could -+ // be recorded in the future. -+ Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` -+} -+ -+func (x *SourceCodeInfo) Reset() { -+ *x = SourceCodeInfo{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *SourceCodeInfo) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*SourceCodeInfo) ProtoMessage() {} -+ -+func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ 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 SourceCodeInfo.ProtoReflect.Descriptor instead. -+func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -+ if x != nil { -+ return x.Location -+ } -+ return nil -+} -+ -+// Describes the relationship between generated code and its original source -+// file. A GeneratedCodeInfo message is associated with only one generated -+// source file, but may contain references to different source .proto files. -+type GeneratedCodeInfo struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // An Annotation connects some span of text in generated code to an element -+ // of its generating .proto file. -+ Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` -+} -+ -+func (x *GeneratedCodeInfo) Reset() { -+ *x = GeneratedCodeInfo{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GeneratedCodeInfo) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GeneratedCodeInfo) ProtoMessage() {} -+ -+func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ 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 GeneratedCodeInfo.ProtoReflect.Descriptor instead. -+func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+} -+ -+func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -+ if x != nil { -+ return x.Annotation -+ } -+ return nil -+} -+ -+type DescriptorProto_ExtensionRange struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. -+ End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. -+ Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` -+} -+ -+func (x *DescriptorProto_ExtensionRange) Reset() { -+ *x = DescriptorProto_ExtensionRange{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *DescriptorProto_ExtensionRange) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*DescriptorProto_ExtensionRange) ProtoMessage() {} -+ -+func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ 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 DescriptorProto_ExtensionRange.ProtoReflect.Descriptor instead. -+func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 0} -+} -+ -+func (x *DescriptorProto_ExtensionRange) GetStart() int32 { -+ if x != nil && x.Start != nil { -+ return *x.Start -+ } -+ return 0 -+} -+ -+func (x *DescriptorProto_ExtensionRange) GetEnd() int32 { -+ if x != nil && x.End != nil { -+ return *x.End -+ } -+ return 0 -+} -+ -+func (x *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { -+ if x != nil { -+ return x.Options -+ } -+ return nil -+} -+ -+// Range of reserved tag numbers. Reserved tag numbers may not be used by -+// fields or extension ranges in the same message. Reserved ranges may -+// not overlap. -+type DescriptorProto_ReservedRange struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. -+ End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. -+} -+ -+func (x *DescriptorProto_ReservedRange) Reset() { -+ *x = DescriptorProto_ReservedRange{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *DescriptorProto_ReservedRange) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*DescriptorProto_ReservedRange) ProtoMessage() {} -+ -+func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ 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 DescriptorProto_ReservedRange.ProtoReflect.Descriptor instead. -+func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 1} -+} -+ -+func (x *DescriptorProto_ReservedRange) GetStart() int32 { -+ if x != nil && x.Start != nil { -+ return *x.Start -+ } -+ return 0 -+} -+ -+func (x *DescriptorProto_ReservedRange) GetEnd() int32 { -+ if x != nil && x.End != nil { -+ return *x.End -+ } -+ return 0 -+} -+ -+// Range of reserved numeric values. Reserved values may not be used by -+// entries in the same enum. Reserved ranges may not overlap. -+// -+// Note that this is distinct from DescriptorProto.ReservedRange in that it -+// is inclusive such that it can appropriately represent the entire int32 -+// domain. -+type EnumDescriptorProto_EnumReservedRange struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. -+ End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Inclusive. -+} -+ -+func (x *EnumDescriptorProto_EnumReservedRange) Reset() { -+ *x = EnumDescriptorProto_EnumReservedRange{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *EnumDescriptorProto_EnumReservedRange) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} -+ -+func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ 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 EnumDescriptorProto_EnumReservedRange.ProtoReflect.Descriptor instead. -+func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6, 0} -+} -+ -+func (x *EnumDescriptorProto_EnumReservedRange) GetStart() int32 { -+ if x != nil && x.Start != nil { -+ return *x.Start -+ } -+ return 0 -+} -+ -+func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { -+ if x != nil && x.End != nil { -+ return *x.End -+ } -+ return 0 -+} -+ -+// The name of the uninterpreted option. Each string represents a segment in -+// a dot-separated name. is_extension is true iff a segment represents an -+// extension (denoted with parentheses in options specs in .proto files). -+// E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents -+// "foo.(bar.baz).moo". -+type UninterpretedOption_NamePart struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` -+ IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` -+} -+ -+func (x *UninterpretedOption_NamePart) Reset() { -+ *x = UninterpretedOption_NamePart{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *UninterpretedOption_NamePart) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*UninterpretedOption_NamePart) ProtoMessage() {} -+ -+func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ 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 UninterpretedOption_NamePart.ProtoReflect.Descriptor instead. -+func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18, 0} -+} -+ -+func (x *UninterpretedOption_NamePart) GetNamePart() string { -+ if x != nil && x.NamePart != nil { -+ return *x.NamePart -+ } -+ return "" -+} -+ -+func (x *UninterpretedOption_NamePart) GetIsExtension() bool { -+ if x != nil && x.IsExtension != nil { -+ return *x.IsExtension -+ } -+ return false -+} -+ -+type SourceCodeInfo_Location struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Identifies which part of the FileDescriptorProto was defined at this -+ // location. -+ // -+ // Each element is a field number or an index. They form a path from -+ // the root FileDescriptorProto to the place where the definition occurs. -+ // For example, this path: -+ // -+ // [ 4, 3, 2, 7, 1 ] -+ // -+ // refers to: -+ // -+ // file.message_type(3) // 4, 3 -+ // .field(7) // 2, 7 -+ // .name() // 1 -+ // -+ // This is because FileDescriptorProto.message_type has field number 4: -+ // -+ // repeated DescriptorProto message_type = 4; -+ // -+ // and DescriptorProto.field has field number 2: -+ // -+ // repeated FieldDescriptorProto field = 2; -+ // -+ // and FieldDescriptorProto.name has field number 1: -+ // -+ // optional string name = 1; -+ // -+ // Thus, the above path gives the location of a field name. If we removed -+ // the last element: -+ // -+ // [ 4, 3, 2, 7 ] -+ // -+ // this path refers to the whole field declaration (from the beginning -+ // of the label to the terminating semicolon). -+ Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` -+ // Always has exactly three or four elements: start line, start column, -+ // end line (optional, otherwise assumed same as start line), end column. -+ // These are packed into a single field for efficiency. Note that line -+ // and column numbers are zero-based -- typically you will want to add -+ // 1 to each before displaying to a user. -+ Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` -+ // If this SourceCodeInfo represents a complete declaration, these are any -+ // comments appearing before and after the declaration which appear to be -+ // attached to the declaration. -+ // -+ // A series of line comments appearing on consecutive lines, with no other -+ // tokens appearing on those lines, will be treated as a single comment. -+ // -+ // leading_detached_comments will keep paragraphs of comments that appear -+ // before (but not connected to) the current element. Each paragraph, -+ // separated by empty lines, will be one comment element in the repeated -+ // field. -+ // -+ // Only the comment content is provided; comment markers (e.g. //) are -+ // stripped out. For block comments, leading whitespace and an asterisk -+ // will be stripped from the beginning of each line other than the first. -+ // Newlines are included in the output. -+ // -+ // Examples: -+ // -+ // optional int32 foo = 1; // Comment attached to foo. -+ // // Comment attached to bar. -+ // optional int32 bar = 2; -+ // -+ // optional string baz = 3; -+ // // Comment attached to baz. -+ // // Another line attached to baz. -+ // -+ // // Comment attached to moo. -+ // // -+ // // Another line attached to moo. -+ // optional double moo = 4; -+ // -+ // // Detached comment for corge. This is not leading or trailing comments -+ // // to moo or corge because there are blank lines separating it from -+ // // both. -+ // -+ // // Detached comment for corge paragraph 2. -+ // -+ // optional string corge = 5; -+ // /* Block comment attached -+ // * to corge. Leading asterisks -+ // * will be removed. */ -+ // /* Block comment attached to -+ // * grault. */ -+ // optional int32 grault = 6; -+ // -+ // // ignored detached comments. -+ LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` -+ TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` -+ LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` -+} -+ -+func (x *SourceCodeInfo_Location) Reset() { -+ *x = SourceCodeInfo_Location{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *SourceCodeInfo_Location) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*SourceCodeInfo_Location) ProtoMessage() {} -+ -+func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ 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 SourceCodeInfo_Location.ProtoReflect.Descriptor instead. -+func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+func (x *SourceCodeInfo_Location) GetPath() []int32 { -+ if x != nil { -+ return x.Path -+ } -+ return nil -+} -+ -+func (x *SourceCodeInfo_Location) GetSpan() []int32 { -+ if x != nil { -+ return x.Span -+ } -+ return nil -+} -+ -+func (x *SourceCodeInfo_Location) GetLeadingComments() string { -+ if x != nil && x.LeadingComments != nil { -+ return *x.LeadingComments -+ } -+ return "" -+} -+ -+func (x *SourceCodeInfo_Location) GetTrailingComments() string { -+ if x != nil && x.TrailingComments != nil { -+ return *x.TrailingComments -+ } -+ return "" -+} -+ -+func (x *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { -+ if x != nil { -+ return x.LeadingDetachedComments -+ } -+ return nil -+} -+ -+type GeneratedCodeInfo_Annotation struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Identifies the element in the original source .proto file. This field -+ // is formatted the same as SourceCodeInfo.Location.path. -+ Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` -+ // Identifies the filesystem path to the original source .proto. -+ SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` -+ // Identifies the starting offset in bytes in the generated code -+ // that relates to the identified object. -+ Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` -+ // Identifies the ending offset in bytes in the generated code that -+ // relates to the identified object. The end offset should be one past -+ // the last relevant byte (so the length of the text = end - begin). -+ End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` -+ Semantic *GeneratedCodeInfo_Annotation_Semantic `protobuf:"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic" json:"semantic,omitempty"` -+} -+ -+func (x *GeneratedCodeInfo_Annotation) Reset() { -+ *x = GeneratedCodeInfo_Annotation{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GeneratedCodeInfo_Annotation) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} -+ -+func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ 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 GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. -+func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -+ if x != nil { -+ return x.Path -+ } -+ return nil -+} -+ -+func (x *GeneratedCodeInfo_Annotation) GetSourceFile() string { -+ if x != nil && x.SourceFile != nil { -+ return *x.SourceFile -+ } -+ return "" -+} -+ -+func (x *GeneratedCodeInfo_Annotation) GetBegin() int32 { -+ if x != nil && x.Begin != nil { -+ return *x.Begin -+ } -+ return 0 -+} -+ -+func (x *GeneratedCodeInfo_Annotation) GetEnd() int32 { -+ if x != nil && x.End != nil { -+ return *x.End -+ } -+ return 0 -+} -+ -+func (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic { -+ if x != nil && x.Semantic != nil { -+ return *x.Semantic -+ } -+ return GeneratedCodeInfo_Annotation_NONE -+} -+ -+var File_google_protobuf_descriptor_proto protoreflect.FileDescriptor -+ -+var file_google_protobuf_descriptor_proto_rawDesc = []byte{ -+ 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x22, 0x4d, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, -+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -+ 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, -+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, -+ 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, -+ 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, -+ 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x6c, -+ 0x69, 0x63, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, -+ 0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x44, 0x65, 0x70, 0x65, 0x6e, -+ 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x65, -+ 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, -+ 0x77, 0x65, 0x61, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x43, -+ 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, -+ 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, -+ 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -+ 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, -+ 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, -+ 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -+ 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -+ 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -+ 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -+ 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -+ 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -+ 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -+ 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -+ 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -+ 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -+ 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -+ 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -+ 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -+ 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -+ 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -+ 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -+ 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -+ 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -+ 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -+ 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -+ 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -+ 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -+ 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -+ 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -+ 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -+ 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -+ 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -+ 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -+ 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -+ 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -+ 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -+ 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -+ 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -+ 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -+ 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -+ 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -+ 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -+ 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -+ 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -+ 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -+ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -+ 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -+ 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -+ 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -+ 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -+ 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -+ 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -+ 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -+ 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -+ 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -+ 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -+ 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -+ 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -+ 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -+ 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -+ 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -+ 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -+ 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -+ 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -+ 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -+ 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -+ 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -+ 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -+ 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -+ 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -+ 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -+ 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -+ 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -+ 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -+ 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -+ 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -+ 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -+ 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -+ 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -+ 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -+ 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -+ 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -+ 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -+ 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -+ 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -+ 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -+ 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -+ 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -+ 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -+ 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -+ 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -+ 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -+ 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -+ 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -+ 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -+ 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -+ 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -+ 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -+ 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -+ 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -+ 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -+ 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -+ 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -+ 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -+ 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -+ 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -+ 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -+ 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -+ 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -+ 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -+ 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -+ 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -+ 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -+ 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -+ 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -+ 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -+ 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -+ 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -+ 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -+ 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -+ 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -+ 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -+ 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -+ 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -+ 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -+ 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -+ 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -+ 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -+ 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -+ 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -+ 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -+ 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -+ 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -+ 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -+ 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -+ 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -+ 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -+ 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -+ 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -+ 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -+ 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -+ 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -+ 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -+ 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -+ 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -+ 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -+ 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -+ 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -+ 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -+ 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -+ 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -+ 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -+ 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -+ 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -+ 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -+ 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -+ 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -+ 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -+ 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -+ 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -+ 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -+ 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -+ 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -+ 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -+ 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -+ 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -+ 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -+ 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -+ 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -+ 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -+ 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -+ 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -+ 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -+ 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -+ 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -+ 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -+ 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -+ 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -+ 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -+ 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -+ 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -+ 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -+ 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -+ 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -+ 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -+ 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -+ 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -+ 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -+ 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -+ 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -+ 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -+ 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -+ 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -+ 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -+ 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -+ 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -+ 0x6e, -+} -+ -+var ( -+ file_google_protobuf_descriptor_proto_rawDescOnce sync.Once -+ file_google_protobuf_descriptor_proto_rawDescData = file_google_protobuf_descriptor_proto_rawDesc -+) -+ -+func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { -+ file_google_protobuf_descriptor_proto_rawDescOnce.Do(func() { -+ file_google_protobuf_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_descriptor_proto_rawDescData) -+ }) -+ return file_google_protobuf_descriptor_proto_rawDescData -+} -+ -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -+ (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 19: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+} -+var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -+ 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 46, // [46:46] is the sub-list for method output_type -+ 46, // [46:46] is the sub-list for method input_type -+ 46, // [46:46] is the sub-list for extension type_name -+ 46, // [46:46] is the sub-list for extension extendee -+ 0, // [0:46] is the sub-list for field type_name -+} -+ -+func init() { file_google_protobuf_descriptor_proto_init() } -+func file_google_protobuf_descriptor_proto_init() { -+ if File_google_protobuf_descriptor_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_google_protobuf_descriptor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FileDescriptorSet); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FileDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*DescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*ExtensionRangeOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*OneofDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*EnumDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*EnumValueDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*ServiceDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*MethodDescriptorProto); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FileOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*MessageOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*OneofOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*EnumOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*EnumValueOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*ServiceOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*MethodOptions); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ case 3: -+ return &v.extensionFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GeneratedCodeInfo); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*DescriptorProto_ReservedRange); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GeneratedCodeInfo_Annotation); 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_google_protobuf_descriptor_proto_rawDesc, -+ NumEnums: 9, -+ NumMessages: 27, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_google_protobuf_descriptor_proto_goTypes, -+ DependencyIndexes: file_google_protobuf_descriptor_proto_depIdxs, -+ EnumInfos: file_google_protobuf_descriptor_proto_enumTypes, -+ MessageInfos: file_google_protobuf_descriptor_proto_msgTypes, -+ }.Build() -+ File_google_protobuf_descriptor_proto = out.File -+ file_google_protobuf_descriptor_proto_rawDesc = nil -+ file_google_protobuf_descriptor_proto_goTypes = nil -+ file_google_protobuf_descriptor_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -new file mode 100644 -index 00000000..a6c7a33f ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -0,0 +1,495 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2008 Google Inc. All rights reserved. -+// https://developers.google.com/protocol-buffers/ -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// * Redistributions in binary form must reproduce the above -+// copyright notice, this list of conditions and the following disclaimer -+// in the documentation and/or other materials provided with the -+// distribution. -+// * Neither the name of Google Inc. nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: google/protobuf/any.proto -+ -+// Package anypb contains generated types for google/protobuf/any.proto. -+// -+// The Any message is a dynamic representation of any other message value. -+// It is functionally a tuple of the full name of the remote message type and -+// the serialized bytes of the remote message value. -+// -+// # Constructing an Any -+// -+// An Any message containing another message value is constructed using New: -+// -+// any, err := anypb.New(m) -+// if err != nil { -+// ... // handle error -+// } -+// ... // make use of any -+// -+// # Unmarshaling an Any -+// -+// With a populated Any message, the underlying message can be serialized into -+// a remote concrete message value in a few ways. -+// -+// If the exact concrete type is known, then a new (or pre-existing) instance -+// of that message can be passed to the UnmarshalTo method: -+// -+// m := new(foopb.MyMessage) -+// if err := any.UnmarshalTo(m); err != nil { -+// ... // handle error -+// } -+// ... // make use of m -+// -+// If the exact concrete type is not known, then the UnmarshalNew method can be -+// used to unmarshal the contents into a new instance of the remote message type: -+// -+// m, err := any.UnmarshalNew() -+// if err != nil { -+// ... // handle error -+// } -+// ... // make use of m -+// -+// UnmarshalNew uses the global type registry to resolve the message type and -+// construct a new instance of that message to unmarshal into. In order for a -+// message type to appear in the global registry, the Go type representing that -+// protobuf message type must be linked into the Go binary. For messages -+// generated by protoc-gen-go, this is achieved through an import of the -+// generated Go package representing a .proto file. -+// -+// A common pattern with UnmarshalNew is to use a type switch with the resulting -+// proto.Message value: -+// -+// switch m := m.(type) { -+// case *foopb.MyMessage: -+// ... // make use of m as a *foopb.MyMessage -+// case *barpb.OtherMessage: -+// ... // make use of m as a *barpb.OtherMessage -+// case *bazpb.SomeMessage: -+// ... // make use of m as a *bazpb.SomeMessage -+// } -+// -+// This pattern ensures that the generated packages containing the message types -+// listed in the case clauses are linked into the Go binary and therefore also -+// registered in the global registry. -+// -+// # Type checking an Any -+// -+// In order to type check whether an Any message represents some other message, -+// then use the MessageIs method: -+// -+// if any.MessageIs((*foopb.MyMessage)(nil)) { -+// ... // make use of any, knowing that it contains a foopb.MyMessage -+// } -+// -+// The MessageIs method can also be used with an allocated instance of the target -+// message type if the intention is to unmarshal into it if the type matches: -+// -+// m := new(foopb.MyMessage) -+// if any.MessageIs(m) { -+// if err := any.UnmarshalTo(m); err != nil { -+// ... // handle error -+// } -+// ... // make use of m -+// } -+package anypb -+ -+import ( -+ proto "google.golang.org/protobuf/proto" -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoregistry "google.golang.org/protobuf/reflect/protoregistry" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ reflect "reflect" -+ strings "strings" -+ sync "sync" -+) -+ -+// `Any` contains an arbitrary serialized protocol buffer message along with a -+// URL that describes the type of the serialized message. -+// -+// Protobuf library provides support to pack/unpack Any values in the form -+// of utility functions or additional generated methods of the Any type. -+// -+// Example 1: Pack and unpack a message in C++. -+// -+// Foo foo = ...; -+// Any any; -+// any.PackFrom(foo); -+// ... -+// if (any.UnpackTo(&foo)) { -+// ... -+// } -+// -+// Example 2: Pack and unpack a message in Java. -+// -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } -+// -+// The pack methods provided by protobuf library will by default use -+// 'type.googleapis.com/full.type.name' as the type URL and the unpack -+// methods only use the fully qualified type name after the last '/' -+// in the type URL, for example "foo.bar.com/x/y.z" will yield type -+// name "y.z". -+// -+// # JSON -+// -+// The JSON representation of an `Any` value uses the regular -+// representation of the deserialized, embedded message, with an -+// additional field `@type` which contains the type URL. Example: -+// -+// package google.profile; -+// message Person { -+// string first_name = 1; -+// string last_name = 2; -+// } -+// -+// { -+// "@type": "type.googleapis.com/google.profile.Person", -+// "firstName": , -+// "lastName": -+// } -+// -+// If the embedded message type is well-known and has a custom JSON -+// representation, that representation will be embedded adding a field -+// `value` which holds the custom JSON in addition to the `@type` -+// field. Example (for message [google.protobuf.Duration][]): -+// -+// { -+// "@type": "type.googleapis.com/google.protobuf.Duration", -+// "value": "1.212s" -+// } -+type Any struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // A URL/resource name that uniquely identifies the type of the serialized -+ // protocol buffer message. This string must contain at least -+ // one "/" character. The last segment of the URL's path must represent -+ // the fully qualified name of the type (as in -+ // `path/google.protobuf.Duration`). The name should be in a canonical form -+ // (e.g., leading "." is not accepted). -+ // -+ // In practice, teams usually precompile into the binary all types that they -+ // expect it to use in the context of Any. However, for URLs which use the -+ // scheme `http`, `https`, or no scheme, one can optionally set up a type -+ // server that maps type URLs to message definitions as follows: -+ // -+ // - If no scheme is provided, `https` is assumed. -+ // - An HTTP GET on the URL must yield a [google.protobuf.Type][] -+ // value in binary format, or produce an error. -+ // - Applications are allowed to cache lookup results based on the -+ // URL, or have them precompiled into a binary to avoid any -+ // lookup. Therefore, binary compatibility needs to be preserved -+ // on changes to types. (Use versioned type names to manage -+ // breaking changes.) -+ // -+ // Note: this functionality is not currently available in the official -+ // protobuf release, and it is not used for type URLs beginning with -+ // type.googleapis.com. -+ // -+ // Schemes other than `http`, `https` (or the empty scheme) might be -+ // used with implementation specific semantics. -+ TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` -+ // Must be a valid serialized protocol buffer of the above specified type. -+ Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -+} -+ -+// New marshals src into a new Any instance. -+func New(src proto.Message) (*Any, error) { -+ dst := new(Any) -+ if err := dst.MarshalFrom(src); err != nil { -+ return nil, err -+ } -+ return dst, nil -+} -+ -+// MarshalFrom marshals src into dst as the underlying message -+// using the provided marshal options. -+// -+// If no options are specified, call dst.MarshalFrom instead. -+func MarshalFrom(dst *Any, src proto.Message, opts proto.MarshalOptions) error { -+ const urlPrefix = "type.googleapis.com/" -+ if src == nil { -+ return protoimpl.X.NewError("invalid nil source message") -+ } -+ b, err := opts.Marshal(src) -+ if err != nil { -+ return err -+ } -+ dst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName()) -+ dst.Value = b -+ return nil -+} -+ -+// UnmarshalTo unmarshals the underlying message from src into dst -+// using the provided unmarshal options. -+// It reports an error if dst is not of the right message type. -+// -+// If no options are specified, call src.UnmarshalTo instead. -+func UnmarshalTo(src *Any, dst proto.Message, opts proto.UnmarshalOptions) error { -+ if src == nil { -+ return protoimpl.X.NewError("invalid nil source message") -+ } -+ if !src.MessageIs(dst) { -+ got := dst.ProtoReflect().Descriptor().FullName() -+ want := src.MessageName() -+ return protoimpl.X.NewError("mismatched message type: got %q, want %q", got, want) -+ } -+ return opts.Unmarshal(src.GetValue(), dst) -+} -+ -+// UnmarshalNew unmarshals the underlying message from src into dst, -+// which is newly created message using a type resolved from the type URL. -+// The message type is resolved according to opt.Resolver, -+// which should implement protoregistry.MessageTypeResolver. -+// It reports an error if the underlying message type could not be resolved. -+// -+// If no options are specified, call src.UnmarshalNew instead. -+func UnmarshalNew(src *Any, opts proto.UnmarshalOptions) (dst proto.Message, err error) { -+ if src.GetTypeUrl() == "" { -+ return nil, protoimpl.X.NewError("invalid empty type URL") -+ } -+ if opts.Resolver == nil { -+ opts.Resolver = protoregistry.GlobalTypes -+ } -+ r, ok := opts.Resolver.(protoregistry.MessageTypeResolver) -+ if !ok { -+ return nil, protoregistry.NotFound -+ } -+ mt, err := r.FindMessageByURL(src.GetTypeUrl()) -+ if err != nil { -+ if err == protoregistry.NotFound { -+ return nil, err -+ } -+ return nil, protoimpl.X.NewError("could not resolve %q: %v", src.GetTypeUrl(), err) -+ } -+ dst = mt.New().Interface() -+ return dst, opts.Unmarshal(src.GetValue(), dst) -+} -+ -+// MessageIs reports whether the underlying message is of the same type as m. -+func (x *Any) MessageIs(m proto.Message) bool { -+ if m == nil { -+ return false -+ } -+ url := x.GetTypeUrl() -+ name := string(m.ProtoReflect().Descriptor().FullName()) -+ if !strings.HasSuffix(url, name) { -+ return false -+ } -+ return len(url) == len(name) || url[len(url)-len(name)-1] == '/' -+} -+ -+// MessageName reports the full name of the underlying message, -+// returning an empty string if invalid. -+func (x *Any) MessageName() protoreflect.FullName { -+ url := x.GetTypeUrl() -+ name := protoreflect.FullName(url) -+ if i := strings.LastIndexByte(url, '/'); i >= 0 { -+ name = name[i+len("/"):] -+ } -+ if !name.IsValid() { -+ return "" -+ } -+ return name -+} -+ -+// MarshalFrom marshals m into x as the underlying message. -+func (x *Any) MarshalFrom(m proto.Message) error { -+ return MarshalFrom(x, m, proto.MarshalOptions{}) -+} -+ -+// UnmarshalTo unmarshals the contents of the underlying message of x into m. -+// It resets m before performing the unmarshal operation. -+// It reports an error if m is not of the right message type. -+func (x *Any) UnmarshalTo(m proto.Message) error { -+ return UnmarshalTo(x, m, proto.UnmarshalOptions{}) -+} -+ -+// UnmarshalNew unmarshals the contents of the underlying message of x into -+// a newly allocated message of the specified type. -+// It reports an error if the underlying message type could not be resolved. -+func (x *Any) UnmarshalNew() (proto.Message, error) { -+ return UnmarshalNew(x, proto.UnmarshalOptions{}) -+} -+ -+func (x *Any) Reset() { -+ *x = Any{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_any_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *Any) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*Any) ProtoMessage() {} -+ -+func (x *Any) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_any_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 Any.ProtoReflect.Descriptor instead. -+func (*Any) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_any_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *Any) GetTypeUrl() string { -+ if x != nil { -+ return x.TypeUrl -+ } -+ return "" -+} -+ -+func (x *Any) GetValue() []byte { -+ if x != nil { -+ return x.Value -+ } -+ return nil -+} -+ -+var File_google_protobuf_any_proto protoreflect.FileDescriptor -+ -+var file_google_protobuf_any_proto_rawDesc = []byte{ -+ 0x0a, 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, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x22, 0x36, 0x0a, 0x03, -+ 0x41, 0x6e, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, -+ 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x42, 0x76, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x08, 0x41, 0x6e, 0x79, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, -+ 0x61, 0x6e, 0x79, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, -+ 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x33, -+} -+ -+var ( -+ file_google_protobuf_any_proto_rawDescOnce sync.Once -+ file_google_protobuf_any_proto_rawDescData = file_google_protobuf_any_proto_rawDesc -+) -+ -+func file_google_protobuf_any_proto_rawDescGZIP() []byte { -+ file_google_protobuf_any_proto_rawDescOnce.Do(func() { -+ file_google_protobuf_any_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_any_proto_rawDescData) -+ }) -+ return file_google_protobuf_any_proto_rawDescData -+} -+ -+var file_google_protobuf_any_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_google_protobuf_any_proto_goTypes = []interface{}{ -+ (*Any)(nil), // 0: google.protobuf.Any -+} -+var file_google_protobuf_any_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_google_protobuf_any_proto_init() } -+func file_google_protobuf_any_proto_init() { -+ if File_google_protobuf_any_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_google_protobuf_any_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*Any); 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_google_protobuf_any_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_google_protobuf_any_proto_goTypes, -+ DependencyIndexes: file_google_protobuf_any_proto_depIdxs, -+ MessageInfos: file_google_protobuf_any_proto_msgTypes, -+ }.Build() -+ File_google_protobuf_any_proto = out.File -+ file_google_protobuf_any_proto_rawDesc = nil -+ file_google_protobuf_any_proto_goTypes = nil -+ file_google_protobuf_any_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go -new file mode 100644 -index 00000000..df709a8d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go -@@ -0,0 +1,374 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2008 Google Inc. All rights reserved. -+// https://developers.google.com/protocol-buffers/ -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// * Redistributions in binary form must reproduce the above -+// copyright notice, this list of conditions and the following disclaimer -+// in the documentation and/or other materials provided with the -+// distribution. -+// * Neither the name of Google Inc. nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: google/protobuf/duration.proto -+ -+// Package durationpb contains generated types for google/protobuf/duration.proto. -+// -+// The Duration message represents a signed span of time. -+// -+// # Conversion to a Go Duration -+// -+// The AsDuration method can be used to convert a Duration message to a -+// standard Go time.Duration value: -+// -+// d := dur.AsDuration() -+// ... // make use of d as a time.Duration -+// -+// Converting to a time.Duration is a common operation so that the extensive -+// set of time-based operations provided by the time package can be leveraged. -+// See https://golang.org/pkg/time for more information. -+// -+// The AsDuration method performs the conversion on a best-effort basis. -+// Durations with denormal values (e.g., nanoseconds beyond -99999999 and -+// +99999999, inclusive; or seconds and nanoseconds with opposite signs) -+// are normalized during the conversion to a time.Duration. To manually check for -+// invalid Duration per the documented limitations in duration.proto, -+// additionally call the CheckValid method: -+// -+// if err := dur.CheckValid(); err != nil { -+// ... // handle error -+// } -+// -+// Note that the documented limitations in duration.proto does not protect a -+// Duration from overflowing the representable range of a time.Duration in Go. -+// The AsDuration method uses saturation arithmetic such that an overflow clamps -+// the resulting value to the closest representable value (e.g., math.MaxInt64 -+// for positive overflow and math.MinInt64 for negative overflow). -+// -+// # Conversion from a Go Duration -+// -+// The durationpb.New function can be used to construct a Duration message -+// from a standard Go time.Duration value: -+// -+// dur := durationpb.New(d) -+// ... // make use of d as a *durationpb.Duration -+package durationpb -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ math "math" -+ reflect "reflect" -+ sync "sync" -+ time "time" -+) -+ -+// A Duration represents a signed, fixed-length span of time represented -+// as a count of seconds and fractions of seconds at nanosecond -+// resolution. It is independent of any calendar and concepts like "day" -+// or "month". It is related to Timestamp in that the difference between -+// two Timestamp values is a Duration and it can be added or subtracted -+// from a Timestamp. Range is approximately +-10,000 years. -+// -+// # Examples -+// -+// Example 1: Compute Duration from two Timestamps in pseudo code. -+// -+// Timestamp start = ...; -+// Timestamp end = ...; -+// Duration duration = ...; -+// -+// duration.seconds = end.seconds - start.seconds; -+// duration.nanos = end.nanos - start.nanos; -+// -+// if (duration.seconds < 0 && duration.nanos > 0) { -+// duration.seconds += 1; -+// duration.nanos -= 1000000000; -+// } else if (duration.seconds > 0 && duration.nanos < 0) { -+// duration.seconds -= 1; -+// duration.nanos += 1000000000; -+// } -+// -+// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. -+// -+// Timestamp start = ...; -+// Duration duration = ...; -+// Timestamp end = ...; -+// -+// end.seconds = start.seconds + duration.seconds; -+// end.nanos = start.nanos + duration.nanos; -+// -+// if (end.nanos < 0) { -+// end.seconds -= 1; -+// end.nanos += 1000000000; -+// } else if (end.nanos >= 1000000000) { -+// end.seconds += 1; -+// end.nanos -= 1000000000; -+// } -+// -+// Example 3: Compute Duration from datetime.timedelta in Python. -+// -+// td = datetime.timedelta(days=3, minutes=10) -+// duration = Duration() -+// duration.FromTimedelta(td) -+// -+// # JSON Mapping -+// -+// In JSON format, the Duration type is encoded as a string rather than an -+// object, where the string ends in the suffix "s" (indicating seconds) and -+// is preceded by the number of seconds, with nanoseconds expressed as -+// fractional seconds. For example, 3 seconds with 0 nanoseconds should be -+// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should -+// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 -+// microsecond should be expressed in JSON format as "3.000001s". -+type Duration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Signed seconds of the span of time. Must be from -315,576,000,000 -+ // to +315,576,000,000 inclusive. Note: these bounds are computed from: -+ // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years -+ Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` -+ // Signed fractions of a second at nanosecond resolution of the span -+ // of time. Durations less than one second are represented with a 0 -+ // `seconds` field and a positive or negative `nanos` field. For durations -+ // of one second or more, a non-zero value for the `nanos` field must be -+ // of the same sign as the `seconds` field. Must be from -999,999,999 -+ // to +999,999,999 inclusive. -+ Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` -+} -+ -+// New constructs a new Duration from the provided time.Duration. -+func New(d time.Duration) *Duration { -+ nanos := d.Nanoseconds() -+ secs := nanos / 1e9 -+ nanos -= secs * 1e9 -+ return &Duration{Seconds: int64(secs), Nanos: int32(nanos)} -+} -+ -+// AsDuration converts x to a time.Duration, -+// returning the closest duration value in the event of overflow. -+func (x *Duration) AsDuration() time.Duration { -+ secs := x.GetSeconds() -+ nanos := x.GetNanos() -+ d := time.Duration(secs) * time.Second -+ overflow := d/time.Second != time.Duration(secs) -+ d += time.Duration(nanos) * time.Nanosecond -+ overflow = overflow || (secs < 0 && nanos < 0 && d > 0) -+ overflow = overflow || (secs > 0 && nanos > 0 && d < 0) -+ if overflow { -+ switch { -+ case secs < 0: -+ return time.Duration(math.MinInt64) -+ case secs > 0: -+ return time.Duration(math.MaxInt64) -+ } -+ } -+ return d -+} -+ -+// IsValid reports whether the duration is valid. -+// It is equivalent to CheckValid == nil. -+func (x *Duration) IsValid() bool { -+ return x.check() == 0 -+} -+ -+// CheckValid returns an error if the duration is invalid. -+// In particular, it checks whether the value is within the range of -+// -10000 years to +10000 years inclusive. -+// An error is reported for a nil Duration. -+func (x *Duration) CheckValid() error { -+ switch x.check() { -+ case invalidNil: -+ return protoimpl.X.NewError("invalid nil Duration") -+ case invalidUnderflow: -+ return protoimpl.X.NewError("duration (%v) exceeds -10000 years", x) -+ case invalidOverflow: -+ return protoimpl.X.NewError("duration (%v) exceeds +10000 years", x) -+ case invalidNanosRange: -+ return protoimpl.X.NewError("duration (%v) has out-of-range nanos", x) -+ case invalidNanosSign: -+ return protoimpl.X.NewError("duration (%v) has seconds and nanos with different signs", x) -+ default: -+ return nil -+ } -+} -+ -+const ( -+ _ = iota -+ invalidNil -+ invalidUnderflow -+ invalidOverflow -+ invalidNanosRange -+ invalidNanosSign -+) -+ -+func (x *Duration) check() uint { -+ const absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min -+ secs := x.GetSeconds() -+ nanos := x.GetNanos() -+ switch { -+ case x == nil: -+ return invalidNil -+ case secs < -absDuration: -+ return invalidUnderflow -+ case secs > +absDuration: -+ return invalidOverflow -+ case nanos <= -1e9 || nanos >= +1e9: -+ return invalidNanosRange -+ case (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0): -+ return invalidNanosSign -+ default: -+ return 0 -+ } -+} -+ -+func (x *Duration) Reset() { -+ *x = Duration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_duration_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *Duration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*Duration) ProtoMessage() {} -+ -+func (x *Duration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_duration_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 Duration.ProtoReflect.Descriptor instead. -+func (*Duration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_duration_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *Duration) GetSeconds() int64 { -+ if x != nil { -+ return x.Seconds -+ } -+ return 0 -+} -+ -+func (x *Duration) GetNanos() int32 { -+ if x != nil { -+ return x.Nanos -+ } -+ return 0 -+} -+ -+var File_google_protobuf_duration_proto protoreflect.FileDescriptor -+ -+var file_google_protobuf_duration_proto_rawDesc = []byte{ -+ 0x0a, 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, -+ 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x22, 0x3a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, -+ 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, -+ 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x83, 0x01, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, -+ 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x64, -+ 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, -+ 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, -+ 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -+} -+ -+var ( -+ file_google_protobuf_duration_proto_rawDescOnce sync.Once -+ file_google_protobuf_duration_proto_rawDescData = file_google_protobuf_duration_proto_rawDesc -+) -+ -+func file_google_protobuf_duration_proto_rawDescGZIP() []byte { -+ file_google_protobuf_duration_proto_rawDescOnce.Do(func() { -+ file_google_protobuf_duration_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_duration_proto_rawDescData) -+ }) -+ return file_google_protobuf_duration_proto_rawDescData -+} -+ -+var file_google_protobuf_duration_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_google_protobuf_duration_proto_goTypes = []interface{}{ -+ (*Duration)(nil), // 0: google.protobuf.Duration -+} -+var file_google_protobuf_duration_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_google_protobuf_duration_proto_init() } -+func file_google_protobuf_duration_proto_init() { -+ if File_google_protobuf_duration_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_google_protobuf_duration_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*Duration); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ } -+ type x struct{} -+ out := protoimpl.TypeBuilder{ -+ File: protoimpl.DescBuilder{ -+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), -+ RawDescriptor: file_google_protobuf_duration_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_google_protobuf_duration_proto_goTypes, -+ DependencyIndexes: file_google_protobuf_duration_proto_depIdxs, -+ MessageInfos: file_google_protobuf_duration_proto_msgTypes, -+ }.Build() -+ File_google_protobuf_duration_proto = out.File -+ file_google_protobuf_duration_proto_rawDesc = nil -+ file_google_protobuf_duration_proto_goTypes = nil -+ file_google_protobuf_duration_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -new file mode 100644 -index 00000000..61f69fc1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -0,0 +1,383 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2008 Google Inc. All rights reserved. -+// https://developers.google.com/protocol-buffers/ -+// -+// Redistribution and use in source and binary forms, with or without -+// modification, are permitted provided that the following conditions are -+// met: -+// -+// * Redistributions of source code must retain the above copyright -+// notice, this list of conditions and the following disclaimer. -+// * Redistributions in binary form must reproduce the above -+// copyright notice, this list of conditions and the following disclaimer -+// in the documentation and/or other materials provided with the -+// distribution. -+// * Neither the name of Google Inc. nor the names of its -+// contributors may be used to endorse or promote products derived from -+// this software without specific prior written permission. -+// -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: google/protobuf/timestamp.proto -+ -+// Package timestamppb contains generated types for google/protobuf/timestamp.proto. -+// -+// The Timestamp message represents a timestamp, -+// an instant in time since the Unix epoch (January 1st, 1970). -+// -+// # Conversion to a Go Time -+// -+// The AsTime method can be used to convert a Timestamp message to a -+// standard Go time.Time value in UTC: -+// -+// t := ts.AsTime() -+// ... // make use of t as a time.Time -+// -+// Converting to a time.Time is a common operation so that the extensive -+// set of time-based operations provided by the time package can be leveraged. -+// See https://golang.org/pkg/time for more information. -+// -+// The AsTime method performs the conversion on a best-effort basis. Timestamps -+// with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive) -+// are normalized during the conversion to a time.Time. To manually check for -+// invalid Timestamps per the documented limitations in timestamp.proto, -+// additionally call the CheckValid method: -+// -+// if err := ts.CheckValid(); err != nil { -+// ... // handle error -+// } -+// -+// # Conversion from a Go Time -+// -+// The timestamppb.New function can be used to construct a Timestamp message -+// from a standard Go time.Time value: -+// -+// ts := timestamppb.New(t) -+// ... // make use of ts as a *timestamppb.Timestamp -+// -+// In order to construct a Timestamp representing the current time, use Now: -+// -+// ts := timestamppb.Now() -+// ... // make use of ts as a *timestamppb.Timestamp -+package timestamppb -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ reflect "reflect" -+ sync "sync" -+ time "time" -+) -+ -+// A Timestamp represents a point in time independent of any time zone or local -+// calendar, encoded as a count of seconds and fractions of seconds at -+// nanosecond resolution. The count is relative to an epoch at UTC midnight on -+// January 1, 1970, in the proleptic Gregorian calendar which extends the -+// Gregorian calendar backwards to year one. -+// -+// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap -+// second table is needed for interpretation, using a [24-hour linear -+// smear](https://developers.google.com/time/smear). -+// -+// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By -+// restricting to that range, we ensure that we can convert to and from [RFC -+// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. -+// -+// # Examples -+// -+// Example 1: Compute Timestamp from POSIX `time()`. -+// -+// Timestamp timestamp; -+// timestamp.set_seconds(time(NULL)); -+// timestamp.set_nanos(0); -+// -+// Example 2: Compute Timestamp from POSIX `gettimeofday()`. -+// -+// struct timeval tv; -+// gettimeofday(&tv, NULL); -+// -+// Timestamp timestamp; -+// timestamp.set_seconds(tv.tv_sec); -+// timestamp.set_nanos(tv.tv_usec * 1000); -+// -+// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. -+// -+// FILETIME ft; -+// GetSystemTimeAsFileTime(&ft); -+// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; -+// -+// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z -+// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. -+// Timestamp timestamp; -+// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); -+// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); -+// -+// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. -+// -+// long millis = System.currentTimeMillis(); -+// -+// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) -+// .setNanos((int) ((millis % 1000) * 1000000)).build(); -+// -+// Example 5: Compute Timestamp from Java `Instant.now()`. -+// -+// Instant now = Instant.now(); -+// -+// Timestamp timestamp = -+// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) -+// .setNanos(now.getNano()).build(); -+// -+// Example 6: Compute Timestamp from current time in Python. -+// -+// timestamp = Timestamp() -+// timestamp.GetCurrentTime() -+// -+// # JSON Mapping -+// -+// In JSON format, the Timestamp type is encoded as a string in the -+// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the -+// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" -+// where {year} is always expressed using four digits while {month}, {day}, -+// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional -+// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), -+// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone -+// is required. A proto3 JSON serializer should always use UTC (as indicated by -+// "Z") when printing the Timestamp type and a proto3 JSON parser should be -+// able to accept both UTC and other timezones (as indicated by an offset). -+// -+// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past -+// 01:30 UTC on January 15, 2017. -+// -+// In JavaScript, one can convert a Date object to this format using the -+// standard -+// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) -+// method. In Python, a standard `datetime.datetime` object can be converted -+// to this format using -+// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with -+// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use -+// the Joda Time's [`ISODateTimeFormat.dateTime()`]( -+// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// ) to obtain a formatter capable of generating timestamps in this format. -+type Timestamp struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Represents seconds of UTC time since Unix epoch -+ // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to -+ // 9999-12-31T23:59:59Z inclusive. -+ Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` -+ // Non-negative fractions of a second at nanosecond resolution. Negative -+ // second values with fractions must still have non-negative nanos values -+ // that count forward in time. Must be from 0 to 999,999,999 -+ // inclusive. -+ Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` -+} -+ -+// Now constructs a new Timestamp from the current time. -+func Now() *Timestamp { -+ return New(time.Now()) -+} -+ -+// New constructs a new Timestamp from the provided time.Time. -+func New(t time.Time) *Timestamp { -+ return &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())} -+} -+ -+// AsTime converts x to a time.Time. -+func (x *Timestamp) AsTime() time.Time { -+ return time.Unix(int64(x.GetSeconds()), int64(x.GetNanos())).UTC() -+} -+ -+// IsValid reports whether the timestamp is valid. -+// It is equivalent to CheckValid == nil. -+func (x *Timestamp) IsValid() bool { -+ return x.check() == 0 -+} -+ -+// CheckValid returns an error if the timestamp is invalid. -+// In particular, it checks whether the value represents a date that is -+// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. -+// An error is reported for a nil Timestamp. -+func (x *Timestamp) CheckValid() error { -+ switch x.check() { -+ case invalidNil: -+ return protoimpl.X.NewError("invalid nil Timestamp") -+ case invalidUnderflow: -+ return protoimpl.X.NewError("timestamp (%v) before 0001-01-01", x) -+ case invalidOverflow: -+ return protoimpl.X.NewError("timestamp (%v) after 9999-12-31", x) -+ case invalidNanos: -+ return protoimpl.X.NewError("timestamp (%v) has out-of-range nanos", x) -+ default: -+ return nil -+ } -+} -+ -+const ( -+ _ = iota -+ invalidNil -+ invalidUnderflow -+ invalidOverflow -+ invalidNanos -+) -+ -+func (x *Timestamp) check() uint { -+ const minTimestamp = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive -+ const maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive -+ secs := x.GetSeconds() -+ nanos := x.GetNanos() -+ switch { -+ case x == nil: -+ return invalidNil -+ case secs < minTimestamp: -+ return invalidUnderflow -+ case secs > maxTimestamp: -+ return invalidOverflow -+ case nanos < 0 || nanos >= 1e9: -+ return invalidNanos -+ default: -+ return 0 -+ } -+} -+ -+func (x *Timestamp) Reset() { -+ *x = Timestamp{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_timestamp_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *Timestamp) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*Timestamp) ProtoMessage() {} -+ -+func (x *Timestamp) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_timestamp_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 Timestamp.ProtoReflect.Descriptor instead. -+func (*Timestamp) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_timestamp_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *Timestamp) GetSeconds() int64 { -+ if x != nil { -+ return x.Seconds -+ } -+ return 0 -+} -+ -+func (x *Timestamp) GetNanos() int32 { -+ if x != nil { -+ return x.Nanos -+ } -+ return 0 -+} -+ -+var File_google_protobuf_timestamp_proto protoreflect.FileDescriptor -+ -+var file_google_protobuf_timestamp_proto_rawDesc = []byte{ -+ 0x0a, 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, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x22, 0x3b, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, -+ 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, -+ 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, -+ 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, -+ 0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, -+ 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, -+ 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x70, 0x62, 0xf8, 0x01, 0x01, -+ 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, -+ 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -+} -+ -+var ( -+ file_google_protobuf_timestamp_proto_rawDescOnce sync.Once -+ file_google_protobuf_timestamp_proto_rawDescData = file_google_protobuf_timestamp_proto_rawDesc -+) -+ -+func file_google_protobuf_timestamp_proto_rawDescGZIP() []byte { -+ file_google_protobuf_timestamp_proto_rawDescOnce.Do(func() { -+ file_google_protobuf_timestamp_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_timestamp_proto_rawDescData) -+ }) -+ return file_google_protobuf_timestamp_proto_rawDescData -+} -+ -+var file_google_protobuf_timestamp_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_google_protobuf_timestamp_proto_goTypes = []interface{}{ -+ (*Timestamp)(nil), // 0: google.protobuf.Timestamp -+} -+var file_google_protobuf_timestamp_proto_depIdxs = []int32{ -+ 0, // [0:0] is the sub-list for method output_type -+ 0, // [0:0] is the sub-list for method input_type -+ 0, // [0:0] is the sub-list for extension type_name -+ 0, // [0:0] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_google_protobuf_timestamp_proto_init() } -+func file_google_protobuf_timestamp_proto_init() { -+ if File_google_protobuf_timestamp_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_google_protobuf_timestamp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*Timestamp); 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_google_protobuf_timestamp_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 0, -+ NumServices: 0, -+ }, -+ GoTypes: file_google_protobuf_timestamp_proto_goTypes, -+ DependencyIndexes: file_google_protobuf_timestamp_proto_depIdxs, -+ MessageInfos: file_google_protobuf_timestamp_proto_msgTypes, -+ }.Build() -+ File_google_protobuf_timestamp_proto = out.File -+ file_google_protobuf_timestamp_proto_rawDesc = nil -+ file_google_protobuf_timestamp_proto_goTypes = nil -+ file_google_protobuf_timestamp_proto_depIdxs = nil -+} -diff --git a/vendor/modules.txt b/vendor/modules.txt -index d4127a75..9ee7ad31 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -1,12 +1,13 @@ --# github.com/Microsoft/go-winio v0.6.0 -+# github.com/Microsoft/go-winio v0.6.1 - ## explicit; go 1.17 - github.com/Microsoft/go-winio -+github.com/Microsoft/go-winio/internal/fs - github.com/Microsoft/go-winio/internal/socket -+github.com/Microsoft/go-winio/internal/stringbuffer - github.com/Microsoft/go-winio/pkg/guid --github.com/Microsoft/go-winio/pkg/security - github.com/Microsoft/go-winio/vhd --# github.com/Microsoft/hcsshim v0.9.9 --## explicit; go 1.13 -+# github.com/Microsoft/hcsshim v0.11.4 -+## explicit; go 1.18 - github.com/Microsoft/hcsshim - github.com/Microsoft/hcsshim/computestorage - github.com/Microsoft/hcsshim/hcn -@@ -22,12 +23,15 @@ github.com/Microsoft/hcsshim/internal/jobobject - github.com/Microsoft/hcsshim/internal/log - github.com/Microsoft/hcsshim/internal/logfields - github.com/Microsoft/hcsshim/internal/longpath -+github.com/Microsoft/hcsshim/internal/memory - github.com/Microsoft/hcsshim/internal/mergemaps - github.com/Microsoft/hcsshim/internal/oc -+github.com/Microsoft/hcsshim/internal/protocol/guestrequest - github.com/Microsoft/hcsshim/internal/queue - github.com/Microsoft/hcsshim/internal/regstate - github.com/Microsoft/hcsshim/internal/runhcs - github.com/Microsoft/hcsshim/internal/safefile -+github.com/Microsoft/hcsshim/internal/security - github.com/Microsoft/hcsshim/internal/timeout - github.com/Microsoft/hcsshim/internal/vmcompute - github.com/Microsoft/hcsshim/internal/wclayer -@@ -42,6 +46,9 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 -+# github.com/containerd/containerd v1.6.23 -+## explicit; go 1.18 -+github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 - github.com/containernetworking/cni/libcni -@@ -72,6 +79,8 @@ github.com/d2g/dhcp4client - github.com/d2g/dhcp4server - github.com/d2g/dhcp4server/leasepool - github.com/d2g/dhcp4server/leasepool/memorypool -+# github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 -+## explicit - # github.com/go-logr/logr v1.2.4 - ## explicit; go 1.16 - github.com/go-logr/logr -@@ -90,6 +99,13 @@ github.com/gogo/protobuf/protoc-gen-gogo/descriptor - # github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da - ## explicit - github.com/golang/groupcache/lru -+# github.com/golang/protobuf v1.5.3 -+## explicit; go 1.9 -+github.com/golang/protobuf/proto -+github.com/golang/protobuf/ptypes -+github.com/golang/protobuf/ptypes/any -+github.com/golang/protobuf/ptypes/duration -+github.com/golang/protobuf/ptypes/timestamp - # github.com/google/go-cmp v0.5.9 - ## explicit; go 1.13 - github.com/google/go-cmp/cmp -@@ -175,7 +191,7 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.9.0 - ## explicit; go 1.17 - golang.org/x/mod/semver --# golang.org/x/net v0.8.0 -+# golang.org/x/net v0.17.0 - ## explicit; go 1.17 - golang.org/x/net/bpf - golang.org/x/net/context -@@ -185,14 +201,13 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.7.0 -+# golang.org/x/sys v0.13.0 - ## explicit; go 1.17 - golang.org/x/sys/execabs --golang.org/x/sys/internal/unsafeheader - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.8.0 -+# golang.org/x/text v0.13.0 - ## explicit; go 1.17 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap -@@ -230,6 +245,46 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal -+# google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 -+## explicit; go 1.15 -+google.golang.org/genproto/googleapis/rpc/status -+# google.golang.org/grpc v1.50.1 -+## explicit; go 1.17 -+google.golang.org/grpc/codes -+google.golang.org/grpc/internal/status -+google.golang.org/grpc/status -+# google.golang.org/protobuf v1.29.1 -+## explicit; go 1.11 -+google.golang.org/protobuf/encoding/prototext -+google.golang.org/protobuf/encoding/protowire -+google.golang.org/protobuf/internal/descfmt -+google.golang.org/protobuf/internal/descopts -+google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/encoding/defval -+google.golang.org/protobuf/internal/encoding/messageset -+google.golang.org/protobuf/internal/encoding/tag -+google.golang.org/protobuf/internal/encoding/text -+google.golang.org/protobuf/internal/errors -+google.golang.org/protobuf/internal/filedesc -+google.golang.org/protobuf/internal/filetype -+google.golang.org/protobuf/internal/flags -+google.golang.org/protobuf/internal/genid -+google.golang.org/protobuf/internal/impl -+google.golang.org/protobuf/internal/order -+google.golang.org/protobuf/internal/pragma -+google.golang.org/protobuf/internal/set -+google.golang.org/protobuf/internal/strs -+google.golang.org/protobuf/internal/version -+google.golang.org/protobuf/proto -+google.golang.org/protobuf/reflect/protodesc -+google.golang.org/protobuf/reflect/protoreflect -+google.golang.org/protobuf/reflect/protoregistry -+google.golang.org/protobuf/runtime/protoiface -+google.golang.org/protobuf/runtime/protoimpl -+google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/known/anypb -+google.golang.org/protobuf/types/known/durationpb -+google.golang.org/protobuf/types/known/timestamppb - # gopkg.in/yaml.v3 v3.0.1 - ## explicit - gopkg.in/yaml.v3 --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-28/patches/0002-Bump-gPRC-version-to-v1.56.3.patch b/projects/containernetworking/plugins/1-28/patches/0002-Bump-gPRC-version-to-v1.56.3.patch deleted file mode 100644 index b8c7f2daf3..0000000000 --- a/projects/containernetworking/plugins/1-28/patches/0002-Bump-gPRC-version-to-v1.56.3.patch +++ /dev/null @@ -1,3159 +0,0 @@ -From 6931d1b50aa18227ae9ff19b438b380d96378bf1 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Tue, 7 Nov 2023 14:54:55 -0800 -Subject: [PATCH] Bump gPRC version to v1.56.3 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 41 +-- - .../googleapis/rpc/status/status.pb.go | 10 +- - .../grpc/attributes/attributes.go | 130 +++++++ - .../grpc/codes/code_string.go | 51 ++- - .../grpc/connectivity/connectivity.go | 94 +++++ - .../grpc/credentials/credentials.go | 291 +++++++++++++++ - .../google.golang.org/grpc/credentials/tls.go | 236 +++++++++++++ - .../grpc/grpclog/component.go | 117 +++++++ - .../google.golang.org/grpc/grpclog/grpclog.go | 132 +++++++ - .../google.golang.org/grpc/grpclog/logger.go | 87 +++++ - .../grpc/grpclog/loggerv2.go | 258 ++++++++++++++ - .../grpc/internal/credentials/credentials.go | 49 +++ - .../grpc/internal/credentials/spiffe.go | 75 ++++ - .../grpc/internal/credentials/syscallconn.go | 58 +++ - .../grpc/internal/credentials/util.go | 52 +++ - .../grpc/internal/grpclog/grpclog.go | 126 +++++++ - .../grpc/internal/grpclog/prefixLogger.go | 93 +++++ - .../grpc/internal/internal.go | 194 ++++++++++ - .../grpc/internal/status/status.go | 10 + - .../grpc/internal/xds_handshake_cluster.go | 40 +++ - vendor/google.golang.org/grpc/resolver/map.go | 138 ++++++++ - .../grpc/resolver/resolver.go | 330 ++++++++++++++++++ - .../grpc/serviceconfig/serviceconfig.go | 44 +++ - .../google.golang.org/grpc/status/status.go | 61 +++- - .../protobuf/internal/version/version.go | 4 +- - vendor/modules.txt | 17 +- - 27 files changed, 2677 insertions(+), 67 deletions(-) - create mode 100644 vendor/google.golang.org/grpc/attributes/attributes.go - create mode 100644 vendor/google.golang.org/grpc/connectivity/connectivity.go - create mode 100644 vendor/google.golang.org/grpc/credentials/credentials.go - create mode 100644 vendor/google.golang.org/grpc/credentials/tls.go - create mode 100644 vendor/google.golang.org/grpc/grpclog/component.go - create mode 100644 vendor/google.golang.org/grpc/grpclog/grpclog.go - create mode 100644 vendor/google.golang.org/grpc/grpclog/logger.go - create mode 100644 vendor/google.golang.org/grpc/grpclog/loggerv2.go - create mode 100644 vendor/google.golang.org/grpc/internal/credentials/credentials.go - create mode 100644 vendor/google.golang.org/grpc/internal/credentials/spiffe.go - create mode 100644 vendor/google.golang.org/grpc/internal/credentials/syscallconn.go - create mode 100644 vendor/google.golang.org/grpc/internal/credentials/util.go - create mode 100644 vendor/google.golang.org/grpc/internal/grpclog/grpclog.go - create mode 100644 vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go - create mode 100644 vendor/google.golang.org/grpc/internal/internal.go - create mode 100644 vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go - create mode 100644 vendor/google.golang.org/grpc/resolver/map.go - create mode 100644 vendor/google.golang.org/grpc/resolver/resolver.go - create mode 100644 vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go - -diff --git a/go.mod b/go.mod -index 9a51ae4e..97215537 100644 ---- a/go.mod -+++ b/go.mod -@@ -43,8 +43,8 @@ require ( - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.7.0 // indirect -- google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect -- google.golang.org/grpc v1.50.1 // indirect -- google.golang.org/protobuf v1.29.1 // indirect -+ google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -+ google.golang.org/grpc v1.56.3 // indirect -+ google.golang.org/protobuf v1.30.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 91d39933..24696937 100644 ---- a/go.sum -+++ b/go.sum -@@ -1,5 +1,4 @@ - cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= --cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= - github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= - github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -@@ -7,21 +6,14 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7 - github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= - github.com/alexflint/go-filemutex v1.2.0 h1:1v0TJPDtlhgpW4nJ+GvxCLSlUDC3+gW0CQQvlmfDR/s= - github.com/alexflint/go-filemutex v1.2.0/go.mod h1:mYyQSWvw9Tx2/H2n9qXPb52tTYfE0pZAWcBq5mK025c= --github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= - github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= - github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= - github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= --github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= - github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= - github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= - github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= - github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= --github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= --github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= --github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= --github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= --github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= - github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= -@@ -46,12 +38,9 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs - github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= - github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= - github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= --github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= --github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= - github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= - github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= - github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= --github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= - github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= - github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -@@ -69,7 +58,6 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4er - 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.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= - 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= -@@ -89,14 +77,12 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ - 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.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= - github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= - github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= - github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd h1:r8yyd+DJDmsUhGrRBxH5Pj7KeFK5l+Y3FsgT8keqKtk= - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd/go.mod h1:79YE0hCXdHag9sBkw2o+N/YnZtTkXi0UT9Nnixa5eYk= - github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= --github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= - github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= - github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= - github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -@@ -125,7 +111,6 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE - 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/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= - github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -@@ -151,7 +136,6 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec - github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= - go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= - go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= --go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= - golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= - golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -@@ -167,14 +151,12 @@ golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= - golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= --golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= - golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= - golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= - golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= - golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= --golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= - golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -@@ -182,10 +164,8 @@ golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT - golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= - golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= --golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= - golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -@@ -205,7 +185,6 @@ golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7w - 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-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= --golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -@@ -217,7 +196,6 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= - 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.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= - golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= - golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= - golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -@@ -241,20 +219,16 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl - google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= - google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= - google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= --google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= --google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= --google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= -+google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= -+google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= - 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.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= - google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= --google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= --google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= --google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY= --google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -+google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= -+google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= - 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= -@@ -266,16 +240,13 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= - google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= - google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= --google.golang.org/protobuf v1.29.1 h1:7QBf+IK2gx70Ap/hDsOmam3GE0v9HicjfEdAxE62UoM= --google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -+google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= - gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= - gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= --gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= - gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -diff --git a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go -index f34a38e4..a6b50818 100644 ---- a/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go -+++ b/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go -@@ -1,4 +1,4 @@ --// Copyright 2020 Google LLC -+// Copyright 2022 Google LLC - // - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. -@@ -15,7 +15,7 @@ - // Code generated by protoc-gen-go. DO NOT EDIT. - // versions: - // protoc-gen-go v1.26.0 --// protoc v3.12.2 -+// protoc v3.21.9 - // source: google/rpc/status.proto - - package status -@@ -48,11 +48,13 @@ type Status struct { - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - -- // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. -+ // The status code, which should be an enum value of -+ // [google.rpc.Code][google.rpc.Code]. - Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - // A developer-facing error message, which should be in English. Any - // user-facing error message should be localized and sent in the -- // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. -+ // [google.rpc.Status.details][google.rpc.Status.details] field, or localized -+ // by the client. - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - // A list of messages that carry the error details. There is a common set of - // message types for APIs to use. -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -new file mode 100644 -index 00000000..3efca459 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -0,0 +1,130 @@ -+/* -+ * -+ * Copyright 2019 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package attributes defines a generic key/value store used in various gRPC -+// components. -+// -+// # Experimental -+// -+// Notice: This package is EXPERIMENTAL and may be changed or removed in a -+// later release. -+package attributes -+ -+import ( -+ "fmt" -+ "strings" -+) -+ -+// Attributes is an immutable struct for storing and retrieving generic -+// key/value pairs. Keys must be hashable, and users should define their own -+// types for keys. Values should not be modified after they are added to an -+// Attributes or if they were received from one. If values implement 'Equal(o -+// interface{}) bool', it will be called by (*Attributes).Equal to determine -+// whether two values with the same key should be considered equal. -+type Attributes struct { -+ m map[interface{}]interface{} -+} -+ -+// New returns a new Attributes containing the key/value pair. -+func New(key, value interface{}) *Attributes { -+ return &Attributes{m: map[interface{}]interface{}{key: value}} -+} -+ -+// WithValue returns a new Attributes containing the previous keys and values -+// and the new key/value pair. If the same key appears multiple times, the -+// last value overwrites all previous values for that key. To remove an -+// existing key, use a nil value. value should not be modified later. -+func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+ if a == nil { -+ return New(key, value) -+ } -+ n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ for k, v := range a.m { -+ n.m[k] = v -+ } -+ n.m[key] = value -+ return n -+} -+ -+// Value returns the value associated with these attributes for key, or nil if -+// no value is associated with key. The returned value should not be modified. -+func (a *Attributes) Value(key interface{}) interface{} { -+ if a == nil { -+ return nil -+ } -+ return a.m[key] -+} -+ -+// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) -+// bool' is implemented for a value in the attributes, it is called to -+// determine if the value matches the one stored in the other attributes. If -+// Equal is not implemented, standard equality is used to determine if the two -+// values are equal. Note that some types (e.g. maps) aren't comparable by -+// default, so they must be wrapped in a struct, or in an alias type, with Equal -+// defined. -+func (a *Attributes) Equal(o *Attributes) bool { -+ if a == nil && o == nil { -+ return true -+ } -+ if a == nil || o == nil { -+ return false -+ } -+ if len(a.m) != len(o.m) { -+ return false -+ } -+ for k, v := range a.m { -+ ov, ok := o.m[k] -+ if !ok { -+ // o missing element of a -+ return false -+ } -+ if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if !eq.Equal(ov) { -+ return false -+ } -+ } else if v != ov { -+ // Fallback to a standard equality check if Value is unimplemented. -+ return false -+ } -+ } -+ return true -+} -+ -+// String prints the attribute map. If any key or values throughout the map -+// implement fmt.Stringer, it calls that method and appends. -+func (a *Attributes) String() string { -+ var sb strings.Builder -+ sb.WriteString("{") -+ first := true -+ for k, v := range a.m { -+ var key, val string -+ if str, ok := k.(interface{ String() string }); ok { -+ key = str.String() -+ } -+ if str, ok := v.(interface{ String() string }); ok { -+ val = str.String() -+ } -+ if !first { -+ sb.WriteString(", ") -+ } -+ sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ first = false -+ } -+ sb.WriteString("}") -+ return sb.String() -+} -diff --git a/vendor/google.golang.org/grpc/codes/code_string.go b/vendor/google.golang.org/grpc/codes/code_string.go -index 0b206a57..934fac2b 100644 ---- a/vendor/google.golang.org/grpc/codes/code_string.go -+++ b/vendor/google.golang.org/grpc/codes/code_string.go -@@ -18,7 +18,15 @@ - - package codes - --import "strconv" -+import ( -+ "strconv" -+ -+ "google.golang.org/grpc/internal" -+) -+ -+func init() { -+ internal.CanonicalString = canonicalString -+} - - func (c Code) String() string { - switch c { -@@ -60,3 +68,44 @@ func (c Code) String() string { - return "Code(" + strconv.FormatInt(int64(c), 10) + ")" - } - } -+ -+func canonicalString(c Code) string { -+ switch c { -+ case OK: -+ return "OK" -+ case Canceled: -+ return "CANCELLED" -+ case Unknown: -+ return "UNKNOWN" -+ case InvalidArgument: -+ return "INVALID_ARGUMENT" -+ case DeadlineExceeded: -+ return "DEADLINE_EXCEEDED" -+ case NotFound: -+ return "NOT_FOUND" -+ case AlreadyExists: -+ return "ALREADY_EXISTS" -+ case PermissionDenied: -+ return "PERMISSION_DENIED" -+ case ResourceExhausted: -+ return "RESOURCE_EXHAUSTED" -+ case FailedPrecondition: -+ return "FAILED_PRECONDITION" -+ case Aborted: -+ return "ABORTED" -+ case OutOfRange: -+ return "OUT_OF_RANGE" -+ case Unimplemented: -+ return "UNIMPLEMENTED" -+ case Internal: -+ return "INTERNAL" -+ case Unavailable: -+ return "UNAVAILABLE" -+ case DataLoss: -+ return "DATA_LOSS" -+ case Unauthenticated: -+ return "UNAUTHENTICATED" -+ default: -+ return "CODE(" + strconv.FormatInt(int64(c), 10) + ")" -+ } -+} -diff --git a/vendor/google.golang.org/grpc/connectivity/connectivity.go b/vendor/google.golang.org/grpc/connectivity/connectivity.go -new file mode 100644 -index 00000000..4a899264 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/connectivity/connectivity.go -@@ -0,0 +1,94 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package connectivity defines connectivity semantics. -+// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md. -+package connectivity -+ -+import ( -+ "google.golang.org/grpc/grpclog" -+) -+ -+var logger = grpclog.Component("core") -+ -+// State indicates the state of connectivity. -+// It can be the state of a ClientConn or SubConn. -+type State int -+ -+func (s State) String() string { -+ switch s { -+ case Idle: -+ return "IDLE" -+ case Connecting: -+ return "CONNECTING" -+ case Ready: -+ return "READY" -+ case TransientFailure: -+ return "TRANSIENT_FAILURE" -+ case Shutdown: -+ return "SHUTDOWN" -+ default: -+ logger.Errorf("unknown connectivity state: %d", s) -+ return "INVALID_STATE" -+ } -+} -+ -+const ( -+ // Idle indicates the ClientConn is idle. -+ Idle State = iota -+ // Connecting indicates the ClientConn is connecting. -+ Connecting -+ // Ready indicates the ClientConn is ready for work. -+ Ready -+ // TransientFailure indicates the ClientConn has seen a failure but expects to recover. -+ TransientFailure -+ // Shutdown indicates the ClientConn has started shutting down. -+ Shutdown -+) -+ -+// ServingMode indicates the current mode of operation of the server. -+// -+// Only xDS enabled gRPC servers currently report their serving mode. -+type ServingMode int -+ -+const ( -+ // ServingModeStarting indicates that the server is starting up. -+ ServingModeStarting ServingMode = iota -+ // ServingModeServing indicates that the server contains all required -+ // configuration and is serving RPCs. -+ ServingModeServing -+ // ServingModeNotServing indicates that the server is not accepting new -+ // connections. Existing connections will be closed gracefully, allowing -+ // in-progress RPCs to complete. A server enters this mode when it does not -+ // contain the required configuration to serve RPCs. -+ ServingModeNotServing -+) -+ -+func (s ServingMode) String() string { -+ switch s { -+ case ServingModeStarting: -+ return "STARTING" -+ case ServingModeServing: -+ return "SERVING" -+ case ServingModeNotServing: -+ return "NOT_SERVING" -+ default: -+ logger.Errorf("unknown serving mode: %d", s) -+ return "INVALID_MODE" -+ } -+} -diff --git a/vendor/google.golang.org/grpc/credentials/credentials.go b/vendor/google.golang.org/grpc/credentials/credentials.go -new file mode 100644 -index 00000000..5feac3aa ---- /dev/null -+++ b/vendor/google.golang.org/grpc/credentials/credentials.go -@@ -0,0 +1,291 @@ -+/* -+ * -+ * Copyright 2014 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package credentials implements various credentials supported by gRPC library, -+// which encapsulate all the state needed by a client to authenticate with a -+// server and make various assertions, e.g., about the client's identity, role, -+// or whether it is authorized to make a particular call. -+package credentials // import "google.golang.org/grpc/credentials" -+ -+import ( -+ "context" -+ "errors" -+ "fmt" -+ "net" -+ -+ "github.com/golang/protobuf/proto" -+ "google.golang.org/grpc/attributes" -+ icredentials "google.golang.org/grpc/internal/credentials" -+) -+ -+// PerRPCCredentials defines the common interface for the credentials which need to -+// attach security information to every RPC (e.g., oauth2). -+type PerRPCCredentials interface { -+ // GetRequestMetadata gets the current request metadata, refreshing tokens -+ // if required. This should be called by the transport layer on each -+ // request, and the data should be populated in headers or other -+ // context. If a status code is returned, it will be used as the status for -+ // the RPC (restricted to an allowable set of codes as defined by gRFC -+ // A54). uri is the URI of the entry point for the request. When supported -+ // by the underlying implementation, ctx can be used for timeout and -+ // cancellation. Additionally, RequestInfo data will be available via ctx -+ // to this call. TODO(zhaoq): Define the set of the qualified keys instead -+ // of leaving it as an arbitrary string. -+ GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) -+ // RequireTransportSecurity indicates whether the credentials requires -+ // transport security. -+ RequireTransportSecurity() bool -+} -+ -+// SecurityLevel defines the protection level on an established connection. -+// -+// This API is experimental. -+type SecurityLevel int -+ -+const ( -+ // InvalidSecurityLevel indicates an invalid security level. -+ // The zero SecurityLevel value is invalid for backward compatibility. -+ InvalidSecurityLevel SecurityLevel = iota -+ // NoSecurity indicates a connection is insecure. -+ NoSecurity -+ // IntegrityOnly indicates a connection only provides integrity protection. -+ IntegrityOnly -+ // PrivacyAndIntegrity indicates a connection provides both privacy and integrity protection. -+ PrivacyAndIntegrity -+) -+ -+// String returns SecurityLevel in a string format. -+func (s SecurityLevel) String() string { -+ switch s { -+ case NoSecurity: -+ return "NoSecurity" -+ case IntegrityOnly: -+ return "IntegrityOnly" -+ case PrivacyAndIntegrity: -+ return "PrivacyAndIntegrity" -+ } -+ return fmt.Sprintf("invalid SecurityLevel: %v", int(s)) -+} -+ -+// CommonAuthInfo contains authenticated information common to AuthInfo implementations. -+// It should be embedded in a struct implementing AuthInfo to provide additional information -+// about the credentials. -+// -+// This API is experimental. -+type CommonAuthInfo struct { -+ SecurityLevel SecurityLevel -+} -+ -+// GetCommonAuthInfo returns the pointer to CommonAuthInfo struct. -+func (c CommonAuthInfo) GetCommonAuthInfo() CommonAuthInfo { -+ return c -+} -+ -+// ProtocolInfo provides information regarding the gRPC wire protocol version, -+// security protocol, security protocol version in use, server name, etc. -+type ProtocolInfo struct { -+ // ProtocolVersion is the gRPC wire protocol version. -+ ProtocolVersion string -+ // SecurityProtocol is the security protocol in use. -+ SecurityProtocol string -+ // SecurityVersion is the security protocol version. It is a static version string from the -+ // credentials, not a value that reflects per-connection protocol negotiation. To retrieve -+ // details about the credentials used for a connection, use the Peer's AuthInfo field instead. -+ // -+ // Deprecated: please use Peer.AuthInfo. -+ SecurityVersion string -+ // ServerName is the user-configured server name. -+ ServerName string -+} -+ -+// AuthInfo defines the common interface for the auth information the users are interested in. -+// A struct that implements AuthInfo should embed CommonAuthInfo by including additional -+// information about the credentials in it. -+type AuthInfo interface { -+ AuthType() string -+} -+ -+// ErrConnDispatched indicates that rawConn has been dispatched out of gRPC -+// and the caller should not close rawConn. -+var ErrConnDispatched = errors.New("credentials: rawConn is dispatched out of gRPC") -+ -+// TransportCredentials defines the common interface for all the live gRPC wire -+// protocols and supported transport security protocols (e.g., TLS, SSL). -+type TransportCredentials interface { -+ // ClientHandshake does the authentication handshake specified by the -+ // corresponding authentication protocol on rawConn for clients. It returns -+ // the authenticated connection and the corresponding auth information -+ // about the connection. The auth information should embed CommonAuthInfo -+ // to return additional information about the credentials. Implementations -+ // must use the provided context to implement timely cancellation. gRPC -+ // will try to reconnect if the error returned is a temporary error -+ // (io.EOF, context.DeadlineExceeded or err.Temporary() == true). If the -+ // returned error is a wrapper error, implementations should make sure that -+ // the error implements Temporary() to have the correct retry behaviors. -+ // Additionally, ClientHandshakeInfo data will be available via the context -+ // passed to this call. -+ // -+ // The second argument to this method is the `:authority` header value used -+ // while creating new streams on this connection after authentication -+ // succeeds. Implementations must use this as the server name during the -+ // authentication handshake. -+ // -+ // If the returned net.Conn is closed, it MUST close the net.Conn provided. -+ ClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error) -+ // ServerHandshake does the authentication handshake for servers. It returns -+ // the authenticated connection and the corresponding auth information about -+ // the connection. The auth information should embed CommonAuthInfo to return additional information -+ // about the credentials. -+ // -+ // If the returned net.Conn is closed, it MUST close the net.Conn provided. -+ ServerHandshake(net.Conn) (net.Conn, AuthInfo, error) -+ // Info provides the ProtocolInfo of this TransportCredentials. -+ Info() ProtocolInfo -+ // Clone makes a copy of this TransportCredentials. -+ Clone() TransportCredentials -+ // OverrideServerName specifies the value used for the following: -+ // - verifying the hostname on the returned certificates -+ // - as SNI in the client's handshake to support virtual hosting -+ // - as the value for `:authority` header at stream creation time -+ // -+ // Deprecated: use grpc.WithAuthority instead. Will be supported -+ // throughout 1.x. -+ OverrideServerName(string) error -+} -+ -+// Bundle is a combination of TransportCredentials and PerRPCCredentials. -+// -+// It also contains a mode switching method, so it can be used as a combination -+// of different credential policies. -+// -+// Bundle cannot be used together with individual TransportCredentials. -+// PerRPCCredentials from Bundle will be appended to other PerRPCCredentials. -+// -+// This API is experimental. -+type Bundle interface { -+ // TransportCredentials returns the transport credentials from the Bundle. -+ // -+ // Implementations must return non-nil transport credentials. If transport -+ // security is not needed by the Bundle, implementations may choose to -+ // return insecure.NewCredentials(). -+ TransportCredentials() TransportCredentials -+ -+ // PerRPCCredentials returns the per-RPC credentials from the Bundle. -+ // -+ // May be nil if per-RPC credentials are not needed. -+ PerRPCCredentials() PerRPCCredentials -+ -+ // NewWithMode should make a copy of Bundle, and switch mode. Modifying the -+ // existing Bundle may cause races. -+ // -+ // NewWithMode returns nil if the requested mode is not supported. -+ NewWithMode(mode string) (Bundle, error) -+} -+ -+// RequestInfo contains request data attached to the context passed to GetRequestMetadata calls. -+// -+// This API is experimental. -+type RequestInfo struct { -+ // The method passed to Invoke or NewStream for this RPC. (For proto methods, this has the format "/some.Service/Method") -+ Method string -+ // AuthInfo contains the information from a security handshake (TransportCredentials.ClientHandshake, TransportCredentials.ServerHandshake) -+ AuthInfo AuthInfo -+} -+ -+// RequestInfoFromContext extracts the RequestInfo from the context if it exists. -+// -+// This API is experimental. -+func RequestInfoFromContext(ctx context.Context) (ri RequestInfo, ok bool) { -+ ri, ok = icredentials.RequestInfoFromContext(ctx).(RequestInfo) -+ return ri, ok -+} -+ -+// ClientHandshakeInfo holds data to be passed to ClientHandshake. This makes -+// it possible to pass arbitrary data to the handshaker from gRPC, resolver, -+// balancer etc. Individual credential implementations control the actual -+// format of the data that they are willing to receive. -+// -+// This API is experimental. -+type ClientHandshakeInfo struct { -+ // Attributes contains the attributes for the address. It could be provided -+ // by the gRPC, resolver, balancer etc. -+ Attributes *attributes.Attributes -+} -+ -+// ClientHandshakeInfoFromContext returns the ClientHandshakeInfo struct stored -+// in ctx. -+// -+// This API is experimental. -+func ClientHandshakeInfoFromContext(ctx context.Context) ClientHandshakeInfo { -+ chi, _ := icredentials.ClientHandshakeInfoFromContext(ctx).(ClientHandshakeInfo) -+ return chi -+} -+ -+// CheckSecurityLevel checks if a connection's security level is greater than or equal to the specified one. -+// It returns success if 1) the condition is satisified or 2) AuthInfo struct does not implement GetCommonAuthInfo() method -+// or 3) CommonAuthInfo.SecurityLevel has an invalid zero value. For 2) and 3), it is for the purpose of backward-compatibility. -+// -+// This API is experimental. -+func CheckSecurityLevel(ai AuthInfo, level SecurityLevel) error { -+ type internalInfo interface { -+ GetCommonAuthInfo() CommonAuthInfo -+ } -+ if ai == nil { -+ return errors.New("AuthInfo is nil") -+ } -+ if ci, ok := ai.(internalInfo); ok { -+ // CommonAuthInfo.SecurityLevel has an invalid value. -+ if ci.GetCommonAuthInfo().SecurityLevel == InvalidSecurityLevel { -+ return nil -+ } -+ if ci.GetCommonAuthInfo().SecurityLevel < level { -+ return fmt.Errorf("requires SecurityLevel %v; connection has %v", level, ci.GetCommonAuthInfo().SecurityLevel) -+ } -+ } -+ // The condition is satisfied or AuthInfo struct does not implement GetCommonAuthInfo() method. -+ return nil -+} -+ -+// ChannelzSecurityInfo defines the interface that security protocols should implement -+// in order to provide security info to channelz. -+// -+// This API is experimental. -+type ChannelzSecurityInfo interface { -+ GetSecurityValue() ChannelzSecurityValue -+} -+ -+// ChannelzSecurityValue defines the interface that GetSecurityValue() return value -+// should satisfy. This interface should only be satisfied by *TLSChannelzSecurityValue -+// and *OtherChannelzSecurityValue. -+// -+// This API is experimental. -+type ChannelzSecurityValue interface { -+ isChannelzSecurityValue() -+} -+ -+// OtherChannelzSecurityValue defines the struct that non-TLS protocol should return -+// from GetSecurityValue(), which contains protocol specific security info. Note -+// the Value field will be sent to users of channelz requesting channel info, and -+// thus sensitive info should better be avoided. -+// -+// This API is experimental. -+type OtherChannelzSecurityValue struct { -+ ChannelzSecurityValue -+ Name string -+ Value proto.Message -+} -diff --git a/vendor/google.golang.org/grpc/credentials/tls.go b/vendor/google.golang.org/grpc/credentials/tls.go -new file mode 100644 -index 00000000..877b7cd2 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/credentials/tls.go -@@ -0,0 +1,236 @@ -+/* -+ * -+ * Copyright 2014 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package credentials -+ -+import ( -+ "context" -+ "crypto/tls" -+ "crypto/x509" -+ "fmt" -+ "net" -+ "net/url" -+ "os" -+ -+ credinternal "google.golang.org/grpc/internal/credentials" -+) -+ -+// TLSInfo contains the auth information for a TLS authenticated connection. -+// It implements the AuthInfo interface. -+type TLSInfo struct { -+ State tls.ConnectionState -+ CommonAuthInfo -+ // This API is experimental. -+ SPIFFEID *url.URL -+} -+ -+// AuthType returns the type of TLSInfo as a string. -+func (t TLSInfo) AuthType() string { -+ return "tls" -+} -+ -+// GetSecurityValue returns security info requested by channelz. -+func (t TLSInfo) GetSecurityValue() ChannelzSecurityValue { -+ v := &TLSChannelzSecurityValue{ -+ StandardName: cipherSuiteLookup[t.State.CipherSuite], -+ } -+ // Currently there's no way to get LocalCertificate info from tls package. -+ if len(t.State.PeerCertificates) > 0 { -+ v.RemoteCertificate = t.State.PeerCertificates[0].Raw -+ } -+ return v -+} -+ -+// tlsCreds is the credentials required for authenticating a connection using TLS. -+type tlsCreds struct { -+ // TLS configuration -+ config *tls.Config -+} -+ -+func (c tlsCreds) Info() ProtocolInfo { -+ return ProtocolInfo{ -+ SecurityProtocol: "tls", -+ SecurityVersion: "1.2", -+ ServerName: c.config.ServerName, -+ } -+} -+ -+func (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawConn net.Conn) (_ net.Conn, _ AuthInfo, err error) { -+ // use local cfg to avoid clobbering ServerName if using multiple endpoints -+ cfg := credinternal.CloneTLSConfig(c.config) -+ if cfg.ServerName == "" { -+ serverName, _, err := net.SplitHostPort(authority) -+ if err != nil { -+ // If the authority had no host port or if the authority cannot be parsed, use it as-is. -+ serverName = authority -+ } -+ cfg.ServerName = serverName -+ } -+ conn := tls.Client(rawConn, cfg) -+ errChannel := make(chan error, 1) -+ go func() { -+ errChannel <- conn.Handshake() -+ close(errChannel) -+ }() -+ select { -+ case err := <-errChannel: -+ if err != nil { -+ conn.Close() -+ return nil, nil, err -+ } -+ case <-ctx.Done(): -+ conn.Close() -+ return nil, nil, ctx.Err() -+ } -+ tlsInfo := TLSInfo{ -+ State: conn.ConnectionState(), -+ CommonAuthInfo: CommonAuthInfo{ -+ SecurityLevel: PrivacyAndIntegrity, -+ }, -+ } -+ id := credinternal.SPIFFEIDFromState(conn.ConnectionState()) -+ if id != nil { -+ tlsInfo.SPIFFEID = id -+ } -+ return credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil -+} -+ -+func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) { -+ conn := tls.Server(rawConn, c.config) -+ if err := conn.Handshake(); err != nil { -+ conn.Close() -+ return nil, nil, err -+ } -+ tlsInfo := TLSInfo{ -+ State: conn.ConnectionState(), -+ CommonAuthInfo: CommonAuthInfo{ -+ SecurityLevel: PrivacyAndIntegrity, -+ }, -+ } -+ id := credinternal.SPIFFEIDFromState(conn.ConnectionState()) -+ if id != nil { -+ tlsInfo.SPIFFEID = id -+ } -+ return credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil -+} -+ -+func (c *tlsCreds) Clone() TransportCredentials { -+ return NewTLS(c.config) -+} -+ -+func (c *tlsCreds) OverrideServerName(serverNameOverride string) error { -+ c.config.ServerName = serverNameOverride -+ return nil -+} -+ -+// NewTLS uses c to construct a TransportCredentials based on TLS. -+func NewTLS(c *tls.Config) TransportCredentials { -+ tc := &tlsCreds{credinternal.CloneTLSConfig(c)} -+ tc.config.NextProtos = credinternal.AppendH2ToNextProtos(tc.config.NextProtos) -+ return tc -+} -+ -+// NewClientTLSFromCert constructs TLS credentials from the provided root -+// certificate authority certificate(s) to validate server connections. If -+// certificates to establish the identity of the client need to be included in -+// the credentials (eg: for mTLS), use NewTLS instead, where a complete -+// tls.Config can be specified. -+// serverNameOverride is for testing only. If set to a non empty string, -+// it will override the virtual host name of authority (e.g. :authority header -+// field) in requests. -+func NewClientTLSFromCert(cp *x509.CertPool, serverNameOverride string) TransportCredentials { -+ return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}) -+} -+ -+// NewClientTLSFromFile constructs TLS credentials from the provided root -+// certificate authority certificate file(s) to validate server connections. If -+// certificates to establish the identity of the client need to be included in -+// the credentials (eg: for mTLS), use NewTLS instead, where a complete -+// tls.Config can be specified. -+// serverNameOverride is for testing only. If set to a non empty string, -+// it will override the virtual host name of authority (e.g. :authority header -+// field) in requests. -+func NewClientTLSFromFile(certFile, serverNameOverride string) (TransportCredentials, error) { -+ b, err := os.ReadFile(certFile) -+ if err != nil { -+ return nil, err -+ } -+ cp := x509.NewCertPool() -+ if !cp.AppendCertsFromPEM(b) { -+ return nil, fmt.Errorf("credentials: failed to append certificates") -+ } -+ return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}), nil -+} -+ -+// NewServerTLSFromCert constructs TLS credentials from the input certificate for server. -+func NewServerTLSFromCert(cert *tls.Certificate) TransportCredentials { -+ return NewTLS(&tls.Config{Certificates: []tls.Certificate{*cert}}) -+} -+ -+// NewServerTLSFromFile constructs TLS credentials from the input certificate file and key -+// file for server. -+func NewServerTLSFromFile(certFile, keyFile string) (TransportCredentials, error) { -+ cert, err := tls.LoadX509KeyPair(certFile, keyFile) -+ if err != nil { -+ return nil, err -+ } -+ return NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}}), nil -+} -+ -+// TLSChannelzSecurityValue defines the struct that TLS protocol should return -+// from GetSecurityValue(), containing security info like cipher and certificate used. -+// -+// # Experimental -+// -+// Notice: This type is EXPERIMENTAL and may be changed or removed in a -+// later release. -+type TLSChannelzSecurityValue struct { -+ ChannelzSecurityValue -+ StandardName string -+ LocalCertificate []byte -+ RemoteCertificate []byte -+} -+ -+var cipherSuiteLookup = map[uint16]string{ -+ tls.TLS_RSA_WITH_RC4_128_SHA: "TLS_RSA_WITH_RC4_128_SHA", -+ tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", -+ tls.TLS_RSA_WITH_AES_128_CBC_SHA: "TLS_RSA_WITH_AES_128_CBC_SHA", -+ tls.TLS_RSA_WITH_AES_256_CBC_SHA: "TLS_RSA_WITH_AES_256_CBC_SHA", -+ tls.TLS_RSA_WITH_AES_128_GCM_SHA256: "TLS_RSA_WITH_AES_128_GCM_SHA256", -+ tls.TLS_RSA_WITH_AES_256_GCM_SHA384: "TLS_RSA_WITH_AES_256_GCM_SHA384", -+ tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", -+ tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", -+ tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", -+ tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA: "TLS_ECDHE_RSA_WITH_RC4_128_SHA", -+ tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", -+ tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", -+ tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", -+ tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", -+ tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", -+ tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", -+ tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", -+ tls.TLS_FALLBACK_SCSV: "TLS_FALLBACK_SCSV", -+ tls.TLS_RSA_WITH_AES_128_CBC_SHA256: "TLS_RSA_WITH_AES_128_CBC_SHA256", -+ tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", -+ tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", -+ tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", -+ tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", -+ tls.TLS_AES_128_GCM_SHA256: "TLS_AES_128_GCM_SHA256", -+ tls.TLS_AES_256_GCM_SHA384: "TLS_AES_256_GCM_SHA384", -+ tls.TLS_CHACHA20_POLY1305_SHA256: "TLS_CHACHA20_POLY1305_SHA256", -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -new file mode 100644 -index 00000000..8358dd6e ---- /dev/null -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -0,0 +1,117 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package grpclog -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/grpc/internal/grpclog" -+) -+ -+// componentData records the settings for a component. -+type componentData struct { -+ name string -+} -+ -+var cache = map[string]*componentData{} -+ -+func (c *componentData) InfoDepth(depth int, args ...interface{}) { -+ args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+ grpclog.InfoDepth(depth+1, args...) -+} -+ -+func (c *componentData) WarningDepth(depth int, args ...interface{}) { -+ args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+ grpclog.WarningDepth(depth+1, args...) -+} -+ -+func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -+ args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+ grpclog.ErrorDepth(depth+1, args...) -+} -+ -+func (c *componentData) FatalDepth(depth int, args ...interface{}) { -+ args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+ grpclog.FatalDepth(depth+1, args...) -+} -+ -+func (c *componentData) Info(args ...interface{}) { -+ c.InfoDepth(1, args...) -+} -+ -+func (c *componentData) Warning(args ...interface{}) { -+ c.WarningDepth(1, args...) -+} -+ -+func (c *componentData) Error(args ...interface{}) { -+ c.ErrorDepth(1, args...) -+} -+ -+func (c *componentData) Fatal(args ...interface{}) { -+ c.FatalDepth(1, args...) -+} -+ -+func (c *componentData) Infof(format string, args ...interface{}) { -+ c.InfoDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+func (c *componentData) Warningf(format string, args ...interface{}) { -+ c.WarningDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+func (c *componentData) Errorf(format string, args ...interface{}) { -+ c.ErrorDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+func (c *componentData) Fatalf(format string, args ...interface{}) { -+ c.FatalDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+func (c *componentData) Infoln(args ...interface{}) { -+ c.InfoDepth(1, args...) -+} -+ -+func (c *componentData) Warningln(args ...interface{}) { -+ c.WarningDepth(1, args...) -+} -+ -+func (c *componentData) Errorln(args ...interface{}) { -+ c.ErrorDepth(1, args...) -+} -+ -+func (c *componentData) Fatalln(args ...interface{}) { -+ c.FatalDepth(1, args...) -+} -+ -+func (c *componentData) V(l int) bool { -+ return V(l) -+} -+ -+// Component creates a new component and returns it for logging. If a component -+// with the name already exists, nothing will be created and it will be -+// returned. SetLoggerV2 will panic if it is called with a logger created by -+// Component. -+func Component(componentName string) DepthLoggerV2 { -+ if cData, ok := cache[componentName]; ok { -+ return cData -+ } -+ c := &componentData{componentName} -+ cache[componentName] = c -+ return c -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -new file mode 100644 -index 00000000..c8bb2be3 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -0,0 +1,132 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package grpclog defines logging for grpc. -+// -+// All logs in transport and grpclb packages only go to verbose level 2. -+// All logs in other packages in grpc are logged in spite of the verbosity level. -+// -+// In the default logger, -+// severity level can be set by environment variable GRPC_GO_LOG_SEVERITY_LEVEL, -+// verbosity level can be set by GRPC_GO_LOG_VERBOSITY_LEVEL. -+package grpclog // import "google.golang.org/grpc/grpclog" -+ -+import ( -+ "os" -+ -+ "google.golang.org/grpc/internal/grpclog" -+) -+ -+func init() { -+ SetLoggerV2(newLoggerV2()) -+} -+ -+// V reports whether verbosity level l is at least the requested verbose level. -+func V(l int) bool { -+ return grpclog.Logger.V(l) -+} -+ -+// Info logs to the INFO log. -+func Info(args ...interface{}) { -+ grpclog.Logger.Info(args...) -+} -+ -+// Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. -+func Infof(format string, args ...interface{}) { -+ grpclog.Logger.Infof(format, args...) -+} -+ -+// Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. -+func Infoln(args ...interface{}) { -+ grpclog.Logger.Infoln(args...) -+} -+ -+// Warning logs to the WARNING log. -+func Warning(args ...interface{}) { -+ grpclog.Logger.Warning(args...) -+} -+ -+// Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. -+func Warningf(format string, args ...interface{}) { -+ grpclog.Logger.Warningf(format, args...) -+} -+ -+// Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. -+func Warningln(args ...interface{}) { -+ grpclog.Logger.Warningln(args...) -+} -+ -+// Error logs to the ERROR log. -+func Error(args ...interface{}) { -+ grpclog.Logger.Error(args...) -+} -+ -+// Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. -+func Errorf(format string, args ...interface{}) { -+ grpclog.Logger.Errorf(format, args...) -+} -+ -+// Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. -+func Errorln(args ...interface{}) { -+ grpclog.Logger.Errorln(args...) -+} -+ -+// Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. -+// It calls os.Exit() with exit code 1. -+func Fatal(args ...interface{}) { -+ grpclog.Logger.Fatal(args...) -+ // Make sure fatal logs will exit. -+ os.Exit(1) -+} -+ -+// Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. -+// It calls os.Exit() with exit code 1. -+func Fatalf(format string, args ...interface{}) { -+ grpclog.Logger.Fatalf(format, args...) -+ // Make sure fatal logs will exit. -+ os.Exit(1) -+} -+ -+// Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. -+// It calle os.Exit()) with exit code 1. -+func Fatalln(args ...interface{}) { -+ grpclog.Logger.Fatalln(args...) -+ // Make sure fatal logs will exit. -+ os.Exit(1) -+} -+ -+// Print prints to the logger. Arguments are handled in the manner of fmt.Print. -+// -+// Deprecated: use Info. -+func Print(args ...interface{}) { -+ grpclog.Logger.Info(args...) -+} -+ -+// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. -+// -+// Deprecated: use Infof. -+func Printf(format string, args ...interface{}) { -+ grpclog.Logger.Infof(format, args...) -+} -+ -+// Println prints to the logger. Arguments are handled in the manner of fmt.Println. -+// -+// Deprecated: use Infoln. -+func Println(args ...interface{}) { -+ grpclog.Logger.Infoln(args...) -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -new file mode 100644 -index 00000000..ef06a482 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -0,0 +1,87 @@ -+/* -+ * -+ * Copyright 2015 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package grpclog -+ -+import "google.golang.org/grpc/internal/grpclog" -+ -+// Logger mimics golang's standard Logger as an interface. -+// -+// Deprecated: use LoggerV2. -+type Logger interface { -+ Fatal(args ...interface{}) -+ Fatalf(format string, args ...interface{}) -+ Fatalln(args ...interface{}) -+ Print(args ...interface{}) -+ Printf(format string, args ...interface{}) -+ Println(args ...interface{}) -+} -+ -+// SetLogger sets the logger that is used in grpc. Call only from -+// init() functions. -+// -+// Deprecated: use SetLoggerV2. -+func SetLogger(l Logger) { -+ grpclog.Logger = &loggerWrapper{Logger: l} -+} -+ -+// loggerWrapper wraps Logger into a LoggerV2. -+type loggerWrapper struct { -+ Logger -+} -+ -+func (g *loggerWrapper) Info(args ...interface{}) { -+ g.Logger.Print(args...) -+} -+ -+func (g *loggerWrapper) Infoln(args ...interface{}) { -+ g.Logger.Println(args...) -+} -+ -+func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+ g.Logger.Printf(format, args...) -+} -+ -+func (g *loggerWrapper) Warning(args ...interface{}) { -+ g.Logger.Print(args...) -+} -+ -+func (g *loggerWrapper) Warningln(args ...interface{}) { -+ g.Logger.Println(args...) -+} -+ -+func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+ g.Logger.Printf(format, args...) -+} -+ -+func (g *loggerWrapper) Error(args ...interface{}) { -+ g.Logger.Print(args...) -+} -+ -+func (g *loggerWrapper) Errorln(args ...interface{}) { -+ g.Logger.Println(args...) -+} -+ -+func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+ g.Logger.Printf(format, args...) -+} -+ -+func (g *loggerWrapper) V(l int) bool { -+ // Returns true for all verbose level. -+ return true -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -new file mode 100644 -index 00000000..5de66e40 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -0,0 +1,258 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package grpclog -+ -+import ( -+ "encoding/json" -+ "fmt" -+ "io" -+ "log" -+ "os" -+ "strconv" -+ "strings" -+ -+ "google.golang.org/grpc/internal/grpclog" -+) -+ -+// LoggerV2 does underlying logging work for grpclog. -+type LoggerV2 interface { -+ // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -+ Info(args ...interface{}) -+ // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -+ Infoln(args ...interface{}) -+ // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -+ Infof(format string, args ...interface{}) -+ // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -+ Warning(args ...interface{}) -+ // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -+ Warningln(args ...interface{}) -+ // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -+ Warningf(format string, args ...interface{}) -+ // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -+ Error(args ...interface{}) -+ // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -+ Errorln(args ...interface{}) -+ // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -+ Errorf(format string, args ...interface{}) -+ // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatal(args ...interface{}) -+ // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatalln(args ...interface{}) -+ // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatalf(format string, args ...interface{}) -+ // V reports whether verbosity level l is at least the requested verbose level. -+ V(l int) bool -+} -+ -+// SetLoggerV2 sets logger that is used in grpc to a V2 logger. -+// Not mutex-protected, should be called before any gRPC functions. -+func SetLoggerV2(l LoggerV2) { -+ if _, ok := l.(*componentData); ok { -+ panic("cannot use component logger as grpclog logger") -+ } -+ grpclog.Logger = l -+ grpclog.DepthLogger, _ = l.(grpclog.DepthLoggerV2) -+} -+ -+const ( -+ // infoLog indicates Info severity. -+ infoLog int = iota -+ // warningLog indicates Warning severity. -+ warningLog -+ // errorLog indicates Error severity. -+ errorLog -+ // fatalLog indicates Fatal severity. -+ fatalLog -+) -+ -+// severityName contains the string representation of each severity. -+var severityName = []string{ -+ infoLog: "INFO", -+ warningLog: "WARNING", -+ errorLog: "ERROR", -+ fatalLog: "FATAL", -+} -+ -+// loggerT is the default logger used by grpclog. -+type loggerT struct { -+ m []*log.Logger -+ v int -+ jsonFormat bool -+} -+ -+// NewLoggerV2 creates a loggerV2 with the provided writers. -+// Fatal logs will be written to errorW, warningW, infoW, followed by exit(1). -+// Error logs will be written to errorW, warningW and infoW. -+// Warning logs will be written to warningW and infoW. -+// Info logs will be written to infoW. -+func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 { -+ return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{}) -+} -+ -+// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and -+// verbosity level. -+func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 { -+ return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{verbose: v}) -+} -+ -+type loggerV2Config struct { -+ verbose int -+ jsonFormat bool -+} -+ -+func newLoggerV2WithConfig(infoW, warningW, errorW io.Writer, c loggerV2Config) LoggerV2 { -+ var m []*log.Logger -+ flag := log.LstdFlags -+ if c.jsonFormat { -+ flag = 0 -+ } -+ m = append(m, log.New(infoW, "", flag)) -+ m = append(m, log.New(io.MultiWriter(infoW, warningW), "", flag)) -+ ew := io.MultiWriter(infoW, warningW, errorW) // ew will be used for error and fatal. -+ m = append(m, log.New(ew, "", flag)) -+ m = append(m, log.New(ew, "", flag)) -+ return &loggerT{m: m, v: c.verbose, jsonFormat: c.jsonFormat} -+} -+ -+// newLoggerV2 creates a loggerV2 to be used as default logger. -+// All logs are written to stderr. -+func newLoggerV2() LoggerV2 { -+ errorW := io.Discard -+ warningW := io.Discard -+ infoW := io.Discard -+ -+ logLevel := os.Getenv("GRPC_GO_LOG_SEVERITY_LEVEL") -+ switch logLevel { -+ case "", "ERROR", "error": // If env is unset, set level to ERROR. -+ errorW = os.Stderr -+ case "WARNING", "warning": -+ warningW = os.Stderr -+ case "INFO", "info": -+ infoW = os.Stderr -+ } -+ -+ var v int -+ vLevel := os.Getenv("GRPC_GO_LOG_VERBOSITY_LEVEL") -+ if vl, err := strconv.Atoi(vLevel); err == nil { -+ v = vl -+ } -+ -+ jsonFormat := strings.EqualFold(os.Getenv("GRPC_GO_LOG_FORMATTER"), "json") -+ -+ return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{ -+ verbose: v, -+ jsonFormat: jsonFormat, -+ }) -+} -+ -+func (g *loggerT) output(severity int, s string) { -+ sevStr := severityName[severity] -+ if !g.jsonFormat { -+ g.m[severity].Output(2, fmt.Sprintf("%v: %v", sevStr, s)) -+ return -+ } -+ // TODO: we can also include the logging component, but that needs more -+ // (API) changes. -+ b, _ := json.Marshal(map[string]string{ -+ "severity": sevStr, -+ "message": s, -+ }) -+ g.m[severity].Output(2, string(b)) -+} -+ -+func (g *loggerT) Info(args ...interface{}) { -+ g.output(infoLog, fmt.Sprint(args...)) -+} -+ -+func (g *loggerT) Infoln(args ...interface{}) { -+ g.output(infoLog, fmt.Sprintln(args...)) -+} -+ -+func (g *loggerT) Infof(format string, args ...interface{}) { -+ g.output(infoLog, fmt.Sprintf(format, args...)) -+} -+ -+func (g *loggerT) Warning(args ...interface{}) { -+ g.output(warningLog, fmt.Sprint(args...)) -+} -+ -+func (g *loggerT) Warningln(args ...interface{}) { -+ g.output(warningLog, fmt.Sprintln(args...)) -+} -+ -+func (g *loggerT) Warningf(format string, args ...interface{}) { -+ g.output(warningLog, fmt.Sprintf(format, args...)) -+} -+ -+func (g *loggerT) Error(args ...interface{}) { -+ g.output(errorLog, fmt.Sprint(args...)) -+} -+ -+func (g *loggerT) Errorln(args ...interface{}) { -+ g.output(errorLog, fmt.Sprintln(args...)) -+} -+ -+func (g *loggerT) Errorf(format string, args ...interface{}) { -+ g.output(errorLog, fmt.Sprintf(format, args...)) -+} -+ -+func (g *loggerT) Fatal(args ...interface{}) { -+ g.output(fatalLog, fmt.Sprint(args...)) -+ os.Exit(1) -+} -+ -+func (g *loggerT) Fatalln(args ...interface{}) { -+ g.output(fatalLog, fmt.Sprintln(args...)) -+ os.Exit(1) -+} -+ -+func (g *loggerT) Fatalf(format string, args ...interface{}) { -+ g.output(fatalLog, fmt.Sprintf(format, args...)) -+ os.Exit(1) -+} -+ -+func (g *loggerT) V(l int) bool { -+ return l <= g.v -+} -+ -+// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements -+// DepthLoggerV2, the below functions will be called with the appropriate stack -+// depth set for trivial functions the logger may ignore. -+// -+// # Experimental -+// -+// Notice: This type is EXPERIMENTAL and may be changed or removed in a -+// later release. -+type DepthLoggerV2 interface { -+ LoggerV2 -+ // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ InfoDepth(depth int, args ...interface{}) -+ // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ WarningDepth(depth int, args ...interface{}) -+ // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ ErrorDepth(depth int, args ...interface{}) -+ // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ FatalDepth(depth int, args ...interface{}) -+} -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -new file mode 100644 -index 00000000..32c9b590 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -0,0 +1,49 @@ -+/* -+ * Copyright 2021 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ */ -+ -+package credentials -+ -+import ( -+ "context" -+) -+ -+// requestInfoKey is a struct to be used as the key to store RequestInfo in a -+// context. -+type requestInfoKey struct{} -+ -+// NewRequestInfoContext creates a context with ri. -+func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+ return context.WithValue(ctx, requestInfoKey{}, ri) -+} -+ -+// RequestInfoFromContext extracts the RequestInfo from ctx. -+func RequestInfoFromContext(ctx context.Context) interface{} { -+ return ctx.Value(requestInfoKey{}) -+} -+ -+// clientHandshakeInfoKey is a struct used as the key to store -+// ClientHandshakeInfo in a context. -+type clientHandshakeInfoKey struct{} -+ -+// ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. -+func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+ return ctx.Value(clientHandshakeInfoKey{}) -+} -+ -+// NewClientHandshakeInfoContext creates a context with chi. -+func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+ return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) -+} -diff --git a/vendor/google.golang.org/grpc/internal/credentials/spiffe.go b/vendor/google.golang.org/grpc/internal/credentials/spiffe.go -new file mode 100644 -index 00000000..25ade623 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/credentials/spiffe.go -@@ -0,0 +1,75 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package credentials defines APIs for parsing SPIFFE ID. -+// -+// All APIs in this package are experimental. -+package credentials -+ -+import ( -+ "crypto/tls" -+ "crypto/x509" -+ "net/url" -+ -+ "google.golang.org/grpc/grpclog" -+) -+ -+var logger = grpclog.Component("credentials") -+ -+// SPIFFEIDFromState parses the SPIFFE ID from State. If the SPIFFE ID format -+// is invalid, return nil with warning. -+func SPIFFEIDFromState(state tls.ConnectionState) *url.URL { -+ if len(state.PeerCertificates) == 0 || len(state.PeerCertificates[0].URIs) == 0 { -+ return nil -+ } -+ return SPIFFEIDFromCert(state.PeerCertificates[0]) -+} -+ -+// SPIFFEIDFromCert parses the SPIFFE ID from x509.Certificate. If the SPIFFE -+// ID format is invalid, return nil with warning. -+func SPIFFEIDFromCert(cert *x509.Certificate) *url.URL { -+ if cert == nil || cert.URIs == nil { -+ return nil -+ } -+ var spiffeID *url.URL -+ for _, uri := range cert.URIs { -+ if uri == nil || uri.Scheme != "spiffe" || uri.Opaque != "" || (uri.User != nil && uri.User.Username() != "") { -+ continue -+ } -+ // From this point, we assume the uri is intended for a SPIFFE ID. -+ if len(uri.String()) > 2048 { -+ logger.Warning("invalid SPIFFE ID: total ID length larger than 2048 bytes") -+ return nil -+ } -+ if len(uri.Host) == 0 || len(uri.Path) == 0 { -+ logger.Warning("invalid SPIFFE ID: domain or workload ID is empty") -+ return nil -+ } -+ if len(uri.Host) > 255 { -+ logger.Warning("invalid SPIFFE ID: domain length larger than 255 characters") -+ return nil -+ } -+ // A valid SPIFFE certificate can only have exactly one URI SAN field. -+ if len(cert.URIs) > 1 { -+ logger.Warning("invalid SPIFFE ID: multiple URI SANs") -+ return nil -+ } -+ spiffeID = uri -+ } -+ return spiffeID -+} -diff --git a/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go b/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go -new file mode 100644 -index 00000000..2919632d ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go -@@ -0,0 +1,58 @@ -+/* -+ * -+ * Copyright 2018 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package credentials -+ -+import ( -+ "net" -+ "syscall" -+) -+ -+type sysConn = syscall.Conn -+ -+// syscallConn keeps reference of rawConn to support syscall.Conn for channelz. -+// SyscallConn() (the method in interface syscall.Conn) is explicitly -+// implemented on this type, -+// -+// Interface syscall.Conn is implemented by most net.Conn implementations (e.g. -+// TCPConn, UnixConn), but is not part of net.Conn interface. So wrapper conns -+// that embed net.Conn don't implement syscall.Conn. (Side note: tls.Conn -+// doesn't embed net.Conn, so even if syscall.Conn is part of net.Conn, it won't -+// help here). -+type syscallConn struct { -+ net.Conn -+ // sysConn is a type alias of syscall.Conn. It's necessary because the name -+ // `Conn` collides with `net.Conn`. -+ sysConn -+} -+ -+// WrapSyscallConn tries to wrap rawConn and newConn into a net.Conn that -+// implements syscall.Conn. rawConn will be used to support syscall, and newConn -+// will be used for read/write. -+// -+// This function returns newConn if rawConn doesn't implement syscall.Conn. -+func WrapSyscallConn(rawConn, newConn net.Conn) net.Conn { -+ sysConn, ok := rawConn.(syscall.Conn) -+ if !ok { -+ return newConn -+ } -+ return &syscallConn{ -+ Conn: newConn, -+ sysConn: sysConn, -+ } -+} -diff --git a/vendor/google.golang.org/grpc/internal/credentials/util.go b/vendor/google.golang.org/grpc/internal/credentials/util.go -new file mode 100644 -index 00000000..f792fd22 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/credentials/util.go -@@ -0,0 +1,52 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package credentials -+ -+import ( -+ "crypto/tls" -+) -+ -+const alpnProtoStrH2 = "h2" -+ -+// AppendH2ToNextProtos appends h2 to next protos. -+func AppendH2ToNextProtos(ps []string) []string { -+ for _, p := range ps { -+ if p == alpnProtoStrH2 { -+ return ps -+ } -+ } -+ ret := make([]string, 0, len(ps)+1) -+ ret = append(ret, ps...) -+ return append(ret, alpnProtoStrH2) -+} -+ -+// CloneTLSConfig returns a shallow clone of the exported -+// fields of cfg, ignoring the unexported sync.Once, which -+// contains a mutex and must not be copied. -+// -+// If cfg is nil, a new zero tls.Config is returned. -+// -+// TODO: inline this function if possible. -+func CloneTLSConfig(cfg *tls.Config) *tls.Config { -+ if cfg == nil { -+ return &tls.Config{} -+ } -+ -+ return cfg.Clone() -+} -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -new file mode 100644 -index 00000000..b68e26a3 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -0,0 +1,126 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package grpclog (internal) defines depth logging for grpc. -+package grpclog -+ -+import ( -+ "os" -+) -+ -+// Logger is the logger used for the non-depth log functions. -+var Logger LoggerV2 -+ -+// DepthLogger is the logger used for the depth log functions. -+var DepthLogger DepthLoggerV2 -+ -+// InfoDepth logs to the INFO log at the specified depth. -+func InfoDepth(depth int, args ...interface{}) { -+ if DepthLogger != nil { -+ DepthLogger.InfoDepth(depth, args...) -+ } else { -+ Logger.Infoln(args...) -+ } -+} -+ -+// WarningDepth logs to the WARNING log at the specified depth. -+func WarningDepth(depth int, args ...interface{}) { -+ if DepthLogger != nil { -+ DepthLogger.WarningDepth(depth, args...) -+ } else { -+ Logger.Warningln(args...) -+ } -+} -+ -+// ErrorDepth logs to the ERROR log at the specified depth. -+func ErrorDepth(depth int, args ...interface{}) { -+ if DepthLogger != nil { -+ DepthLogger.ErrorDepth(depth, args...) -+ } else { -+ Logger.Errorln(args...) -+ } -+} -+ -+// FatalDepth logs to the FATAL log at the specified depth. -+func FatalDepth(depth int, args ...interface{}) { -+ if DepthLogger != nil { -+ DepthLogger.FatalDepth(depth, args...) -+ } else { -+ Logger.Fatalln(args...) -+ } -+ os.Exit(1) -+} -+ -+// LoggerV2 does underlying logging work for grpclog. -+// This is a copy of the LoggerV2 defined in the external grpclog package. It -+// is defined here to avoid a circular dependency. -+type LoggerV2 interface { -+ // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -+ Info(args ...interface{}) -+ // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -+ Infoln(args ...interface{}) -+ // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -+ Infof(format string, args ...interface{}) -+ // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -+ Warning(args ...interface{}) -+ // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -+ Warningln(args ...interface{}) -+ // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -+ Warningf(format string, args ...interface{}) -+ // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -+ Error(args ...interface{}) -+ // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -+ Errorln(args ...interface{}) -+ // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -+ Errorf(format string, args ...interface{}) -+ // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatal(args ...interface{}) -+ // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatalln(args ...interface{}) -+ // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -+ // gRPC ensures that all Fatal logs will exit with os.Exit(1). -+ // Implementations may also call os.Exit() with a non-zero exit code. -+ Fatalf(format string, args ...interface{}) -+ // V reports whether verbosity level l is at least the requested verbose level. -+ V(l int) bool -+} -+ -+// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements -+// DepthLoggerV2, the below functions will be called with the appropriate stack -+// depth set for trivial functions the logger may ignore. -+// This is a copy of the DepthLoggerV2 defined in the external grpclog package. -+// It is defined here to avoid a circular dependency. -+// -+// # Experimental -+// -+// Notice: This type is EXPERIMENTAL and may be changed or removed in a -+// later release. -+type DepthLoggerV2 interface { -+ // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ InfoDepth(depth int, args ...interface{}) -+ // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ WarningDepth(depth int, args ...interface{}) -+ // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ ErrorDepth(depth int, args ...interface{}) -+ // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -+ FatalDepth(depth int, args ...interface{}) -+} -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -new file mode 100644 -index 00000000..02224b42 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -0,0 +1,93 @@ -+/* -+ * -+ * Copyright 2020 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package grpclog -+ -+import ( -+ "fmt" -+) -+ -+// PrefixLogger does logging with a prefix. -+// -+// Logging method on a nil logs without any prefix. -+type PrefixLogger struct { -+ logger DepthLoggerV2 -+ prefix string -+} -+ -+// Infof does info logging. -+func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+ if pl != nil { -+ // Handle nil, so the tests can pass in a nil logger. -+ format = pl.prefix + format -+ pl.logger.InfoDepth(1, fmt.Sprintf(format, args...)) -+ return -+ } -+ InfoDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+// Warningf does warning logging. -+func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+ if pl != nil { -+ format = pl.prefix + format -+ pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -+ return -+ } -+ WarningDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+// Errorf does error logging. -+func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+ if pl != nil { -+ format = pl.prefix + format -+ pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -+ return -+ } -+ ErrorDepth(1, fmt.Sprintf(format, args...)) -+} -+ -+// Debugf does info logging at verbose level 2. -+func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+ // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe -+ // rewrite PrefixLogger a little to ensure that we don't use the global -+ // `Logger` here, and instead use the `logger` field. -+ if !Logger.V(2) { -+ return -+ } -+ if pl != nil { -+ // Handle nil, so the tests can pass in a nil logger. -+ format = pl.prefix + format -+ pl.logger.InfoDepth(1, fmt.Sprintf(format, args...)) -+ return -+ } -+ InfoDepth(1, fmt.Sprintf(format, args...)) -+ -+} -+ -+// V reports whether verbosity level l is at least the requested verbose level. -+func (pl *PrefixLogger) V(l int) bool { -+ // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe -+ // rewrite PrefixLogger a little to ensure that we don't use the global -+ // `Logger` here, and instead use the `logger` field. -+ return Logger.V(l) -+} -+ -+// NewPrefixLogger creates a prefix logger with the given prefix. -+func NewPrefixLogger(logger DepthLoggerV2, prefix string) *PrefixLogger { -+ return &PrefixLogger{logger: logger, prefix: prefix} -+} -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -new file mode 100644 -index 00000000..42ff39c8 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -0,0 +1,194 @@ -+/* -+ * Copyright 2016 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package internal contains gRPC-internal code, to avoid polluting -+// the godoc of the top-level grpc package. It must not import any grpc -+// symbols to avoid circular dependencies. -+package internal -+ -+import ( -+ "context" -+ "time" -+ -+ "google.golang.org/grpc/connectivity" -+ "google.golang.org/grpc/serviceconfig" -+) -+ -+var ( -+ // WithHealthCheckFunc is set by dialoptions.go -+ WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ // HealthCheckFunc is used to provide client-side LB channel health checking -+ HealthCheckFunc HealthChecker -+ // BalancerUnregister is exported by package balancer to unregister a balancer. -+ BalancerUnregister func(name string) -+ // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by -+ // default, but tests may wish to set it lower for convenience. -+ KeepaliveMinPingTime = 10 * time.Second -+ // ParseServiceConfig parses a JSON representation of the service config. -+ ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ // EqualServiceConfigForTesting is for testing service config generation and -+ // parsing. Both a and b should be returned by ParseServiceConfig. -+ // This function compares the config without rawJSON stripped, in case the -+ // there's difference in white space. -+ EqualServiceConfigForTesting func(a, b serviceconfig.Config) bool -+ // GetCertificateProviderBuilder returns the registered builder for the -+ // given name. This is set by package certprovider for use from xDS -+ // bootstrap code while parsing certificate provider configs in the -+ // bootstrap file. -+ GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo -+ // stored in the passed in attributes. This is set by -+ // credentials/xds/xds.go. -+ GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ // GetServerCredentials returns the transport credentials configured on a -+ // gRPC server. An xDS-enabled server needs to know what type of credentials -+ // is configured on the underlying gRPC server. This is set by server.go. -+ GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ // CanonicalString returns the canonical string of the code defined here: -+ // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ CanonicalString interface{} // func (codes.Code) string -+ // DrainServerTransports initiates a graceful close of existing connections -+ // on a gRPC server accepted on the provided listener address. An -+ // xDS-enabled server invokes this method on a grpc.Server when a particular -+ // listener moves to "not-serving" mode. -+ DrainServerTransports interface{} // func(*grpc.Server, string) -+ // AddGlobalServerOptions adds an array of ServerOption that will be -+ // effective globally for newly created servers. The priority will be: 1. -+ // user-provided; 2. this method; 3. default values. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ // ClearGlobalServerOptions clears the array of extra ServerOption. This -+ // method is useful in testing and benchmarking. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ ClearGlobalServerOptions func() -+ // AddGlobalDialOptions adds an array of DialOption that will be effective -+ // globally for newly created client channels. The priority will be: 1. -+ // user-provided; 2. this method; 3. default values. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ // DisableGlobalDialOptions returns a DialOption that prevents the -+ // ClientConn from applying the global DialOptions (set via -+ // AddGlobalDialOptions). -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ // ClearGlobalDialOptions clears the array of extra DialOption. This -+ // method is useful in testing and benchmarking. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ ClearGlobalDialOptions func() -+ // JoinDialOptions combines the dial options passed as arguments into a -+ // single dial option. -+ JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ // JoinServerOptions combines the server options passed as arguments into a -+ // single server option. -+ JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ -+ // WithBinaryLogger returns a DialOption that specifies the binary logger -+ // for a ClientConn. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ // BinaryLogger returns a ServerOption that can set the binary logger for a -+ // server. -+ // -+ // This is used in the 1.0 release of gcp/observability, and thus must not be -+ // deleted or changed. -+ BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ -+ // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using -+ // the provided xds bootstrap config instead of the global configuration from -+ // the supported environment variables. The resolver.Builder is meant to be -+ // used in conjunction with the grpc.WithResolvers DialOption. -+ // -+ // Testing Only -+ // -+ // This function should ONLY be used for testing and may not work with some -+ // other features, including the CSDS service. -+ NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ -+ // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster -+ // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -+ // variable. -+ // -+ // TODO: Remove this function once the RLS env var is removed. -+ RegisterRLSClusterSpecifierPluginForTesting func() -+ -+ // UnregisterRLSClusterSpecifierPluginForTesting unregisters the RLS Cluster -+ // Specifier Plugin for testing purposes. This is needed because there is no way -+ // to unregister the RLS Cluster Specifier Plugin after registering it solely -+ // for testing purposes using RegisterRLSClusterSpecifierPluginForTesting(). -+ // -+ // TODO: Remove this function once the RLS env var is removed. -+ UnregisterRLSClusterSpecifierPluginForTesting func() -+ -+ // RegisterRBACHTTPFilterForTesting registers the RBAC HTTP Filter for testing -+ // purposes, regardless of the RBAC environment variable. -+ // -+ // TODO: Remove this function once the RBAC env var is removed. -+ RegisterRBACHTTPFilterForTesting func() -+ -+ // UnregisterRBACHTTPFilterForTesting unregisters the RBAC HTTP Filter for -+ // testing purposes. This is needed because there is no way to unregister the -+ // HTTP Filter after registering it solely for testing purposes using -+ // RegisterRBACHTTPFilterForTesting(). -+ // -+ // TODO: Remove this function once the RBAC env var is removed. -+ UnregisterRBACHTTPFilterForTesting func() -+ -+ // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -+ ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+) -+ -+// HealthChecker defines the signature of the client-side LB channel health checking function. -+// -+// The implementation is expected to create a health checking RPC stream by -+// calling newStream(), watch for the health status of serviceName, and report -+// it's health back by calling setConnectivityState(). -+// -+// The health checking protocol is defined at: -+// https://github.com/grpc/grpc/blob/master/doc/health-checking.md -+type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+ -+const ( -+ // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -+ CredsBundleModeFallback = "fallback" -+ // CredsBundleModeBalancer switches GoogleDefaultCreds to grpclb balancer -+ // mode. -+ CredsBundleModeBalancer = "balancer" -+ // CredsBundleModeBackendFromBalancer switches GoogleDefaultCreds to mode -+ // that supports backend returned by grpclb balancer. -+ CredsBundleModeBackendFromBalancer = "backend-from-balancer" -+) -+ -+// RLSLoadBalancingPolicyName is the name of the RLS LB policy. -+// -+// It currently has an experimental suffix which would be removed once -+// end-to-end testing of the policy is completed. -+const RLSLoadBalancingPolicyName = "rls_experimental" -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index e5c6513e..b0ead4f5 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -164,3 +164,13 @@ func (e *Error) Is(target error) bool { - } - return proto.Equal(e.s.s, tse.s.s) - } -+ -+// IsRestrictedControlPlaneCode returns whether the status includes a code -+// restricted for control plane usage as defined by gRFC A54. -+func IsRestrictedControlPlaneCode(s *Status) bool { -+ switch s.Code() { -+ case codes.InvalidArgument, codes.NotFound, codes.AlreadyExists, codes.FailedPrecondition, codes.Aborted, codes.OutOfRange, codes.DataLoss: -+ return true -+ } -+ return false -+} -diff --git a/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go b/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go -new file mode 100644 -index 00000000..e8b49277 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go -@@ -0,0 +1,40 @@ -+/* -+ * Copyright 2021 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ */ -+ -+package internal -+ -+import ( -+ "google.golang.org/grpc/attributes" -+ "google.golang.org/grpc/resolver" -+) -+ -+// handshakeClusterNameKey is the type used as the key to store cluster name in -+// the Attributes field of resolver.Address. -+type handshakeClusterNameKey struct{} -+ -+// SetXDSHandshakeClusterName returns a copy of addr in which the Attributes field -+// is updated with the cluster name. -+func SetXDSHandshakeClusterName(addr resolver.Address, clusterName string) resolver.Address { -+ addr.Attributes = addr.Attributes.WithValue(handshakeClusterNameKey{}, clusterName) -+ return addr -+} -+ -+// GetXDSHandshakeClusterName returns cluster name stored in attr. -+func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool) { -+ v := attr.Value(handshakeClusterNameKey{}) -+ name, ok := v.(string) -+ return name, ok -+} -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -new file mode 100644 -index 00000000..efcb7f3e ---- /dev/null -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -0,0 +1,138 @@ -+/* -+ * -+ * Copyright 2021 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+package resolver -+ -+type addressMapEntry struct { -+ addr Address -+ value interface{} -+} -+ -+// AddressMap is a map of addresses to arbitrary values taking into account -+// Attributes. BalancerAttributes are ignored, as are Metadata and Type. -+// Multiple accesses may not be performed concurrently. Must be created via -+// NewAddressMap; do not construct directly. -+type AddressMap struct { -+ // The underlying map is keyed by an Address with fields that we don't care -+ // about being set to their zero values. The only fields that we care about -+ // are `Addr`, `ServerName` and `Attributes`. Since we need to be able to -+ // distinguish between addresses with same `Addr` and `ServerName`, but -+ // different `Attributes`, we cannot store the `Attributes` in the map key. -+ // -+ // The comparison operation for structs work as follows: -+ // Struct values are comparable if all their fields are comparable. Two -+ // struct values are equal if their corresponding non-blank fields are equal. -+ // -+ // The value type of the map contains a slice of addresses which match the key -+ // in their `Addr` and `ServerName` fields and contain the corresponding value -+ // associated with them. -+ m map[Address]addressMapEntryList -+} -+ -+func toMapKey(addr *Address) Address { -+ return Address{Addr: addr.Addr, ServerName: addr.ServerName} -+} -+ -+type addressMapEntryList []*addressMapEntry -+ -+// NewAddressMap creates a new AddressMap. -+func NewAddressMap() *AddressMap { -+ return &AddressMap{m: make(map[Address]addressMapEntryList)} -+} -+ -+// find returns the index of addr in the addressMapEntry slice, or -1 if not -+// present. -+func (l addressMapEntryList) find(addr Address) int { -+ for i, entry := range l { -+ // Attributes are the only thing to match on here, since `Addr` and -+ // `ServerName` are already equal. -+ if entry.addr.Attributes.Equal(addr.Attributes) { -+ return i -+ } -+ } -+ return -1 -+} -+ -+// Get returns the value for the address in the map, if present. -+func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+ addrKey := toMapKey(&addr) -+ entryList := a.m[addrKey] -+ if entry := entryList.find(addr); entry != -1 { -+ return entryList[entry].value, true -+ } -+ return nil, false -+} -+ -+// Set updates or adds the value to the address in the map. -+func (a *AddressMap) Set(addr Address, value interface{}) { -+ addrKey := toMapKey(&addr) -+ entryList := a.m[addrKey] -+ if entry := entryList.find(addr); entry != -1 { -+ entryList[entry].value = value -+ return -+ } -+ a.m[addrKey] = append(entryList, &addressMapEntry{addr: addr, value: value}) -+} -+ -+// Delete removes addr from the map. -+func (a *AddressMap) Delete(addr Address) { -+ addrKey := toMapKey(&addr) -+ entryList := a.m[addrKey] -+ entry := entryList.find(addr) -+ if entry == -1 { -+ return -+ } -+ if len(entryList) == 1 { -+ entryList = nil -+ } else { -+ copy(entryList[entry:], entryList[entry+1:]) -+ entryList = entryList[:len(entryList)-1] -+ } -+ a.m[addrKey] = entryList -+} -+ -+// Len returns the number of entries in the map. -+func (a *AddressMap) Len() int { -+ ret := 0 -+ for _, entryList := range a.m { -+ ret += len(entryList) -+ } -+ return ret -+} -+ -+// Keys returns a slice of all current map keys. -+func (a *AddressMap) Keys() []Address { -+ ret := make([]Address, 0, a.Len()) -+ for _, entryList := range a.m { -+ for _, entry := range entryList { -+ ret = append(ret, entry.addr) -+ } -+ } -+ return ret -+} -+ -+// Values returns a slice of all current map values. -+func (a *AddressMap) Values() []interface{} { -+ ret := make([]interface{}, 0, a.Len()) -+ for _, entryList := range a.m { -+ for _, entry := range entryList { -+ ret = append(ret, entry.value) -+ } -+ } -+ return ret -+} -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -new file mode 100644 -index 00000000..353c10b6 ---- /dev/null -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -0,0 +1,330 @@ -+/* -+ * -+ * Copyright 2017 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package resolver defines APIs for name resolution in gRPC. -+// All APIs in this package are experimental. -+package resolver -+ -+import ( -+ "context" -+ "fmt" -+ "net" -+ "net/url" -+ "strings" -+ -+ "google.golang.org/grpc/attributes" -+ "google.golang.org/grpc/credentials" -+ "google.golang.org/grpc/serviceconfig" -+) -+ -+var ( -+ // m is a map from scheme to resolver builder. -+ m = make(map[string]Builder) -+ // defaultScheme is the default scheme to use. -+ defaultScheme = "passthrough" -+) -+ -+// TODO(bar) install dns resolver in init(){}. -+ -+// Register registers the resolver builder to the resolver map. b.Scheme will -+// be used as the scheme registered with this builder. The registry is case -+// sensitive, and schemes should not contain any uppercase characters. -+// -+// NOTE: this function must only be called during initialization time (i.e. in -+// an init() function), and is not thread-safe. If multiple Resolvers are -+// registered with the same name, the one registered last will take effect. -+func Register(b Builder) { -+ m[b.Scheme()] = b -+} -+ -+// Get returns the resolver builder registered with the given scheme. -+// -+// If no builder is register with the scheme, nil will be returned. -+func Get(scheme string) Builder { -+ if b, ok := m[scheme]; ok { -+ return b -+ } -+ return nil -+} -+ -+// SetDefaultScheme sets the default scheme that will be used. The default -+// default scheme is "passthrough". -+// -+// NOTE: this function must only be called during initialization time (i.e. in -+// an init() function), and is not thread-safe. The scheme set last overrides -+// previously set values. -+func SetDefaultScheme(scheme string) { -+ defaultScheme = scheme -+} -+ -+// GetDefaultScheme gets the default scheme that will be used. -+func GetDefaultScheme() string { -+ return defaultScheme -+} -+ -+// AddressType indicates the address type returned by name resolution. -+// -+// Deprecated: use Attributes in Address instead. -+type AddressType uint8 -+ -+const ( -+ // Backend indicates the address is for a backend server. -+ // -+ // Deprecated: use Attributes in Address instead. -+ Backend AddressType = iota -+ // GRPCLB indicates the address is for a grpclb load balancer. -+ // -+ // Deprecated: to select the GRPCLB load balancing policy, use a service -+ // config with a corresponding loadBalancingConfig. To supply balancer -+ // addresses to the GRPCLB load balancing policy, set State.Attributes -+ // using balancer/grpclb/state.Set. -+ GRPCLB -+) -+ -+// Address represents a server the client connects to. -+// -+// # Experimental -+// -+// Notice: This type is EXPERIMENTAL and may be changed or removed in a -+// later release. -+type Address struct { -+ // Addr is the server address on which a connection will be established. -+ Addr string -+ -+ // ServerName is the name of this address. -+ // If non-empty, the ServerName is used as the transport certification authority for -+ // the address, instead of the hostname from the Dial target string. In most cases, -+ // this should not be set. -+ // -+ // If Type is GRPCLB, ServerName should be the name of the remote load -+ // balancer, not the name of the backend. -+ // -+ // WARNING: ServerName must only be populated with trusted values. It -+ // is insecure to populate it with data from untrusted inputs since untrusted -+ // values could be used to bypass the authority checks performed by TLS. -+ ServerName string -+ -+ // Attributes contains arbitrary data about this address intended for -+ // consumption by the SubConn. -+ Attributes *attributes.Attributes -+ -+ // BalancerAttributes contains arbitrary data about this address intended -+ // for consumption by the LB policy. These attributes do not affect SubConn -+ // creation, connection establishment, handshaking, etc. -+ BalancerAttributes *attributes.Attributes -+ -+ // Type is the type of this address. -+ // -+ // Deprecated: use Attributes instead. -+ Type AddressType -+ -+ // Metadata is the information associated with Addr, which may be used -+ // to make load balancing decision. -+ // -+ // Deprecated: use Attributes instead. -+ Metadata interface{} -+} -+ -+// Equal returns whether a and o are identical. Metadata is compared directly, -+// not with any recursive introspection. -+func (a Address) Equal(o Address) bool { -+ return a.Addr == o.Addr && a.ServerName == o.ServerName && -+ a.Attributes.Equal(o.Attributes) && -+ a.BalancerAttributes.Equal(o.BalancerAttributes) && -+ a.Type == o.Type && a.Metadata == o.Metadata -+} -+ -+// String returns JSON formatted string representation of the address. -+func (a Address) String() string { -+ var sb strings.Builder -+ sb.WriteString(fmt.Sprintf("{Addr: %q, ", a.Addr)) -+ sb.WriteString(fmt.Sprintf("ServerName: %q, ", a.ServerName)) -+ if a.Attributes != nil { -+ sb.WriteString(fmt.Sprintf("Attributes: %v, ", a.Attributes.String())) -+ } -+ if a.BalancerAttributes != nil { -+ sb.WriteString(fmt.Sprintf("BalancerAttributes: %v", a.BalancerAttributes.String())) -+ } -+ sb.WriteString("}") -+ return sb.String() -+} -+ -+// BuildOptions includes additional information for the builder to create -+// the resolver. -+type BuildOptions struct { -+ // DisableServiceConfig indicates whether a resolver implementation should -+ // fetch service config data. -+ DisableServiceConfig bool -+ // DialCreds is the transport credentials used by the ClientConn for -+ // communicating with the target gRPC service (set via -+ // WithTransportCredentials). In cases where a name resolution service -+ // requires the same credentials, the resolver may use this field. In most -+ // cases though, it is not appropriate, and this field may be ignored. -+ DialCreds credentials.TransportCredentials -+ // CredsBundle is the credentials bundle used by the ClientConn for -+ // communicating with the target gRPC service (set via -+ // WithCredentialsBundle). In cases where a name resolution service -+ // requires the same credentials, the resolver may use this field. In most -+ // cases though, it is not appropriate, and this field may be ignored. -+ CredsBundle credentials.Bundle -+ // Dialer is the custom dialer used by the ClientConn for dialling the -+ // target gRPC service (set via WithDialer). In cases where a name -+ // resolution service requires the same dialer, the resolver may use this -+ // field. In most cases though, it is not appropriate, and this field may -+ // be ignored. -+ Dialer func(context.Context, string) (net.Conn, error) -+} -+ -+// State contains the current Resolver state relevant to the ClientConn. -+type State struct { -+ // Addresses is the latest set of resolved addresses for the target. -+ Addresses []Address -+ -+ // ServiceConfig contains the result from parsing the latest service -+ // config. If it is nil, it indicates no service config is present or the -+ // resolver does not provide service configs. -+ ServiceConfig *serviceconfig.ParseResult -+ -+ // Attributes contains arbitrary data about the resolver intended for -+ // consumption by the load balancing policy. -+ Attributes *attributes.Attributes -+} -+ -+// ClientConn contains the callbacks for resolver to notify any updates -+// to the gRPC ClientConn. -+// -+// This interface is to be implemented by gRPC. Users should not need a -+// brand new implementation of this interface. For the situations like -+// testing, the new implementation should embed this interface. This allows -+// gRPC to add new methods to this interface. -+type ClientConn interface { -+ // UpdateState updates the state of the ClientConn appropriately. -+ // -+ // If an error is returned, the resolver should try to resolve the -+ // target again. The resolver should use a backoff timer to prevent -+ // overloading the server with requests. If a resolver is certain that -+ // reresolving will not change the result, e.g. because it is -+ // a watch-based resolver, returned errors can be ignored. -+ // -+ // If the resolved State is the same as the last reported one, calling -+ // UpdateState can be omitted. -+ UpdateState(State) error -+ // ReportError notifies the ClientConn that the Resolver encountered an -+ // error. The ClientConn will notify the load balancer and begin calling -+ // ResolveNow on the Resolver with exponential backoff. -+ ReportError(error) -+ // NewAddress is called by resolver to notify ClientConn a new list -+ // of resolved addresses. -+ // The address list should be the complete list of resolved addresses. -+ // -+ // Deprecated: Use UpdateState instead. -+ NewAddress(addresses []Address) -+ // NewServiceConfig is called by resolver to notify ClientConn a new -+ // service config. The service config should be provided as a json string. -+ // -+ // Deprecated: Use UpdateState instead. -+ NewServiceConfig(serviceConfig string) -+ // ParseServiceConfig parses the provided service config and returns an -+ // object that provides the parsed config. -+ ParseServiceConfig(serviceConfigJSON string) *serviceconfig.ParseResult -+} -+ -+// Target represents a target for gRPC, as specified in: -+// https://github.com/grpc/grpc/blob/master/doc/naming.md. -+// It is parsed from the target string that gets passed into Dial or DialContext -+// by the user. And gRPC passes it to the resolver and the balancer. -+// -+// If the target follows the naming spec, and the parsed scheme is registered -+// with gRPC, we will parse the target string according to the spec. If the -+// target does not contain a scheme or if the parsed scheme is not registered -+// (i.e. no corresponding resolver available to resolve the endpoint), we will -+// apply the default scheme, and will attempt to reparse it. -+// -+// Examples: -+// -+// - "dns://some_authority/foo.bar" -+// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} -+// - "foo.bar" -+// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} -+// - "unknown_scheme://authority/endpoint" -+// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} -+type Target struct { -+ // Deprecated: use URL.Scheme instead. -+ Scheme string -+ // Deprecated: use URL.Host instead. -+ Authority string -+ // URL contains the parsed dial target with an optional default scheme added -+ // to it if the original dial target contained no scheme or contained an -+ // unregistered scheme. Any query params specified in the original dial -+ // target can be accessed from here. -+ URL url.URL -+} -+ -+// Endpoint retrieves endpoint without leading "/" from either `URL.Path` -+// or `URL.Opaque`. The latter is used when the former is empty. -+func (t Target) Endpoint() string { -+ endpoint := t.URL.Path -+ if endpoint == "" { -+ endpoint = t.URL.Opaque -+ } -+ // For targets of the form "[scheme]://[authority]/endpoint, the endpoint -+ // value returned from url.Parse() contains a leading "/". Although this is -+ // in accordance with RFC 3986, we do not want to break existing resolver -+ // implementations which expect the endpoint without the leading "/". So, we -+ // end up stripping the leading "/" here. But this will result in an -+ // incorrect parsing for something like "unix:///path/to/socket". Since we -+ // own the "unix" resolver, we can workaround in the unix resolver by using -+ // the `URL` field. -+ return strings.TrimPrefix(endpoint, "/") -+} -+ -+// Builder creates a resolver that will be used to watch name resolution updates. -+type Builder interface { -+ // Build creates a new resolver for the given target. -+ // -+ // gRPC dial calls Build synchronously, and fails if the returned error is -+ // not nil. -+ Build(target Target, cc ClientConn, opts BuildOptions) (Resolver, error) -+ // Scheme returns the scheme supported by this resolver. Scheme is defined -+ // at https://github.com/grpc/grpc/blob/master/doc/naming.md. The returned -+ // string should not contain uppercase characters, as they will not match -+ // the parsed target's scheme as defined in RFC 3986. -+ Scheme() string -+} -+ -+// ResolveNowOptions includes additional information for ResolveNow. -+type ResolveNowOptions struct{} -+ -+// Resolver watches for the updates on the specified target. -+// Updates include address updates and service config updates. -+type Resolver interface { -+ // ResolveNow will be called by gRPC to try to resolve the target name -+ // again. It's just a hint, resolver can ignore this if it's not necessary. -+ // -+ // It could be called multiple times concurrently. -+ ResolveNow(ResolveNowOptions) -+ // Close closes the resolver. -+ Close() -+} -+ -+// UnregisterForTesting removes the resolver builder with the given scheme from the -+// resolver map. -+// This function is for testing only. -+func UnregisterForTesting(scheme string) { -+ delete(m, scheme) -+} -diff --git a/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go b/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go -new file mode 100644 -index 00000000..35e7a20a ---- /dev/null -+++ b/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go -@@ -0,0 +1,44 @@ -+/* -+ * -+ * Copyright 2019 gRPC authors. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+// Package serviceconfig defines types and methods for operating on gRPC -+// service configs. -+// -+// # Experimental -+// -+// Notice: This package is EXPERIMENTAL and may be changed or removed in a -+// later release. -+package serviceconfig -+ -+// Config represents an opaque data structure holding a service config. -+type Config interface { -+ isServiceConfig() -+} -+ -+// LoadBalancingConfig represents an opaque data structure holding a load -+// balancing config. -+type LoadBalancingConfig interface { -+ isLoadBalancingConfig() -+} -+ -+// ParseResult contains a service config or an error. Exactly one must be -+// non-nil. -+type ParseResult struct { -+ Config Config -+ Err error -+} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index 6d163b6e..bcf2e4d8 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -76,22 +76,50 @@ func FromProto(s *spb.Status) *Status { - - // FromError returns a Status representation of err. - // --// - If err was produced by this package or implements the method `GRPCStatus() --// *Status`, the appropriate Status is returned. -+// - If err was produced by this package or implements the method `GRPCStatus() -+// *Status` and `GRPCStatus()` does not return nil, or if err wraps a type -+// satisfying this, the Status from `GRPCStatus()` is returned. For wrapped -+// errors, the message returned contains the entire err.Error() text and not -+// just the wrapped status. In that case, ok is true. - // --// - If err is nil, a Status is returned with codes.OK and no message. -+// - If err is nil, a Status is returned with codes.OK and no message, and ok -+// is true. - // --// - Otherwise, err is an error not compatible with this package. In this --// case, a Status is returned with codes.Unknown and err's Error() message, --// and ok is false. -+// - If err implements the method `GRPCStatus() *Status` and `GRPCStatus()` -+// returns nil (which maps to Codes.OK), or if err wraps a type -+// satisfying this, a Status is returned with codes.Unknown and err's -+// Error() message, and ok is false. -+// -+// - Otherwise, err is an error not compatible with this package. In this -+// case, a Status is returned with codes.Unknown and err's Error() message, -+// and ok is false. - func FromError(err error) (s *Status, ok bool) { - if err == nil { - return nil, true - } -- if se, ok := err.(interface { -- GRPCStatus() *Status -- }); ok { -- return se.GRPCStatus(), true -+ type grpcstatus interface{ GRPCStatus() *Status } -+ if gs, ok := err.(grpcstatus); ok { -+ if gs.GRPCStatus() == nil { -+ // Error has status nil, which maps to codes.OK. There -+ // is no sensible behavior for this, so we turn it into -+ // an error with codes.Unknown and discard the existing -+ // status. -+ return New(codes.Unknown, err.Error()), false -+ } -+ return gs.GRPCStatus(), true -+ } -+ var gs grpcstatus -+ if errors.As(err, &gs) { -+ if gs.GRPCStatus() == nil { -+ // Error wraps an error that has status nil, which maps -+ // to codes.OK. There is no sensible behavior for this, -+ // so we turn it into an error with codes.Unknown and -+ // discard the existing status. -+ return New(codes.Unknown, err.Error()), false -+ } -+ p := gs.GRPCStatus().Proto() -+ p.Message = err.Error() -+ return status.FromProto(p), true - } - return New(codes.Unknown, err.Error()), false - } -@@ -103,19 +131,16 @@ func Convert(err error) *Status { - return s - } - --// Code returns the Code of the error if it is a Status error, codes.OK if err --// is nil, or codes.Unknown otherwise. -+// Code returns the Code of the error if it is a Status error or if it wraps a -+// Status error. If that is not the case, it returns codes.OK if err is nil, or -+// codes.Unknown otherwise. - func Code(err error) codes.Code { - // Don't use FromError to avoid allocation of OK status. - if err == nil { - return codes.OK - } -- if se, ok := err.(interface { -- GRPCStatus() *Status -- }); ok { -- return se.GRPCStatus().Code() -- } -- return codes.Unknown -+ -+ return Convert(err).Code() - } - - // FromContextError converts a context error or wrapped context error into a -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index daefe110..f7014cd5 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,8 +51,8 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 29 -- Patch = 1 -+ Minor = 30 -+ Patch = 0 - PreRelease = "" - ) - -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 9ee7ad31..259f429d 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -245,15 +245,24 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 --## explicit; go 1.15 -+# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.50.1 -+# google.golang.org/grpc v1.56.3 - ## explicit; go 1.17 -+google.golang.org/grpc/attributes - google.golang.org/grpc/codes -+google.golang.org/grpc/connectivity -+google.golang.org/grpc/credentials -+google.golang.org/grpc/grpclog -+google.golang.org/grpc/internal -+google.golang.org/grpc/internal/credentials -+google.golang.org/grpc/internal/grpclog - google.golang.org/grpc/internal/status -+google.golang.org/grpc/resolver -+google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.29.1 -+# google.golang.org/protobuf v1.30.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-28/patches/0003-Bump-containerd-verison-to-v1.7.11.patch b/projects/containernetworking/plugins/1-28/patches/0003-Bump-containerd-verison-to-v1.7.11.patch deleted file mode 100644 index 5948561edf..0000000000 --- a/projects/containernetworking/plugins/1-28/patches/0003-Bump-containerd-verison-to-v1.7.11.patch +++ /dev/null @@ -1,6610 +0,0 @@ -From a2b3536063692f00cd16072bc10a8721cec49cde Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Tue, 26 Dec 2023 12:21:26 -0800 -Subject: [PATCH] Bump containerd verison to v1.7.11 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 14 +- - go.sum | 32 +- - vendor/github.com/sirupsen/logrus/README.md | 8 +- - vendor/github.com/sirupsen/logrus/writer.go | 34 +- - .../x/tools/go/gcexportdata/gcexportdata.go | 11 +- - .../golang.org/x/tools/go/packages/golist.go | 23 +- - .../x/tools/go/packages/packages.go | 3 + - .../x/tools/go/types/objectpath/objectpath.go | 762 ------------- - .../x/tools/internal/event/tag/tag.go | 59 + - .../x/tools/internal/gcimporter/bexport.go | 852 -------------- - .../x/tools/internal/gcimporter/bimport.go | 907 +-------------- - .../x/tools/internal/gcimporter/gcimporter.go | 15 +- - .../x/tools/internal/gcimporter/iexport.go | 38 +- - .../x/tools/internal/gcimporter/iimport.go | 43 +- - .../tools/internal/gcimporter/ureader_yes.go | 9 + - .../x/tools/internal/gocommand/invoke.go | 146 ++- - .../x/tools/internal/gocommand/version.go | 18 +- - .../internal/tokeninternal/tokeninternal.go | 92 ++ - .../x/tools/internal/typeparams/common.go | 20 + - .../x/tools/internal/typesinternal/types.go | 9 - - .../genproto/{ => googleapis/rpc}/LICENSE | 0 - .../grpc/attributes/attributes.go | 59 +- - .../grpc/grpclog/component.go | 40 +- - .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- - .../google.golang.org/grpc/grpclog/logger.go | 30 +- - .../grpc/grpclog/loggerv2.go | 56 +- - .../grpc/internal/credentials/credentials.go | 8 +- - .../grpc/internal/grpclog/grpclog.go | 40 +- - .../grpc/internal/grpclog/prefixLogger.go | 8 +- - .../grpc/internal/internal.go | 45 +- - .../grpc/internal/status/status.go | 8 +- - vendor/google.golang.org/grpc/resolver/map.go | 10 +- - .../grpc/resolver/resolver.go | 84 +- - .../google.golang.org/grpc/status/status.go | 14 +- - .../protobuf/encoding/prototext/encode.go | 14 +- - .../protobuf/internal/encoding/text/encode.go | 10 +- - .../protobuf/internal/genid/descriptor_gen.go | 48 + - .../protobuf/internal/genid/type_gen.go | 6 + - .../protobuf/internal/order/order.go | 2 +- - .../protobuf/internal/version/version.go | 2 +- - .../google.golang.org/protobuf/proto/size.go | 10 +- - .../reflect/protoreflect/source_gen.go | 27 + - .../types/descriptorpb/descriptor.pb.go | 1011 +++++++++++------ - .../protobuf/types/known/anypb/any.pb.go | 70 +- - .../types/known/timestamppb/timestamp.pb.go | 2 +- - vendor/modules.txt | 20 +- - 46 files changed, 1473 insertions(+), 3276 deletions(-) - delete mode 100644 vendor/golang.org/x/tools/go/types/objectpath/objectpath.go - create mode 100644 vendor/golang.org/x/tools/internal/event/tag/tag.go - delete mode 100644 vendor/golang.org/x/tools/internal/gcimporter/bexport.go - rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) - -diff --git a/go.mod b/go.mod -index 97215537..68933e8f 100644 ---- a/go.mod -+++ b/go.mod -@@ -26,7 +26,7 @@ require ( - require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -- github.com/containerd/containerd v1.6.23 // indirect -+ github.com/containerd/containerd v1.7.11 // indirect - github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.2.4 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect -@@ -36,15 +36,15 @@ require ( - github.com/google/go-cmp v0.5.9 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -- github.com/sirupsen/logrus v1.9.0 // indirect -+ github.com/sirupsen/logrus v1.9.3 // indirect - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect -- golang.org/x/mod v0.9.0 // indirect -+ golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect -- golang.org/x/tools v0.7.0 // indirect -- google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -- google.golang.org/grpc v1.56.3 // indirect -- google.golang.org/protobuf v1.30.0 // indirect -+ golang.org/x/tools v0.10.0 // indirect -+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect -+ google.golang.org/grpc v1.58.3 // indirect -+ google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 24696937..58733ad0 100644 ---- a/go.sum -+++ b/go.sum -@@ -16,8 +16,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= --github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= -+github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= -+github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= - github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk= -@@ -113,8 +113,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= --github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= - 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= -@@ -124,8 +124,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - 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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -@@ -146,8 +146,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl - golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= - golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= - golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= --golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= --golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -+golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -+golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= - golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= - golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -@@ -170,7 +170,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ - golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= --golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -+golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= - golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= - golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -@@ -209,8 +209,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY - golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= - golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= - golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= --golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= --golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -+golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -+golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= - golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= - golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= - golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -@@ -220,15 +220,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 - 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-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= - 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.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= --google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -+google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -+google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= - 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= -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= --google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md -index b042c896..d1d4a85f 100644 ---- a/vendor/github.com/sirupsen/logrus/README.md -+++ b/vendor/github.com/sirupsen/logrus/README.md -@@ -9,7 +9,7 @@ the last thing you want from your Logging library (again...). - - This does not mean Logrus is dead. Logrus will continue to be maintained for - security, (backwards compatible) bug fixes, and performance (where we are --limited by the interface). -+limited by the interface). - - I believe Logrus' biggest contribution is to have played a part in today's - widespread use of structured logging in Golang. There doesn't seem to be a -@@ -43,7 +43,7 @@ plain text): - With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash - or Splunk: - --```json -+```text - {"animal":"walrus","level":"info","msg":"A group of walrus emerges from the - ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} - -@@ -99,7 +99,7 @@ time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcr - ``` - Note that this does add measurable overhead - the cost will depend on the version of Go, but is - between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your --environment via benchmarks: -+environment via benchmarks: - ``` - go test -bench=.*CallerTracing - ``` -@@ -317,6 +317,8 @@ log.SetLevel(log.InfoLevel) - It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose - environment if your application has that. - -+Note: If you want different log levels for global (`log.SetLevel(...)`) and syslog logging, please check the [syslog hook README](hooks/syslog/README.md#different-log-levels-for-local-and-remote-logging). -+ - #### Entries - - Besides the fields added with `WithField` or `WithFields` some fields are -diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go -index 72e8e3a1..074fd4b8 100644 ---- a/vendor/github.com/sirupsen/logrus/writer.go -+++ b/vendor/github.com/sirupsen/logrus/writer.go -@@ -4,6 +4,7 @@ import ( - "bufio" - "io" - "runtime" -+ "strings" - ) - - // Writer at INFO level. See WriterLevel for details. -@@ -20,15 +21,18 @@ func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { - return NewEntry(logger).WriterLevel(level) - } - -+// Writer returns an io.Writer that writes to the logger at the info log level - func (entry *Entry) Writer() *io.PipeWriter { - return entry.WriterLevel(InfoLevel) - } - -+// WriterLevel returns an io.Writer that writes to the logger at the given log level - func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - reader, writer := io.Pipe() - - var printFunc func(args ...interface{}) - -+ // Determine which log function to use based on the specified log level - switch level { - case TraceLevel: - printFunc = entry.Trace -@@ -48,23 +52,51 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - printFunc = entry.Print - } - -+ // Start a new goroutine to scan the input and write it to the logger using the specified print function. -+ // It splits the input into chunks of up to 64KB to avoid buffer overflows. - go entry.writerScanner(reader, printFunc) -+ -+ // Set a finalizer function to close the writer when it is garbage collected - runtime.SetFinalizer(writer, writerFinalizer) - - return writer - } - -+// writerScanner scans the input from the reader and writes it to the logger - func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) { - scanner := bufio.NewScanner(reader) -+ -+ // Set the buffer size to the maximum token size to avoid buffer overflows -+ scanner.Buffer(make([]byte, bufio.MaxScanTokenSize), bufio.MaxScanTokenSize) -+ -+ // Define a split function to split the input into chunks of up to 64KB -+ chunkSize := bufio.MaxScanTokenSize // 64KB -+ splitFunc := func(data []byte, atEOF bool) (int, []byte, error) { -+ if len(data) >= chunkSize { -+ return chunkSize, data[:chunkSize], nil -+ } -+ -+ return bufio.ScanLines(data, atEOF) -+ } -+ -+ // Use the custom split function to split the input -+ scanner.Split(splitFunc) -+ -+ // Scan the input and write it to the logger using the specified print function - for scanner.Scan() { -- printFunc(scanner.Text()) -+ printFunc(strings.TrimRight(scanner.Text(), "\r\n")) - } -+ -+ // If there was an error while scanning the input, log an error - if err := scanner.Err(); err != nil { - entry.Errorf("Error while reading from Writer: %s", err) - } -+ -+ // Close the reader when we are done - reader.Close() - } - -+// WriterFinalizer is a finalizer function that closes then given writer when it is garbage collected - func writerFinalizer(writer *io.PipeWriter) { - writer.Close() - } -diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go -index 165ede0f..03543bd4 100644 ---- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go -+++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go -@@ -128,15 +128,14 @@ func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, - // (from "version"). Select appropriate importer. - if len(data) > 0 { - switch data[0] { -- case 'i': -- _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) -- return pkg, err -+ case 'v', 'c', 'd': // binary, till go1.10 -+ return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - -- case 'v', 'c', 'd': -- _, pkg, err := gcimporter.BImportData(fset, imports, data, path) -+ case 'i': // indexed, till go1.19 -+ _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) - return pkg, err - -- case 'u': -+ case 'u': // unified, from go1.20 - _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) - return pkg, err - -diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go -index 6bb7168d..e84f19df 100644 ---- a/vendor/golang.org/x/tools/go/packages/golist.go -+++ b/vendor/golang.org/x/tools/go/packages/golist.go -@@ -625,7 +625,12 @@ func (state *golistState) createDriverResponse(words ...string) (*driverResponse - } - - if pkg.PkgPath == "unsafe" { -- pkg.GoFiles = nil // ignore fake unsafe.go file -+ pkg.CompiledGoFiles = nil // ignore fake unsafe.go file (#59929) -+ } else if len(pkg.CompiledGoFiles) == 0 { -+ // Work around for pre-go.1.11 versions of go list. -+ // TODO(matloob): they should be handled by the fallback. -+ // Can we delete this? -+ pkg.CompiledGoFiles = pkg.GoFiles - } - - // Assume go list emits only absolute paths for Dir. -@@ -663,13 +668,6 @@ func (state *golistState) createDriverResponse(words ...string) (*driverResponse - response.Roots = append(response.Roots, pkg.ID) - } - -- // Work around for pre-go.1.11 versions of go list. -- // TODO(matloob): they should be handled by the fallback. -- // Can we delete this? -- if len(pkg.CompiledGoFiles) == 0 { -- pkg.CompiledGoFiles = pkg.GoFiles -- } -- - // Temporary work-around for golang/go#39986. Parse filenames out of - // error messages. This happens if there are unrecoverable syntax - // errors in the source, so we can't match on a specific error message. -@@ -891,6 +889,15 @@ func golistargs(cfg *Config, words []string, goVersion int) []string { - // probably because you'd just get the TestMain. - fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), - } -+ -+ // golang/go#60456: with go1.21 and later, go list serves pgo variants, which -+ // can be costly to compute and may result in redundant processing for the -+ // caller. Disable these variants. If someone wants to add e.g. a NeedPGO -+ // mode flag, that should be a separate proposal. -+ if goVersion >= 21 { -+ fullargs = append(fullargs, "-pgo=off") -+ } -+ - fullargs = append(fullargs, cfg.BuildFlags...) - fullargs = append(fullargs, "--") - fullargs = append(fullargs, words...) -diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go -index 0f1505b8..632be722 100644 ---- a/vendor/golang.org/x/tools/go/packages/packages.go -+++ b/vendor/golang.org/x/tools/go/packages/packages.go -@@ -308,6 +308,9 @@ type Package struct { - TypeErrors []types.Error - - // GoFiles lists the absolute file paths of the package's Go source files. -+ // It may include files that should not be compiled, for example because -+ // they contain non-matching build tags, are documentary pseudo-files such as -+ // unsafe/unsafe.go or builtin/builtin.go, or are subject to cgo preprocessing. - GoFiles []string - - // CompiledGoFiles lists the absolute file paths of the package's source -diff --git a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go -deleted file mode 100644 -index be8f5a86..00000000 ---- a/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go -+++ /dev/null -@@ -1,762 +0,0 @@ --// Copyright 2018 The Go Authors. All rights reserved. --// Use of this source code is governed by a BSD-style --// license that can be found in the LICENSE file. -- --// Package objectpath defines a naming scheme for types.Objects --// (that is, named entities in Go programs) relative to their enclosing --// package. --// --// Type-checker objects are canonical, so they are usually identified by --// their address in memory (a pointer), but a pointer has meaning only --// within one address space. By contrast, objectpath names allow the --// identity of an object to be sent from one program to another, --// establishing a correspondence between types.Object variables that are --// distinct but logically equivalent. --// --// A single object may have multiple paths. In this example, --// --// type A struct{ X int } --// type B A --// --// the field X has two paths due to its membership of both A and B. --// The For(obj) function always returns one of these paths, arbitrarily --// but consistently. --package objectpath -- --import ( -- "fmt" -- "go/types" -- "sort" -- "strconv" -- "strings" -- -- "golang.org/x/tools/internal/typeparams" -- -- _ "unsafe" // for go:linkname --) -- --// A Path is an opaque name that identifies a types.Object --// relative to its package. Conceptually, the name consists of a --// sequence of destructuring operations applied to the package scope --// to obtain the original object. --// The name does not include the package itself. --type Path string -- --// Encoding --// --// An object path is a textual and (with training) human-readable encoding --// of a sequence of destructuring operators, starting from a types.Package. --// The sequences represent a path through the package/object/type graph. --// We classify these operators by their type: --// --// PO package->object Package.Scope.Lookup --// OT object->type Object.Type --// TT type->type Type.{Elem,Key,Params,Results,Underlying} [EKPRU] --// TO type->object Type.{At,Field,Method,Obj} [AFMO] --// --// All valid paths start with a package and end at an object --// and thus may be defined by the regular language: --// --// objectpath = PO (OT TT* TO)* --// --// The concrete encoding follows directly: --// - The only PO operator is Package.Scope.Lookup, which requires an identifier. --// - The only OT operator is Object.Type, --// which we encode as '.' because dot cannot appear in an identifier. --// - The TT operators are encoded as [EKPRUTC]; --// one of these (TypeParam) requires an integer operand, --// which is encoded as a string of decimal digits. --// - The TO operators are encoded as [AFMO]; --// three of these (At,Field,Method) require an integer operand, --// which is encoded as a string of decimal digits. --// These indices are stable across different representations --// of the same package, even source and export data. --// The indices used are implementation specific and may not correspond to --// the argument to the go/types function. --// --// In the example below, --// --// package p --// --// type T interface { --// f() (a string, b struct{ X int }) --// } --// --// field X has the path "T.UM0.RA1.F0", --// representing the following sequence of operations: --// --// p.Lookup("T") T --// .Type().Underlying().Method(0). f --// .Type().Results().At(1) b --// .Type().Field(0) X --// --// The encoding is not maximally compact---every R or P is --// followed by an A, for example---but this simplifies the --// encoder and decoder. --const ( -- // object->type operators -- opType = '.' // .Type() (Object) -- -- // type->type operators -- opElem = 'E' // .Elem() (Pointer, Slice, Array, Chan, Map) -- opKey = 'K' // .Key() (Map) -- opParams = 'P' // .Params() (Signature) -- opResults = 'R' // .Results() (Signature) -- opUnderlying = 'U' // .Underlying() (Named) -- opTypeParam = 'T' // .TypeParams.At(i) (Named, Signature) -- opConstraint = 'C' // .Constraint() (TypeParam) -- -- // type->object operators -- opAt = 'A' // .At(i) (Tuple) -- opField = 'F' // .Field(i) (Struct) -- opMethod = 'M' // .Method(i) (Named or Interface; not Struct: "promoted" names are ignored) -- opObj = 'O' // .Obj() (Named, TypeParam) --) -- --// For returns the path to an object relative to its package, --// or an error if the object is not accessible from the package's Scope. --// --// The For function guarantees to return a path only for the following objects: --// - package-level types --// - exported package-level non-types --// - methods --// - parameter and result variables --// - struct fields --// These objects are sufficient to define the API of their package. --// The objects described by a package's export data are drawn from this set. --// --// For does not return a path for predeclared names, imported package --// names, local names, and unexported package-level names (except --// types). --// --// Example: given this definition, --// --// package p --// --// type T interface { --// f() (a string, b struct{ X int }) --// } --// --// For(X) would return a path that denotes the following sequence of operations: --// --// p.Scope().Lookup("T") (TypeName T) --// .Type().Underlying().Method(0). (method Func f) --// .Type().Results().At(1) (field Var b) --// .Type().Field(0) (field Var X) --// --// where p is the package (*types.Package) to which X belongs. --func For(obj types.Object) (Path, error) { -- return newEncoderFor()(obj) --} -- --// An encoder amortizes the cost of encoding the paths of multiple objects. --// Nonexported pending approval of proposal 58668. --type encoder struct { -- scopeNamesMemo map[*types.Scope][]string // memoization of Scope.Names() -- namedMethodsMemo map[*types.Named][]*types.Func // memoization of namedMethods() --} -- --// Exposed to gopls via golang.org/x/tools/internal/typesinternal --// pending approval of proposal 58668. --// --//go:linkname newEncoderFor --func newEncoderFor() func(types.Object) (Path, error) { return new(encoder).For } -- --func (enc *encoder) For(obj types.Object) (Path, error) { -- pkg := obj.Pkg() -- -- // This table lists the cases of interest. -- // -- // Object Action -- // ------ ------ -- // nil reject -- // builtin reject -- // pkgname reject -- // label reject -- // var -- // package-level accept -- // func param/result accept -- // local reject -- // struct field accept -- // const -- // package-level accept -- // local reject -- // func -- // package-level accept -- // init functions reject -- // concrete method accept -- // interface method accept -- // type -- // package-level accept -- // local reject -- // -- // The only accessible package-level objects are members of pkg itself. -- // -- // The cases are handled in four steps: -- // -- // 1. reject nil and builtin -- // 2. accept package-level objects -- // 3. reject obviously invalid objects -- // 4. search the API for the path to the param/result/field/method. -- -- // 1. reference to nil or builtin? -- if pkg == nil { -- return "", fmt.Errorf("predeclared %s has no path", obj) -- } -- scope := pkg.Scope() -- -- // 2. package-level object? -- if scope.Lookup(obj.Name()) == obj { -- // Only exported objects (and non-exported types) have a path. -- // Non-exported types may be referenced by other objects. -- if _, ok := obj.(*types.TypeName); !ok && !obj.Exported() { -- return "", fmt.Errorf("no path for non-exported %v", obj) -- } -- return Path(obj.Name()), nil -- } -- -- // 3. Not a package-level object. -- // Reject obviously non-viable cases. -- switch obj := obj.(type) { -- case *types.TypeName: -- if _, ok := obj.Type().(*typeparams.TypeParam); !ok { -- // With the exception of type parameters, only package-level type names -- // have a path. -- return "", fmt.Errorf("no path for %v", obj) -- } -- case *types.Const, // Only package-level constants have a path. -- *types.Label, // Labels are function-local. -- *types.PkgName: // PkgNames are file-local. -- return "", fmt.Errorf("no path for %v", obj) -- -- case *types.Var: -- // Could be: -- // - a field (obj.IsField()) -- // - a func parameter or result -- // - a local var. -- // Sadly there is no way to distinguish -- // a param/result from a local -- // so we must proceed to the find. -- -- case *types.Func: -- // A func, if not package-level, must be a method. -- if recv := obj.Type().(*types.Signature).Recv(); recv == nil { -- return "", fmt.Errorf("func is not a method: %v", obj) -- } -- -- if path, ok := enc.concreteMethod(obj); ok { -- // Fast path for concrete methods that avoids looping over scope. -- return path, nil -- } -- -- default: -- panic(obj) -- } -- -- // 4. Search the API for the path to the var (field/param/result) or method. -- -- // First inspect package-level named types. -- // In the presence of path aliases, these give -- // the best paths because non-types may -- // refer to types, but not the reverse. -- empty := make([]byte, 0, 48) // initial space -- names := enc.scopeNames(scope) -- for _, name := range names { -- o := scope.Lookup(name) -- tname, ok := o.(*types.TypeName) -- if !ok { -- continue // handle non-types in second pass -- } -- -- path := append(empty, name...) -- path = append(path, opType) -- -- T := o.Type() -- -- if tname.IsAlias() { -- // type alias -- if r := find(obj, T, path, nil); r != nil { -- return Path(r), nil -- } -- } else { -- if named, _ := T.(*types.Named); named != nil { -- if r := findTypeParam(obj, typeparams.ForNamed(named), path, nil); r != nil { -- // generic named type -- return Path(r), nil -- } -- } -- // defined (named) type -- if r := find(obj, T.Underlying(), append(path, opUnderlying), nil); r != nil { -- return Path(r), nil -- } -- } -- } -- -- // Then inspect everything else: -- // non-types, and declared methods of defined types. -- for _, name := range names { -- o := scope.Lookup(name) -- path := append(empty, name...) -- if _, ok := o.(*types.TypeName); !ok { -- if o.Exported() { -- // exported non-type (const, var, func) -- if r := find(obj, o.Type(), append(path, opType), nil); r != nil { -- return Path(r), nil -- } -- } -- continue -- } -- -- // Inspect declared methods of defined types. -- if T, ok := o.Type().(*types.Named); ok { -- path = append(path, opType) -- // Note that method index here is always with respect -- // to canonical ordering of methods, regardless of how -- // they appear in the underlying type. -- for i, m := range enc.namedMethods(T) { -- path2 := appendOpArg(path, opMethod, i) -- if m == obj { -- return Path(path2), nil // found declared method -- } -- if r := find(obj, m.Type(), append(path2, opType), nil); r != nil { -- return Path(r), nil -- } -- } -- } -- } -- -- return "", fmt.Errorf("can't find path for %v in %s", obj, pkg.Path()) --} -- --func appendOpArg(path []byte, op byte, arg int) []byte { -- path = append(path, op) -- path = strconv.AppendInt(path, int64(arg), 10) -- return path --} -- --// concreteMethod returns the path for meth, which must have a non-nil receiver. --// The second return value indicates success and may be false if the method is --// an interface method or if it is an instantiated method. --// --// This function is just an optimization that avoids the general scope walking --// approach. You are expected to fall back to the general approach if this --// function fails. --func (enc *encoder) concreteMethod(meth *types.Func) (Path, bool) { -- // Concrete methods can only be declared on package-scoped named types. For -- // that reason we can skip the expensive walk over the package scope: the -- // path will always be package -> named type -> method. We can trivially get -- // the type name from the receiver, and only have to look over the type's -- // methods to find the method index. -- // -- // Methods on generic types require special consideration, however. Consider -- // the following package: -- // -- // L1: type S[T any] struct{} -- // L2: func (recv S[A]) Foo() { recv.Bar() } -- // L3: func (recv S[B]) Bar() { } -- // L4: type Alias = S[int] -- // L5: func _[T any]() { var s S[int]; s.Foo() } -- // -- // The receivers of methods on generic types are instantiations. L2 and L3 -- // instantiate S with the type-parameters A and B, which are scoped to the -- // respective methods. L4 and L5 each instantiate S with int. Each of these -- // instantiations has its own method set, full of methods (and thus objects) -- // with receivers whose types are the respective instantiations. In other -- // words, we have -- // -- // S[A].Foo, S[A].Bar -- // S[B].Foo, S[B].Bar -- // S[int].Foo, S[int].Bar -- // -- // We may thus be trying to produce object paths for any of these objects. -- // -- // S[A].Foo and S[B].Bar are the origin methods, and their paths are S.Foo -- // and S.Bar, which are the paths that this function naturally produces. -- // -- // S[A].Bar, S[B].Foo, and both methods on S[int] are instantiations that -- // don't correspond to the origin methods. For S[int], this is significant. -- // The most precise object path for S[int].Foo, for example, is Alias.Foo, -- // not S.Foo. Our function, however, would produce S.Foo, which would -- // resolve to a different object. -- // -- // For S[A].Bar and S[B].Foo it could be argued that S.Bar and S.Foo are -- // still the correct paths, since only the origin methods have meaningful -- // paths. But this is likely only true for trivial cases and has edge cases. -- // Since this function is only an optimization, we err on the side of giving -- // up, deferring to the slower but definitely correct algorithm. Most users -- // of objectpath will only be giving us origin methods, anyway, as referring -- // to instantiated methods is usually not useful. -- -- if typeparams.OriginMethod(meth) != meth { -- return "", false -- } -- -- recvT := meth.Type().(*types.Signature).Recv().Type() -- if ptr, ok := recvT.(*types.Pointer); ok { -- recvT = ptr.Elem() -- } -- -- named, ok := recvT.(*types.Named) -- if !ok { -- return "", false -- } -- -- if types.IsInterface(named) { -- // Named interfaces don't have to be package-scoped -- // -- // TODO(dominikh): opt: if scope.Lookup(name) == named, then we can apply this optimization to interface -- // methods, too, I think. -- return "", false -- } -- -- // Preallocate space for the name, opType, opMethod, and some digits. -- name := named.Obj().Name() -- path := make([]byte, 0, len(name)+8) -- path = append(path, name...) -- path = append(path, opType) -- for i, m := range enc.namedMethods(named) { -- if m == meth { -- path = appendOpArg(path, opMethod, i) -- return Path(path), true -- } -- } -- -- panic(fmt.Sprintf("couldn't find method %s on type %s", meth, named)) --} -- --// find finds obj within type T, returning the path to it, or nil if not found. --// --// The seen map is used to short circuit cycles through type parameters. If --// nil, it will be allocated as necessary. --func find(obj types.Object, T types.Type, path []byte, seen map[*types.TypeName]bool) []byte { -- switch T := T.(type) { -- case *types.Basic, *types.Named: -- // Named types belonging to pkg were handled already, -- // so T must belong to another package. No path. -- return nil -- case *types.Pointer: -- return find(obj, T.Elem(), append(path, opElem), seen) -- case *types.Slice: -- return find(obj, T.Elem(), append(path, opElem), seen) -- case *types.Array: -- return find(obj, T.Elem(), append(path, opElem), seen) -- case *types.Chan: -- return find(obj, T.Elem(), append(path, opElem), seen) -- case *types.Map: -- if r := find(obj, T.Key(), append(path, opKey), seen); r != nil { -- return r -- } -- return find(obj, T.Elem(), append(path, opElem), seen) -- case *types.Signature: -- if r := findTypeParam(obj, typeparams.ForSignature(T), path, seen); r != nil { -- return r -- } -- if r := find(obj, T.Params(), append(path, opParams), seen); r != nil { -- return r -- } -- return find(obj, T.Results(), append(path, opResults), seen) -- case *types.Struct: -- for i := 0; i < T.NumFields(); i++ { -- fld := T.Field(i) -- path2 := appendOpArg(path, opField, i) -- if fld == obj { -- return path2 // found field var -- } -- if r := find(obj, fld.Type(), append(path2, opType), seen); r != nil { -- return r -- } -- } -- return nil -- case *types.Tuple: -- for i := 0; i < T.Len(); i++ { -- v := T.At(i) -- path2 := appendOpArg(path, opAt, i) -- if v == obj { -- return path2 // found param/result var -- } -- if r := find(obj, v.Type(), append(path2, opType), seen); r != nil { -- return r -- } -- } -- return nil -- case *types.Interface: -- for i := 0; i < T.NumMethods(); i++ { -- m := T.Method(i) -- path2 := appendOpArg(path, opMethod, i) -- if m == obj { -- return path2 // found interface method -- } -- if r := find(obj, m.Type(), append(path2, opType), seen); r != nil { -- return r -- } -- } -- return nil -- case *typeparams.TypeParam: -- name := T.Obj() -- if name == obj { -- return append(path, opObj) -- } -- if seen[name] { -- return nil -- } -- if seen == nil { -- seen = make(map[*types.TypeName]bool) -- } -- seen[name] = true -- if r := find(obj, T.Constraint(), append(path, opConstraint), seen); r != nil { -- return r -- } -- return nil -- } -- panic(T) --} -- --func findTypeParam(obj types.Object, list *typeparams.TypeParamList, path []byte, seen map[*types.TypeName]bool) []byte { -- for i := 0; i < list.Len(); i++ { -- tparam := list.At(i) -- path2 := appendOpArg(path, opTypeParam, i) -- if r := find(obj, tparam, path2, seen); r != nil { -- return r -- } -- } -- return nil --} -- --// Object returns the object denoted by path p within the package pkg. --func Object(pkg *types.Package, p Path) (types.Object, error) { -- if p == "" { -- return nil, fmt.Errorf("empty path") -- } -- -- pathstr := string(p) -- var pkgobj, suffix string -- if dot := strings.IndexByte(pathstr, opType); dot < 0 { -- pkgobj = pathstr -- } else { -- pkgobj = pathstr[:dot] -- suffix = pathstr[dot:] // suffix starts with "." -- } -- -- obj := pkg.Scope().Lookup(pkgobj) -- if obj == nil { -- return nil, fmt.Errorf("package %s does not contain %q", pkg.Path(), pkgobj) -- } -- -- // abstraction of *types.{Pointer,Slice,Array,Chan,Map} -- type hasElem interface { -- Elem() types.Type -- } -- // abstraction of *types.{Named,Signature} -- type hasTypeParams interface { -- TypeParams() *typeparams.TypeParamList -- } -- // abstraction of *types.{Named,TypeParam} -- type hasObj interface { -- Obj() *types.TypeName -- } -- -- // The loop state is the pair (t, obj), -- // exactly one of which is non-nil, initially obj. -- // All suffixes start with '.' (the only object->type operation), -- // followed by optional type->type operations, -- // then a type->object operation. -- // The cycle then repeats. -- var t types.Type -- for suffix != "" { -- code := suffix[0] -- suffix = suffix[1:] -- -- // Codes [AFM] have an integer operand. -- var index int -- switch code { -- case opAt, opField, opMethod, opTypeParam: -- rest := strings.TrimLeft(suffix, "0123456789") -- numerals := suffix[:len(suffix)-len(rest)] -- suffix = rest -- i, err := strconv.Atoi(numerals) -- if err != nil { -- return nil, fmt.Errorf("invalid path: bad numeric operand %q for code %q", numerals, code) -- } -- index = int(i) -- case opObj: -- // no operand -- default: -- // The suffix must end with a type->object operation. -- if suffix == "" { -- return nil, fmt.Errorf("invalid path: ends with %q, want [AFMO]", code) -- } -- } -- -- if code == opType { -- if t != nil { -- return nil, fmt.Errorf("invalid path: unexpected %q in type context", opType) -- } -- t = obj.Type() -- obj = nil -- continue -- } -- -- if t == nil { -- return nil, fmt.Errorf("invalid path: code %q in object context", code) -- } -- -- // Inv: t != nil, obj == nil -- -- switch code { -- case opElem: -- hasElem, ok := t.(hasElem) // Pointer, Slice, Array, Chan, Map -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want pointer, slice, array, chan or map)", code, t, t) -- } -- t = hasElem.Elem() -- -- case opKey: -- mapType, ok := t.(*types.Map) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want map)", code, t, t) -- } -- t = mapType.Key() -- -- case opParams: -- sig, ok := t.(*types.Signature) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) -- } -- t = sig.Params() -- -- case opResults: -- sig, ok := t.(*types.Signature) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want signature)", code, t, t) -- } -- t = sig.Results() -- -- case opUnderlying: -- named, ok := t.(*types.Named) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named)", code, t, t) -- } -- t = named.Underlying() -- -- case opTypeParam: -- hasTypeParams, ok := t.(hasTypeParams) // Named, Signature -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or signature)", code, t, t) -- } -- tparams := hasTypeParams.TypeParams() -- if n := tparams.Len(); index >= n { -- return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) -- } -- t = tparams.At(index) -- -- case opConstraint: -- tparam, ok := t.(*typeparams.TypeParam) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want type parameter)", code, t, t) -- } -- t = tparam.Constraint() -- -- case opAt: -- tuple, ok := t.(*types.Tuple) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want tuple)", code, t, t) -- } -- if n := tuple.Len(); index >= n { -- return nil, fmt.Errorf("tuple index %d out of range [0-%d)", index, n) -- } -- obj = tuple.At(index) -- t = nil -- -- case opField: -- structType, ok := t.(*types.Struct) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want struct)", code, t, t) -- } -- if n := structType.NumFields(); index >= n { -- return nil, fmt.Errorf("field index %d out of range [0-%d)", index, n) -- } -- obj = structType.Field(index) -- t = nil -- -- case opMethod: -- switch t := t.(type) { -- case *types.Interface: -- if index >= t.NumMethods() { -- return nil, fmt.Errorf("method index %d out of range [0-%d)", index, t.NumMethods()) -- } -- obj = t.Method(index) // Id-ordered -- -- case *types.Named: -- methods := namedMethods(t) // (unmemoized) -- if index >= len(methods) { -- return nil, fmt.Errorf("method index %d out of range [0-%d)", index, len(methods)) -- } -- obj = methods[index] // Id-ordered -- -- default: -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want interface or named)", code, t, t) -- } -- t = nil -- -- case opObj: -- hasObj, ok := t.(hasObj) -- if !ok { -- return nil, fmt.Errorf("cannot apply %q to %s (got %T, want named or type param)", code, t, t) -- } -- obj = hasObj.Obj() -- t = nil -- -- default: -- return nil, fmt.Errorf("invalid path: unknown code %q", code) -- } -- } -- -- if obj.Pkg() != pkg { -- return nil, fmt.Errorf("path denotes %s, which belongs to a different package", obj) -- } -- -- return obj, nil // success --} -- --// namedMethods returns the methods of a Named type in ascending Id order. --func namedMethods(named *types.Named) []*types.Func { -- methods := make([]*types.Func, named.NumMethods()) -- for i := range methods { -- methods[i] = named.Method(i) -- } -- sort.Slice(methods, func(i, j int) bool { -- return methods[i].Id() < methods[j].Id() -- }) -- return methods --} -- --// scopeNames is a memoization of scope.Names. Callers must not modify the result. --func (enc *encoder) scopeNames(scope *types.Scope) []string { -- m := enc.scopeNamesMemo -- if m == nil { -- m = make(map[*types.Scope][]string) -- enc.scopeNamesMemo = m -- } -- names, ok := m[scope] -- if !ok { -- names = scope.Names() // allocates and sorts -- m[scope] = names -- } -- return names --} -- --// namedMethods is a memoization of the namedMethods function. Callers must not modify the result. --func (enc *encoder) namedMethods(named *types.Named) []*types.Func { -- m := enc.namedMethodsMemo -- if m == nil { -- m = make(map[*types.Named][]*types.Func) -- enc.namedMethodsMemo = m -- } -- methods, ok := m[named] -- if !ok { -- methods = namedMethods(named) // allocates and sorts -- m[named] = methods -- } -- return methods -- --} -diff --git a/vendor/golang.org/x/tools/internal/event/tag/tag.go b/vendor/golang.org/x/tools/internal/event/tag/tag.go -new file mode 100644 -index 00000000..ff2f2ecd ---- /dev/null -+++ b/vendor/golang.org/x/tools/internal/event/tag/tag.go -@@ -0,0 +1,59 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package tag provides the labels used for telemetry throughout gopls. -+package tag -+ -+import ( -+ "golang.org/x/tools/internal/event/keys" -+) -+ -+var ( -+ // create the label keys we use -+ Method = keys.NewString("method", "") -+ StatusCode = keys.NewString("status.code", "") -+ StatusMessage = keys.NewString("status.message", "") -+ RPCID = keys.NewString("id", "") -+ RPCDirection = keys.NewString("direction", "") -+ File = keys.NewString("file", "") -+ Directory = keys.New("directory", "") -+ URI = keys.New("URI", "") -+ Package = keys.NewString("package", "") // Package ID -+ PackagePath = keys.NewString("package_path", "") -+ Query = keys.New("query", "") -+ Snapshot = keys.NewUInt64("snapshot", "") -+ Operation = keys.NewString("operation", "") -+ -+ Position = keys.New("position", "") -+ Category = keys.NewString("category", "") -+ PackageCount = keys.NewInt("packages", "") -+ Files = keys.New("files", "") -+ Port = keys.NewInt("port", "") -+ Type = keys.New("type", "") -+ HoverKind = keys.NewString("hoverkind", "") -+ -+ NewServer = keys.NewString("new_server", "A new server was added") -+ EndServer = keys.NewString("end_server", "A server was shut down") -+ -+ ServerID = keys.NewString("server", "The server ID an event is related to") -+ Logfile = keys.NewString("logfile", "") -+ DebugAddress = keys.NewString("debug_address", "") -+ GoplsPath = keys.NewString("gopls_path", "") -+ ClientID = keys.NewString("client_id", "") -+ -+ Level = keys.NewInt("level", "The logging level") -+) -+ -+var ( -+ // create the stats we measure -+ Started = keys.NewInt64("started", "Count of started RPCs.") -+ ReceivedBytes = keys.NewInt64("received_bytes", "Bytes received.") //, unit.Bytes) -+ SentBytes = keys.NewInt64("sent_bytes", "Bytes sent.") //, unit.Bytes) -+ Latency = keys.NewFloat64("latency_ms", "Elapsed time in milliseconds") //, unit.Milliseconds) -+) -+ -+const ( -+ Inbound = "in" -+ Outbound = "out" -+) -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/internal/gcimporter/bexport.go -deleted file mode 100644 -index 30582ed6..00000000 ---- a/vendor/golang.org/x/tools/internal/gcimporter/bexport.go -+++ /dev/null -@@ -1,852 +0,0 @@ --// Copyright 2016 The Go Authors. All rights reserved. --// Use of this source code is governed by a BSD-style --// license that can be found in the LICENSE file. -- --// Binary package export. --// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go; --// see that file for specification of the format. -- --package gcimporter -- --import ( -- "bytes" -- "encoding/binary" -- "fmt" -- "go/constant" -- "go/token" -- "go/types" -- "math" -- "math/big" -- "sort" -- "strings" --) -- --// If debugFormat is set, each integer and string value is preceded by a marker --// and position information in the encoding. This mechanism permits an importer --// to recognize immediately when it is out of sync. The importer recognizes this --// mode automatically (i.e., it can import export data produced with debugging --// support even if debugFormat is not set at the time of import). This mode will --// lead to massively larger export data (by a factor of 2 to 3) and should only --// be enabled during development and debugging. --// --// NOTE: This flag is the first flag to enable if importing dies because of --// (suspected) format errors, and whenever a change is made to the format. --const debugFormat = false // default: false -- --// Current export format version. Increase with each format change. --// --// Note: The latest binary (non-indexed) export format is at version 6. --// This exporter is still at level 4, but it doesn't matter since --// the binary importer can handle older versions just fine. --// --// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE --// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMENTED HERE --// 4: type name objects support type aliases, uses aliasTag --// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used) --// 2: removed unused bool in ODCL export (compiler only) --// 1: header format change (more regular), export package for _ struct fields --// 0: Go1.7 encoding --const exportVersion = 4 -- --// trackAllTypes enables cycle tracking for all types, not just named --// types. The existing compiler invariants assume that unnamed types --// that are not completely set up are not used, or else there are spurious --// errors. --// If disabled, only named types are tracked, possibly leading to slightly --// less efficient encoding in rare cases. It also prevents the export of --// some corner-case type declarations (but those are not handled correctly --// with with the textual export format either). --// TODO(gri) enable and remove once issues caused by it are fixed --const trackAllTypes = false -- --type exporter struct { -- fset *token.FileSet -- out bytes.Buffer -- -- // object -> index maps, indexed in order of serialization -- strIndex map[string]int -- pkgIndex map[*types.Package]int -- typIndex map[types.Type]int -- -- // position encoding -- posInfoFormat bool -- prevFile string -- prevLine int -- -- // debugging support -- written int // bytes written -- indent int // for trace --} -- --// internalError represents an error generated inside this package. --type internalError string -- --func (e internalError) Error() string { return "gcimporter: " + string(e) } -- --func internalErrorf(format string, args ...interface{}) error { -- return internalError(fmt.Sprintf(format, args...)) --} -- --// BExportData returns binary export data for pkg. --// If no file set is provided, position info will be missing. --func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { -- if !debug { -- defer func() { -- if e := recover(); e != nil { -- if ierr, ok := e.(internalError); ok { -- err = ierr -- return -- } -- // Not an internal error; panic again. -- panic(e) -- } -- }() -- } -- -- p := exporter{ -- fset: fset, -- strIndex: map[string]int{"": 0}, // empty string is mapped to 0 -- pkgIndex: make(map[*types.Package]int), -- typIndex: make(map[types.Type]int), -- posInfoFormat: true, // TODO(gri) might become a flag, eventually -- } -- -- // write version info -- // The version string must start with "version %d" where %d is the version -- // number. Additional debugging information may follow after a blank; that -- // text is ignored by the importer. -- p.rawStringln(fmt.Sprintf("version %d", exportVersion)) -- var debug string -- if debugFormat { -- debug = "debug" -- } -- p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly -- p.bool(trackAllTypes) -- p.bool(p.posInfoFormat) -- -- // --- generic export data --- -- -- // populate type map with predeclared "known" types -- for index, typ := range predeclared() { -- p.typIndex[typ] = index -- } -- if len(p.typIndex) != len(predeclared()) { -- return nil, internalError("duplicate entries in type map?") -- } -- -- // write package data -- p.pkg(pkg, true) -- if trace { -- p.tracef("\n") -- } -- -- // write objects -- objcount := 0 -- scope := pkg.Scope() -- for _, name := range scope.Names() { -- if !token.IsExported(name) { -- continue -- } -- if trace { -- p.tracef("\n") -- } -- p.obj(scope.Lookup(name)) -- objcount++ -- } -- -- // indicate end of list -- if trace { -- p.tracef("\n") -- } -- p.tag(endTag) -- -- // for self-verification only (redundant) -- p.int(objcount) -- -- if trace { -- p.tracef("\n") -- } -- -- // --- end of export data --- -- -- return p.out.Bytes(), nil --} -- --func (p *exporter) pkg(pkg *types.Package, emptypath bool) { -- if pkg == nil { -- panic(internalError("unexpected nil pkg")) -- } -- -- // if we saw the package before, write its index (>= 0) -- if i, ok := p.pkgIndex[pkg]; ok { -- p.index('P', i) -- return -- } -- -- // otherwise, remember the package, write the package tag (< 0) and package data -- if trace { -- p.tracef("P%d = { ", len(p.pkgIndex)) -- defer p.tracef("} ") -- } -- p.pkgIndex[pkg] = len(p.pkgIndex) -- -- p.tag(packageTag) -- p.string(pkg.Name()) -- if emptypath { -- p.string("") -- } else { -- p.string(pkg.Path()) -- } --} -- --func (p *exporter) obj(obj types.Object) { -- switch obj := obj.(type) { -- case *types.Const: -- p.tag(constTag) -- p.pos(obj) -- p.qualifiedName(obj) -- p.typ(obj.Type()) -- p.value(obj.Val()) -- -- case *types.TypeName: -- if obj.IsAlias() { -- p.tag(aliasTag) -- p.pos(obj) -- p.qualifiedName(obj) -- } else { -- p.tag(typeTag) -- } -- p.typ(obj.Type()) -- -- case *types.Var: -- p.tag(varTag) -- p.pos(obj) -- p.qualifiedName(obj) -- p.typ(obj.Type()) -- -- case *types.Func: -- p.tag(funcTag) -- p.pos(obj) -- p.qualifiedName(obj) -- sig := obj.Type().(*types.Signature) -- p.paramList(sig.Params(), sig.Variadic()) -- p.paramList(sig.Results(), false) -- -- default: -- panic(internalErrorf("unexpected object %v (%T)", obj, obj)) -- } --} -- --func (p *exporter) pos(obj types.Object) { -- if !p.posInfoFormat { -- return -- } -- -- file, line := p.fileLine(obj) -- if file == p.prevFile { -- // common case: write line delta -- // delta == 0 means different file or no line change -- delta := line - p.prevLine -- p.int(delta) -- if delta == 0 { -- p.int(-1) // -1 means no file change -- } -- } else { -- // different file -- p.int(0) -- // Encode filename as length of common prefix with previous -- // filename, followed by (possibly empty) suffix. Filenames -- // frequently share path prefixes, so this can save a lot -- // of space and make export data size less dependent on file -- // path length. The suffix is unlikely to be empty because -- // file names tend to end in ".go". -- n := commonPrefixLen(p.prevFile, file) -- p.int(n) // n >= 0 -- p.string(file[n:]) // write suffix only -- p.prevFile = file -- p.int(line) -- } -- p.prevLine = line --} -- --func (p *exporter) fileLine(obj types.Object) (file string, line int) { -- if p.fset != nil { -- pos := p.fset.Position(obj.Pos()) -- file = pos.Filename -- line = pos.Line -- } -- return --} -- --func commonPrefixLen(a, b string) int { -- if len(a) > len(b) { -- a, b = b, a -- } -- // len(a) <= len(b) -- i := 0 -- for i < len(a) && a[i] == b[i] { -- i++ -- } -- return i --} -- --func (p *exporter) qualifiedName(obj types.Object) { -- p.string(obj.Name()) -- p.pkg(obj.Pkg(), false) --} -- --func (p *exporter) typ(t types.Type) { -- if t == nil { -- panic(internalError("nil type")) -- } -- -- // Possible optimization: Anonymous pointer types *T where -- // T is a named type are common. We could canonicalize all -- // such types *T to a single type PT = *T. This would lead -- // to at most one *T entry in typIndex, and all future *T's -- // would be encoded as the respective index directly. Would -- // save 1 byte (pointerTag) per *T and reduce the typIndex -- // size (at the cost of a canonicalization map). We can do -- // this later, without encoding format change. -- -- // if we saw the type before, write its index (>= 0) -- if i, ok := p.typIndex[t]; ok { -- p.index('T', i) -- return -- } -- -- // otherwise, remember the type, write the type tag (< 0) and type data -- if trackAllTypes { -- if trace { -- p.tracef("T%d = {>\n", len(p.typIndex)) -- defer p.tracef("<\n} ") -- } -- p.typIndex[t] = len(p.typIndex) -- } -- -- switch t := t.(type) { -- case *types.Named: -- if !trackAllTypes { -- // if we don't track all types, track named types now -- p.typIndex[t] = len(p.typIndex) -- } -- -- p.tag(namedTag) -- p.pos(t.Obj()) -- p.qualifiedName(t.Obj()) -- p.typ(t.Underlying()) -- if !types.IsInterface(t) { -- p.assocMethods(t) -- } -- -- case *types.Array: -- p.tag(arrayTag) -- p.int64(t.Len()) -- p.typ(t.Elem()) -- -- case *types.Slice: -- p.tag(sliceTag) -- p.typ(t.Elem()) -- -- case *dddSlice: -- p.tag(dddTag) -- p.typ(t.elem) -- -- case *types.Struct: -- p.tag(structTag) -- p.fieldList(t) -- -- case *types.Pointer: -- p.tag(pointerTag) -- p.typ(t.Elem()) -- -- case *types.Signature: -- p.tag(signatureTag) -- p.paramList(t.Params(), t.Variadic()) -- p.paramList(t.Results(), false) -- -- case *types.Interface: -- p.tag(interfaceTag) -- p.iface(t) -- -- case *types.Map: -- p.tag(mapTag) -- p.typ(t.Key()) -- p.typ(t.Elem()) -- -- case *types.Chan: -- p.tag(chanTag) -- p.int(int(3 - t.Dir())) // hack -- p.typ(t.Elem()) -- -- default: -- panic(internalErrorf("unexpected type %T: %s", t, t)) -- } --} -- --func (p *exporter) assocMethods(named *types.Named) { -- // Sort methods (for determinism). -- var methods []*types.Func -- for i := 0; i < named.NumMethods(); i++ { -- methods = append(methods, named.Method(i)) -- } -- sort.Sort(methodsByName(methods)) -- -- p.int(len(methods)) -- -- if trace && methods != nil { -- p.tracef("associated methods {>\n") -- } -- -- for i, m := range methods { -- if trace && i > 0 { -- p.tracef("\n") -- } -- -- p.pos(m) -- name := m.Name() -- p.string(name) -- if !exported(name) { -- p.pkg(m.Pkg(), false) -- } -- -- sig := m.Type().(*types.Signature) -- p.paramList(types.NewTuple(sig.Recv()), false) -- p.paramList(sig.Params(), sig.Variadic()) -- p.paramList(sig.Results(), false) -- p.int(0) // dummy value for go:nointerface pragma - ignored by importer -- } -- -- if trace && methods != nil { -- p.tracef("<\n} ") -- } --} -- --type methodsByName []*types.Func -- --func (x methodsByName) Len() int { return len(x) } --func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } --func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() } -- --func (p *exporter) fieldList(t *types.Struct) { -- if trace && t.NumFields() > 0 { -- p.tracef("fields {>\n") -- defer p.tracef("<\n} ") -- } -- -- p.int(t.NumFields()) -- for i := 0; i < t.NumFields(); i++ { -- if trace && i > 0 { -- p.tracef("\n") -- } -- p.field(t.Field(i)) -- p.string(t.Tag(i)) -- } --} -- --func (p *exporter) field(f *types.Var) { -- if !f.IsField() { -- panic(internalError("field expected")) -- } -- -- p.pos(f) -- p.fieldName(f) -- p.typ(f.Type()) --} -- --func (p *exporter) iface(t *types.Interface) { -- // TODO(gri): enable importer to load embedded interfaces, -- // then emit Embeddeds and ExplicitMethods separately here. -- p.int(0) -- -- n := t.NumMethods() -- if trace && n > 0 { -- p.tracef("methods {>\n") -- defer p.tracef("<\n} ") -- } -- p.int(n) -- for i := 0; i < n; i++ { -- if trace && i > 0 { -- p.tracef("\n") -- } -- p.method(t.Method(i)) -- } --} -- --func (p *exporter) method(m *types.Func) { -- sig := m.Type().(*types.Signature) -- if sig.Recv() == nil { -- panic(internalError("method expected")) -- } -- -- p.pos(m) -- p.string(m.Name()) -- if m.Name() != "_" && !token.IsExported(m.Name()) { -- p.pkg(m.Pkg(), false) -- } -- -- // interface method; no need to encode receiver. -- p.paramList(sig.Params(), sig.Variadic()) -- p.paramList(sig.Results(), false) --} -- --func (p *exporter) fieldName(f *types.Var) { -- name := f.Name() -- -- if f.Anonymous() { -- // anonymous field - we distinguish between 3 cases: -- // 1) field name matches base type name and is exported -- // 2) field name matches base type name and is not exported -- // 3) field name doesn't match base type name (alias name) -- bname := basetypeName(f.Type()) -- if name == bname { -- if token.IsExported(name) { -- name = "" // 1) we don't need to know the field name or package -- } else { -- name = "?" // 2) use unexported name "?" to force package export -- } -- } else { -- // 3) indicate alias and export name as is -- // (this requires an extra "@" but this is a rare case) -- p.string("@") -- } -- } -- -- p.string(name) -- if name != "" && !token.IsExported(name) { -- p.pkg(f.Pkg(), false) -- } --} -- --func basetypeName(typ types.Type) string { -- switch typ := deref(typ).(type) { -- case *types.Basic: -- return typ.Name() -- case *types.Named: -- return typ.Obj().Name() -- default: -- return "" // unnamed type -- } --} -- --func (p *exporter) paramList(params *types.Tuple, variadic bool) { -- // use negative length to indicate unnamed parameters -- // (look at the first parameter only since either all -- // names are present or all are absent) -- n := params.Len() -- if n > 0 && params.At(0).Name() == "" { -- n = -n -- } -- p.int(n) -- for i := 0; i < params.Len(); i++ { -- q := params.At(i) -- t := q.Type() -- if variadic && i == params.Len()-1 { -- t = &dddSlice{t.(*types.Slice).Elem()} -- } -- p.typ(t) -- if n > 0 { -- name := q.Name() -- p.string(name) -- if name != "_" { -- p.pkg(q.Pkg(), false) -- } -- } -- p.string("") // no compiler-specific info -- } --} -- --func (p *exporter) value(x constant.Value) { -- if trace { -- p.tracef("= ") -- } -- -- switch x.Kind() { -- case constant.Bool: -- tag := falseTag -- if constant.BoolVal(x) { -- tag = trueTag -- } -- p.tag(tag) -- -- case constant.Int: -- if v, exact := constant.Int64Val(x); exact { -- // common case: x fits into an int64 - use compact encoding -- p.tag(int64Tag) -- p.int64(v) -- return -- } -- // uncommon case: large x - use float encoding -- // (powers of 2 will be encoded efficiently with exponent) -- p.tag(floatTag) -- p.float(constant.ToFloat(x)) -- -- case constant.Float: -- p.tag(floatTag) -- p.float(x) -- -- case constant.Complex: -- p.tag(complexTag) -- p.float(constant.Real(x)) -- p.float(constant.Imag(x)) -- -- case constant.String: -- p.tag(stringTag) -- p.string(constant.StringVal(x)) -- -- case constant.Unknown: -- // package contains type errors -- p.tag(unknownTag) -- -- default: -- panic(internalErrorf("unexpected value %v (%T)", x, x)) -- } --} -- --func (p *exporter) float(x constant.Value) { -- if x.Kind() != constant.Float { -- panic(internalErrorf("unexpected constant %v, want float", x)) -- } -- // extract sign (there is no -0) -- sign := constant.Sign(x) -- if sign == 0 { -- // x == 0 -- p.int(0) -- return -- } -- // x != 0 -- -- var f big.Float -- if v, exact := constant.Float64Val(x); exact { -- // float64 -- f.SetFloat64(v) -- } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { -- // TODO(gri): add big.Rat accessor to constant.Value. -- r := valueToRat(num) -- f.SetRat(r.Quo(r, valueToRat(denom))) -- } else { -- // Value too large to represent as a fraction => inaccessible. -- // TODO(gri): add big.Float accessor to constant.Value. -- f.SetFloat64(math.MaxFloat64) // FIXME -- } -- -- // extract exponent such that 0.5 <= m < 1.0 -- var m big.Float -- exp := f.MantExp(&m) -- -- // extract mantissa as *big.Int -- // - set exponent large enough so mant satisfies mant.IsInt() -- // - get *big.Int from mant -- m.SetMantExp(&m, int(m.MinPrec())) -- mant, acc := m.Int(nil) -- if acc != big.Exact { -- panic(internalError("internal error")) -- } -- -- p.int(sign) -- p.int(exp) -- p.string(string(mant.Bytes())) --} -- --func valueToRat(x constant.Value) *big.Rat { -- // Convert little-endian to big-endian. -- // I can't believe this is necessary. -- bytes := constant.Bytes(x) -- for i := 0; i < len(bytes)/2; i++ { -- bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] -- } -- return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) --} -- --func (p *exporter) bool(b bool) bool { -- if trace { -- p.tracef("[") -- defer p.tracef("= %v] ", b) -- } -- -- x := 0 -- if b { -- x = 1 -- } -- p.int(x) -- return b --} -- --// ---------------------------------------------------------------------------- --// Low-level encoders -- --func (p *exporter) index(marker byte, index int) { -- if index < 0 { -- panic(internalError("invalid index < 0")) -- } -- if debugFormat { -- p.marker('t') -- } -- if trace { -- p.tracef("%c%d ", marker, index) -- } -- p.rawInt64(int64(index)) --} -- --func (p *exporter) tag(tag int) { -- if tag >= 0 { -- panic(internalError("invalid tag >= 0")) -- } -- if debugFormat { -- p.marker('t') -- } -- if trace { -- p.tracef("%s ", tagString[-tag]) -- } -- p.rawInt64(int64(tag)) --} -- --func (p *exporter) int(x int) { -- p.int64(int64(x)) --} -- --func (p *exporter) int64(x int64) { -- if debugFormat { -- p.marker('i') -- } -- if trace { -- p.tracef("%d ", x) -- } -- p.rawInt64(x) --} -- --func (p *exporter) string(s string) { -- if debugFormat { -- p.marker('s') -- } -- if trace { -- p.tracef("%q ", s) -- } -- // if we saw the string before, write its index (>= 0) -- // (the empty string is mapped to 0) -- if i, ok := p.strIndex[s]; ok { -- p.rawInt64(int64(i)) -- return -- } -- // otherwise, remember string and write its negative length and bytes -- p.strIndex[s] = len(p.strIndex) -- p.rawInt64(-int64(len(s))) -- for i := 0; i < len(s); i++ { -- p.rawByte(s[i]) -- } --} -- --// marker emits a marker byte and position information which makes --// it easy for a reader to detect if it is "out of sync". Used for --// debugFormat format only. --func (p *exporter) marker(m byte) { -- p.rawByte(m) -- // Enable this for help tracking down the location -- // of an incorrect marker when running in debugFormat. -- if false && trace { -- p.tracef("#%d ", p.written) -- } -- p.rawInt64(int64(p.written)) --} -- --// rawInt64 should only be used by low-level encoders. --func (p *exporter) rawInt64(x int64) { -- var tmp [binary.MaxVarintLen64]byte -- n := binary.PutVarint(tmp[:], x) -- for i := 0; i < n; i++ { -- p.rawByte(tmp[i]) -- } --} -- --// rawStringln should only be used to emit the initial version string. --func (p *exporter) rawStringln(s string) { -- for i := 0; i < len(s); i++ { -- p.rawByte(s[i]) -- } -- p.rawByte('\n') --} -- --// rawByte is the bottleneck interface to write to p.out. --// rawByte escapes b as follows (any encoding does that --// hides '$'): --// --// '$' => '|' 'S' --// '|' => '|' '|' --// --// Necessary so other tools can find the end of the --// export data by searching for "$$". --// rawByte should only be used by low-level encoders. --func (p *exporter) rawByte(b byte) { -- switch b { -- case '$': -- // write '$' as '|' 'S' -- b = 'S' -- fallthrough -- case '|': -- // write '|' as '|' '|' -- p.out.WriteByte('|') -- p.written++ -- } -- p.out.WriteByte(b) -- p.written++ --} -- --// tracef is like fmt.Printf but it rewrites the format string --// to take care of indentation. --func (p *exporter) tracef(format string, args ...interface{}) { -- if strings.ContainsAny(format, "<>\n") { -- var buf bytes.Buffer -- for i := 0; i < len(format); i++ { -- // no need to deal with runes -- ch := format[i] -- switch ch { -- case '>': -- p.indent++ -- continue -- case '<': -- p.indent-- -- continue -- } -- buf.WriteByte(ch) -- if ch == '\n' { -- for j := p.indent; j > 0; j-- { -- buf.WriteString(". ") -- } -- } -- } -- format = buf.String() -- } -- fmt.Printf(format, args...) --} -- --// Debugging support. --// (tagString is only used when tracing is enabled) --var tagString = [...]string{ -- // Packages -- -packageTag: "package", -- -- // Types -- -namedTag: "named type", -- -arrayTag: "array", -- -sliceTag: "slice", -- -dddTag: "ddd", -- -structTag: "struct", -- -pointerTag: "pointer", -- -signatureTag: "signature", -- -interfaceTag: "interface", -- -mapTag: "map", -- -chanTag: "chan", -- -- // Values -- -falseTag: "false", -- -trueTag: "true", -- -int64Tag: "int64", -- -floatTag: "float", -- -fractionTag: "fraction", -- -complexTag: "complex", -- -stringTag: "string", -- -unknownTag: "unknown", -- -- // Type aliases -- -aliasTag: "alias", --} -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go -index b85de014..d98b0db2 100644 ---- a/vendor/golang.org/x/tools/internal/gcimporter/bimport.go -+++ b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go -@@ -2,340 +2,24 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go. -+// This file contains the remaining vestiges of -+// $GOROOT/src/go/internal/gcimporter/bimport.go. - - package gcimporter - - import ( -- "encoding/binary" - "fmt" -- "go/constant" - "go/token" - "go/types" -- "sort" -- "strconv" -- "strings" - "sync" -- "unicode" -- "unicode/utf8" - ) - --type importer struct { -- imports map[string]*types.Package -- data []byte -- importpath string -- buf []byte // for reading strings -- version int // export format version -- -- // object lists -- strList []string // in order of appearance -- pathList []string // in order of appearance -- pkgList []*types.Package // in order of appearance -- typList []types.Type // in order of appearance -- interfaceList []*types.Interface // for delayed completion only -- trackAllTypes bool -- -- // position encoding -- posInfoFormat bool -- prevFile string -- prevLine int -- fake fakeFileSet -- -- // debugging support -- debugFormat bool -- read int // bytes read --} -- --// BImportData imports a package from the serialized package data --// and returns the number of bytes consumed and a reference to the package. --// If the export data version is not recognized or the format is otherwise --// compromised, an error is returned. --func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { -- // catch panics and return them as errors -- const currentVersion = 6 -- version := -1 // unknown version -- defer func() { -- if e := recover(); e != nil { -- // Return a (possibly nil or incomplete) package unchanged (see #16088). -- if version > currentVersion { -- err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) -- } else { -- err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) -- } -- } -- }() -- -- p := importer{ -- imports: imports, -- data: data, -- importpath: path, -- version: version, -- strList: []string{""}, // empty string is mapped to 0 -- pathList: []string{""}, // empty string is mapped to 0 -- fake: fakeFileSet{ -- fset: fset, -- files: make(map[string]*fileInfo), -- }, -- } -- defer p.fake.setLines() // set lines for files in fset -- -- // read version info -- var versionstr string -- if b := p.rawByte(); b == 'c' || b == 'd' { -- // Go1.7 encoding; first byte encodes low-level -- // encoding format (compact vs debug). -- // For backward-compatibility only (avoid problems with -- // old installed packages). Newly compiled packages use -- // the extensible format string. -- // TODO(gri) Remove this support eventually; after Go1.8. -- if b == 'd' { -- p.debugFormat = true -- } -- p.trackAllTypes = p.rawByte() == 'a' -- p.posInfoFormat = p.int() != 0 -- versionstr = p.string() -- if versionstr == "v1" { -- version = 0 -- } -- } else { -- // Go1.8 extensible encoding -- // read version string and extract version number (ignore anything after the version number) -- versionstr = p.rawStringln(b) -- if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" { -- if v, err := strconv.Atoi(s[1]); err == nil && v > 0 { -- version = v -- } -- } -- } -- p.version = version -- -- // read version specific flags - extend as necessary -- switch p.version { -- // case currentVersion: -- // ... -- // fallthrough -- case currentVersion, 5, 4, 3, 2, 1: -- p.debugFormat = p.rawStringln(p.rawByte()) == "debug" -- p.trackAllTypes = p.int() != 0 -- p.posInfoFormat = p.int() != 0 -- case 0: -- // Go1.7 encoding format - nothing to do here -- default: -- errorf("unknown bexport format version %d (%q)", p.version, versionstr) -- } -- -- // --- generic export data --- -- -- // populate typList with predeclared "known" types -- p.typList = append(p.typList, predeclared()...) -- -- // read package data -- pkg = p.pkg() -- -- // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go) -- objcount := 0 -- for { -- tag := p.tagOrIndex() -- if tag == endTag { -- break -- } -- p.obj(tag) -- objcount++ -- } -- -- // self-verification -- if count := p.int(); count != objcount { -- errorf("got %d objects; want %d", objcount, count) -- } -- -- // ignore compiler-specific import data -- -- // complete interfaces -- // TODO(gri) re-investigate if we still need to do this in a delayed fashion -- for _, typ := range p.interfaceList { -- typ.Complete() -- } -- -- // record all referenced packages as imports -- list := append(([]*types.Package)(nil), p.pkgList[1:]...) -- sort.Sort(byPath(list)) -- pkg.SetImports(list) -- -- // package was imported completely and without errors -- pkg.MarkComplete() -- -- return p.read, pkg, nil --} -- - func errorf(format string, args ...interface{}) { - panic(fmt.Sprintf(format, args...)) - } - --func (p *importer) pkg() *types.Package { -- // if the package was seen before, i is its index (>= 0) -- i := p.tagOrIndex() -- if i >= 0 { -- return p.pkgList[i] -- } -- -- // otherwise, i is the package tag (< 0) -- if i != packageTag { -- errorf("unexpected package tag %d version %d", i, p.version) -- } -- -- // read package data -- name := p.string() -- var path string -- if p.version >= 5 { -- path = p.path() -- } else { -- path = p.string() -- } -- if p.version >= 6 { -- p.int() // package height; unused by go/types -- } -- -- // we should never see an empty package name -- if name == "" { -- errorf("empty package name in import") -- } -- -- // an empty path denotes the package we are currently importing; -- // it must be the first package we see -- if (path == "") != (len(p.pkgList) == 0) { -- errorf("package path %q for pkg index %d", path, len(p.pkgList)) -- } -- -- // if the package was imported before, use that one; otherwise create a new one -- if path == "" { -- path = p.importpath -- } -- pkg := p.imports[path] -- if pkg == nil { -- pkg = types.NewPackage(path, name) -- p.imports[path] = pkg -- } else if pkg.Name() != name { -- errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path) -- } -- p.pkgList = append(p.pkgList, pkg) -- -- return pkg --} -- --// objTag returns the tag value for each object kind. --func objTag(obj types.Object) int { -- switch obj.(type) { -- case *types.Const: -- return constTag -- case *types.TypeName: -- return typeTag -- case *types.Var: -- return varTag -- case *types.Func: -- return funcTag -- default: -- errorf("unexpected object: %v (%T)", obj, obj) // panics -- panic("unreachable") -- } --} -- --func sameObj(a, b types.Object) bool { -- // Because unnamed types are not canonicalized, we cannot simply compare types for -- // (pointer) identity. -- // Ideally we'd check equality of constant values as well, but this is good enough. -- return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type()) --} -- --func (p *importer) declare(obj types.Object) { -- pkg := obj.Pkg() -- if alt := pkg.Scope().Insert(obj); alt != nil { -- // This can only trigger if we import a (non-type) object a second time. -- // Excluding type aliases, this cannot happen because 1) we only import a package -- // once; and b) we ignore compiler-specific export data which may contain -- // functions whose inlined function bodies refer to other functions that -- // were already imported. -- // However, type aliases require reexporting the original type, so we need -- // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go, -- // method importer.obj, switch case importing functions). -- // TODO(gri) review/update this comment once the gc compiler handles type aliases. -- if !sameObj(obj, alt) { -- errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt) -- } -- } --} -- --func (p *importer) obj(tag int) { -- switch tag { -- case constTag: -- pos := p.pos() -- pkg, name := p.qualifiedName() -- typ := p.typ(nil, nil) -- val := p.value() -- p.declare(types.NewConst(pos, pkg, name, typ, val)) -- -- case aliasTag: -- // TODO(gri) verify type alias hookup is correct -- pos := p.pos() -- pkg, name := p.qualifiedName() -- typ := p.typ(nil, nil) -- p.declare(types.NewTypeName(pos, pkg, name, typ)) -- -- case typeTag: -- p.typ(nil, nil) -- -- case varTag: -- pos := p.pos() -- pkg, name := p.qualifiedName() -- typ := p.typ(nil, nil) -- p.declare(types.NewVar(pos, pkg, name, typ)) -- -- case funcTag: -- pos := p.pos() -- pkg, name := p.qualifiedName() -- params, isddd := p.paramList() -- result, _ := p.paramList() -- sig := types.NewSignature(nil, params, result, isddd) -- p.declare(types.NewFunc(pos, pkg, name, sig)) -- -- default: -- errorf("unexpected object tag %d", tag) -- } --} -- - const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go - --func (p *importer) pos() token.Pos { -- if !p.posInfoFormat { -- return token.NoPos -- } -- -- file := p.prevFile -- line := p.prevLine -- delta := p.int() -- line += delta -- if p.version >= 5 { -- if delta == deltaNewFile { -- if n := p.int(); n >= 0 { -- // file changed -- file = p.path() -- line = n -- } -- } -- } else { -- if delta == 0 { -- if n := p.int(); n >= 0 { -- // file changed -- file = p.prevFile[:n] + p.string() -- line = p.int() -- } -- } -- } -- p.prevFile = file -- p.prevLine = line -- -- return p.fake.pos(file, line, 0) --} -- - // Synthesize a token.Pos - type fakeFileSet struct { - fset *token.FileSet -@@ -389,205 +73,6 @@ var ( - fakeLinesOnce sync.Once - ) - --func (p *importer) qualifiedName() (pkg *types.Package, name string) { -- name = p.string() -- pkg = p.pkg() -- return --} -- --func (p *importer) record(t types.Type) { -- p.typList = append(p.typList, t) --} -- --// A dddSlice is a types.Type representing ...T parameters. --// It only appears for parameter types and does not escape --// the importer. --type dddSlice struct { -- elem types.Type --} -- --func (t *dddSlice) Underlying() types.Type { return t } --func (t *dddSlice) String() string { return "..." + t.elem.String() } -- --// parent is the package which declared the type; parent == nil means --// the package currently imported. The parent package is needed for --// exported struct fields and interface methods which don't contain --// explicit package information in the export data. --// --// A non-nil tname is used as the "owner" of the result type; i.e., --// the result type is the underlying type of tname. tname is used --// to give interface methods a named receiver type where possible. --func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type { -- // if the type was seen before, i is its index (>= 0) -- i := p.tagOrIndex() -- if i >= 0 { -- return p.typList[i] -- } -- -- // otherwise, i is the type tag (< 0) -- switch i { -- case namedTag: -- // read type object -- pos := p.pos() -- parent, name := p.qualifiedName() -- scope := parent.Scope() -- obj := scope.Lookup(name) -- -- // if the object doesn't exist yet, create and insert it -- if obj == nil { -- obj = types.NewTypeName(pos, parent, name, nil) -- scope.Insert(obj) -- } -- -- if _, ok := obj.(*types.TypeName); !ok { -- errorf("pkg = %s, name = %s => %s", parent, name, obj) -- } -- -- // associate new named type with obj if it doesn't exist yet -- t0 := types.NewNamed(obj.(*types.TypeName), nil, nil) -- -- // but record the existing type, if any -- tname := obj.Type().(*types.Named) // tname is either t0 or the existing type -- p.record(tname) -- -- // read underlying type -- t0.SetUnderlying(p.typ(parent, t0)) -- -- // interfaces don't have associated methods -- if types.IsInterface(t0) { -- return tname -- } -- -- // read associated methods -- for i := p.int(); i > 0; i-- { -- // TODO(gri) replace this with something closer to fieldName -- pos := p.pos() -- name := p.string() -- if !exported(name) { -- p.pkg() -- } -- -- recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver? -- params, isddd := p.paramList() -- result, _ := p.paramList() -- p.int() // go:nointerface pragma - discarded -- -- sig := types.NewSignature(recv.At(0), params, result, isddd) -- t0.AddMethod(types.NewFunc(pos, parent, name, sig)) -- } -- -- return tname -- -- case arrayTag: -- t := new(types.Array) -- if p.trackAllTypes { -- p.record(t) -- } -- -- n := p.int64() -- *t = *types.NewArray(p.typ(parent, nil), n) -- return t -- -- case sliceTag: -- t := new(types.Slice) -- if p.trackAllTypes { -- p.record(t) -- } -- -- *t = *types.NewSlice(p.typ(parent, nil)) -- return t -- -- case dddTag: -- t := new(dddSlice) -- if p.trackAllTypes { -- p.record(t) -- } -- -- t.elem = p.typ(parent, nil) -- return t -- -- case structTag: -- t := new(types.Struct) -- if p.trackAllTypes { -- p.record(t) -- } -- -- *t = *types.NewStruct(p.fieldList(parent)) -- return t -- -- case pointerTag: -- t := new(types.Pointer) -- if p.trackAllTypes { -- p.record(t) -- } -- -- *t = *types.NewPointer(p.typ(parent, nil)) -- return t -- -- case signatureTag: -- t := new(types.Signature) -- if p.trackAllTypes { -- p.record(t) -- } -- -- params, isddd := p.paramList() -- result, _ := p.paramList() -- *t = *types.NewSignature(nil, params, result, isddd) -- return t -- -- case interfaceTag: -- // Create a dummy entry in the type list. This is safe because we -- // cannot expect the interface type to appear in a cycle, as any -- // such cycle must contain a named type which would have been -- // first defined earlier. -- // TODO(gri) Is this still true now that we have type aliases? -- // See issue #23225. -- n := len(p.typList) -- if p.trackAllTypes { -- p.record(nil) -- } -- -- var embeddeds []types.Type -- for n := p.int(); n > 0; n-- { -- p.pos() -- embeddeds = append(embeddeds, p.typ(parent, nil)) -- } -- -- t := newInterface(p.methodList(parent, tname), embeddeds) -- p.interfaceList = append(p.interfaceList, t) -- if p.trackAllTypes { -- p.typList[n] = t -- } -- return t -- -- case mapTag: -- t := new(types.Map) -- if p.trackAllTypes { -- p.record(t) -- } -- -- key := p.typ(parent, nil) -- val := p.typ(parent, nil) -- *t = *types.NewMap(key, val) -- return t -- -- case chanTag: -- t := new(types.Chan) -- if p.trackAllTypes { -- p.record(t) -- } -- -- dir := chanDir(p.int()) -- val := p.typ(parent, nil) -- *t = *types.NewChan(dir, val) -- return t -- -- default: -- errorf("unexpected type tag %d", i) // panics -- panic("unreachable") -- } --} -- - func chanDir(d int) types.ChanDir { - // tag values must match the constants in cmd/compile/internal/gc/go.go - switch d { -@@ -603,394 +88,6 @@ func chanDir(d int) types.ChanDir { - } - } - --func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) { -- if n := p.int(); n > 0 { -- fields = make([]*types.Var, n) -- tags = make([]string, n) -- for i := range fields { -- fields[i], tags[i] = p.field(parent) -- } -- } -- return --} -- --func (p *importer) field(parent *types.Package) (*types.Var, string) { -- pos := p.pos() -- pkg, name, alias := p.fieldName(parent) -- typ := p.typ(parent, nil) -- tag := p.string() -- -- anonymous := false -- if name == "" { -- // anonymous field - typ must be T or *T and T must be a type name -- switch typ := deref(typ).(type) { -- case *types.Basic: // basic types are named types -- pkg = nil // // objects defined in Universe scope have no package -- name = typ.Name() -- case *types.Named: -- name = typ.Obj().Name() -- default: -- errorf("named base type expected") -- } -- anonymous = true -- } else if alias { -- // anonymous field: we have an explicit name because it's an alias -- anonymous = true -- } -- -- return types.NewField(pos, pkg, name, typ, anonymous), tag --} -- --func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) { -- if n := p.int(); n > 0 { -- methods = make([]*types.Func, n) -- for i := range methods { -- methods[i] = p.method(parent, baseType) -- } -- } -- return --} -- --func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func { -- pos := p.pos() -- pkg, name, _ := p.fieldName(parent) -- // If we don't have a baseType, use a nil receiver. -- // A receiver using the actual interface type (which -- // we don't know yet) will be filled in when we call -- // types.Interface.Complete. -- var recv *types.Var -- if baseType != nil { -- recv = types.NewVar(token.NoPos, parent, "", baseType) -- } -- params, isddd := p.paramList() -- result, _ := p.paramList() -- sig := types.NewSignature(recv, params, result, isddd) -- return types.NewFunc(pos, pkg, name, sig) --} -- --func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) { -- name = p.string() -- pkg = parent -- if pkg == nil { -- // use the imported package instead -- pkg = p.pkgList[0] -- } -- if p.version == 0 && name == "_" { -- // version 0 didn't export a package for _ fields -- return -- } -- switch name { -- case "": -- // 1) field name matches base type name and is exported: nothing to do -- case "?": -- // 2) field name matches base type name and is not exported: need package -- name = "" -- pkg = p.pkg() -- case "@": -- // 3) field name doesn't match type name (alias) -- name = p.string() -- alias = true -- fallthrough -- default: -- if !exported(name) { -- pkg = p.pkg() -- } -- } -- return --} -- --func (p *importer) paramList() (*types.Tuple, bool) { -- n := p.int() -- if n == 0 { -- return nil, false -- } -- // negative length indicates unnamed parameters -- named := true -- if n < 0 { -- n = -n -- named = false -- } -- // n > 0 -- params := make([]*types.Var, n) -- isddd := false -- for i := range params { -- params[i], isddd = p.param(named) -- } -- return types.NewTuple(params...), isddd --} -- --func (p *importer) param(named bool) (*types.Var, bool) { -- t := p.typ(nil, nil) -- td, isddd := t.(*dddSlice) -- if isddd { -- t = types.NewSlice(td.elem) -- } -- -- var pkg *types.Package -- var name string -- if named { -- name = p.string() -- if name == "" { -- errorf("expected named parameter") -- } -- if name != "_" { -- pkg = p.pkg() -- } -- if i := strings.Index(name, "·"); i > 0 { -- name = name[:i] // cut off gc-specific parameter numbering -- } -- } -- -- // read and discard compiler-specific info -- p.string() -- -- return types.NewVar(token.NoPos, pkg, name, t), isddd --} -- --func exported(name string) bool { -- ch, _ := utf8.DecodeRuneInString(name) -- return unicode.IsUpper(ch) --} -- --func (p *importer) value() constant.Value { -- switch tag := p.tagOrIndex(); tag { -- case falseTag: -- return constant.MakeBool(false) -- case trueTag: -- return constant.MakeBool(true) -- case int64Tag: -- return constant.MakeInt64(p.int64()) -- case floatTag: -- return p.float() -- case complexTag: -- re := p.float() -- im := p.float() -- return constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) -- case stringTag: -- return constant.MakeString(p.string()) -- case unknownTag: -- return constant.MakeUnknown() -- default: -- errorf("unexpected value tag %d", tag) // panics -- panic("unreachable") -- } --} -- --func (p *importer) float() constant.Value { -- sign := p.int() -- if sign == 0 { -- return constant.MakeInt64(0) -- } -- -- exp := p.int() -- mant := []byte(p.string()) // big endian -- -- // remove leading 0's if any -- for len(mant) > 0 && mant[0] == 0 { -- mant = mant[1:] -- } -- -- // convert to little endian -- // TODO(gri) go/constant should have a more direct conversion function -- // (e.g., once it supports a big.Float based implementation) -- for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 { -- mant[i], mant[j] = mant[j], mant[i] -- } -- -- // adjust exponent (constant.MakeFromBytes creates an integer value, -- // but mant represents the mantissa bits such that 0.5 <= mant < 1.0) -- exp -= len(mant) << 3 -- if len(mant) > 0 { -- for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 { -- exp++ -- } -- } -- -- x := constant.MakeFromBytes(mant) -- switch { -- case exp < 0: -- d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) -- x = constant.BinaryOp(x, token.QUO, d) -- case exp > 0: -- x = constant.Shift(x, token.SHL, uint(exp)) -- } -- -- if sign < 0 { -- x = constant.UnaryOp(token.SUB, x, 0) -- } -- return x --} -- --// ---------------------------------------------------------------------------- --// Low-level decoders -- --func (p *importer) tagOrIndex() int { -- if p.debugFormat { -- p.marker('t') -- } -- -- return int(p.rawInt64()) --} -- --func (p *importer) int() int { -- x := p.int64() -- if int64(int(x)) != x { -- errorf("exported integer too large") -- } -- return int(x) --} -- --func (p *importer) int64() int64 { -- if p.debugFormat { -- p.marker('i') -- } -- -- return p.rawInt64() --} -- --func (p *importer) path() string { -- if p.debugFormat { -- p.marker('p') -- } -- // if the path was seen before, i is its index (>= 0) -- // (the empty string is at index 0) -- i := p.rawInt64() -- if i >= 0 { -- return p.pathList[i] -- } -- // otherwise, i is the negative path length (< 0) -- a := make([]string, -i) -- for n := range a { -- a[n] = p.string() -- } -- s := strings.Join(a, "/") -- p.pathList = append(p.pathList, s) -- return s --} -- --func (p *importer) string() string { -- if p.debugFormat { -- p.marker('s') -- } -- // if the string was seen before, i is its index (>= 0) -- // (the empty string is at index 0) -- i := p.rawInt64() -- if i >= 0 { -- return p.strList[i] -- } -- // otherwise, i is the negative string length (< 0) -- if n := int(-i); n <= cap(p.buf) { -- p.buf = p.buf[:n] -- } else { -- p.buf = make([]byte, n) -- } -- for i := range p.buf { -- p.buf[i] = p.rawByte() -- } -- s := string(p.buf) -- p.strList = append(p.strList, s) -- return s --} -- --func (p *importer) marker(want byte) { -- if got := p.rawByte(); got != want { -- errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read) -- } -- -- pos := p.read -- if n := int(p.rawInt64()); n != pos { -- errorf("incorrect position: got %d; want %d", n, pos) -- } --} -- --// rawInt64 should only be used by low-level decoders. --func (p *importer) rawInt64() int64 { -- i, err := binary.ReadVarint(p) -- if err != nil { -- errorf("read error: %v", err) -- } -- return i --} -- --// rawStringln should only be used to read the initial version string. --func (p *importer) rawStringln(b byte) string { -- p.buf = p.buf[:0] -- for b != '\n' { -- p.buf = append(p.buf, b) -- b = p.rawByte() -- } -- return string(p.buf) --} -- --// needed for binary.ReadVarint in rawInt64 --func (p *importer) ReadByte() (byte, error) { -- return p.rawByte(), nil --} -- --// byte is the bottleneck interface for reading p.data. --// It unescapes '|' 'S' to '$' and '|' '|' to '|'. --// rawByte should only be used by low-level decoders. --func (p *importer) rawByte() byte { -- b := p.data[0] -- r := 1 -- if b == '|' { -- b = p.data[1] -- r = 2 -- switch b { -- case 'S': -- b = '$' -- case '|': -- // nothing to do -- default: -- errorf("unexpected escape sequence in export data") -- } -- } -- p.data = p.data[r:] -- p.read += r -- return b -- --} -- --// ---------------------------------------------------------------------------- --// Export format -- --// Tags. Must be < 0. --const ( -- // Objects -- packageTag = -(iota + 1) -- constTag -- typeTag -- varTag -- funcTag -- endTag -- -- // Types -- namedTag -- arrayTag -- sliceTag -- dddTag -- structTag -- pointerTag -- signatureTag -- interfaceTag -- mapTag -- chanTag -- -- // Values -- falseTag -- trueTag -- int64Tag -- floatTag -- fractionTag // not used by gc -- complexTag -- stringTag -- nilTag // only used by gc (appears in exported inlined function bodies) -- unknownTag // not used by gc (only appears in packages with errors) -- -- // Type aliases -- aliasTag --) -- - var predeclOnce sync.Once - var predecl []types.Type // initialized lazily - -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go -index a973dece..b1223713 100644 ---- a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go -+++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go -@@ -230,20 +230,17 @@ func Import(packages map[string]*types.Package, path, srcDir string, lookup func - // Or, define a new standard go/types/gcexportdata package. - fset := token.NewFileSet() - -- // The indexed export format starts with an 'i'; the older -- // binary export format starts with a 'c', 'd', or 'v' -- // (from "version"). Select appropriate importer. -+ // Select appropriate importer. - if len(data) > 0 { - switch data[0] { -- case 'i': -- _, pkg, err := IImportData(fset, packages, data[1:], id) -- return pkg, err -+ case 'v', 'c', 'd': // binary, till go1.10 -+ return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0]) - -- case 'v', 'c', 'd': -- _, pkg, err := BImportData(fset, packages, data, id) -+ case 'i': // indexed, till go1.19 -+ _, pkg, err := IImportData(fset, packages, data[1:], id) - return pkg, err - -- case 'u': -+ case 'u': // unified, from go1.20 - _, pkg, err := UImportData(fset, packages, data[1:size], id) - return pkg, err - -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go -index ba53cdcd..3fc7989c 100644 ---- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go -+++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go -@@ -44,12 +44,12 @@ func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) { - return out.Bytes(), err - } - --// IImportShallow decodes "shallow" types.Package data encoded by IExportShallow --// in the same executable. This function cannot import data from -+// IImportShallow decodes "shallow" types.Package data encoded by -+// IExportShallow in the same executable. This function cannot import data from - // cmd/compile or gcexportdata.Write. --func IImportShallow(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string, insert InsertType) (*types.Package, error) { -+func IImportShallow(fset *token.FileSet, getPackage GetPackageFunc, data []byte, path string, insert InsertType) (*types.Package, error) { - const bundle = false -- pkgs, err := iimportCommon(fset, imports, data, bundle, path, insert) -+ pkgs, err := iimportCommon(fset, getPackage, data, bundle, path, insert) - if err != nil { - return nil, err - } -@@ -913,6 +913,17 @@ func (w *exportWriter) value(typ types.Type, v constant.Value) { - w.int64(int64(v.Kind())) - } - -+ if v.Kind() == constant.Unknown { -+ // golang/go#60605: treat unknown constant values as if they have invalid type -+ // -+ // This loses some fidelity over the package type-checked from source, but that -+ // is acceptable. -+ // -+ // TODO(rfindley): we should switch on the recorded constant kind rather -+ // than the constant type -+ return -+ } -+ - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - w.bool(constant.BoolVal(v)) -@@ -969,6 +980,16 @@ func constantToFloat(x constant.Value) *big.Float { - return &f - } - -+func valueToRat(x constant.Value) *big.Rat { -+ // Convert little-endian to big-endian. -+ // I can't believe this is necessary. -+ bytes := constant.Bytes(x) -+ for i := 0; i < len(bytes)/2; i++ { -+ bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] -+ } -+ return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) -+} -+ - // mpint exports a multi-precision integer. - // - // For unsigned types, small values are written out as a single -@@ -1178,3 +1199,12 @@ func (q *objQueue) popHead() types.Object { - q.head++ - return obj - } -+ -+// internalError represents an error generated inside this package. -+type internalError string -+ -+func (e internalError) Error() string { return "gcimporter: " + string(e) } -+ -+func internalErrorf(format string, args ...interface{}) error { -+ return internalError(fmt.Sprintf(format, args...)) -+} -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go -index 448f903e..94a5eba3 100644 ---- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go -+++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go -@@ -85,7 +85,7 @@ const ( - // If the export data version is not recognized or the format is otherwise - // compromised, an error is returned. - func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { -- pkgs, err := iimportCommon(fset, imports, data, false, path, nil) -+ pkgs, err := iimportCommon(fset, GetPackageFromMap(imports), data, false, path, nil) - if err != nil { - return 0, nil, err - } -@@ -94,10 +94,33 @@ func IImportData(fset *token.FileSet, imports map[string]*types.Package, data [] - - // IImportBundle imports a set of packages from the serialized package bundle. - func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { -- return iimportCommon(fset, imports, data, true, "", nil) -+ return iimportCommon(fset, GetPackageFromMap(imports), data, true, "", nil) - } - --func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) { -+// A GetPackageFunc is a function that gets the package with the given path -+// from the importer state, creating it (with the specified name) if necessary. -+// It is an abstraction of the map historically used to memoize package creation. -+// -+// Two calls with the same path must return the same package. -+// -+// If the given getPackage func returns nil, the import will fail. -+type GetPackageFunc = func(path, name string) *types.Package -+ -+// GetPackageFromMap returns a GetPackageFunc that retrieves packages from the -+// given map of package path -> package. -+// -+// The resulting func may mutate m: if a requested package is not found, a new -+// package will be inserted into m. -+func GetPackageFromMap(m map[string]*types.Package) GetPackageFunc { -+ return func(path, name string) *types.Package { -+ if _, ok := m[path]; !ok { -+ m[path] = types.NewPackage(path, name) -+ } -+ return m[path] -+ } -+} -+ -+func iimportCommon(fset *token.FileSet, getPackage GetPackageFunc, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) { - const currentVersion = iexportVersionCurrent - version := int64(-1) - if !debug { -@@ -108,7 +131,7 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data - } else if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { -- err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) -+ err = fmt.Errorf("internal error while importing %q (%v); please report an issue", path, e) - } - } - }() -@@ -117,11 +140,8 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data - r := &intReader{bytes.NewReader(data), path} - - if bundle { -- bundleVersion := r.uint64() -- switch bundleVersion { -- case bundleVersion: -- default: -- errorf("unknown bundle format version %d", bundleVersion) -+ if v := r.uint64(); v != bundleVersion { -+ errorf("unknown bundle format version %d", v) - } - } - -@@ -195,10 +215,9 @@ func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data - if pkgPath == "" { - pkgPath = path - } -- pkg := imports[pkgPath] -+ pkg := getPackage(pkgPath, pkgName) - if pkg == nil { -- pkg = types.NewPackage(pkgPath, pkgName) -- imports[pkgPath] = pkg -+ errorf("internal error: getPackage returned nil package for %s", pkgPath) - } else if pkg.Name() != pkgName { - errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path) - } -diff --git a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go -index 34fc783f..b977435f 100644 ---- a/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go -+++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go -@@ -10,6 +10,7 @@ - package gcimporter - - import ( -+ "fmt" - "go/token" - "go/types" - "sort" -@@ -63,6 +64,14 @@ type typeInfo struct { - } - - func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { -+ if !debug { -+ defer func() { -+ if x := recover(); x != nil { -+ err = fmt.Errorf("internal error in importing %q (%v); please report an issue", path, x) -+ } -+ }() -+ } -+ - s := string(data) - s = s[:strings.LastIndex(s, "\n$$\n")] - input := pkgbits.NewPkgDecoder(path, s) -diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go -index d5055169..8d9fc98d 100644 ---- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go -+++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go -@@ -8,10 +8,12 @@ package gocommand - import ( - "bytes" - "context" -+ "errors" - "fmt" - "io" - "log" - "os" -+ "reflect" - "regexp" - "runtime" - "strconv" -@@ -22,6 +24,9 @@ import ( - exec "golang.org/x/sys/execabs" - - "golang.org/x/tools/internal/event" -+ "golang.org/x/tools/internal/event/keys" -+ "golang.org/x/tools/internal/event/label" -+ "golang.org/x/tools/internal/event/tag" - ) - - // An Runner will run go command invocations and serialize -@@ -51,9 +56,19 @@ func (runner *Runner) initialize() { - // 1.14: go: updating go.mod: existing contents have changed since last read - var modConcurrencyError = regexp.MustCompile(`go:.*go.mod.*contents have changed`) - -+// verb is an event label for the go command verb. -+var verb = keys.NewString("verb", "go command verb") -+ -+func invLabels(inv Invocation) []label.Label { -+ return []label.Label{verb.Of(inv.Verb), tag.Directory.Of(inv.WorkingDir)} -+} -+ - // Run is a convenience wrapper around RunRaw. - // It returns only stdout and a "friendly" error. - func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, error) { -+ ctx, done := event.Start(ctx, "gocommand.Runner.Run", invLabels(inv)...) -+ defer done() -+ - stdout, _, friendly, _ := runner.RunRaw(ctx, inv) - return stdout, friendly - } -@@ -61,6 +76,9 @@ func (runner *Runner) Run(ctx context.Context, inv Invocation) (*bytes.Buffer, e - // RunPiped runs the invocation serially, always waiting for any concurrent - // invocations to complete first. - func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stderr io.Writer) error { -+ ctx, done := event.Start(ctx, "gocommand.Runner.RunPiped", invLabels(inv)...) -+ defer done() -+ - _, err := runner.runPiped(ctx, inv, stdout, stderr) - return err - } -@@ -68,6 +86,8 @@ func (runner *Runner) RunPiped(ctx context.Context, inv Invocation, stdout, stde - // RunRaw runs the invocation, serializing requests only if they fight over - // go.mod changes. - func (runner *Runner) RunRaw(ctx context.Context, inv Invocation) (*bytes.Buffer, *bytes.Buffer, error, error) { -+ ctx, done := event.Start(ctx, "gocommand.Runner.RunRaw", invLabels(inv)...) -+ defer done() - // Make sure the runner is always initialized. - runner.initialize() - -@@ -215,6 +235,18 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { - cmd := exec.Command("go", goArgs...) - cmd.Stdout = stdout - cmd.Stderr = stderr -+ -+ // cmd.WaitDelay was added only in go1.20 (see #50436). -+ if waitDelay := reflect.ValueOf(cmd).Elem().FieldByName("WaitDelay"); waitDelay.IsValid() { -+ // https://go.dev/issue/59541: don't wait forever copying stderr -+ // after the command has exited. -+ // After CL 484741 we copy stdout manually, so we we'll stop reading that as -+ // soon as ctx is done. However, we also don't want to wait around forever -+ // for stderr. Give a much-longer-than-reasonable delay and then assume that -+ // something has wedged in the kernel or runtime. -+ waitDelay.Set(reflect.ValueOf(30 * time.Second)) -+ } -+ - // On darwin the cwd gets resolved to the real path, which breaks anything that - // expects the working directory to keep the original path, including the - // go command when dealing with modules. -@@ -229,6 +261,7 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error { - cmd.Env = append(cmd.Env, "PWD="+i.WorkingDir) - cmd.Dir = i.WorkingDir - } -+ - defer func(start time.Time) { log("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now()) - - return runCmdContext(ctx, cmd) -@@ -242,10 +275,85 @@ var DebugHangingGoCommands = false - - // runCmdContext is like exec.CommandContext except it sends os.Interrupt - // before os.Kill. --func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { -- if err := cmd.Start(); err != nil { -+func runCmdContext(ctx context.Context, cmd *exec.Cmd) (err error) { -+ // If cmd.Stdout is not an *os.File, the exec package will create a pipe and -+ // copy it to the Writer in a goroutine until the process has finished and -+ // either the pipe reaches EOF or command's WaitDelay expires. -+ // -+ // However, the output from 'go list' can be quite large, and we don't want to -+ // keep reading (and allocating buffers) if we've already decided we don't -+ // care about the output. We don't want to wait for the process to finish, and -+ // we don't wait to wait for the WaitDelay to expire either. -+ // -+ // Instead, if cmd.Stdout requires a copying goroutine we explicitly replace -+ // it with a pipe (which is an *os.File), which we can close in order to stop -+ // copying output as soon as we realize we don't care about it. -+ var stdoutW *os.File -+ if cmd.Stdout != nil { -+ if _, ok := cmd.Stdout.(*os.File); !ok { -+ var stdoutR *os.File -+ stdoutR, stdoutW, err = os.Pipe() -+ if err != nil { -+ return err -+ } -+ prevStdout := cmd.Stdout -+ cmd.Stdout = stdoutW -+ -+ stdoutErr := make(chan error, 1) -+ go func() { -+ _, err := io.Copy(prevStdout, stdoutR) -+ if err != nil { -+ err = fmt.Errorf("copying stdout: %w", err) -+ } -+ stdoutErr <- err -+ }() -+ defer func() { -+ // We started a goroutine to copy a stdout pipe. -+ // Wait for it to finish, or terminate it if need be. -+ var err2 error -+ select { -+ case err2 = <-stdoutErr: -+ stdoutR.Close() -+ case <-ctx.Done(): -+ stdoutR.Close() -+ // Per https://pkg.go.dev/os#File.Close, the call to stdoutR.Close -+ // should cause the Read call in io.Copy to unblock and return -+ // immediately, but we still need to receive from stdoutErr to confirm -+ // that that has happened. -+ <-stdoutErr -+ err2 = ctx.Err() -+ } -+ if err == nil { -+ err = err2 -+ } -+ }() -+ -+ // Per https://pkg.go.dev/os/exec#Cmd, “If Stdout and Stderr are the -+ // same writer, and have a type that can be compared with ==, at most -+ // one goroutine at a time will call Write.†-+ // -+ // Since we're starting a goroutine that writes to cmd.Stdout, we must -+ // also update cmd.Stderr so that that still holds. -+ func() { -+ defer func() { recover() }() -+ if cmd.Stderr == prevStdout { -+ cmd.Stderr = cmd.Stdout -+ } -+ }() -+ } -+ } -+ -+ err = cmd.Start() -+ if stdoutW != nil { -+ // The child process has inherited the pipe file, -+ // so close the copy held in this process. -+ stdoutW.Close() -+ stdoutW = nil -+ } -+ if err != nil { - return err - } -+ - resChan := make(chan error, 1) - go func() { - resChan <- cmd.Wait() -@@ -253,11 +361,14 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { - - // If we're interested in debugging hanging Go commands, stop waiting after a - // minute and panic with interesting information. -- if DebugHangingGoCommands { -+ debug := DebugHangingGoCommands -+ if debug { -+ timer := time.NewTimer(1 * time.Minute) -+ defer timer.Stop() - select { - case err := <-resChan: - return err -- case <-time.After(1 * time.Minute): -+ case <-timer.C: - HandleHangingGoCommand(cmd.Process) - case <-ctx.Done(): - } -@@ -270,30 +381,25 @@ func runCmdContext(ctx context.Context, cmd *exec.Cmd) error { - } - - // Cancelled. Interrupt and see if it ends voluntarily. -- cmd.Process.Signal(os.Interrupt) -- select { -- case err := <-resChan: -- return err -- case <-time.After(time.Second): -+ if err := cmd.Process.Signal(os.Interrupt); err == nil { -+ // (We used to wait only 1s but this proved -+ // fragile on loaded builder machines.) -+ timer := time.NewTimer(5 * time.Second) -+ defer timer.Stop() -+ select { -+ case err := <-resChan: -+ return err -+ case <-timer.C: -+ } - } - - // Didn't shut down in response to interrupt. Kill it hard. - // TODO(rfindley): per advice from bcmills@, it may be better to send SIGQUIT - // on certain platforms, such as unix. -- if err := cmd.Process.Kill(); err != nil && DebugHangingGoCommands { -- // Don't panic here as this reliably fails on windows with EINVAL. -+ if err := cmd.Process.Kill(); err != nil && !errors.Is(err, os.ErrProcessDone) && debug { - log.Printf("error killing the Go command: %v", err) - } - -- // See above: don't wait indefinitely if we're debugging hanging Go commands. -- if DebugHangingGoCommands { -- select { -- case err := <-resChan: -- return err -- case <-time.After(10 * time.Second): // a shorter wait as resChan should return quickly following Kill -- HandleHangingGoCommand(cmd.Process) -- } -- } - return <-resChan - } - -diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go -index 307a76d4..446c5846 100644 ---- a/vendor/golang.org/x/tools/internal/gocommand/version.go -+++ b/vendor/golang.org/x/tools/internal/gocommand/version.go -@@ -23,21 +23,11 @@ import ( - func GoVersion(ctx context.Context, inv Invocation, r *Runner) (int, error) { - inv.Verb = "list" - inv.Args = []string{"-e", "-f", `{{context.ReleaseTags}}`, `--`, `unsafe`} -- inv.Env = append(append([]string{}, inv.Env...), "GO111MODULE=off") -- // Unset any unneeded flags, and remove them from BuildFlags, if they're -- // present. -- inv.ModFile = "" -+ inv.BuildFlags = nil // This is not a build command. - inv.ModFlag = "" -- var buildFlags []string -- for _, flag := range inv.BuildFlags { -- // Flags can be prefixed by one or two dashes. -- f := strings.TrimPrefix(strings.TrimPrefix(flag, "-"), "-") -- if strings.HasPrefix(f, "mod=") || strings.HasPrefix(f, "modfile=") { -- continue -- } -- buildFlags = append(buildFlags, flag) -- } -- inv.BuildFlags = buildFlags -+ inv.ModFile = "" -+ inv.Env = append(inv.Env[:len(inv.Env):len(inv.Env)], "GO111MODULE=off") -+ - stdoutBytes, err := r.Run(ctx, inv) - if err != nil { - return 0, err -diff --git a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go -index a3fb2d4f..7e638ec2 100644 ---- a/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go -+++ b/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go -@@ -7,7 +7,9 @@ - package tokeninternal - - import ( -+ "fmt" - "go/token" -+ "sort" - "sync" - "unsafe" - ) -@@ -57,3 +59,93 @@ func GetLines(file *token.File) []int { - panic("unexpected token.File size") - } - } -+ -+// AddExistingFiles adds the specified files to the FileSet if they -+// are not already present. It panics if any pair of files in the -+// resulting FileSet would overlap. -+func AddExistingFiles(fset *token.FileSet, files []*token.File) { -+ // Punch through the FileSet encapsulation. -+ type tokenFileSet struct { -+ // This type remained essentially consistent from go1.16 to go1.21. -+ mutex sync.RWMutex -+ base int -+ files []*token.File -+ _ *token.File // changed to atomic.Pointer[token.File] in go1.19 -+ } -+ -+ // If the size of token.FileSet changes, this will fail to compile. -+ const delta = int64(unsafe.Sizeof(tokenFileSet{})) - int64(unsafe.Sizeof(token.FileSet{})) -+ var _ [-delta * delta]int -+ -+ type uP = unsafe.Pointer -+ var ptr *tokenFileSet -+ *(*uP)(uP(&ptr)) = uP(fset) -+ ptr.mutex.Lock() -+ defer ptr.mutex.Unlock() -+ -+ // Merge and sort. -+ newFiles := append(ptr.files, files...) -+ sort.Slice(newFiles, func(i, j int) bool { -+ return newFiles[i].Base() < newFiles[j].Base() -+ }) -+ -+ // Reject overlapping files. -+ // Discard adjacent identical files. -+ out := newFiles[:0] -+ for i, file := range newFiles { -+ if i > 0 { -+ prev := newFiles[i-1] -+ if file == prev { -+ continue -+ } -+ if prev.Base()+prev.Size()+1 > file.Base() { -+ panic(fmt.Sprintf("file %s (%d-%d) overlaps with file %s (%d-%d)", -+ prev.Name(), prev.Base(), prev.Base()+prev.Size(), -+ file.Name(), file.Base(), file.Base()+file.Size())) -+ } -+ } -+ out = append(out, file) -+ } -+ newFiles = out -+ -+ ptr.files = newFiles -+ -+ // Advance FileSet.Base(). -+ if len(newFiles) > 0 { -+ last := newFiles[len(newFiles)-1] -+ newBase := last.Base() + last.Size() + 1 -+ if ptr.base < newBase { -+ ptr.base = newBase -+ } -+ } -+} -+ -+// FileSetFor returns a new FileSet containing a sequence of new Files with -+// the same base, size, and line as the input files, for use in APIs that -+// require a FileSet. -+// -+// Precondition: the input files must be non-overlapping, and sorted in order -+// of their Base. -+func FileSetFor(files ...*token.File) *token.FileSet { -+ fset := token.NewFileSet() -+ for _, f := range files { -+ f2 := fset.AddFile(f.Name(), f.Base(), f.Size()) -+ lines := GetLines(f) -+ f2.SetLines(lines) -+ } -+ return fset -+} -+ -+// CloneFileSet creates a new FileSet holding all files in fset. It does not -+// create copies of the token.Files in fset: they are added to the resulting -+// FileSet unmodified. -+func CloneFileSet(fset *token.FileSet) *token.FileSet { -+ var files []*token.File -+ fset.Iterate(func(f *token.File) bool { -+ files = append(files, f) -+ return true -+ }) -+ newFileSet := token.NewFileSet() -+ AddExistingFiles(newFileSet, files) -+ return newFileSet -+} -diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go -index cfba8189..b9e87c69 100644 ---- a/vendor/golang.org/x/tools/internal/typeparams/common.go -+++ b/vendor/golang.org/x/tools/internal/typeparams/common.go -@@ -105,6 +105,26 @@ func OriginMethod(fn *types.Func) *types.Func { - } - orig := NamedTypeOrigin(named) - gfn, _, _ := types.LookupFieldOrMethod(orig, true, fn.Pkg(), fn.Name()) -+ -+ // This is a fix for a gopls crash (#60628) due to a go/types bug (#60634). In: -+ // package p -+ // type T *int -+ // func (*T) f() {} -+ // LookupFieldOrMethod(T, true, p, f)=nil, but NewMethodSet(*T)={(*T).f}. -+ // Here we make them consistent by force. -+ // (The go/types bug is general, but this workaround is reached only -+ // for generic T thanks to the early return above.) -+ if gfn == nil { -+ mset := types.NewMethodSet(types.NewPointer(orig)) -+ for i := 0; i < mset.Len(); i++ { -+ m := mset.At(i) -+ if m.Obj().Id() == fn.Id() { -+ gfn = m.Obj() -+ break -+ } -+ } -+ } -+ - return gfn.(*types.Func) - } - -diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go -index 3c53fbc6..ce7d4351 100644 ---- a/vendor/golang.org/x/tools/internal/typesinternal/types.go -+++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go -@@ -11,8 +11,6 @@ import ( - "go/types" - "reflect" - "unsafe" -- -- "golang.org/x/tools/go/types/objectpath" - ) - - func SetUsesCgo(conf *types.Config) bool { -@@ -52,10 +50,3 @@ func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, - } - - var SetGoVersion = func(conf *types.Config, version string) bool { return false } -- --// NewObjectpathEncoder returns a function closure equivalent to --// objectpath.For but amortized for multiple (sequential) calls. --// It is a temporary workaround, pending the approval of proposal 58668. --// --//go:linkname NewObjectpathFunc golang.org/x/tools/go/types/objectpath.newEncoderFor --func NewObjectpathFunc() func(types.Object) (objectpath.Path, error) -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -similarity index 100% -rename from vendor/google.golang.org/genproto/LICENSE -rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -index 3efca459..712fef4d 100644 ---- a/vendor/google.golang.org/grpc/attributes/attributes.go -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -34,26 +34,26 @@ import ( - // key/value pairs. Keys must be hashable, and users should define their own - // types for keys. Values should not be modified after they are added to an - // Attributes or if they were received from one. If values implement 'Equal(o --// interface{}) bool', it will be called by (*Attributes).Equal to determine --// whether two values with the same key should be considered equal. -+// any) bool', it will be called by (*Attributes).Equal to determine whether -+// two values with the same key should be considered equal. - type Attributes struct { -- m map[interface{}]interface{} -+ m map[any]any - } - - // New returns a new Attributes containing the key/value pair. --func New(key, value interface{}) *Attributes { -- return &Attributes{m: map[interface{}]interface{}{key: value}} -+func New(key, value any) *Attributes { -+ return &Attributes{m: map[any]any{key: value}} - } - - // WithValue returns a new Attributes containing the previous keys and values - // and the new key/value pair. If the same key appears multiple times, the - // last value overwrites all previous values for that key. To remove an - // existing key, use a nil value. value should not be modified later. --func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) - } -- n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } -@@ -63,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { - - // Value returns the value associated with these attributes for key, or nil if - // no value is associated with key. The returned value should not be modified. --func (a *Attributes) Value(key interface{}) interface{} { -+func (a *Attributes) Value(key any) any { - if a == nil { - return nil - } - return a.m[key] - } - --// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) --// bool' is implemented for a value in the attributes, it is called to --// determine if the value matches the one stored in the other attributes. If --// Equal is not implemented, standard equality is used to determine if the two --// values are equal. Note that some types (e.g. maps) aren't comparable by --// default, so they must be wrapped in a struct, or in an alias type, with Equal --// defined. -+// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is -+// implemented for a value in the attributes, it is called to determine if the -+// value matches the one stored in the other attributes. If Equal is not -+// implemented, standard equality is used to determine if the two values are -+// equal. Note that some types (e.g. maps) aren't comparable by default, so -+// they must be wrapped in a struct, or in an alias type, with Equal defined. - func (a *Attributes) Equal(o *Attributes) bool { - if a == nil && o == nil { - return true -@@ -93,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { - // o missing element of a - return false - } -- if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if eq, ok := v.(interface{ Equal(o any) bool }); ok { - if !eq.Equal(ov) { - return false - } -@@ -112,19 +111,31 @@ func (a *Attributes) String() string { - sb.WriteString("{") - first := true - for k, v := range a.m { -- var key, val string -- if str, ok := k.(interface{ String() string }); ok { -- key = str.String() -- } -- if str, ok := v.(interface{ String() string }); ok { -- val = str.String() -- } - if !first { - sb.WriteString(", ") - } -- sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) - first = false - } - sb.WriteString("}") - return sb.String() - } -+ -+func str(x any) string { -+ if v, ok := x.(fmt.Stringer); ok { -+ return v.String() -+ } else if v, ok := x.(string); ok { -+ return v -+ } -+ return fmt.Sprintf("<%p>", x) -+} -+ -+// MarshalJSON helps implement the json.Marshaler interface, thereby rendering -+// the Attributes correctly when printing (via pretty.JSON) structs containing -+// Attributes as fields. -+// -+// Is it impossible to unmarshal attributes from a JSON representation and this -+// method is meant only for debugging purposes. -+func (a *Attributes) MarshalJSON() ([]byte, error) { -+ return []byte(a.String()), nil -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -index 8358dd6e..ac73c9ce 100644 ---- a/vendor/google.golang.org/grpc/grpclog/component.go -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -31,71 +31,71 @@ type componentData struct { - - var cache = map[string]*componentData{} - --func (c *componentData) InfoDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) InfoDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.InfoDepth(depth+1, args...) - } - --func (c *componentData) WarningDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) WarningDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.WarningDepth(depth+1, args...) - } - --func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) ErrorDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.ErrorDepth(depth+1, args...) - } - --func (c *componentData) FatalDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) FatalDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.FatalDepth(depth+1, args...) - } - --func (c *componentData) Info(args ...interface{}) { -+func (c *componentData) Info(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warning(args ...interface{}) { -+func (c *componentData) Warning(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Error(args ...interface{}) { -+func (c *componentData) Error(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatal(args ...interface{}) { -+func (c *componentData) Fatal(args ...any) { - c.FatalDepth(1, args...) - } - --func (c *componentData) Infof(format string, args ...interface{}) { -+func (c *componentData) Infof(format string, args ...any) { - c.InfoDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Warningf(format string, args ...interface{}) { -+func (c *componentData) Warningf(format string, args ...any) { - c.WarningDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Errorf(format string, args ...interface{}) { -+func (c *componentData) Errorf(format string, args ...any) { - c.ErrorDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Fatalf(format string, args ...interface{}) { -+func (c *componentData) Fatalf(format string, args ...any) { - c.FatalDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Infoln(args ...interface{}) { -+func (c *componentData) Infoln(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warningln(args ...interface{}) { -+func (c *componentData) Warningln(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Errorln(args ...interface{}) { -+func (c *componentData) Errorln(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatalln(args ...interface{}) { -+func (c *componentData) Fatalln(args ...any) { - c.FatalDepth(1, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -index c8bb2be3..16928c9c 100644 ---- a/vendor/google.golang.org/grpc/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -42,53 +42,53 @@ func V(l int) bool { - } - - // Info logs to the INFO log. --func Info(args ...interface{}) { -+func Info(args ...any) { - grpclog.Logger.Info(args...) - } - - // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. --func Infof(format string, args ...interface{}) { -+func Infof(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. --func Infoln(args ...interface{}) { -+func Infoln(args ...any) { - grpclog.Logger.Infoln(args...) - } - - // Warning logs to the WARNING log. --func Warning(args ...interface{}) { -+func Warning(args ...any) { - grpclog.Logger.Warning(args...) - } - - // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. --func Warningf(format string, args ...interface{}) { -+func Warningf(format string, args ...any) { - grpclog.Logger.Warningf(format, args...) - } - - // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. --func Warningln(args ...interface{}) { -+func Warningln(args ...any) { - grpclog.Logger.Warningln(args...) - } - - // Error logs to the ERROR log. --func Error(args ...interface{}) { -+func Error(args ...any) { - grpclog.Logger.Error(args...) - } - - // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. --func Errorf(format string, args ...interface{}) { -+func Errorf(format string, args ...any) { - grpclog.Logger.Errorf(format, args...) - } - - // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. --func Errorln(args ...interface{}) { -+func Errorln(args ...any) { - grpclog.Logger.Errorln(args...) - } - - // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. - // It calls os.Exit() with exit code 1. --func Fatal(args ...interface{}) { -+func Fatal(args ...any) { - grpclog.Logger.Fatal(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { - - // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. - // It calls os.Exit() with exit code 1. --func Fatalf(format string, args ...interface{}) { -+func Fatalf(format string, args ...any) { - grpclog.Logger.Fatalf(format, args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { - - // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. - // It calle os.Exit()) with exit code 1. --func Fatalln(args ...interface{}) { -+func Fatalln(args ...any) { - grpclog.Logger.Fatalln(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { - // Print prints to the logger. Arguments are handled in the manner of fmt.Print. - // - // Deprecated: use Info. --func Print(args ...interface{}) { -+func Print(args ...any) { - grpclog.Logger.Info(args...) - } - - // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. - // - // Deprecated: use Infof. --func Printf(format string, args ...interface{}) { -+func Printf(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Println prints to the logger. Arguments are handled in the manner of fmt.Println. - // - // Deprecated: use Infoln. --func Println(args ...interface{}) { -+func Println(args ...any) { - grpclog.Logger.Infoln(args...) - } -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -index ef06a482..b1674d82 100644 ---- a/vendor/google.golang.org/grpc/grpclog/logger.go -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" - // - // Deprecated: use LoggerV2. - type Logger interface { -- Fatal(args ...interface{}) -- Fatalf(format string, args ...interface{}) -- Fatalln(args ...interface{}) -- Print(args ...interface{}) -- Printf(format string, args ...interface{}) -- Println(args ...interface{}) -+ Fatal(args ...any) -+ Fatalf(format string, args ...any) -+ Fatalln(args ...any) -+ Print(args ...any) -+ Printf(format string, args ...any) -+ Println(args ...any) - } - - // SetLogger sets the logger that is used in grpc. Call only from -@@ -45,39 +45,39 @@ type loggerWrapper struct { - Logger - } - --func (g *loggerWrapper) Info(args ...interface{}) { -+func (g *loggerWrapper) Info(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Infoln(args ...interface{}) { -+func (g *loggerWrapper) Infoln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+func (g *loggerWrapper) Infof(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Warning(args ...interface{}) { -+func (g *loggerWrapper) Warning(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Warningln(args ...interface{}) { -+func (g *loggerWrapper) Warningln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+func (g *loggerWrapper) Warningf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Error(args ...interface{}) { -+func (g *loggerWrapper) Error(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Errorln(args ...interface{}) { -+func (g *loggerWrapper) Errorln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+func (g *loggerWrapper) Errorf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -index 5de66e40..ecfd36d7 100644 ---- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -33,35 +33,35 @@ import ( - // LoggerV2 does underlying logging work for grpclog. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { - g.m[severity].Output(2, string(b)) - } - --func (g *loggerT) Info(args ...interface{}) { -+func (g *loggerT) Info(args ...any) { - g.output(infoLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Infoln(args ...interface{}) { -+func (g *loggerT) Infoln(args ...any) { - g.output(infoLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Infof(format string, args ...interface{}) { -+func (g *loggerT) Infof(format string, args ...any) { - g.output(infoLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Warning(args ...interface{}) { -+func (g *loggerT) Warning(args ...any) { - g.output(warningLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Warningln(args ...interface{}) { -+func (g *loggerT) Warningln(args ...any) { - g.output(warningLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Warningf(format string, args ...interface{}) { -+func (g *loggerT) Warningf(format string, args ...any) { - g.output(warningLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Error(args ...interface{}) { -+func (g *loggerT) Error(args ...any) { - g.output(errorLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Errorln(args ...interface{}) { -+func (g *loggerT) Errorln(args ...any) { - g.output(errorLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Errorf(format string, args ...interface{}) { -+func (g *loggerT) Errorf(format string, args ...any) { - g.output(errorLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Fatal(args ...interface{}) { -+func (g *loggerT) Fatal(args ...any) { - g.output(fatalLog, fmt.Sprint(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalln(args ...interface{}) { -+func (g *loggerT) Fatalln(args ...any) { - g.output(fatalLog, fmt.Sprintln(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalf(format string, args ...interface{}) { -+func (g *loggerT) Fatalf(format string, args ...any) { - g.output(fatalLog, fmt.Sprintf(format, args...)) - os.Exit(1) - } -@@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { - type DepthLoggerV2 interface { - LoggerV2 - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -index 32c9b590..9deee7f6 100644 ---- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -25,12 +25,12 @@ import ( - type requestInfoKey struct{} - - // NewRequestInfoContext creates a context with ri. --func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+func NewRequestInfoContext(ctx context.Context, ri any) context.Context { - return context.WithValue(ctx, requestInfoKey{}, ri) - } - - // RequestInfoFromContext extracts the RequestInfo from ctx. --func RequestInfoFromContext(ctx context.Context) interface{} { -+func RequestInfoFromContext(ctx context.Context) any { - return ctx.Value(requestInfoKey{}) - } - -@@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { - type clientHandshakeInfoKey struct{} - - // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. --func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+func ClientHandshakeInfoFromContext(ctx context.Context) any { - return ctx.Value(clientHandshakeInfoKey{}) - } - - // NewClientHandshakeInfoContext creates a context with chi. --func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { - return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -index b68e26a3..bfc45102 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -30,7 +30,7 @@ var Logger LoggerV2 - var DepthLogger DepthLoggerV2 - - // InfoDepth logs to the INFO log at the specified depth. --func InfoDepth(depth int, args ...interface{}) { -+func InfoDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.InfoDepth(depth, args...) - } else { -@@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { - } - - // WarningDepth logs to the WARNING log at the specified depth. --func WarningDepth(depth int, args ...interface{}) { -+func WarningDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.WarningDepth(depth, args...) - } else { -@@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { - } - - // ErrorDepth logs to the ERROR log at the specified depth. --func ErrorDepth(depth int, args ...interface{}) { -+func ErrorDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.ErrorDepth(depth, args...) - } else { -@@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { - } - - // FatalDepth logs to the FATAL log at the specified depth. --func FatalDepth(depth int, args ...interface{}) { -+func FatalDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.FatalDepth(depth, args...) - } else { -@@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { - // is defined here to avoid a circular dependency. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -116,11 +116,11 @@ type LoggerV2 interface { - // later release. - type DepthLoggerV2 interface { - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -index 02224b42..faa998de 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -31,7 +31,7 @@ type PrefixLogger struct { - } - - // Infof does info logging. --func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+func (pl *PrefixLogger) Infof(format string, args ...any) { - if pl != nil { - // Handle nil, so the tests can pass in a nil logger. - format = pl.prefix + format -@@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { - } - - // Warningf does warning logging. --func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Warningf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -@@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { - } - - // Errorf does error logging. --func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Errorf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -@@ -62,7 +62,7 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { - } - - // Debugf does info logging at verbose level 2. --func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Debugf(format string, args ...any) { - // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe - // rewrite PrefixLogger a little to ensure that we don't use the global - // `Logger` here, and instead use the `logger` field. -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -index 42ff39c8..c8a8c76d 100644 ---- a/vendor/google.golang.org/grpc/internal/internal.go -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -30,7 +30,7 @@ import ( - - var ( - // WithHealthCheckFunc is set by dialoptions.go -- WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ WithHealthCheckFunc any // func (HealthChecker) DialOption - // HealthCheckFunc is used to provide client-side LB channel health checking - HealthCheckFunc HealthChecker - // BalancerUnregister is exported by package balancer to unregister a balancer. -@@ -38,8 +38,12 @@ var ( - // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by - // default, but tests may wish to set it lower for convenience. - KeepaliveMinPingTime = 10 * time.Second -+ // KeepaliveMinServerPingTime is the minimum ping interval for servers. -+ // This must be 1s by default, but tests may wish to set it lower for -+ // convenience. -+ KeepaliveMinServerPingTime = time.Second - // ParseServiceConfig parses a JSON representation of the service config. -- ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ ParseServiceConfig any // func(string) *serviceconfig.ParseResult - // EqualServiceConfigForTesting is for testing service config generation and - // parsing. Both a and b should be returned by ParseServiceConfig. - // This function compares the config without rawJSON stripped, in case the -@@ -49,33 +53,33 @@ var ( - // given name. This is set by package certprovider for use from xDS - // bootstrap code while parsing certificate provider configs in the - // bootstrap file. -- GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ GetCertificateProviderBuilder any // func(string) certprovider.Builder - // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo - // stored in the passed in attributes. This is set by - // credentials/xds/xds.go. -- GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo - // GetServerCredentials returns the transport credentials configured on a - // gRPC server. An xDS-enabled server needs to know what type of credentials - // is configured on the underlying gRPC server. This is set by server.go. -- GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials - // CanonicalString returns the canonical string of the code defined here: - // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- CanonicalString interface{} // func (codes.Code) string -+ CanonicalString any // func (codes.Code) string - // DrainServerTransports initiates a graceful close of existing connections - // on a gRPC server accepted on the provided listener address. An - // xDS-enabled server invokes this method on a grpc.Server when a particular - // listener moves to "not-serving" mode. -- DrainServerTransports interface{} // func(*grpc.Server, string) -+ DrainServerTransports any // func(*grpc.Server, string) - // AddGlobalServerOptions adds an array of ServerOption that will be - // effective globally for newly created servers. The priority will be: 1. - // user-provided; 2. this method; 3. default values. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ AddGlobalServerOptions any // func(opt ...ServerOption) - // ClearGlobalServerOptions clears the array of extra ServerOption. This - // method is useful in testing and benchmarking. - // -@@ -88,14 +92,14 @@ var ( - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ AddGlobalDialOptions any // func(opt ...DialOption) - // DisableGlobalDialOptions returns a DialOption that prevents the - // ClientConn from applying the global DialOptions (set via - // AddGlobalDialOptions). - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ DisableGlobalDialOptions any // func() grpc.DialOption - // ClearGlobalDialOptions clears the array of extra DialOption. This - // method is useful in testing and benchmarking. - // -@@ -104,23 +108,26 @@ var ( - ClearGlobalDialOptions func() - // JoinDialOptions combines the dial options passed as arguments into a - // single dial option. -- JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption - // JoinServerOptions combines the server options passed as arguments into a - // single server option. -- JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption - - // WithBinaryLogger returns a DialOption that specifies the binary logger - // for a ClientConn. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption - // BinaryLogger returns a ServerOption that can set the binary logger for a - // server. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ BinaryLogger any // func(binarylog.Logger) grpc.ServerOption -+ -+ // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn -+ SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) - - // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using - // the provided xds bootstrap config instead of the global configuration from -@@ -131,7 +138,7 @@ var ( - // - // This function should ONLY be used for testing and may not work with some - // other features, including the CSDS service. -- NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) - - // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster - // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -@@ -163,7 +170,11 @@ var ( - UnregisterRBACHTTPFilterForTesting func() - - // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -- ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+ ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) -+ -+ // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra -+ // metadata to RPCs. -+ GRPCResolverSchemeExtraMetadata string = "xds" - ) - - // HealthChecker defines the signature of the client-side LB channel health checking function. -@@ -174,7 +185,7 @@ var ( - // - // The health checking protocol is defined at: - // https://github.com/grpc/grpc/blob/master/doc/health-checking.md --type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error - - const ( - // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index b0ead4f5..4cf85cad 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Err(c, fmt.Sprintf(format, a...)) - } - -@@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { - - // Details returns a slice of details messages attached to the status. - // If a detail cannot be decoded, the error is returned in place of the detail. --func (s *Status) Details() []interface{} { -+func (s *Status) Details() []any { - if s == nil || s.s == nil { - return nil - } -- details := make([]interface{}, 0, len(s.s.Details)) -+ details := make([]any, 0, len(s.s.Details)) - for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -index efcb7f3e..804be887 100644 ---- a/vendor/google.golang.org/grpc/resolver/map.go -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -20,7 +20,7 @@ package resolver - - type addressMapEntry struct { - addr Address -- value interface{} -+ value any - } - - // AddressMap is a map of addresses to arbitrary values taking into account -@@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { - } - - // Get returns the value for the address in the map, if present. --func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+func (a *AddressMap) Get(addr Address) (value any, ok bool) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { - } - - // Set updates or adds the value to the address in the map. --func (a *AddressMap) Set(addr Address, value interface{}) { -+func (a *AddressMap) Set(addr Address, value any) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { - } - - // Values returns a slice of all current map values. --func (a *AddressMap) Values() []interface{} { -- ret := make([]interface{}, 0, a.Len()) -+func (a *AddressMap) Values() []any { -+ ret := make([]any, 0, a.Len()) - for _, entryList := range a.m { - for _, entry := range entryList { - ret = append(ret, entry.value) -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -index 353c10b6..11384e22 100644 ---- a/vendor/google.golang.org/grpc/resolver/resolver.go -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -77,25 +77,6 @@ func GetDefaultScheme() string { - return defaultScheme - } - --// AddressType indicates the address type returned by name resolution. --// --// Deprecated: use Attributes in Address instead. --type AddressType uint8 -- --const ( -- // Backend indicates the address is for a backend server. -- // -- // Deprecated: use Attributes in Address instead. -- Backend AddressType = iota -- // GRPCLB indicates the address is for a grpclb load balancer. -- // -- // Deprecated: to select the GRPCLB load balancing policy, use a service -- // config with a corresponding loadBalancingConfig. To supply balancer -- // addresses to the GRPCLB load balancing policy, set State.Attributes -- // using balancer/grpclb/state.Set. -- GRPCLB --) -- - // Address represents a server the client connects to. - // - // # Experimental -@@ -111,9 +92,6 @@ type Address struct { - // the address, instead of the hostname from the Dial target string. In most cases, - // this should not be set. - // -- // If Type is GRPCLB, ServerName should be the name of the remote load -- // balancer, not the name of the backend. -- // - // WARNING: ServerName must only be populated with trusted values. It - // is insecure to populate it with data from untrusted inputs since untrusted - // values could be used to bypass the authority checks performed by TLS. -@@ -126,27 +104,29 @@ type Address struct { - // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attributes do not affect SubConn - // creation, connection establishment, handshaking, etc. -- BalancerAttributes *attributes.Attributes -- -- // Type is the type of this address. - // -- // Deprecated: use Attributes instead. -- Type AddressType -+ // Deprecated: when an Address is inside an Endpoint, this field should not -+ // be used, and it will eventually be removed entirely. -+ BalancerAttributes *attributes.Attributes - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // - // Deprecated: use Attributes instead. -- Metadata interface{} -+ Metadata any - } - - // Equal returns whether a and o are identical. Metadata is compared directly, - // not with any recursive introspection. -+// -+// This method compares all fields of the address. When used to tell apart -+// addresses during subchannel creation or connection establishment, it might be -+// more appropriate for the caller to implement custom equality logic. - func (a Address) Equal(o Address) bool { - return a.Addr == o.Addr && a.ServerName == o.ServerName && - a.Attributes.Equal(o.Attributes) && - a.BalancerAttributes.Equal(o.BalancerAttributes) && -- a.Type == o.Type && a.Metadata == o.Metadata -+ a.Metadata == o.Metadata - } - - // String returns JSON formatted string representation of the address. -@@ -190,11 +170,37 @@ type BuildOptions struct { - Dialer func(context.Context, string) (net.Conn, error) - } - -+// An Endpoint is one network endpoint, or server, which may have multiple -+// addresses with which it can be accessed. -+type Endpoint struct { -+ // Addresses contains a list of addresses used to access this endpoint. -+ Addresses []Address -+ -+ // Attributes contains arbitrary data about this endpoint intended for -+ // consumption by the LB policy. -+ Attributes *attributes.Attributes -+} -+ - // State contains the current Resolver state relevant to the ClientConn. - type State struct { - // Addresses is the latest set of resolved addresses for the target. -+ // -+ // If a resolver sets Addresses but does not set Endpoints, one Endpoint -+ // will be created for each Address before the State is passed to the LB -+ // policy. The BalancerAttributes of each entry in Addresses will be set -+ // in Endpoints.Attributes, and be cleared in the Endpoint's Address's -+ // BalancerAttributes. -+ // -+ // Soon, Addresses will be deprecated and replaced fully by Endpoints. - Addresses []Address - -+ // Endpoints is the latest set of resolved endpoints for the target. -+ // -+ // If a resolver produces a State containing Endpoints but not Addresses, -+ // it must take care to ensure the LB policies it selects will support -+ // Endpoints. -+ Endpoints []Endpoint -+ - // ServiceConfig contains the result from parsing the latest service - // config. If it is nil, it indicates no service config is present or the - // resolver does not provide service configs. -@@ -254,20 +260,7 @@ type ClientConn interface { - // target does not contain a scheme or if the parsed scheme is not registered - // (i.e. no corresponding resolver available to resolve the endpoint), we will - // apply the default scheme, and will attempt to reparse it. --// --// Examples: --// --// - "dns://some_authority/foo.bar" --// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} --// - "foo.bar" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} --// - "unknown_scheme://authority/endpoint" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} - type Target struct { -- // Deprecated: use URL.Scheme instead. -- Scheme string -- // Deprecated: use URL.Host instead. -- Authority string - // URL contains the parsed dial target with an optional default scheme added - // to it if the original dial target contained no scheme or contained an - // unregistered scheme. Any query params specified in the original dial -@@ -321,10 +314,3 @@ type Resolver interface { - // Close closes the resolver. - Close() - } -- --// UnregisterForTesting removes the resolver builder with the given scheme from the --// resolver map. --// This function is for testing only. --func UnregisterForTesting(scheme string) { -- delete(m, scheme) --} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index bcf2e4d8..a93360ef 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Error(c, fmt.Sprintf(format, a...)) - } - -@@ -99,25 +99,27 @@ func FromError(err error) (s *Status, ok bool) { - } - type grpcstatus interface{ GRPCStatus() *Status } - if gs, ok := err.(grpcstatus); ok { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error has status nil, which maps to codes.OK. There - // is no sensible behavior for this, so we turn it into - // an error with codes.Unknown and discard the existing - // status. - return New(codes.Unknown, err.Error()), false - } -- return gs.GRPCStatus(), true -+ return grpcStatus, true - } - var gs grpcstatus - if errors.As(err, &gs) { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error wraps an error that has status nil, which maps - // to codes.OK. There is no sensible behavior for this, - // so we turn it into an error with codes.Unknown and - // discard the existing status. - return New(codes.Unknown, err.Error()), false - } -- p := gs.GRPCStatus().Proto() -+ p := grpcStatus.Proto() - p.Message = err.Error() - return status.FromProto(p), true - } -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index ebf6c652..722a7b41 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -- return o.marshal(m) -+ return o.marshal(nil, m) -+} -+ -+// MarshalAppend appends the textproto format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { -+ return o.marshal(b, m) - } - - // marshal is a centralized function that all marshal operations go through. - // For profiling purposes, avoid changing the name of this function or - // introducing other code paths for marshal that do not go through this. --func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { - var delims = [2]byte{'{', '}'} - - if o.Multiline && o.Indent == "" { -@@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - o.Resolver = protoregistry.GlobalTypes - } - -- internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) - if err != nil { - return nil, err - } -@@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - // Treat nil message interface as an empty message, - // in which case there is nothing to output. - if m == nil { -- return []byte{}, nil -+ return b, nil - } - - enc := encoder{internalEnc, o} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -index da289ccc..cf7aed77 100644 ---- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -53,8 +53,10 @@ type encoderState struct { - // If outputASCII is true, strings will be serialized in such a way that - // multi-byte UTF-8 sequences are escaped. This property ensures that the - // overall output is ASCII (as opposed to UTF-8). --func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -- e := &Encoder{} -+func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{ -+ encoderState: encoderState{out: buf}, -+ } - if len(indent) > 0 { - if strings.Trim(indent, " \t") != "" { - return nil, errors.New("indent may only be composed of space and tab characters") -@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { - // WriteInt writes out the given signed integer value. - func (e *Encoder) WriteInt(n int64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatInt(n, 10)...) -+ e.out = strconv.AppendInt(e.out, n, 10) - } - - // WriteUint writes out the given unsigned integer value. - func (e *Encoder) WriteUint(n uint64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatUint(n, 10)...) -+ e.out = strconv.AppendUint(e.out, n, 10) - } - - // WriteLiteral writes out the given string as a literal value without quotes. -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 5c0e8f73..136f1b21 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -183,13 +183,58 @@ const ( - // Field names for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+ ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" -+ ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -+ ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -540,6 +585,7 @@ const ( - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_Targets_field_name protoreflect.Name = "targets" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -552,6 +598,7 @@ const ( - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -567,6 +614,7 @@ const ( - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index 3bc71013..e0f75fea 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -32,6 +32,7 @@ const ( - Type_Options_field_name protoreflect.Name = "options" - Type_SourceContext_field_name protoreflect.Name = "source_context" - Type_Syntax_field_name protoreflect.Name = "syntax" -+ Type_Edition_field_name protoreflect.Name = "edition" - - Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" - Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -@@ -39,6 +40,7 @@ const ( - Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" - Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" - Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+ Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" - ) - - // Field numbers for google.protobuf.Type. -@@ -49,6 +51,7 @@ const ( - Type_Options_field_number protoreflect.FieldNumber = 4 - Type_SourceContext_field_number protoreflect.FieldNumber = 5 - Type_Syntax_field_number protoreflect.FieldNumber = 6 -+ Type_Edition_field_number protoreflect.FieldNumber = 7 - ) - - // Names for google.protobuf.Field. -@@ -121,12 +124,14 @@ const ( - Enum_Options_field_name protoreflect.Name = "options" - Enum_SourceContext_field_name protoreflect.Name = "source_context" - Enum_Syntax_field_name protoreflect.Name = "syntax" -+ Enum_Edition_field_name protoreflect.Name = "edition" - - Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" - Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" - Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" - Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" - Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+ Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" - ) - - // Field numbers for google.protobuf.Enum. -@@ -136,6 +141,7 @@ const ( - Enum_Options_field_number protoreflect.FieldNumber = 3 - Enum_SourceContext_field_number protoreflect.FieldNumber = 4 - Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+ Enum_Edition_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.EnumValue. -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -index 33745ed0..dea522e1 100644 ---- a/vendor/google.golang.org/protobuf/internal/order/order.go -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -33,7 +33,7 @@ var ( - return !inOneof(ox) && inOneof(oy) - } - // Fields in disjoint oneof sets are sorted by declaration index. -- if ox != nil && oy != nil && ox != oy { -+ if inOneof(ox) && inOneof(oy) && ox != oy { - return ox.Index() < oy.Index() - } - // Fields sorted by field number. -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index f7014cd5..0999f29d 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 30 -+ Minor = 31 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -index 554b9c6c..f1692b49 100644 ---- a/vendor/google.golang.org/protobuf/proto/size.go -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore - } - - func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - if fd.IsPacked() && list.Len() > 0 { - content := 0 - for i, llen := 0, list.Len(); i < llen; i++ { - content += o.sizeSingular(num, fd.Kind(), list.Get(i)) - } -- return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ return sizeTag + protowire.SizeBytes(content) - } - - for i, llen := 0, list.Len(); i < llen; i++ { -- size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) - } - return size - } - - func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -- size += protowire.SizeTag(num) -+ size += sizeTag - size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) - return true - }) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 54ce326d..717b106f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) -+ case 19: -+ b = p.appendRepeatedField(b, "targets", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - switch (*p)[0] { - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ case 2: -+ b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 3: -+ b = p.appendSingularField(b, "verification", nil) - } - return b - } -@@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - } - return b - } -+ -+func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "number", nil) -+ case 2: -+ b = p.appendSingularField(b, "full_name", nil) -+ case 3: -+ b = p.appendSingularField(b, "type", nil) -+ case 4: -+ b = p.appendSingularField(b, "is_repeated", nil) -+ case 5: -+ b = p.appendSingularField(b, "reserved", nil) -+ case 6: -+ b = p.appendSingularField(b, "repeated", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index dac5671d..04c00f73 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,64 @@ import ( - sync "sync" - ) - -+// The verification state of the extension range. -+type ExtensionRangeOptions_VerificationState int32 -+ -+const ( -+ // All the extensions of the range must be declared. -+ ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 -+ ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 -+) -+ -+// Enum value maps for ExtensionRangeOptions_VerificationState. -+var ( -+ ExtensionRangeOptions_VerificationState_name = map[int32]string{ -+ 0: "DECLARATION", -+ 1: "UNVERIFIED", -+ } -+ ExtensionRangeOptions_VerificationState_value = map[string]int32{ -+ "DECLARATION": 0, -+ "UNVERIFIED": 1, -+ } -+) -+ -+func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { -+ p := new(ExtensionRangeOptions_VerificationState) -+ *p = x -+ return p -+} -+ -+func (x ExtensionRangeOptions_VerificationState) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = ExtensionRangeOptions_VerificationState(num) -+ return nil -+} -+ -+// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. -+func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ - type FieldDescriptorProto_Type int32 - - const ( -@@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -288,7 +346,13 @@ type FieldOptions_CType int32 - - const ( - // Default mode. -- FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_STRING FieldOptions_CType = 0 -+ // The option [ctype=CORD] may be applied to a non-repeated field of type -+ // "bytes". It indicates that in C++, the data should be stored in a Cord -+ // instead of a string. For very large strings, this may reduce memory -+ // fragmentation. It may also allow better performance when parsing from a -+ // Cord, or when parsing with aliasing enabled, as the parsed Cord may then -+ // alias the original buffer. - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 - ) -@@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -442,11 +506,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -526,11 +590,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -588,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -652,11 +716,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -1015,7 +1079,21 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` --} -+ // go/protobuf-stripping-extension-declarations -+ // Like Metadata, but we use a repeated field to hold all extension -+ // declarations. This should avoid the size increases of transforming a large -+ // extension range into small ranges in generated binaries. -+ Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // The verification state of the range. -+ // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // are marked as UNVERIFIED. -+ Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` -+} -+ -+// Default values for ExtensionRangeOptions fields. -+const ( -+ Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED -+) - - func (x *ExtensionRangeOptions) Reset() { - *x = ExtensionRangeOptions{} -@@ -1056,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption - return nil - } - -+func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { -+ if x != nil { -+ return x.Declaration -+ } -+ return nil -+} -+ -+func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { -+ if x != nil && x.Verification != nil { -+ return *x.Verification -+ } -+ return Default_ExtensionRangeOptions_Verification -+} -+ - // Describes a field within a message. - type FieldDescriptorProto struct { - state protoimpl.MessageState -@@ -2046,8 +2138,10 @@ type FieldOptions struct { - - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific -- // options below. This option is not yet implemented in the open source -- // release -- sorry, we'll try to include it in a future version! -+ // options below. This option is only implemented to support use of -+ // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of -+ // type "bytes" in the open source release -- sorry, we'll try to include -+ // other types in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly -@@ -2111,9 +2205,11 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2224,6 +2320,7 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target -@@ -2231,6 +2328,13 @@ func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - return FieldOptions_TARGET_TYPE_UNKNOWN - } - -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets -+ } -+ return nil -+} -+ - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2960,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { - return 0 - } - -+type ExtensionRangeOptions_Declaration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The extension number declared within the extension range. -+ Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` -+ // The fully-qualified name of the extension field. There must be a leading -+ // dot in front of the full name. -+ FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` -+ // The fully-qualified type name of the extension field. Unlike -+ // Metadata.type, Declaration.type must have a leading dot for messages -+ // and enums. -+ Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -+ // Deprecated. Please use "repeated". -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` -+ // If true, indicates that the number is reserved in the extension range, -+ // and any extension field with the number will fail to compile. Set this -+ // when a declared extension field is deleted. -+ Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` -+ // If true, indicates that the extension must be defined as repeated. -+ // Otherwise the extension must be defined as optional. -+ Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions_Declaration) Reset() { -+ *x = ExtensionRangeOptions_Declaration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions_Declaration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ 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 ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetFullName() string { -+ if x != nil && x.FullName != nil { -+ return *x.FullName -+ } -+ return "" -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetType() string { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return "" -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -+ if x != nil && x.IsRepeated != nil { -+ return *x.IsRepeated -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { -+ if x != nil && x.Reserved != nil { -+ return *x.Reserved -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { -+ if x != nil && x.Repeated != nil { -+ return *x.Repeated -+ } -+ return false -+} -+ - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // -@@ -2978,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2991,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3038,7 +3244,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3051,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3182,7 +3388,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3195,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3269,7 +3475,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3282,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3436,264 +3642,296 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -- 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -- 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -- 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -+ 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -+ 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -+ 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -+ 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -+ 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -+ 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -+ 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -- 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -- 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -- 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -- 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -- 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -- 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -- 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -- 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -- 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -- 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -- 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -- 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -- 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -- 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -- 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -- 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -- 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -- 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -- 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -- 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -- 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -- 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -- 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -+ 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -+ 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -+ 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -+ 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -+ 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -+ 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -+ 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -+ 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -+ 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -+ 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -+ 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -+ 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -+ 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -+ 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -+ 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -+ 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -+ 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -+ 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -+ 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -+ 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -+ 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -+ 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -+ 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -+ 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -+ 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -+ 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -+ 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -+ 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -+ 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -- 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -- 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -- 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -- 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -- 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -- 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -- 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -- 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -- 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -- 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -- 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -- 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -- 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -- 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -- 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -- 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -- 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -- 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -- 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -- 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -- 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -- 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -- 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -- 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -- 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -- 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -- 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -- 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -- 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -- 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -- 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -- 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -- 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -- 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -- 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -- 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -- 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -- 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -- 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -- 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -- 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -- 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -- 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -- 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -- 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -- 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -- 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -- 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -- 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -- 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -- 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -- 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -- 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -- 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -- 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -- 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -- 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -- 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -- 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -- 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -- 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -- 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -- 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -- 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -- 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -+ 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -+ 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -+ 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -+ 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -+ 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, -+ 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, -+ 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, -+ 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, -+ 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, -+ 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, -+ 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, -+ 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, -+ 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, -+ 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, -+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -- 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -- 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -- 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -- 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -- 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -- 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -- 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -- 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -- 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -- 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -- 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -+ 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -+ 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -+ 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -+ 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -+ 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -+ 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -+ 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -+ 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -+ 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -+ 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -+ 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -+ 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -+ 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -+ 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -+ 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -+ 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -+ 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -+ 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -@@ -3885,98 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 19: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+ (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 20: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 46, // [46:46] is the sub-list for method output_type -- 46, // [46:46] is the sub-list for method input_type -- 46, // [46:46] is the sub-list for extension type_name -- 46, // [46:46] is the sub-list for extension extendee -- 0, // [0:46] is the sub-list for field type_name -+ 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 49, // [49:49] is the sub-list for method output_type -+ 49, // [49:49] is the sub-list for method input_type -+ 49, // [49:49] is the sub-list for extension type_name -+ 49, // [49:49] is the sub-list for extension extendee -+ 0, // [0:49] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4280,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4292,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4304,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*UninterpretedOption_NamePart); i { - case 0: - return &v.state - case 1: -@@ -4316,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4333,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 9, -- NumMessages: 27, -+ NumEnums: 10, -+ NumMessages: 28, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index a6c7a33f..580b232f 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -142,39 +142,39 @@ import ( - // - // Example 2: Pack and unpack a message in Java. - // --// Foo foo = ...; --// Any any = Any.pack(foo); --// ... --// if (any.is(Foo.class)) { --// foo = any.unpack(Foo.class); --// } --// // or ... --// if (any.isSameTypeAs(Foo.getDefaultInstance())) { --// foo = any.unpack(Foo.getDefaultInstance()); --// } --// --// Example 3: Pack and unpack a message in Python. --// --// foo = Foo(...) --// any = Any() --// any.Pack(foo) --// ... --// if any.Is(Foo.DESCRIPTOR): --// any.Unpack(foo) --// ... --// --// Example 4: Pack and unpack a message in Go --// --// foo := &pb.Foo{...} --// any, err := anypb.New(foo) --// if err != nil { --// ... --// } --// ... --// foo := &pb.Foo{} --// if err := any.UnmarshalTo(foo); err != nil { --// ... --// } -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } - // - // The pack methods provided by protobuf library will by default use - // 'type.googleapis.com/full.type.name' as the type URL and the unpack -@@ -182,8 +182,8 @@ import ( - // in the type URL, for example "foo.bar.com/x/y.z" will yield type - // name "y.z". - // --// # JSON --// -+// JSON -+// ==== - // The JSON representation of an `Any` value uses the regular - // representation of the deserialized, embedded message, with an - // additional field `@type` which contains the type URL. Example: -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -index 61f69fc1..81511a33 100644 ---- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -167,7 +167,7 @@ import ( - // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - // the Joda Time's [`ISODateTimeFormat.dateTime()`]( --// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - // ) to obtain a formatter capable of generating timestamps in this format. - type Timestamp struct { - state protoimpl.MessageState -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 259f429d..df3f5df3 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -46,8 +46,8 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 --# github.com/containerd/containerd v1.6.23 --## explicit; go 1.18 -+# github.com/containerd/containerd v1.7.11 -+## explicit; go 1.19 - github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 -@@ -171,7 +171,7 @@ github.com/pkg/errors - # github.com/safchain/ethtool v0.3.0 - ## explicit; go 1.16 - github.com/safchain/ethtool --# github.com/sirupsen/logrus v1.9.0 -+# github.com/sirupsen/logrus v1.9.3 - ## explicit; go 1.13 - github.com/sirupsen/logrus - # github.com/vishvananda/netlink v1.2.1-beta.2 -@@ -188,7 +188,7 @@ go.opencensus.io/internal - go.opencensus.io/trace - go.opencensus.io/trace/internal - go.opencensus.io/trace/tracestate --# golang.org/x/mod v0.9.0 -+# golang.org/x/mod v0.11.0 - ## explicit; go 1.17 - golang.org/x/mod/semver - # golang.org/x/net v0.17.0 -@@ -226,18 +226,18 @@ golang.org/x/text/internal/utf8internal - golang.org/x/text/language - golang.org/x/text/runes - golang.org/x/text/transform --# golang.org/x/tools v0.7.0 -+# golang.org/x/tools v0.10.0 - ## explicit; go 1.18 - golang.org/x/tools/cmd/stringer - golang.org/x/tools/go/ast/inspector - golang.org/x/tools/go/gcexportdata - golang.org/x/tools/go/internal/packagesdriver - golang.org/x/tools/go/packages --golang.org/x/tools/go/types/objectpath - golang.org/x/tools/internal/event - golang.org/x/tools/internal/event/core - golang.org/x/tools/internal/event/keys - golang.org/x/tools/internal/event/label -+golang.org/x/tools/internal/event/tag - golang.org/x/tools/internal/gcimporter - golang.org/x/tools/internal/gocommand - golang.org/x/tools/internal/packagesinternal -@@ -245,11 +245,11 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+# google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 - ## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.56.3 --## explicit; go 1.17 -+# google.golang.org/grpc v1.58.3 -+## explicit; go 1.19 - google.golang.org/grpc/attributes - google.golang.org/grpc/codes - google.golang.org/grpc/connectivity -@@ -262,7 +262,7 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.30.0 -+# google.golang.org/protobuf v1.31.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-28/patches/0004-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch b/projects/containernetworking/plugins/1-28/patches/0004-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch deleted file mode 100644 index a162e14143..0000000000 --- a/projects/containernetworking/plugins/1-28/patches/0004-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch +++ /dev/null @@ -1,7533 +0,0 @@ -From 3bdc34034807f7e07a187cbed77922e1ce67ee8d Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Fri, 22 Mar 2024 18:57:08 +0000 -Subject: [PATCH] Bump protobuf to 1.33.0 to resolve CVE-2024-24786 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 2 +- - go.sum | 4 +- - .../protobuf/encoding/prototext/decode.go | 8 +- - .../protobuf/encoding/prototext/encode.go | 4 +- - .../protobuf/encoding/protowire/wire.go | 28 +- - .../protobuf/internal/descfmt/stringer.go | 183 +- - .../internal/editiondefaults/defaults.go | 12 + - .../editiondefaults/editions_defaults.binpb | 4 + - .../protobuf/internal/filedesc/desc.go | 102 +- - .../protobuf/internal/filedesc/desc_init.go | 52 + - .../protobuf/internal/filedesc/desc_lazy.go | 28 + - .../protobuf/internal/filedesc/editions.go | 142 + - .../protobuf/internal/genid/descriptor_gen.go | 364 ++- - .../internal/genid/go_features_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 5 + - .../protobuf/internal/genid/type_gen.go | 38 + - .../protobuf/internal/impl/codec_extension.go | 22 +- - .../protobuf/internal/impl/codec_gen.go | 113 +- - .../protobuf/internal/impl/codec_tables.go | 2 +- - .../protobuf/internal/impl/legacy_message.go | 19 +- - .../protobuf/internal/impl/message.go | 17 +- - .../internal/impl/message_reflect_field.go | 2 +- - .../protobuf/internal/impl/pointer_reflect.go | 36 + - .../protobuf/internal/impl/pointer_unsafe.go | 40 + - .../protobuf/internal/strs/strings.go | 2 +- - ...ings_unsafe.go => strings_unsafe_go120.go} | 4 +- - .../internal/strs/strings_unsafe_go121.go | 74 + - .../protobuf/internal/version/version.go | 2 +- - .../protobuf/proto/decode.go | 2 +- - .../google.golang.org/protobuf/proto/doc.go | 58 +- - .../protobuf/proto/encode.go | 2 +- - .../protobuf/proto/extension.go | 2 +- - .../google.golang.org/protobuf/proto/merge.go | 2 +- - .../google.golang.org/protobuf/proto/proto.go | 18 +- - .../protobuf/reflect/protodesc/desc.go | 29 +- - .../protobuf/reflect/protodesc/desc_init.go | 56 + - .../reflect/protodesc/desc_resolve.go | 4 +- - .../reflect/protodesc/desc_validate.go | 6 +- - .../protobuf/reflect/protodesc/editions.go | 148 + - .../protobuf/reflect/protodesc/proto.go | 18 +- - .../protobuf/reflect/protoreflect/proto.go | 85 +- - .../reflect/protoreflect/source_gen.go | 64 +- - .../protobuf/reflect/protoreflect/type.go | 44 +- - .../protobuf/reflect/protoreflect/value.go | 24 +- - .../reflect/protoreflect/value_equal.go | 8 +- - .../reflect/protoreflect/value_union.go | 44 +- - ...{value_unsafe.go => value_unsafe_go120.go} | 4 +- - .../protoreflect/value_unsafe_go121.go | 87 + - .../reflect/protoregistry/registry.go | 24 +- - .../types/descriptorpb/descriptor.pb.go | 2475 ++++++++++++----- - .../types/gofeaturespb/go_features.pb.go | 177 ++ - .../types/gofeaturespb/go_features.proto | 28 + - .../protobuf/types/known/anypb/any.pb.go | 3 +- - vendor/modules.txt | 6 +- - 54 files changed, 3699 insertions(+), 1059 deletions(-) - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/editions.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go - rename vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe.go => strings_unsafe_go120.go} (96%) - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go - rename vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe.go => value_unsafe_go120.go} (97%) - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto - -diff --git a/go.mod b/go.mod -index 68933e8f..42fc3a42 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,6 @@ require ( - golang.org/x/tools v0.10.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -- google.golang.org/protobuf v1.31.0 // indirect -+ google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 58733ad0..7eb78644 100644 ---- a/go.sum -+++ b/go.sum -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= --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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -index 4921b2d4..a45f112b 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -21,7 +21,7 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - --// Unmarshal reads the given []byte into the given proto.Message. -+// Unmarshal reads the given []byte into the given [proto.Message]. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func Unmarshal(b []byte, m proto.Message) error { - return UnmarshalOptions{}.Unmarshal(b, m) -@@ -51,7 +51,7 @@ type UnmarshalOptions struct { - } - } - --// Unmarshal reads the given []byte and populates the given proto.Message -+// Unmarshal reads the given []byte and populates the given [proto.Message] - // using options in the UnmarshalOptions object. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -@@ -739,7 +739,9 @@ func (d decoder) skipValue() error { - case text.ListClose: - return nil - case text.MessageOpen: -- return d.skipMessageValue() -+ if err := d.skipMessageValue(); err != nil { -+ return err -+ } - default: - // Skip items. This will not validate whether skipped values are - // of the same type or not, same behavior as C++ -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index 722a7b41..95967e81 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -33,7 +33,7 @@ func Format(m proto.Message) string { - return MarshalOptions{Multiline: true}.Format(m) - } - --// Marshal writes the given proto.Message in textproto format using default -+// Marshal writes the given [proto.Message] in textproto format using default - // options. Do not depend on the output being stable. It may change over time - // across different versions of the program. - func Marshal(m proto.Message) ([]byte, error) { -@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string { - return string(b) - } - --// Marshal writes the given proto.Message in textproto format using options in -+// Marshal writes the given [proto.Message] in textproto format using options in - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -index f4b4686c..e942bc98 100644 ---- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -6,7 +6,7 @@ - // See https://protobuf.dev/programming-guides/encoding. - // - // For marshaling and unmarshaling entire protobuf messages, --// use the "google.golang.org/protobuf/proto" package instead. -+// use the [google.golang.org/protobuf/proto] package instead. - package protowire - - import ( -@@ -87,7 +87,7 @@ func ParseError(n int) error { - - // ConsumeField parses an entire field record (both tag and value) and returns - // the field number, the wire type, and the total length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - // - // The total length includes the tag header and the end group marker (if the - // field is a group). -@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) { - } - - // ConsumeFieldValue parses a field value and returns its length. --// This assumes that the field Number and wire Type have already been parsed. --// This returns a negative length upon an error (see ParseError). -+// This assumes that the field [Number] and wire [Type] have already been parsed. -+// This returns a negative length upon an error (see [ParseError]). - // - // When parsing a group, the length includes the end group marker and - // the end group is verified to match the starting field number. -@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte { - } - - // ConsumeTag parses b as a varint-encoded tag, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeTag(b []byte) (Number, Type, int) { - v, n := ConsumeVarint(b) - if n < 0 { -@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte { - } - - // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - if len(b) <= 0 { -@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte { - } - - // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, errCodeTruncated -@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte { - } - - // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, errCodeTruncated -@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte { - } - - // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeBytes(b []byte) (v []byte, n int) { - m, n := ConsumeVarint(b) - if n < 0 { -@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte { - } - - // ConsumeString parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeString(b []byte) (v string, n int) { - bb, n := ConsumeBytes(b) - return string(bb), n -@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte { - // ConsumeGroup parses b as a group value until the trailing end group marker, - // and verifies that the end marker matches the provided num. The value v - // does not contain the end marker, while the length does contain the end marker. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeGroup(num Number, b []byte) (v []byte, n int) { - n = ConsumeFieldValue(num, StartGroupType, b) - if n < 0 { -@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int { - return n + SizeTag(num) - } - --// DecodeTag decodes the field Number and wire Type from its unified form. --// The Number is -1 if the decoded field number overflows int32. -+// DecodeTag decodes the field [Number] and wire [Type] from its unified form. -+// The [Number] is -1 if the decoded field number overflows int32. - // Other than overflow, this does not check for field number validity. - func DecodeTag(x uint64) (Number, Type) { - // NOTE: MessageSet allows for larger field numbers than normal. -@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) { - return Number(x >> 3), Type(x & 7) - } - --// EncodeTag encodes the field Number and wire Type into its unified form. -+// EncodeTag encodes the field [Number] and wire [Type] into its unified form. - func EncodeTag(num Number, typ Type) uint64 { - return uint64(num)<<3 | uint64(typ&7) - } -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -index db5248e1..a45625c8 100644 ---- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - case protoreflect.FileImports: - for i := 0; i < vs.Len(); i++ { - var rs records -- rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ rv := reflect.ValueOf(vs.Get(i)) -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPublic"), "IsPublic"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ }...) - ss = append(ss, "{"+rs.Join()+"}") - } - return start + joinStrings(ss, allowMulti) + end -@@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - for i := 0; i < vs.Len(); i++ { - m := reflect.ValueOf(vs).MethodByName("Get") - v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -- ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil)) - } - return start + joinStrings(ss, allowMulti && isEnumValue) + end - } - } - --// descriptorAccessors is a list of accessors to print for each descriptor. --// --// Do not print all accessors since some contain redundant information, --// while others are pointers that we do not want to follow since the descriptor --// is actually a cyclic graph. --// --// Using a list allows us to print the accessors in a sensible order. --var descriptorAccessors = map[reflect.Type][]string{ -- reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -- reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -- reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -- reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -- reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -- reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -- reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -- reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+type methodAndName struct { -+ method reflect.Value -+ name string - } - - func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -- io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil)) - } --func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ -+func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { -+ return formatDescOpt(t, isRoot, allowMulti, record) -+} -+ -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { - rv := reflect.ValueOf(t) - rt := rv.MethodByName("ProtoType").Type().In(0) - -@@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - } - - _, isFile := t.(protoreflect.FileDescriptor) -- rs := records{allowMulti: allowMulti} -+ rs := records{ -+ allowMulti: allowMulti, -+ record: record, -+ } - if t.IsPlaceholder() { - if isFile { -- rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } else { -- rs.Append(rv, "FullName", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("FullName"), "FullName"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } - } else { - switch { - case isFile: -- rs.Append(rv, "Syntax") -+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"}) - case isRoot: -- rs.Append(rv, "Syntax", "FullName") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Syntax"), "Syntax"}, -+ {rv.MethodByName("FullName"), "FullName"}, -+ }...) - default: -- rs.Append(rv, "Name") -+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"}) - } - switch t := t.(type) { - case protoreflect.FieldDescriptor: -- for _, s := range descriptorAccessors[rt] { -- switch s { -+ accessors := []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ {rv.MethodByName("Cardinality"), "Cardinality"}, -+ {rv.MethodByName("Kind"), "Kind"}, -+ {rv.MethodByName("HasJSONName"), "HasJSONName"}, -+ {rv.MethodByName("JSONName"), "JSONName"}, -+ {rv.MethodByName("HasPresence"), "HasPresence"}, -+ {rv.MethodByName("IsExtension"), "IsExtension"}, -+ {rv.MethodByName("IsPacked"), "IsPacked"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ {rv.MethodByName("IsList"), "IsList"}, -+ {rv.MethodByName("IsMap"), "IsMap"}, -+ {rv.MethodByName("MapKey"), "MapKey"}, -+ {rv.MethodByName("MapValue"), "MapValue"}, -+ {rv.MethodByName("HasDefault"), "HasDefault"}, -+ {rv.MethodByName("Default"), "Default"}, -+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"}, -+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"}, -+ {rv.MethodByName("Message"), "Message"}, -+ {rv.MethodByName("Enum"), "Enum"}, -+ } -+ for _, s := range accessors { -+ switch s.name { - case "MapKey": - if k := t.MapKey(); k != nil { - rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -@@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - if v := t.MapValue(); v != nil { - switch v.Kind() { - case protoreflect.EnumKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())}) - case protoreflect.MessageKind, protoreflect.GroupKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())}) - default: -- rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()}) - } - } - case "ContainingOneof": - if od := t.ContainingOneof(); od != nil { -- rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())}) - } - case "ContainingMessage": - if t.IsExtension() { -- rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())}) - } - case "Message": - if !t.IsMap() { -@@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - ss = append(ss, string(fs.Get(i).Name())) - } - if len(ss) > 0 { -- rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) - } -- default: -- rs.Append(rv, descriptorAccessors[rt]...) -+ -+ case protoreflect.FileDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("Imports"), "Imports"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ {rv.MethodByName("Services"), "Services"}, -+ }...) -+ -+ case protoreflect.MessageDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"}, -+ {rv.MethodByName("Fields"), "Fields"}, -+ {rv.MethodByName("Oneofs"), "Oneofs"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, -+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ }...) -+ -+ case protoreflect.EnumDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Values"), "Values"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ }...) -+ -+ case protoreflect.EnumValueDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ }...) -+ -+ case protoreflect.ServiceDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Methods"), "Methods"}, -+ }...) -+ -+ case protoreflect.MethodDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Input"), "Input"}, -+ {rv.MethodByName("Output"), "Output"}, -+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, -+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, -+ }...) - } -- if rv.MethodByName("GoType").IsValid() { -- rs.Append(rv, "GoType") -+ if m := rv.MethodByName("GoType"); m.IsValid() { -+ rs.Append(rv, methodAndName{m, "GoType"}) - } - } - return start + rs.Join() + end -@@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - type records struct { - recs [][2]string - allowMulti bool -+ -+ // record is a function that will be called for every Append() or -+ // AppendRecs() call, to be used for testing with the -+ // InternalFormatDescOptForTesting function. -+ record func(string) - } - --func (rs *records) Append(v reflect.Value, accessors ...string) { -+func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { -+ if rs.record != nil { -+ rs.record(fieldName) -+ } -+ rs.recs = append(rs.recs, newRecs) -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) { - for _, a := range accessors { -+ if rs.record != nil { -+ rs.record(a.name) -+ } - var rv reflect.Value -- if m := v.MethodByName(a); m.IsValid() { -- rv = m.Call(nil)[0] -+ if a.method.IsValid() { -+ rv = a.method.Call(nil)[0] - } - if v.Kind() == reflect.Struct && !rv.IsValid() { -- rv = v.FieldByName(a) -+ rv = v.FieldByName(a.name) - } - if !rv.IsValid() { -- panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name)) - } - if _, ok := rv.Interface().(protoreflect.Value); ok { - rv = rv.MethodByName("Interface").Call(nil)[0] -@@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { - default: - s = fmt.Sprint(v) - } -- rs.recs = append(rs.recs, [2]string{a, s}) -+ rs.recs = append(rs.recs, [2]string{a.name, s}) - } - } - -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -new file mode 100644 -index 00000000..14656b65 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -@@ -0,0 +1,12 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package editiondefaults contains the binary representation of the editions -+// defaults. -+package editiondefaults -+ -+import _ "embed" -+ -+//go:embed editions_defaults.binpb -+var Defaults []byte -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -new file mode 100644 -index 00000000..18f07568 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -@@ -0,0 +1,4 @@ -+ -+  (0æ -+  (0ç -+  (0è æ(è -\ No newline at end of file -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -index 7c3689ba..8826bcf4 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -21,11 +21,26 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - -+// Edition is an Enum for proto2.Edition -+type Edition int32 -+ -+// These values align with the value of Enum in descriptor.proto which allows -+// direct conversion between the proto enum and this enum. -+const ( -+ EditionUnknown Edition = 0 -+ EditionProto2 Edition = 998 -+ EditionProto3 Edition = 999 -+ Edition2023 Edition = 1000 -+ EditionUnsupported Edition = 100000 -+) -+ - // The types in this file may have a suffix: - // • L0: Contains fields common to all descriptors (except File) and - // must be initialized up front. - // • L1: Contains fields specific to a descriptor and --// must be initialized up front. -+// must be initialized up front. If the associated proto uses Editions, the -+// Editions features must always be resolved. If not explicitly set, the -+// appropriate default must be resolved and set. - // • L2: Contains fields that are lazily initialized when constructing - // from the raw file descriptor. When constructing as a literal, the L2 - // fields must be initialized up front. -@@ -44,6 +59,7 @@ type ( - } - FileL1 struct { - Syntax protoreflect.Syntax -+ Edition Edition // Only used if Syntax == Editions - Path string - Package protoreflect.FullName - -@@ -51,12 +67,41 @@ type ( - Messages Messages - Extensions Extensions - Services Services -+ -+ EditionFeatures EditionFeatures - } - FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations - } -+ -+ EditionFeatures struct { -+ // IsFieldPresence is true if field_presence is EXPLICIT -+ // https://protobuf.dev/editions/features/#field_presence -+ IsFieldPresence bool -+ // IsFieldPresence is true if field_presence is LEGACY_REQUIRED -+ // https://protobuf.dev/editions/features/#field_presence -+ IsLegacyRequired bool -+ // IsOpenEnum is true if enum_type is OPEN -+ // https://protobuf.dev/editions/features/#enum_type -+ IsOpenEnum bool -+ // IsPacked is true if repeated_field_encoding is PACKED -+ // https://protobuf.dev/editions/features/#repeated_field_encoding -+ IsPacked bool -+ // IsUTF8Validated is true if utf_validation is VERIFY -+ // https://protobuf.dev/editions/features/#utf8_validation -+ IsUTF8Validated bool -+ // IsDelimitedEncoded is true if message_encoding is DELIMITED -+ // https://protobuf.dev/editions/features/#message_encoding -+ IsDelimitedEncoded bool -+ // IsJSONCompliant is true if json_format is ALLOW -+ // https://protobuf.dev/editions/features/#json_format -+ IsJSONCompliant bool -+ // GenerateLegacyUnmarshalJSON determines if the plugin generates the -+ // UnmarshalJSON([]byte) error method for enums. -+ GenerateLegacyUnmarshalJSON bool -+ } - ) - - func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -@@ -117,6 +162,8 @@ type ( - } - EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated -+ -+ EditionFeatures EditionFeatures - } - EnumL2 struct { - Options func() protoreflect.ProtoMessage -@@ -178,6 +225,8 @@ type ( - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ -+ EditionFeatures EditionFeatures - } - MessageL2 struct { - Options func() protoreflect.ProtoMessage -@@ -210,6 +259,8 @@ type ( - ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum protoreflect.EnumDescriptor - Message protoreflect.MessageDescriptor -+ -+ EditionFeatures EditionFeatures - } - - Oneof struct { -@@ -219,6 +270,8 @@ type ( - OneofL1 struct { - Options func() protoreflect.ProtoMessage - Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ -+ EditionFeatures EditionFeatures - } - ) - -@@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage { - } - func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } - func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } --func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } --func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } --func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } --func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) Kind() protoreflect.Kind { -+ return fd.L1.Kind -+} -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } - func (fd *Field) HasPresence() bool { -- return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+ if fd.L1.Cardinality == protoreflect.Repeated { -+ return false -+ } -+ explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -+ return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil - } - func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional - } - func (fd *Field) IsPacked() bool { -- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -- switch fd.L1.Kind { -- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -- default: -- return true -- } -+ if fd.L1.Cardinality != protoreflect.Repeated { -+ return false -+ } -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsPacked -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -+ // proto3 repeated fields are packed by default. -+ return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked - } -@@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} - // WARNING: This method is exempt from the compatibility promise and may be - // removed in the future without warning. - func (fd *Field) EnforceUTF8() bool { -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsUTF8Validated -+ } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } -@@ -359,10 +428,11 @@ type ( - L2 *ExtensionL2 // protected by fileDesc.once - } - ExtensionL1 struct { -- Number protoreflect.FieldNumber -- Extendee protoreflect.MessageDescriptor -- Cardinality protoreflect.Cardinality -- Kind protoreflect.Kind -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ EditionFeatures EditionFeatures - } - ExtensionL2 struct { - Options func() protoreflect.ProtoMessage -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -index 4a1584c9..237e64fd 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -5,6 +5,7 @@ - package filedesc - - import ( -+ "fmt" - "sync" - - "google.golang.org/protobuf/encoding/protowire" -@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) { - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions, numServices int - var posEnums, posMessages, posExtensions, posServices int -+ var options []byte - b0 := b - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - case "proto3": - fd.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ fd.L1.Syntax = protoreflect.Editions - default: - panic("invalid syntax") - } -@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Path = sb.MakeString(v) - case genid.FileDescriptorProto_Package_field_number: - fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_Options_field_number: -+ options = v - case genid.FileDescriptorProto_EnumType_field_number: - if prevField != genid.FileDescriptorProto_EnumType_field_number { - if numEnums > 0 { -@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) { - numServices++ - } - prevField = num -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Edition_field_number: -+ fd.L1.Edition = Edition(v) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - } - -+ if fd.L1.Syntax == protoreflect.Editions { -+ fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) -+ } -+ -+ // Parse editions features from options if any -+ if options != nil { -+ fd.unmarshalSeedOptions(options) -+ } -+ - // Must allocate all declarations before parsing each descriptor type - // to ensure we handled all descriptors in "flattened ordering". - if numEnums > 0 { -@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) { - } - } - -+func (fd *File) unmarshalSeedOptions(b []byte) { -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileOptions_Features_field_number: -+ if fd.Syntax() != protoreflect.Editions { -+ panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) -+ } -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ - func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { - ed.L0.ParentFile = pf - ed.L0.Parent = pd -@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor - md.L0.ParentFile = pf - md.L0.Parent = pd - md.L0.Index = i -+ md.L1.EditionFeatures = featuresFromParentDesc(md.Parent()) - - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions int -@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) { - case genid.MessageOptions_MessageSetWireFormat_field_number: - md.L1.IsMessageSet = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_Features_field_number: -+ md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -index 736a19a7..482a61cc 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - fd.L0.ParentFile = pf - fd.L0.Parent = pd - fd.L0.Index = i -+ fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent()) - - var rawTypeName []byte - var rawOptions []byte -@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - b = b[m:] - } - } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { -+ fd.L1.Kind = protoreflect.GroupKind -+ } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { -+ fd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch fd.L1.Kind { -@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) { - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - var rawTypeName []byte - var rawOptions []byte -+ xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) - xd.L2 = new(ExtensionL2) - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - b = b[m:] - } - } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { -+ xd.L1.Kind = protoreflect.GroupKind -+ } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { -+ xd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch xd.L1.Kind { -@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -new file mode 100644 -index 00000000..0375a49d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -@@ -0,0 +1,142 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var defaultsCache = make(map[Edition]EditionFeatures) -+ -+func init() { -+ unmarshalEditionDefaults(editiondefaults.Defaults) -+} -+ -+func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) -+ } -+ } -+ return parent -+} -+ -+func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSet_FieldPresence_field_number: -+ parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ case genid.FeatureSet_EnumType_field_number: -+ parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value -+ case genid.FeatureSet_RepeatedFieldEncoding_field_number: -+ parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value -+ case genid.FeatureSet_Utf8Validation_field_number: -+ parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value -+ case genid.FeatureSet_MessageEncoding_field_number: -+ parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value -+ case genid.FeatureSet_JsonFormat_field_number: -+ parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ parent = unmarshalGoFeature(v, parent) -+ } -+ } -+ } -+ -+ return parent -+} -+ -+func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { -+ var parentFS EditionFeatures -+ switch p := parentDesc.(type) { -+ case *File: -+ parentFS = p.L1.EditionFeatures -+ case *Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ return parentFS -+} -+ -+func unmarshalEditionDefault(b []byte) { -+ var ed Edition -+ var fs EditionFeatures -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: -+ ed = Edition(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: -+ fs = unmarshalFeatureSet(v, fs) -+ } -+ } -+ } -+ defaultsCache[ed] = fs -+} -+ -+func unmarshalEditionDefaults(b []byte) { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.FeatureSetDefaults_Defaults_field_number: -+ def, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ unmarshalEditionDefault(def) -+ case genid.FeatureSetDefaults_MinimumEdition_field_number, -+ genid.FeatureSetDefaults_MaximumEdition_field_number: -+ // We don't care about the minimum and maximum editions. If the -+ // edition we are looking for later on is not in the cache we know -+ // it is outside of the range between minimum and maximum edition. -+ _, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) -+ } -+ } -+} -+ -+func getFeaturesFor(ed Edition) EditionFeatures { -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ panic(fmt.Sprintf("unsupported edition: %v", ed)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 136f1b21..40272c89 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -12,6 +12,27 @@ import ( - - const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" - -+// Full and short names for google.protobuf.Edition. -+const ( -+ Edition_enum_fullname = "google.protobuf.Edition" -+ Edition_enum_name = "Edition" -+) -+ -+// Enum values for google.protobuf.Edition. -+const ( -+ Edition_EDITION_UNKNOWN_enum_value = 0 -+ Edition_EDITION_PROTO2_enum_value = 998 -+ Edition_EDITION_PROTO3_enum_value = 999 -+ Edition_EDITION_2023_enum_value = 1000 -+ Edition_EDITION_2024_enum_value = 1001 -+ Edition_EDITION_1_TEST_ONLY_enum_value = 1 -+ Edition_EDITION_2_TEST_ONLY_enum_value = 2 -+ Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 -+ Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 -+ Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 -+ Edition_EDITION_MAX_enum_value = 2147483647 -+) -+ - // Names for google.protobuf.FileDescriptorSet. - const ( - FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -@@ -81,7 +102,7 @@ const ( - FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 - FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 - FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -- FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 14 - ) - - // Names for google.protobuf.DescriptorProto. -@@ -184,10 +205,12 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Features_field_name protoreflect.Name = "features" - ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" - ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features" - ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - -@@ -195,6 +218,7 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Features_field_number protoreflect.FieldNumber = 50 - ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 - ) - -@@ -204,6 +228,12 @@ const ( - ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" - ) - -+// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_DECLARATION_enum_value = 0 -+ ExtensionRangeOptions_UNVERIFIED_enum_value = 1 -+) -+ - // Names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( - ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -@@ -212,29 +242,26 @@ const ( - - // Field names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -- ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -- ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" - -- ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -- ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -- ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -- ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -- ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -- ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -- ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -- ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -291,12 +318,41 @@ const ( - FieldDescriptorProto_Type_enum_name = "Type" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1 -+ FieldDescriptorProto_TYPE_FLOAT_enum_value = 2 -+ FieldDescriptorProto_TYPE_INT64_enum_value = 3 -+ FieldDescriptorProto_TYPE_UINT64_enum_value = 4 -+ FieldDescriptorProto_TYPE_INT32_enum_value = 5 -+ FieldDescriptorProto_TYPE_FIXED64_enum_value = 6 -+ FieldDescriptorProto_TYPE_FIXED32_enum_value = 7 -+ FieldDescriptorProto_TYPE_BOOL_enum_value = 8 -+ FieldDescriptorProto_TYPE_STRING_enum_value = 9 -+ FieldDescriptorProto_TYPE_GROUP_enum_value = 10 -+ FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11 -+ FieldDescriptorProto_TYPE_BYTES_enum_value = 12 -+ FieldDescriptorProto_TYPE_UINT32_enum_value = 13 -+ FieldDescriptorProto_TYPE_ENUM_enum_value = 14 -+ FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 -+ FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 -+ FieldDescriptorProto_TYPE_SINT32_enum_value = 17 -+ FieldDescriptorProto_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.FieldDescriptorProto.Label. - const ( - FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" - FieldDescriptorProto_Label_enum_name = "Label" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 -+ FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 -+ FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 -+) -+ - // Names for google.protobuf.OneofDescriptorProto. - const ( - OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -@@ -468,7 +524,6 @@ const ( - FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" - FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" - FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -- FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" - FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" - FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -@@ -478,6 +533,7 @@ const ( - FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" - FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" - FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_Features_field_name protoreflect.Name = "features" - FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -@@ -490,7 +546,6 @@ const ( - FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" - FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" - FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -- FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" - FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" - FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -@@ -500,6 +555,7 @@ const ( - FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" - FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" - FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.features" - FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" - ) - -@@ -515,7 +571,6 @@ const ( - FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 - FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 - FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -- FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 - FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 - FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 - FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -@@ -525,6 +580,7 @@ const ( - FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 - FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 - FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_Features_field_number protoreflect.FieldNumber = 50 - FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -534,6 +590,13 @@ const ( - FileOptions_OptimizeMode_enum_name = "OptimizeMode" - ) - -+// Enum values for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_SPEED_enum_value = 1 -+ FileOptions_CODE_SIZE_enum_value = 2 -+ FileOptions_LITE_RUNTIME_enum_value = 3 -+) -+ - // Names for google.protobuf.MessageOptions. - const ( - MessageOptions_message_name protoreflect.Name = "MessageOptions" -@@ -547,6 +610,7 @@ const ( - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_name protoreflect.Name = "features" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -@@ -554,6 +618,7 @@ const ( - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.features" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" - ) - -@@ -564,6 +629,7 @@ const ( - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_Features_field_number protoreflect.FieldNumber = 12 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -584,8 +650,9 @@ const ( - FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" -- FieldOptions_Target_field_name protoreflect.Name = "target" - FieldOptions_Targets_field_name protoreflect.Name = "targets" -+ FieldOptions_EditionDefaults_field_name protoreflect.Name = "edition_defaults" -+ FieldOptions_Features_field_name protoreflect.Name = "features" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -597,8 +664,9 @@ const ( - FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -- FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" - FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" -+ FieldOptions_EditionDefaults_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" -+ FieldOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.features" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -613,8 +681,9 @@ const ( - FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -- FieldOptions_Target_field_number protoreflect.FieldNumber = 18 - FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 -+ FieldOptions_EditionDefaults_field_number protoreflect.FieldNumber = 20 -+ FieldOptions_Features_field_number protoreflect.FieldNumber = 21 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -624,24 +693,80 @@ const ( - FieldOptions_CType_enum_name = "CType" - ) - -+// Enum values for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_STRING_enum_value = 0 -+ FieldOptions_CORD_enum_value = 1 -+ FieldOptions_STRING_PIECE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.JSType. - const ( - FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" - FieldOptions_JSType_enum_name = "JSType" - ) - -+// Enum values for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JS_NORMAL_enum_value = 0 -+ FieldOptions_JS_STRING_enum_value = 1 -+ FieldOptions_JS_NUMBER_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionRetention. - const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_RETENTION_UNKNOWN_enum_value = 0 -+ FieldOptions_RETENTION_RUNTIME_enum_value = 1 -+ FieldOptions_RETENTION_SOURCE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionTargetType. - const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0 -+ FieldOptions_TARGET_TYPE_FILE_enum_value = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3 -+ FieldOptions_TARGET_TYPE_FIELD_enum_value = 4 -+ FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5 -+ FieldOptions_TARGET_TYPE_ENUM_enum_value = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7 -+ FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8 -+ FieldOptions_TARGET_TYPE_METHOD_enum_value = 9 -+) -+ -+// Names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault" -+ FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" -+) -+ -+// Field names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FieldOptions_EditionDefault_Value_field_name protoreflect.Name = "value" -+ -+ FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" -+ FieldOptions_EditionDefault_Value_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" -+) -+ -+// Field numbers for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_EditionDefault_Value_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.OneofOptions. - const ( - OneofOptions_message_name protoreflect.Name = "OneofOptions" -@@ -650,13 +775,16 @@ const ( - - // Field names for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_name protoreflect.Name = "features" - OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ OneofOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.features" - OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_number protoreflect.FieldNumber = 1 - OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -671,11 +799,13 @@ const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_name protoreflect.Name = "features" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.features" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" - ) - -@@ -684,6 +814,7 @@ const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_Features_field_number protoreflect.FieldNumber = 7 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -696,15 +827,21 @@ const ( - // Field names for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_Features_field_name protoreflect.Name = "features" -+ EnumValueOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.features" -+ EnumValueOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact" - EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_Features_field_number protoreflect.FieldNumber = 2 -+ EnumValueOptions_DebugRedact_field_number protoreflect.FieldNumber = 3 - EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -716,15 +853,18 @@ const ( - - // Field names for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_name protoreflect.Name = "features" - ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" - ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ ServiceOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.features" - ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" - ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_number protoreflect.FieldNumber = 34 - ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) -@@ -739,10 +879,12 @@ const ( - const ( - MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_Features_field_name protoreflect.Name = "features" - MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" - MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.features" - MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" - ) - -@@ -750,6 +892,7 @@ const ( - const ( - MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_Features_field_number protoreflect.FieldNumber = 35 - MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -759,6 +902,13 @@ const ( - MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" - ) - -+// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 -+ MethodOptions_NO_SIDE_EFFECTS_enum_value = 1 -+ MethodOptions_IDEMPOTENT_enum_value = 2 -+) -+ - // Names for google.protobuf.UninterpretedOption. - const ( - UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -@@ -816,6 +966,163 @@ const ( - UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 - ) - -+// Names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_message_name protoreflect.Name = "FeatureSet" -+ FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" -+) -+ -+// Field names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence" -+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation" -+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding" -+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format" -+ -+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" -+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" -+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" -+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format" -+) -+ -+// Field numbers for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1 -+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2 -+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 -+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4 -+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5 -+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" -+ FeatureSet_FieldPresence_enum_name = "FieldPresence" -+) -+ -+// Enum values for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 -+ FeatureSet_EXPLICIT_enum_value = 1 -+ FeatureSet_IMPLICIT_enum_value = 2 -+ FeatureSet_LEGACY_REQUIRED_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" -+ FeatureSet_EnumType_enum_name = "EnumType" -+) -+ -+// Enum values for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 -+ FeatureSet_OPEN_enum_value = 1 -+ FeatureSet_CLOSED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" -+ FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_PACKED_enum_value = 1 -+ FeatureSet_EXPANDED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" -+ FeatureSet_Utf8Validation_enum_name = "Utf8Validation" -+) -+ -+// Enum values for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 -+ FeatureSet_VERIFY_enum_value = 2 -+ FeatureSet_NONE_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" -+ FeatureSet_MessageEncoding_enum_name = "MessageEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_LENGTH_PREFIXED_enum_value = 1 -+ FeatureSet_DELIMITED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" -+ FeatureSet_JsonFormat_enum_name = "JsonFormat" -+) -+ -+// Enum values for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 -+ FeatureSet_ALLOW_enum_value = 1 -+ FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults" -+ FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_name protoreflect.Name = "defaults" -+ FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" -+ -+ FeatureSetDefaults_Defaults_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" -+ FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_number protoreflect.FieldNumber = 1 -+ FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 -+ FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_message_name protoreflect.Name = "FeatureSetEditionDefault" -+ FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" -+ -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.SourceCodeInfo. - const ( - SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -@@ -917,3 +1224,10 @@ const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" - ) -+ -+// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_NONE_enum_value = 0 -+ GeneratedCodeInfo_Annotation_SET_enum_value = 1 -+ GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -new file mode 100644 -index 00000000..fd9015e8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" -+ -+// Names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_message_name protoreflect.Name = "GoFeatures" -+ GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" -+) -+ -+// Field names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" -+ -+ GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" -+) -+ -+// Field numbers for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -index 1a38944b..ad6f80c4 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -18,6 +18,11 @@ const ( - NullValue_enum_name = "NullValue" - ) - -+// Enum values for google.protobuf.NullValue. -+const ( -+ NullValue_NULL_VALUE_enum_value = 0 -+) -+ - // Names for google.protobuf.Struct. - const ( - Struct_message_name protoreflect.Name = "Struct" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index e0f75fea..49bc73e2 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -18,6 +18,13 @@ const ( - Syntax_enum_name = "Syntax" - ) - -+// Enum values for google.protobuf.Syntax. -+const ( -+ Syntax_SYNTAX_PROTO2_enum_value = 0 -+ Syntax_SYNTAX_PROTO3_enum_value = 1 -+ Syntax_SYNTAX_EDITIONS_enum_value = 2 -+) -+ - // Names for google.protobuf.Type. - const ( - Type_message_name protoreflect.Name = "Type" -@@ -105,12 +112,43 @@ const ( - Field_Kind_enum_name = "Kind" - ) - -+// Enum values for google.protobuf.Field.Kind. -+const ( -+ Field_TYPE_UNKNOWN_enum_value = 0 -+ Field_TYPE_DOUBLE_enum_value = 1 -+ Field_TYPE_FLOAT_enum_value = 2 -+ Field_TYPE_INT64_enum_value = 3 -+ Field_TYPE_UINT64_enum_value = 4 -+ Field_TYPE_INT32_enum_value = 5 -+ Field_TYPE_FIXED64_enum_value = 6 -+ Field_TYPE_FIXED32_enum_value = 7 -+ Field_TYPE_BOOL_enum_value = 8 -+ Field_TYPE_STRING_enum_value = 9 -+ Field_TYPE_GROUP_enum_value = 10 -+ Field_TYPE_MESSAGE_enum_value = 11 -+ Field_TYPE_BYTES_enum_value = 12 -+ Field_TYPE_UINT32_enum_value = 13 -+ Field_TYPE_ENUM_enum_value = 14 -+ Field_TYPE_SFIXED32_enum_value = 15 -+ Field_TYPE_SFIXED64_enum_value = 16 -+ Field_TYPE_SINT32_enum_value = 17 -+ Field_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.Field.Cardinality. - const ( - Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" - Field_Cardinality_enum_name = "Cardinality" - ) - -+// Enum values for google.protobuf.Field.Cardinality. -+const ( -+ Field_CARDINALITY_UNKNOWN_enum_value = 0 -+ Field_CARDINALITY_OPTIONAL_enum_value = 1 -+ Field_CARDINALITY_REQUIRED_enum_value = 2 -+ Field_CARDINALITY_REPEATED_enum_value = 3 -+) -+ - // Names for google.protobuf.Enum. - const ( - Enum_message_name protoreflect.Name = "Enum" -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -index e74cefdc..2b8f122c 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -21,26 +21,18 @@ type extensionFieldInfo struct { - validation validationInfo - } - --var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -- - func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { - if xi, ok := xt.(*ExtensionInfo); ok { - xi.lazyInit() - return xi.info - } -- return legacyLoadExtensionFieldInfo(xt) --} -- --// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. --func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -- return xi.(*extensionFieldInfo) -- } -- e := makeExtensionFieldInfo(xt.TypeDescriptor()) -- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -- return e.(*extensionFieldInfo) -- } -- return e -+ // Ideally we'd cache the resulting *extensionFieldInfo so we don't have to -+ // recompute this metadata repeatedly. But without support for something like -+ // weak references, such a cache would pin temporary values (like dynamic -+ // extension types, constructed for the duration of a user request) to the -+ // heap forever, causing memory usage of the cache to grow unbounded. -+ // See discussion in https://github.com/golang/protobuf/issues/1521. -+ return makeExtensionFieldInfo(xt.TypeDescriptor()) - } - - func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -index 1a509b63..f55dc01e 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions - func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BoolSlice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growBoolSlice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growFloat32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growFloat64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -index 576dcf3a..13077751 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, - return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == protoreflect.GroupKind: - return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -- case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ case !fd.HasPresence() && fd.ContainingOneof() == nil: - // Populated oneof fields always encode even if set to the zero value, - // which normally are not encoded in proto3. - switch fd.Kind() { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -index 61c483fa..2ab2c629 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName - - // Obtain a list of oneof wrapper types. - var oneofWrappers []reflect.Type -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := t.MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- for _, v := range vs { -- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -index 4f5fb67a..629bacdc 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -192,12 +192,17 @@ fieldLoop: - - // Derive a mapping of oneof wrappers to fields. - oneofWrappers := mi.OneofWrappers -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- oneofWrappers = vs -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -index 5e736c60..986322b1 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool { - } - return true - default: -- panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -index 4c491bdf..517e9443 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) { - p.v.Elem().Set(v.v) - } - -+func growSlice(p pointer, addCap int) { -+ // TODO: Once we only support Go 1.20 and newer, use reflect.Grow. -+ in := p.v.Elem() -+ out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) -+ reflect.Copy(out, in) -+ p.v.Elem().Set(out) -+} -+ -+func (p pointer) growBoolSlice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ - func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } - func (ms *messageState) pointer() pointer { panic("not supported") } - func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -index ee0e0573..4b020e31 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) { - *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) - } - -+func (p pointer) growBoolSlice(addCap int) { -+ sp := p.BoolSlice() -+ s := make([]bool, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ sp := p.Int32Slice() -+ s := make([]int32, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ sp := p.Int64Slice() -+ s := make([]int64, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ - // Static check that MessageState does not exceed the size of a pointer. - const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -index 0b74e765..a6e7df24 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -17,7 +17,7 @@ import ( - - // EnforceUTF8 reports whether to enforce strict UTF-8 validation. - func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -- if flags.ProtoLegacy { -+ if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions { - if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { - return fd.EnforceUTF8() - } -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -similarity index 96% -rename from vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -rename to vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -index 61a84d34..a008acd0 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package strs - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -new file mode 100644 -index 00000000..60166f2b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -@@ -0,0 +1,74 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) string { -+ return unsafe.String(unsafe.SliceData(b), len(b)) -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) []byte { -+ return unsafe.Slice(unsafe.StringData(s), len(s)) -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index 0999f29d..a50fcfb4 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 31 -+ Minor = 33 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -index 48d47946..e5b03b56 100644 ---- a/vendor/google.golang.org/protobuf/proto/decode.go -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -69,7 +69,7 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { - // UnmarshalState parses a wire-format message and places the result in m. - // - // This method permits fine-grained control over the unmarshaler. --// Most users should use Unmarshal instead. -+// Most users should use [Unmarshal] instead. - func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - if o.RecursionLimit == 0 { - o.RecursionLimit = protowire.DefaultRecursionLimit -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -index ec71e717..80ed16a0 100644 ---- a/vendor/google.golang.org/protobuf/proto/doc.go -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -18,27 +18,27 @@ - // This package contains functions to convert to and from the wire format, - // an efficient binary serialization of protocol buffers. - // --// • Size reports the size of a message in the wire format. -+// - [Size] reports the size of a message in the wire format. - // --// • Marshal converts a message to the wire format. --// The MarshalOptions type provides more control over wire marshaling. -+// - [Marshal] converts a message to the wire format. -+// The [MarshalOptions] type provides more control over wire marshaling. - // --// • Unmarshal converts a message from the wire format. --// The UnmarshalOptions type provides more control over wire unmarshaling. -+// - [Unmarshal] converts a message from the wire format. -+// The [UnmarshalOptions] type provides more control over wire unmarshaling. - // - // # Basic message operations - // --// • Clone makes a deep copy of a message. -+// - [Clone] makes a deep copy of a message. - // --// • Merge merges the content of a message into another. -+// - [Merge] merges the content of a message into another. - // --// • Equal compares two messages. For more control over comparisons --// and detailed reporting of differences, see package --// "google.golang.org/protobuf/testing/protocmp". -+// - [Equal] compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// [google.golang.org/protobuf/testing/protocmp]. - // --// • Reset clears the content of a message. -+// - [Reset] clears the content of a message. - // --// • CheckInitialized reports whether all required fields in a message are set. -+// - [CheckInitialized] reports whether all required fields in a message are set. - // - // # Optional scalar constructors - // -@@ -46,9 +46,9 @@ - // as pointers to a value. For example, an optional string field has the - // Go type *string. - // --// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String --// take a value and return a pointer to a new instance of it, --// to simplify construction of optional field values. -+// - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String] -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. - // - // Generated enum types usually have an Enum method which performs the - // same operation. -@@ -57,29 +57,29 @@ - // - // # Extension accessors - // --// • HasExtension, GetExtension, SetExtension, and ClearExtension --// access extension field values in a protocol buffer message. -+// - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension] -+// access extension field values in a protocol buffer message. - // - // Extension fields are only supported in proto2. - // - // # Related packages - // --// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to --// and from JSON. -+// - Package [google.golang.org/protobuf/encoding/protojson] converts messages to -+// and from JSON. - // --// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to --// and from the text format. -+// - Package [google.golang.org/protobuf/encoding/prototext] converts messages to -+// and from the text format. - // --// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a --// reflection interface for protocol buffer data types. -+// - Package [google.golang.org/protobuf/reflect/protoreflect] provides a -+// reflection interface for protocol buffer data types. - // --// • Package "google.golang.org/protobuf/testing/protocmp" provides features --// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" --// package. -+// - Package [google.golang.org/protobuf/testing/protocmp] provides features -+// to compare protocol buffer messages with the [github.com/google/go-cmp/cmp] -+// package. - // --// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic --// message type, suitable for working with messages where the protocol buffer --// type is only known at runtime. -+// - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. - // - // This module contains additional packages for more specialized use cases. - // Consult the individual package documentation for details. -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -index bf7f816d..4fed202f 100644 ---- a/vendor/google.golang.org/protobuf/proto/encode.go -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -129,7 +129,7 @@ func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { - // MarshalState returns the wire-format encoding of a message. - // - // This method permits fine-grained control over the marshaler. --// Most users should use Marshal instead. -+// Most users should use [Marshal] instead. - func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - return o.marshal(in.Buf, in.Message) - } -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -index 5f293cda..17899a3a 100644 ---- a/vendor/google.golang.org/protobuf/proto/extension.go -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -26,7 +26,7 @@ func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - } - - // ClearExtension clears an extension field such that subsequent --// HasExtension calls return false. -+// [HasExtension] calls return false. - // It panics if m is invalid or if xt does not extend m. - func ClearExtension(m Message, xt protoreflect.ExtensionType) { - m.ProtoReflect().Clear(xt.TypeDescriptor()) -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -index d761ab33..3c6fe578 100644 ---- a/vendor/google.golang.org/protobuf/proto/merge.go -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -21,7 +21,7 @@ import ( - // The unknown fields of src are appended to the unknown fields of dst. - // - // It is semantically equivalent to unmarshaling the encoded form of src --// into dst with the UnmarshalOptions.Merge option specified. -+// into dst with the [UnmarshalOptions.Merge] option specified. - func Merge(dst, src Message) { - // TODO: Should nil src be treated as semantically equivalent to a - // untyped, read-only, empty message? What about a nil dst? -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -index 1f0d183b..7543ee6b 100644 ---- a/vendor/google.golang.org/protobuf/proto/proto.go -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -15,18 +15,20 @@ import ( - // protobuf module that accept a Message, except where otherwise specified. - // - // This is the v2 interface definition for protobuf messages. --// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// The v1 interface definition is [github.com/golang/protobuf/proto.Message]. - // --// To convert a v1 message to a v2 message, --// use "github.com/golang/protobuf/proto".MessageV2. --// To convert a v2 message to a v1 message, --// use "github.com/golang/protobuf/proto".MessageV1. -+// - To convert a v1 message to a v2 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV2Of]. -+// - To convert a v2 message to a v1 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV1Of]. - type Message = protoreflect.ProtoMessage - --// Error matches all errors produced by packages in the protobuf module. -+// Error matches all errors produced by packages in the protobuf module -+// according to [errors.Is]. - // --// That is, errors.Is(err, Error) reports whether an error is produced --// by this module. -+// Example usage: -+// -+// if errors.Is(err, proto.Error) { ... } - var Error error - - func init() { -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -index e4dfb120..baa0cc62 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -3,11 +3,11 @@ - // license that can be found in the LICENSE file. - - // Package protodesc provides functionality for converting --// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. - // - // The google.protobuf.FileDescriptorProto is a protobuf message that describes - // the type information for a .proto file in a form that is easily serializable. --// The protoreflect.FileDescriptor is a more structured representation of -+// The [protoreflect.FileDescriptor] is a more structured representation of - // the FileDescriptorProto message where references and remote dependencies - // can be directly followed. - package protodesc -@@ -24,11 +24,11 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// Resolver is the resolver used by NewFile to resolve dependencies. -+// Resolver is the resolver used by [NewFile] to resolve dependencies. - // The enums and messages provided must belong to some parent file, - // which is also registered. - // --// It is implemented by protoregistry.Files. -+// It is implemented by [protoregistry.Files]. - type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -@@ -61,19 +61,19 @@ type FileOptions struct { - AllowUnresolvable bool - } - --// NewFile creates a new protoreflect.FileDescriptor from the provided --// file descriptor message. See FileOptions.New for more information. -+// NewFile creates a new [protoreflect.FileDescriptor] from the provided -+// file descriptor message. See [FileOptions.New] for more information. - func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) - } - --// NewFiles creates a new protoregistry.Files from the provided --// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+// NewFiles creates a new [protoregistry.Files] from the provided -+// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. - func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) - } - --// New creates a new protoreflect.FileDescriptor from the provided -+// New creates a new [protoreflect.FileDescriptor] from the provided - // file descriptor message. The file must represent a valid proto file according - // to protobuf semantics. The returned descriptor is a deep copy of the input. - // -@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ f.L1.Syntax = protoreflect.Editions -+ f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } -+ if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { -+ return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) -+ } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") -@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ if f.L1.Syntax == protoreflect.Editions { -+ initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) -+ } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { -@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) { - } - } - --// NewFiles creates a new protoregistry.Files from the provided -+// NewFiles creates a new [protoregistry.Files] from the provided - // FileDescriptorSet message. The descriptor set must include only - // valid files according to protobuf semantics. The returned descriptors - // are a deep copy of the input. -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -index 37efda1a..b3278163 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } -@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } -+ if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) -+ } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } -@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - return ms, nil - } - -+// canBePacked returns whether the field can use packed encoding: -+// https://protobuf.dev/programming-guides/encoding/#packed -+func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { -+ if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { -+ return false // not a repeated field -+ } -+ -+ switch protoreflect.Kind(fd.GetType()) { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return false // not a scalar type field -+ -+ case protoreflect.StringKind, protoreflect.BytesKind: -+ // string and bytes can explicitly not be declared as packed, -+ // see https://protobuf.dev/programming-guides/encoding/#packed -+ return false -+ -+ default: -+ return true -+ } -+} -+ - func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { -@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } -+ -+ if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) -+ -+ if f.L1.EditionFeatures.IsLegacyRequired { -+ f.L1.Cardinality = protoreflect.Required -+ } -+ // We reuse the existing field because the old option `[packed = -+ // true]` is mutually exclusive with the editions feature. -+ if canBePacked(fd) { -+ f.L1.HasPacked = true -+ f.L1.IsPacked = f.L1.EditionFeatures.IsPacked -+ } -+ -+ // We pretend this option is always explicitly set because the only -+ // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 -+ // or to return the appropriate default. -+ // When using editions we either parse the option or resolve the -+ // appropriate default here (instead of later when this option is -+ // requested from the descriptor). -+ // In proto2/proto3 syntax HasEnforceUTF8 might be false. -+ f.L1.HasEnforceUTF8 = true -+ f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated -+ -+ if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { -+ f.L1.Kind = protoreflect.GroupKind -+ } -+ } - } - return fs, nil - } -@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ if parent.Syntax() == protoreflect.Editions { -+ o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) -+ } - } - } - return os, nil -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -index 27d7e350..254ca585 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab - } else if err != nil { - return v, ev, err - } -- if fd.Syntax() == protoreflect.Proto3 { -- return v, ev, errors.New("cannot be specified under proto3 semantics") -+ if !fd.HasPresence() { -+ return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -index 9af1d564..e4dcaf87 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } -- if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { -@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error { - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil -- case fd.Syntax() != protoreflect.Proto2: -- return errors.New("invalid under proto2 semantics") -+ case fd.Syntax() == protoreflect.Proto3: -+ return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -new file mode 100644 -index 00000000..2a6b29d1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -@@ -0,0 +1,148 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "os" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/types/descriptorpb" -+ gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -+) -+ -+const ( -+ SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 -+ SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -+) -+ -+var defaults = &descriptorpb.FeatureSetDefaults{} -+var defaultsCacheMu sync.Mutex -+var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) -+ -+func init() { -+ err := proto.Unmarshal(editiondefaults.Defaults, defaults) -+ if err != nil { -+ fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) -+ os.Exit(1) -+ } -+} -+ -+func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { -+ return filedesc.Edition(epb) -+} -+ -+func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { -+ switch ed { -+ case filedesc.EditionUnknown: -+ return descriptorpb.Edition_EDITION_UNKNOWN -+ case filedesc.EditionProto2: -+ return descriptorpb.Edition_EDITION_PROTO2 -+ case filedesc.EditionProto3: -+ return descriptorpb.Edition_EDITION_PROTO3 -+ case filedesc.Edition2023: -+ return descriptorpb.Edition_EDITION_2023 -+ default: -+ panic(fmt.Sprintf("unknown value for edition: %v", ed)) -+ } -+} -+ -+func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { -+ defaultsCacheMu.Lock() -+ defer defaultsCacheMu.Unlock() -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ edpb := toEditionProto(ed) -+ if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { -+ // This should never happen protodesc.(FileOptions).New would fail when -+ // initializing the file descriptor. -+ // This most likely means the embedded defaults were not updated. -+ fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) -+ os.Exit(1) -+ } -+ fs := defaults.GetDefaults()[0].GetFeatures() -+ // Using a linear search for now. -+ // Editions are guaranteed to be sorted and thus we could use a binary search. -+ // Given that there are only a handful of editions (with one more per year) -+ // there is not much reason to use a binary search. -+ for _, def := range defaults.GetDefaults() { -+ if def.GetEdition() <= edpb { -+ fs = def.GetFeatures() -+ } else { -+ break -+ } -+ } -+ defaultsCache[ed] = fs -+ return fs -+} -+ -+// mergeEditionFeatures merges the parent and child feature sets. This function -+// should be used when initializing Go descriptors from descriptor protos which -+// is why the parent is a filedesc.EditionsFeatures (Go representation) while -+// the child is a descriptorproto.FeatureSet (protoc representation). -+// Any feature set by the child overwrites what is set by the parent. -+func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { -+ var parentFS filedesc.EditionFeatures -+ switch p := parentDesc.(type) { -+ case *filedesc.File: -+ parentFS = p.L1.EditionFeatures -+ case *filedesc.Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ if child == nil { -+ return parentFS -+ } -+ if fp := child.FieldPresence; fp != nil { -+ parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || -+ *fp == descriptorpb.FeatureSet_EXPLICIT -+ parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED -+ } -+ if et := child.EnumType; et != nil { -+ parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN -+ } -+ -+ if rfe := child.RepeatedFieldEncoding; rfe != nil { -+ parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED -+ } -+ -+ if utf8val := child.Utf8Validation; utf8val != nil { -+ parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY -+ } -+ -+ if me := child.MessageEncoding; me != nil { -+ parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED -+ } -+ -+ if jf := child.JsonFormat; jf != nil { -+ parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW -+ } -+ -+ if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { -+ if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { -+ parentFS.GenerateLegacyUnmarshalJSON = *luje -+ } -+ } -+ -+ return parentFS -+} -+ -+// initFileDescFromFeatureSet initializes editions related fields in fd based -+// on fs. If fs is nil it is assumed to be an empty featureset and all fields -+// will be initialized with the appropriate default. fd.L1.Edition must be set -+// before calling this function. -+func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { -+ dfs := getFeatureSetFor(fd.L1.Edition) -+ // initialize the featureset with the defaults -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) -+ // overwrite any options explicitly specified -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -index a7c5ceff..9d6e0542 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -16,7 +16,7 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a - // google.protobuf.FileDescriptorProto message. - func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ -@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } -- if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p - } - --// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a - // google.protobuf.DescriptorProto message. - func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ -@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des - return p - } - --// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a - // google.protobuf.FieldDescriptorProto message. - func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ -@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi - return p - } - --// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a - // google.protobuf.OneofDescriptorProto message. - func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ -@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On - } - } - --// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a - // google.protobuf.EnumDescriptorProto message. - func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ -@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD - return p - } - --// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a - // google.protobuf.EnumValueDescriptorProto message. - func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ -@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip - } - } - --// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a - // google.protobuf.ServiceDescriptorProto message. - func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ -@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto - return p - } - --// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a - // google.protobuf.MethodDescriptorProto message. - func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -index 55aa1492..00b01fbd 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -10,46 +10,46 @@ - // - // # Protocol Buffer Descriptors - // --// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor]) - // are immutable objects that represent protobuf type information. - // They are wrappers around the messages declared in descriptor.proto. - // Protobuf descriptors alone lack any information regarding Go types. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Descriptor and ProtoReflect.Descriptor accessors respectively - // return the protobuf descriptor for the values. - // - // The protobuf descriptor interfaces are not meant to be implemented by - // user code since they might need to be extended in the future to support - // additions to the protobuf language. --// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// The [google.golang.org/protobuf/reflect/protodesc] package converts between - // google.protobuf.DescriptorProto messages and protobuf descriptors. - // - // # Go Type Descriptors - // --// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for - // a concrete Go type that represents the associated protobuf descriptor. - // There is commonly a one-to-one relationship between protobuf descriptors and - // Go type descriptors, but it can potentially be a one-to-many relationship. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Type and ProtoReflect.Type accessors respectively - // return the protobuf descriptor for the values. - // --// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// The [google.golang.org/protobuf/types/dynamicpb] package can be used to - // create Go type descriptors from protobuf descriptors. - // - // # Value Interfaces - // --// The Enum and Message interfaces provide a reflective view over an -+// The [Enum] and [Message] interfaces provide a reflective view over an - // enum or message instance. For enums, it provides the ability to retrieve - // the enum value number for any concrete enum type. For messages, it provides - // the ability to access or manipulate fields of the message. - // --// To convert a proto.Message to a protoreflect.Message, use the -+// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the - // former's ProtoReflect method. Since the ProtoReflect method is new to the - // v2 message interface, it may not be present on older message implementations. --// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// The [github.com/golang/protobuf/proto.MessageReflect] function can be used - // to obtain a reflective view on older messages. - // - // # Relationships -@@ -71,12 +71,12 @@ - // │ │ - // └────────────────── Type() ───────┘ - // --// • An EnumType describes a concrete Go enum type. -+// • An [EnumType] describes a concrete Go enum type. - // It has an EnumDescriptor and can construct an Enum instance. - // --// • An EnumDescriptor describes an abstract protobuf enum type. -+// • An [EnumDescriptor] describes an abstract protobuf enum type. - // --// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// • An [Enum] is a concrete enum instance. Generated enums implement Enum. - // - // ┌──────────────── New() ─────────────────┠- // │ │ -@@ -90,24 +90,26 @@ - // │ │ - // └─────────────────── Type() ─────────┘ - // --// • A MessageType describes a concrete Go message type. --// It has a MessageDescriptor and can construct a Message instance. --// Just as how Go's reflect.Type is a reflective description of a Go type, --// a MessageType is a reflective description of a Go type for a protobuf message. -+// • A [MessageType] describes a concrete Go message type. -+// It has a [MessageDescriptor] and can construct a [Message] instance. -+// Just as how Go's [reflect.Type] is a reflective description of a Go type, -+// a [MessageType] is a reflective description of a Go type for a protobuf message. - // --// • A MessageDescriptor describes an abstract protobuf message type. --// It has no understanding of Go types. In order to construct a MessageType --// from just a MessageDescriptor, you can consider looking up the message type --// in the global registry using protoregistry.GlobalTypes.FindMessageByName --// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// • A [MessageDescriptor] describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a [MessageType] -+// from just a [MessageDescriptor], you can consider looking up the message type -+// in the global registry using the FindMessageByName method on -+// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes] -+// or constructing a dynamic [MessageType] using -+// [google.golang.org/protobuf/types/dynamicpb.NewMessageType]. - // --// • A Message is a reflective view over a concrete message instance. --// Generated messages implement ProtoMessage, which can convert to a Message. --// Just as how Go's reflect.Value is a reflective view over a Go value, --// a Message is a reflective view over a concrete protobuf message instance. --// Using Go reflection as an analogy, the ProtoReflect method is similar to --// calling reflect.ValueOf, and the Message.Interface method is similar to --// calling reflect.Value.Interface. -+// • A [Message] is a reflective view over a concrete message instance. -+// Generated messages implement [ProtoMessage], which can convert to a [Message]. -+// Just as how Go's [reflect.Value] is a reflective view over a Go value, -+// a [Message] is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to -+// calling [reflect.ValueOf], and the [Message.Interface] method is similar to -+// calling [reflect.Value.Interface]. - // - // ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠- // │ V │ V -@@ -119,15 +121,15 @@ - // │ │ - // └────── implements ────────┘ - // --// • An ExtensionType describes a concrete Go implementation of an extension. --// It has an ExtensionTypeDescriptor and can convert to/from --// abstract Values and Go values. -+// • An [ExtensionType] describes a concrete Go implementation of an extension. -+// It has an [ExtensionTypeDescriptor] and can convert to/from -+// an abstract [Value] and a Go value. - // --// • An ExtensionTypeDescriptor is an ExtensionDescriptor --// which also has an ExtensionType. -+// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor] -+// which also has an [ExtensionType]. - // --// • An ExtensionDescriptor describes an abstract protobuf extension field and --// may not always be an ExtensionTypeDescriptor. -+// • An [ExtensionDescriptor] describes an abstract protobuf extension field and -+// may not always be an [ExtensionTypeDescriptor]. - package protoreflect - - import ( -@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement - - // ProtoMessage is the top-level interface that all proto messages implement. - // This is declared in the protoreflect package to avoid a cyclic dependency; --// use the proto.Message type instead, which aliases this type. -+// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type. - type ProtoMessage interface{ ProtoReflect() Message } - - // Syntax is the language version of the proto file. -@@ -151,8 +153,9 @@ type Syntax syntax - type syntax int8 // keep exact type opaque as the int type may change - - const ( -- Proto2 Syntax = 2 -- Proto3 Syntax = 3 -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+ Editions Syntax = 4 - ) - - // IsValid reports whether the syntax is valid. -@@ -172,6 +175,8 @@ func (s Syntax) String() string { - return "proto2" - case Proto3: - return "proto3" -+ case Editions: -+ return "editions" - default: - return fmt.Sprintf("", s) - } -@@ -436,7 +441,7 @@ type Names interface { - // FullName is a qualified name that uniquely identifies a proto declaration. - // A qualified name is the concatenation of the proto package along with the - // fully-declared name (i.e., name of parent preceding the name of the child), --// with a '.' delimiter placed between each Name. -+// with a '.' delimiter placed between each [Name]. - // - // This should not have any leading or trailing dots. - type FullName string // e.g., "google.protobuf.Field.Kind" -@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool { - } - - // Name returns the short name, which is the last identifier segment. --// A single segment FullName is the Name itself. -+// A single segment FullName is the [Name] itself. - func (n FullName) Name() Name { - if i := strings.LastIndexByte(string(n), '.'); i >= 0 { - return Name(n[i+1:]) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 717b106f..7dcc2ff0 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { - b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) - case 12: - b = p.appendSingularField(b, "syntax", nil) -- case 13: -+ case 14: - b = p.appendSingularField(b, "edition", nil) - } - return b -@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "java_generic_services", nil) - case 18: - b = p.appendSingularField(b, "py_generic_services", nil) -- case 42: -- b = p.appendSingularField(b, "php_generic_services", nil) - case 23: - b = p.appendSingularField(b, "deprecated", nil) - case 31: -@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "php_metadata_namespace", nil) - case 45: - b = p.appendSingularField(b, "ruby_package", nil) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { - b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 12: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 7: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 34: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 33: - b = p.appendSingularField(b, "deprecated", nil) - case 999: -@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) -- case 18: -- b = p.appendSingularField(b, "target", nil) - case 19: - b = p.appendRepeatedField(b, "targets", nil) -+ case 20: -+ b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault) -+ case 21: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFeatureSet(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "field_presence", nil) -+ case 2: -+ b = p.appendSingularField(b, "enum_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "repeated_field_encoding", nil) -+ case 4: -+ b = p.appendSingularField(b, "utf8_validation", nil) -+ case 5: -+ b = p.appendSingularField(b, "message_encoding", nil) -+ case 6: -+ b = p.appendSingularField(b, "json_format", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - case 2: - b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 3: - b = p.appendSingularField(b, "verification", nil) - } -@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { - switch (*p)[0] { - case 1: - b = p.appendSingularField(b, "deprecated", nil) -+ case 2: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) -+ case 3: -+ b = p.appendSingularField(b, "debug_redact", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 34: - b = p.appendSingularField(b, "idempotency_level", nil) -+ case 35: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 3: -+ b = p.appendSingularField(b, "edition", nil) -+ case 2: -+ b = p.appendSingularField(b, "value", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { - b = p.appendSingularField(b, "full_name", nil) - case 3: - b = p.appendSingularField(b, "type", nil) -- case 4: -- b = p.appendSingularField(b, "is_repeated", nil) - case 5: - b = p.appendSingularField(b, "reserved", nil) - case 6: -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -index 3867470d..60ff62b4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -12,7 +12,7 @@ package protoreflect - // exactly identical. However, it is possible for the same semantically - // identical proto type to be represented by multiple type descriptors. - // --// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// For example, suppose we have t1 and t2 which are both an [MessageDescriptor]. - // If t1 == t2, then the types are definitely equal and all accessors return - // the same information. However, if t1 != t2, then it is still possible that - // they still represent the same proto type (e.g., t1.FullName == t2.FullName). -@@ -115,7 +115,7 @@ type Descriptor interface { - // corresponds with the google.protobuf.FileDescriptorProto message. - // - // Top-level declarations: --// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor]. - type FileDescriptor interface { - Descriptor // Descriptor.FullName is identical to Package - -@@ -180,8 +180,8 @@ type FileImport struct { - // corresponds with the google.protobuf.DescriptorProto message. - // - // Nested declarations: --// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, --// and/or MessageDescriptor. -+// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor], -+// and/or [MessageDescriptor]. - type MessageDescriptor interface { - Descriptor - -@@ -214,7 +214,7 @@ type MessageDescriptor interface { - ExtensionRanges() FieldRanges - // ExtensionRangeOptions returns the ith extension range options. - // -- // To avoid a dependency cycle, this method returns a proto.Message value, -+ // To avoid a dependency cycle, this method returns a proto.Message] value, - // which always contains a google.protobuf.ExtensionRangeOptions message. - // This method returns a typed nil-pointer if no options are present. - // The caller must import the descriptorpb package to use this. -@@ -231,9 +231,9 @@ type MessageDescriptor interface { - } - type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } - --// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation. - // It is recommended that implementations of this interface also implement the --// MessageFieldTypes interface. -+// [MessageFieldTypes] interface. - type MessageType interface { - // New returns a newly allocated empty message. - // It may return nil for synthetic messages representing a map entry. -@@ -249,19 +249,19 @@ type MessageType interface { - Descriptor() MessageDescriptor - } - --// MessageFieldTypes extends a MessageType by providing type information -+// MessageFieldTypes extends a [MessageType] by providing type information - // regarding enums and messages referenced by the message fields. - type MessageFieldTypes interface { - MessageType - -- // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // Enum returns the EnumType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not an enum kind. - // It panics if out of bounds. - // - // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() - Enum(i int) EnumType - -- // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // Message returns the MessageType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not a message or group kind. - // It panics if out of bounds. - // -@@ -286,8 +286,8 @@ type MessageDescriptors interface { - // corresponds with the google.protobuf.FieldDescriptorProto message. - // - // It is used for both normal fields defined within the parent message --// (e.g., MessageDescriptor.Fields) and fields that extend some remote message --// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message -+// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]). - type FieldDescriptor interface { - Descriptor - -@@ -344,7 +344,7 @@ type FieldDescriptor interface { - // IsMap reports whether this field represents a map, - // where the value type for the associated field is a Map. - // It is equivalent to checking whether Cardinality is Repeated, -- // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ // that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true. - IsMap() bool - - // MapKey returns the field descriptor for the key in the map entry. -@@ -419,7 +419,7 @@ type OneofDescriptor interface { - - // IsSynthetic reports whether this is a synthetic oneof created to support - // proto3 optional semantics. If true, Fields contains exactly one field -- // with HasOptionalKeyword specified. -+ // with FieldDescriptor.HasOptionalKeyword specified. - IsSynthetic() bool - - // Fields is a list of fields belonging to this oneof. -@@ -442,10 +442,10 @@ type OneofDescriptors interface { - doNotImplement - } - --// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation. - type ExtensionDescriptor = FieldDescriptor - --// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType]. - type ExtensionTypeDescriptor interface { - ExtensionDescriptor - -@@ -470,12 +470,12 @@ type ExtensionDescriptors interface { - doNotImplement - } - --// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete - // Go implementation. The nested field descriptor must be for a extension field. - // - // While a normal field is a member of the parent message that it is declared --// within (see Descriptor.Parent), an extension field is a member of some other --// target message (see ExtensionDescriptor.Extendee) and may have no -+// within (see [Descriptor.Parent]), an extension field is a member of some other -+// target message (see [FieldDescriptor.ContainingMessage]) and may have no - // relationship with the parent. However, the full name of an extension field is - // relative to the parent that it is declared within. - // -@@ -532,7 +532,7 @@ type ExtensionType interface { - // corresponds with the google.protobuf.EnumDescriptorProto message. - // - // Nested declarations: --// EnumValueDescriptor. -+// [EnumValueDescriptor]. - type EnumDescriptor interface { - Descriptor - -@@ -548,7 +548,7 @@ type EnumDescriptor interface { - } - type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } - --// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation. - type EnumType interface { - // New returns an instance of this enum type with its value set to n. - New(n EnumNumber) Enum -@@ -610,7 +610,7 @@ type EnumValueDescriptors interface { - // ServiceDescriptor describes a service and - // corresponds with the google.protobuf.ServiceDescriptorProto message. - // --// Nested declarations: MethodDescriptor. -+// Nested declarations: [MethodDescriptor]. - type ServiceDescriptor interface { - Descriptor - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -index 37601b78..a7b0d06f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -27,16 +27,16 @@ type Enum interface { - // Message is a reflective interface for a concrete message value, - // encapsulating both type and value information for the message. - // --// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// Accessor/mutators for individual fields are keyed by [FieldDescriptor]. - // For non-extension fields, the descriptor must exactly match the - // field known by the parent message. --// For extension fields, the descriptor must implement ExtensionTypeDescriptor, --// extend the parent message (i.e., have the same message FullName), and -+// For extension fields, the descriptor must implement [ExtensionTypeDescriptor], -+// extend the parent message (i.e., have the same message [FullName]), and - // be within the parent's extension range. - // --// Each field Value can be a scalar or a composite type (Message, List, or Map). --// See Value for the Go types associated with a FieldDescriptor. --// Providing a Value that is invalid or of an incorrect type panics. -+// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]). -+// See [Value] for the Go types associated with a [FieldDescriptor]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type Message interface { - // Descriptor returns message descriptor, which contains only the protobuf - // type information for the message. -@@ -152,7 +152,7 @@ type Message interface { - // This method may return nil. - // - // The returned methods type is identical to -- // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // google.golang.org/protobuf/runtime/protoiface.Methods. - // Consult the protoiface package documentation for details. - ProtoMethods() *methods - } -@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool { - } - - // List is a zero-indexed, ordered list. --// The element Value type is determined by FieldDescriptor.Kind. --// Providing a Value that is invalid or of an incorrect type panics. -+// The element [Value] type is determined by [FieldDescriptor.Kind]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type List interface { - // Len reports the number of entries in the List. - // Get, Set, and Truncate panic with out of bound indexes. -@@ -226,9 +226,9 @@ type List interface { - } - - // Map is an unordered, associative map. --// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. --// The entry Value type is determined by FieldDescriptor.MapValue.Kind. --// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind. -+// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind. -+// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics. - type Map interface { - // Len reports the number of elements in the map. - Len() int -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -index 59165254..654599d4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -24,19 +24,19 @@ import ( - // Unlike the == operator, a NaN is equal to another NaN. - // - // - Enums are equal if they contain the same number. --// Since Value does not contain an enum descriptor, -+// Since [Value] does not contain an enum descriptor, - // enum values do not consider the type of the enum. - // - // - Other scalar values are equal if they contain the same value. - // --// - Message values are equal if they belong to the same message descriptor, -+// - [Message] values are equal if they belong to the same message descriptor, - // have the same set of populated known and extension field values, - // and the same set of unknown fields values. - // --// - Lists are equal if they are the same length and -+// - [List] values are equal if they are the same length and - // each corresponding element is equal. - // --// - Maps are equal if they have the same set of keys and -+// - [Map] values are equal if they have the same set of keys and - // the corresponding value for each key is equal. - func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -index 08e5ef73..16030973 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -11,7 +11,7 @@ import ( - - // Value is a union where only one Go type may be set at a time. - // The Value is used to represent all possible values a field may take. --// The following shows which Go type is used to represent each proto Kind: -+// The following shows which Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -31,22 +31,22 @@ import ( - // - // Multiple protobuf Kinds may be represented by a single Go type if the type - // can losslessly represent the information for the proto kind. For example, --// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64, - // but use different integer encoding methods. - // --// The List or Map types are used if the field cardinality is repeated. --// A field is a List if FieldDescriptor.IsList reports true. --// A field is a Map if FieldDescriptor.IsMap reports true. -+// The [List] or [Map] types are used if the field cardinality is repeated. -+// A field is a [List] if [FieldDescriptor.IsList] reports true. -+// A field is a [Map] if [FieldDescriptor.IsMap] reports true. - // - // Converting to/from a Value and a concrete Go value panics on type mismatch. --// For example, ValueOf("hello").Int() panics because this attempts to -+// For example, [ValueOf]("hello").Int() panics because this attempts to - // retrieve an int64 from a string. - // --// List, Map, and Message Values are called "composite" values. -+// [List], [Map], and [Message] Values are called "composite" values. - // - // A composite Value may alias (reference) memory at some location, - // such that changes to the Value updates the that location. --// A composite value acquired with a Mutable method, such as Message.Mutable, -+// A composite value acquired with a Mutable method, such as [Message.Mutable], - // always references the source object. - // - // For example: -@@ -65,7 +65,7 @@ import ( - // // appending to the List here may or may not modify the message. - // list.Append(protoreflect.ValueOfInt32(0)) - // --// Some operations, such as Message.Get, may return an "empty, read-only" -+// Some operations, such as [Message.Get], may return an "empty, read-only" - // composite Value. Modifying an empty, read-only value panics. - type Value value - -@@ -306,7 +306,7 @@ func (v Value) Float() float64 { - } - } - --// String returns v as a string. Since this method implements fmt.Stringer, -+// String returns v as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (v Value) String() string { - switch v.typ { -@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte { - } - } - --// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber]. - func (v Value) Enum() EnumNumber { - switch v.typ { - case enumType: -@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber { - } - } - --// Message returns v as a Message and panics if the type is not a Message. -+// Message returns v as a [Message] and panics if the type is not a [Message]. - func (v Value) Message() Message { - switch vi := v.getIface().(type) { - case Message: -@@ -347,7 +347,7 @@ func (v Value) Message() Message { - } - } - --// List returns v as a List and panics if the type is not a List. -+// List returns v as a [List] and panics if the type is not a [List]. - func (v Value) List() List { - switch vi := v.getIface().(type) { - case List: -@@ -357,7 +357,7 @@ func (v Value) List() List { - } - } - --// Map returns v as a Map and panics if the type is not a Map. -+// Map returns v as a [Map] and panics if the type is not a [Map]. - func (v Value) Map() Map { - switch vi := v.getIface().(type) { - case Map: -@@ -367,7 +367,7 @@ func (v Value) Map() Map { - } - } - --// MapKey returns v as a MapKey and panics for invalid MapKey types. -+// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types. - func (v Value) MapKey() MapKey { - switch v.typ { - case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey { - } - - // MapKey is used to index maps, where the Go type of the MapKey must match --// the specified key Kind (see MessageDescriptor.IsMapEntry). --// The following shows what Go type is used to represent each proto Kind: -+// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]). -+// The following shows what Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey { - // â•‘ string │ StringKind â•‘ - // â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• - // --// A MapKey is constructed and accessed through a Value: -+// A MapKey is constructed and accessed through a [Value]: - // - // k := ValueOf("hash").MapKey() // convert string to MapKey - // s := k.String() // convert MapKey to string - // --// The MapKey is a strict subset of valid types used in Value; --// converting a Value to a MapKey with an invalid type panics. -+// The MapKey is a strict subset of valid types used in [Value]; -+// converting a [Value] to a MapKey with an invalid type panics. - type MapKey value - - // IsValid reports whether k is populated with a value. -@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 { - return Value(k).Uint() - } - --// String returns k as a string. Since this method implements fmt.Stringer, -+// String returns k as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (k MapKey) String() string { - return Value(k).String() - } - --// Value returns k as a Value. -+// Value returns k as a [Value]. - func (k MapKey) Value() Value { - return Value(k) - } -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -similarity index 97% -rename from vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -rename to vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -index 702ddf22..b1fdbe3e 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package protoreflect - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -new file mode 100644 -index 00000000..43547011 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -@@ -0,0 +1,87 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ ifaceHeader struct { -+ _ [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it. -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() string { -+ return unsafe.String((*byte)(v.ptr), v.num) -+} -+func (v Value) getBytes() []byte { -+ return unsafe.Slice((*byte)(v.ptr), v.num) -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -index aeb55977..6267dc52 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -5,12 +5,12 @@ - // Package protoregistry provides data structures to register and lookup - // protobuf descriptor types. - // --// The Files registry contains file descriptors and provides the ability -+// The [Files] registry contains file descriptors and provides the ability - // to iterate over the files or lookup a specific descriptor within the files. --// Files only contains protobuf descriptors and has no understanding of Go -+// [Files] only contains protobuf descriptors and has no understanding of Go - // type information that may be associated with each descriptor. - // --// The Types registry contains descriptor types for which there is a known -+// The [Types] registry contains descriptor types for which there is a known - // Go type associated with that descriptor. It provides the ability to iterate - // over the registered types or lookup a type by name. - package protoregistry -@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) { - - // FindDescriptorByName looks up a descriptor by the full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { - if r == nil { - return nil, NotFound -@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { - - // FindFileByPath looks up a file by the path. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - // This returns an error if multiple files have the same path. - func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { - if r == nil { -@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type MessageTypeResolver interface { - // FindMessageByName looks up a message by its full name. - // E.g., "google.protobuf.Any" -@@ -451,7 +451,7 @@ type MessageTypeResolver interface { - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type ExtensionTypeResolver interface { - // FindExtensionByName looks up a extension field by the field's full name. - // Note that this is the full name of the field as determined by -@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac - // FindEnumByName looks up an enum by its full name. - // E.g., "google.protobuf.Field.Kind". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { - if r == nil { - return nil, NotFound -@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp - // FindMessageByName looks up a message by its full name, - // e.g. "google.protobuf.Any". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - if r == nil { - return nil, NotFound -@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M - // FindMessageByURL looks up a message by a URL identifier. - // See documentation on google.protobuf.Any.type_url for the URL format. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // This function is similar to FindMessageByName but - // truncates anything before and including '/' in the URL. -@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // where the extension is declared and is unrelated to the full name of the - // message being extended. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E - // FindExtensionByNumber looks up a extension field by the field number - // within some parent message, identified by full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index 04c00f73..78624cf6 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,103 @@ import ( - sync "sync" - ) - -+// The full set of known editions. -+type Edition int32 -+ -+const ( -+ // A placeholder for an unknown edition value. -+ Edition_EDITION_UNKNOWN Edition = 0 -+ // Legacy syntax "editions". These pre-date editions, but behave much like -+ // distinct editions. These can't be used to specify the edition of proto -+ // files, but feature definitions must supply proto2/proto3 defaults for -+ // backwards compatibility. -+ Edition_EDITION_PROTO2 Edition = 998 -+ Edition_EDITION_PROTO3 Edition = 999 -+ // Editions that have been released. The specific values are arbitrary and -+ // should not be depended on, but they will always be time-ordered for easy -+ // comparison. -+ Edition_EDITION_2023 Edition = 1000 -+ Edition_EDITION_2024 Edition = 1001 -+ // Placeholder editions for testing feature resolution. These should not be -+ // used or relyed on outside of tests. -+ Edition_EDITION_1_TEST_ONLY Edition = 1 -+ Edition_EDITION_2_TEST_ONLY Edition = 2 -+ Edition_EDITION_99997_TEST_ONLY Edition = 99997 -+ Edition_EDITION_99998_TEST_ONLY Edition = 99998 -+ Edition_EDITION_99999_TEST_ONLY Edition = 99999 -+ // Placeholder for specifying unbounded edition support. This should only -+ // ever be used by plugins that can expect to never require any changes to -+ // support a new edition. -+ Edition_EDITION_MAX Edition = 2147483647 -+) -+ -+// Enum value maps for Edition. -+var ( -+ Edition_name = map[int32]string{ -+ 0: "EDITION_UNKNOWN", -+ 998: "EDITION_PROTO2", -+ 999: "EDITION_PROTO3", -+ 1000: "EDITION_2023", -+ 1001: "EDITION_2024", -+ 1: "EDITION_1_TEST_ONLY", -+ 2: "EDITION_2_TEST_ONLY", -+ 99997: "EDITION_99997_TEST_ONLY", -+ 99998: "EDITION_99998_TEST_ONLY", -+ 99999: "EDITION_99999_TEST_ONLY", -+ 2147483647: "EDITION_MAX", -+ } -+ Edition_value = map[string]int32{ -+ "EDITION_UNKNOWN": 0, -+ "EDITION_PROTO2": 998, -+ "EDITION_PROTO3": 999, -+ "EDITION_2023": 1000, -+ "EDITION_2024": 1001, -+ "EDITION_1_TEST_ONLY": 1, -+ "EDITION_2_TEST_ONLY": 2, -+ "EDITION_99997_TEST_ONLY": 99997, -+ "EDITION_99998_TEST_ONLY": 99998, -+ "EDITION_99999_TEST_ONLY": 99999, -+ "EDITION_MAX": 2147483647, -+ } -+) -+ -+func (x Edition) Enum() *Edition { -+ p := new(Edition) -+ *p = x -+ return p -+} -+ -+func (x Edition) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (Edition) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (Edition) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x Edition) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *Edition) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = Edition(num) -+ return nil -+} -+ -+// Deprecated: Use Edition.Descriptor instead. -+func (Edition) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ - // The verification state of the extension range. - type ExtensionRangeOptions_VerificationState int32 - -@@ -80,11 +177,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string { - } - - func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -@@ -125,9 +222,10 @@ const ( - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - // Tag-delimited aggregate. -- // Group type is deprecated and not supported in proto3. However, Proto3 -+ // Group type is deprecated and not supported after google.protobuf. However, Proto3 - // implementations should still be able to parse the group wire format and -- // treat group fields as unknown fields. -+ // treat group fields as unknown fields. In Editions, the group wire format -+ // can be enabled via the `message_encoding` feature. - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. - // New in version 2. -@@ -195,11 +293,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -226,21 +324,24 @@ type FieldDescriptorProto_Label int32 - const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -- FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+ // The required label is only allowed in google.protobuf. In proto3 and Editions -+ // it's explicitly prohibited. In Editions, the `field_presence` feature -+ // can be used to get this behavior. -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - ) - - // Enum value maps for FieldDescriptorProto_Label. - var ( - FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", -- 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -+ 2: "LABEL_REQUIRED", - } - FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, -- "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -+ "LABEL_REQUIRED": 2, - } - ) - -@@ -255,11 +356,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -316,11 +417,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -382,11 +483,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -444,11 +545,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -506,11 +607,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -590,11 +691,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -652,11 +753,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -678,6 +779,363 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} - } - -+type FeatureSet_FieldPresence int32 -+ -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0 -+ FeatureSet_EXPLICIT FeatureSet_FieldPresence = 1 -+ FeatureSet_IMPLICIT FeatureSet_FieldPresence = 2 -+ FeatureSet_LEGACY_REQUIRED FeatureSet_FieldPresence = 3 -+) -+ -+// Enum value maps for FeatureSet_FieldPresence. -+var ( -+ FeatureSet_FieldPresence_name = map[int32]string{ -+ 0: "FIELD_PRESENCE_UNKNOWN", -+ 1: "EXPLICIT", -+ 2: "IMPLICIT", -+ 3: "LEGACY_REQUIRED", -+ } -+ FeatureSet_FieldPresence_value = map[string]int32{ -+ "FIELD_PRESENCE_UNKNOWN": 0, -+ "EXPLICIT": 1, -+ "IMPLICIT": 2, -+ "LEGACY_REQUIRED": 3, -+ } -+) -+ -+func (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence { -+ p := new(FeatureSet_FieldPresence) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_FieldPresence) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor() -+} -+ -+func (FeatureSet_FieldPresence) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[10] -+} -+ -+func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_FieldPresence(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead. -+func (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+type FeatureSet_EnumType int32 -+ -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0 -+ FeatureSet_OPEN FeatureSet_EnumType = 1 -+ FeatureSet_CLOSED FeatureSet_EnumType = 2 -+) -+ -+// Enum value maps for FeatureSet_EnumType. -+var ( -+ FeatureSet_EnumType_name = map[int32]string{ -+ 0: "ENUM_TYPE_UNKNOWN", -+ 1: "OPEN", -+ 2: "CLOSED", -+ } -+ FeatureSet_EnumType_value = map[string]int32{ -+ "ENUM_TYPE_UNKNOWN": 0, -+ "OPEN": 1, -+ "CLOSED": 2, -+ } -+) -+ -+func (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType { -+ p := new(FeatureSet_EnumType) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_EnumType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor() -+} -+ -+func (FeatureSet_EnumType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[11] -+} -+ -+func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_EnumType(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_EnumType.Descriptor instead. -+func (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1} -+} -+ -+type FeatureSet_RepeatedFieldEncoding int32 -+ -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0 -+ FeatureSet_PACKED FeatureSet_RepeatedFieldEncoding = 1 -+ FeatureSet_EXPANDED FeatureSet_RepeatedFieldEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_RepeatedFieldEncoding. -+var ( -+ FeatureSet_RepeatedFieldEncoding_name = map[int32]string{ -+ 0: "REPEATED_FIELD_ENCODING_UNKNOWN", -+ 1: "PACKED", -+ 2: "EXPANDED", -+ } -+ FeatureSet_RepeatedFieldEncoding_value = map[string]int32{ -+ "REPEATED_FIELD_ENCODING_UNKNOWN": 0, -+ "PACKED": 1, -+ "EXPANDED": 2, -+ } -+) -+ -+func (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding { -+ p := new(FeatureSet_RepeatedFieldEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor() -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[12] -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_RepeatedFieldEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead. -+func (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2} -+} -+ -+type FeatureSet_Utf8Validation int32 -+ -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0 -+ FeatureSet_VERIFY FeatureSet_Utf8Validation = 2 -+ FeatureSet_NONE FeatureSet_Utf8Validation = 3 -+) -+ -+// Enum value maps for FeatureSet_Utf8Validation. -+var ( -+ FeatureSet_Utf8Validation_name = map[int32]string{ -+ 0: "UTF8_VALIDATION_UNKNOWN", -+ 2: "VERIFY", -+ 3: "NONE", -+ } -+ FeatureSet_Utf8Validation_value = map[string]int32{ -+ "UTF8_VALIDATION_UNKNOWN": 0, -+ "VERIFY": 2, -+ "NONE": 3, -+ } -+) -+ -+func (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation { -+ p := new(FeatureSet_Utf8Validation) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_Utf8Validation) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor() -+} -+ -+func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[13] -+} -+ -+func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_Utf8Validation(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead. -+func (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3} -+} -+ -+type FeatureSet_MessageEncoding int32 -+ -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0 -+ FeatureSet_LENGTH_PREFIXED FeatureSet_MessageEncoding = 1 -+ FeatureSet_DELIMITED FeatureSet_MessageEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_MessageEncoding. -+var ( -+ FeatureSet_MessageEncoding_name = map[int32]string{ -+ 0: "MESSAGE_ENCODING_UNKNOWN", -+ 1: "LENGTH_PREFIXED", -+ 2: "DELIMITED", -+ } -+ FeatureSet_MessageEncoding_value = map[string]int32{ -+ "MESSAGE_ENCODING_UNKNOWN": 0, -+ "LENGTH_PREFIXED": 1, -+ "DELIMITED": 2, -+ } -+) -+ -+func (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding { -+ p := new(FeatureSet_MessageEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_MessageEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor() -+} -+ -+func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[14] -+} -+ -+func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_MessageEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead. -+func (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4} -+} -+ -+type FeatureSet_JsonFormat int32 -+ -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0 -+ FeatureSet_ALLOW FeatureSet_JsonFormat = 1 -+ FeatureSet_LEGACY_BEST_EFFORT FeatureSet_JsonFormat = 2 -+) -+ -+// Enum value maps for FeatureSet_JsonFormat. -+var ( -+ FeatureSet_JsonFormat_name = map[int32]string{ -+ 0: "JSON_FORMAT_UNKNOWN", -+ 1: "ALLOW", -+ 2: "LEGACY_BEST_EFFORT", -+ } -+ FeatureSet_JsonFormat_value = map[string]int32{ -+ "JSON_FORMAT_UNKNOWN": 0, -+ "ALLOW": 1, -+ "LEGACY_BEST_EFFORT": 2, -+ } -+) -+ -+func (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat { -+ p := new(FeatureSet_JsonFormat) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_JsonFormat) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor() -+} -+ -+func (FeatureSet_JsonFormat) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[15] -+} -+ -+func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_JsonFormat(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead. -+func (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5} -+} -+ - // Represents the identified object's effect on the element in the original - // .proto file. - type GeneratedCodeInfo_Annotation_Semantic int32 -@@ -716,11 +1174,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[9] -+ return &file_google_protobuf_descriptor_proto_enumTypes[16] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -739,7 +1197,7 @@ func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - - // Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. - func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0} - } - - // The protocol compiler can output a FileDescriptorSet containing the .proto -@@ -822,8 +1280,8 @@ type FileDescriptorProto struct { - // - // If `edition` is present, this value must be "editions". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -- // The edition of the proto file, which is an opaque string. -- Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+ // The edition of the proto file. -+ Edition *Edition `protobuf:"varint,14,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` - } - - func (x *FileDescriptorProto) Reset() { -@@ -942,11 +1400,11 @@ func (x *FileDescriptorProto) GetSyntax() string { - return "" - } - --func (x *FileDescriptorProto) GetEdition() string { -+func (x *FileDescriptorProto) GetEdition() Edition { - if x != nil && x.Edition != nil { - return *x.Edition - } -- return "" -+ return Edition_EDITION_UNKNOWN - } - - // Describes a message type. -@@ -1079,13 +1537,14 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -- // go/protobuf-stripping-extension-declarations -- // Like Metadata, but we use a repeated field to hold all extension -- // declarations. This should avoid the size increases of transforming a large -- // extension range into small ranges in generated binaries. -+ // For external users: DO NOT USE. We are in the process of open sourcing -+ // extension declaration and executing internal cleanups before it can be -+ // used externally. - Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The verification state of the range. -- // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // TODO: flip the default to DECLARATION once all empty ranges - // are marked as UNVERIFIED. - Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` - } -@@ -1141,6 +1600,13 @@ func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declar - return nil - } - -+func (x *ExtensionRangeOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { - if x != nil && x.Verification != nil { - return *x.Verification -@@ -1186,12 +1652,12 @@ type FieldDescriptorProto struct { - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // -- // When proto3_optional is true, this field must be belong to a oneof to -- // signal to old proto3 clients that presence is tracked for this field. This -- // oneof is known as a "synthetic" oneof, and this field must be its sole -- // member (each proto3 optional field gets its own synthetic oneof). Synthetic -- // oneofs exist in the descriptor only, and do not generate any API. Synthetic -- // oneofs must be ordered after all "real" oneofs. -+ // When proto3_optional is true, this field must belong to a oneof to signal -+ // to old proto3 clients that presence is tracked for this field. This oneof -+ // is known as a "synthetic" oneof, and this field must be its sole member -+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs -+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs -+ // must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still -@@ -1738,7 +2204,6 @@ type FileOptions struct { - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -- PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very -@@ -1772,6 +2237,8 @@ type FileOptions struct { - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -@@ -1785,7 +2252,6 @@ const ( - Default_FileOptions_CcGenericServices = bool(false) - Default_FileOptions_JavaGenericServices = bool(false) - Default_FileOptions_PyGenericServices = bool(false) -- Default_FileOptions_PhpGenericServices = bool(false) - Default_FileOptions_Deprecated = bool(false) - Default_FileOptions_CcEnableArenas = bool(true) - ) -@@ -1893,13 +2359,6 @@ func (x *FileOptions) GetPyGenericServices() bool { - return Default_FileOptions_PyGenericServices - } - --func (x *FileOptions) GetPhpGenericServices() bool { -- if x != nil && x.PhpGenericServices != nil { -- return *x.PhpGenericServices -- } -- return Default_FileOptions_PhpGenericServices --} -- - func (x *FileOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -1963,6 +2422,13 @@ func (x *FileOptions) GetRubyPackage() string { - return "" - } - -+func (x *FileOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2006,10 +2472,6 @@ type MessageOptions struct { - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -- // NOTE: Do not set the option in .proto files. Always use the maps syntax -- // instead. The option should only be implicitly set by the proto compiler -- // parser. -- // - // Whether the message is an automatically generated map entry type for the - // maps field. - // -@@ -2030,6 +2492,10 @@ type MessageOptions struct { - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. -+ // -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. -@@ -2039,11 +2505,13 @@ type MessageOptions struct { - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. - // -- // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // TODO This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,12,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2123,6 +2591,13 @@ func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *MessageOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2147,7 +2622,9 @@ type FieldOptions struct { - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to -- // false will avoid using packed encoding. -+ // false will avoid using packed encoding. This option is prohibited in -+ // Editions, but the `repeated_field_encoding` feature can be used to control -+ // the behavior. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types -@@ -2178,19 +2655,11 @@ type FieldOptions struct { - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // -- // Note that implementations may choose not to check required fields within -- // a lazy sub-message. That is, calling IsInitialized() on the outer message -- // may return true even if the inner message has missing required fields. -- // This is necessary because otherwise the inner message would have to be -- // parsed in order to perform the check, defeating the purpose of lazy -- // parsing. An implementation which chooses not to check required fields -- // must be consistent about it. That is, for any particular sub-message, the -- // implementation must either *always* check its required fields, or *never* -- // check its required fields, regardless of whether or not the message has -- // been parsed. -- // -- // As of May 2022, lazy verifies the contents of the byte stream during -- // parsing. An invalid byte stream will cause the overall parsing to fail. -+ // Note that lazy message fields are still eagerly verified to check -+ // ill-formed wireformat or missing required fields. Calling IsInitialized() -+ // on the outer message would fail if the inner message has missing required -+ // fields. Failed verification would result in parsing failure (except when -+ // uninitialized messages are acceptable). - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance -@@ -2205,11 +2674,12 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -- Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ EditionDefaults []*FieldOptions_EditionDefault `protobuf:"bytes,20,rep,name=edition_defaults,json=editionDefaults" json:"edition_defaults,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,21,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2320,17 +2790,23 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -- if x != nil && x.Target != nil { -- return *x.Target -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets - } -- return FieldOptions_TARGET_TYPE_UNKNOWN -+ return nil - } - --func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+func (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault { - if x != nil { -- return x.Targets -+ return x.EditionDefaults -+ } -+ return nil -+} -+ -+func (x *FieldOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features - } - return nil - } -@@ -2348,6 +2824,8 @@ type OneofOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,1,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2384,6 +2862,13 @@ func (*OneofOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} - } - -+func (x *OneofOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2409,11 +2894,13 @@ type EnumOptions struct { - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. -- // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // TODO Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,7,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2477,6 +2964,13 @@ func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *EnumOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2495,13 +2989,20 @@ type EnumValueOptions struct { - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+ // Indicate that fields annotated with this enum value should not be printed -+ // out when using debug formats, e.g. when the field contains sensitive -+ // credentials. -+ DebugRedact *bool `protobuf:"varint,3,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } - - // Default values for EnumValueOptions fields. - const ( -- Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_DebugRedact = bool(false) - ) - - func (x *EnumValueOptions) Reset() { -@@ -2543,6 +3044,20 @@ func (x *EnumValueOptions) GetDeprecated() bool { - return Default_EnumValueOptions_Deprecated - } - -+func (x *EnumValueOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ -+func (x *EnumValueOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_EnumValueOptions_DebugRedact -+} -+ - func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2556,6 +3071,8 @@ type ServiceOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,34,opt,name=features" json:"features,omitempty"` - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, -@@ -2602,6 +3119,13 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} - } - -+func (x *ServiceOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ServiceOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -2628,6 +3152,8 @@ type MethodOptions struct { - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,35,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2684,6 +3210,13 @@ func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { - return Default_MethodOptions_IdempotencyLevel - } - -+func (x *MethodOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2770,28 +3303,193 @@ func (x *UninterpretedOption) GetNegativeIntValue() int64 { - if x != nil && x.NegativeIntValue != nil { - return *x.NegativeIntValue - } -- return 0 -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// TODO Enums in C++ gencode (and potentially other languages) are -+// not well scoped. This means that each of the feature enums below can clash -+// with each other. The short names we've chosen maximize call-site -+// readability, but leave us very open to this scenario. A future feature will -+// be designed and implemented to handle this, hopefully before we ever hit a -+// conflict here. -+type FeatureSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"` -+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"` -+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"` -+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"` -+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"` -+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"` -+} -+ -+func (x *FeatureSet) Reset() { -+ *x = FeatureSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSet) ProtoMessage() {} -+ -+func (x *FeatureSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ 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 FeatureSet.ProtoReflect.Descriptor instead. -+func (*FeatureSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence { -+ if x != nil && x.FieldPresence != nil { -+ return *x.FieldPresence -+ } -+ return FeatureSet_FIELD_PRESENCE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetEnumType() FeatureSet_EnumType { -+ if x != nil && x.EnumType != nil { -+ return *x.EnumType -+ } -+ return FeatureSet_ENUM_TYPE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding { -+ if x != nil && x.RepeatedFieldEncoding != nil { -+ return *x.RepeatedFieldEncoding -+ } -+ return FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation { -+ if x != nil && x.Utf8Validation != nil { -+ return *x.Utf8Validation -+ } -+ return FeatureSet_UTF8_VALIDATION_UNKNOWN -+} -+ -+func (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding { -+ if x != nil && x.MessageEncoding != nil { -+ return *x.MessageEncoding -+ } -+ return FeatureSet_MESSAGE_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat { -+ if x != nil && x.JsonFormat != nil { -+ return *x.JsonFormat -+ } -+ return FeatureSet_JSON_FORMAT_UNKNOWN -+} -+ -+// A compiled specification for the defaults of a set of features. These -+// messages are generated from FeatureSet extensions and can be used to seed -+// feature resolution. The resolution with this object becomes a simple search -+// for the closest matching edition, followed by proto merges. -+type FeatureSetDefaults struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Defaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:"bytes,1,rep,name=defaults" json:"defaults,omitempty"` -+ // The minimum supported edition (inclusive) when this was constructed. -+ // Editions before this will not have defaults. -+ MinimumEdition *Edition `protobuf:"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition" json:"minimum_edition,omitempty"` -+ // The maximum known edition (inclusive) when this was constructed. Editions -+ // after this will not have reliable defaults. -+ MaximumEdition *Edition `protobuf:"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition" json:"maximum_edition,omitempty"` -+} -+ -+func (x *FeatureSetDefaults) Reset() { -+ *x = FeatureSetDefaults{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ 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) - } - --func (x *UninterpretedOption) GetDoubleValue() float64 { -- if x != nil && x.DoubleValue != nil { -- return *x.DoubleValue -- } -- return 0 -+// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} - } - --func (x *UninterpretedOption) GetStringValue() []byte { -+func (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault { - if x != nil { -- return x.StringValue -+ return x.Defaults - } - return nil - } - --func (x *UninterpretedOption) GetAggregateValue() string { -- if x != nil && x.AggregateValue != nil { -- return *x.AggregateValue -+func (x *FeatureSetDefaults) GetMinimumEdition() Edition { -+ if x != nil && x.MinimumEdition != nil { -+ return *x.MinimumEdition - } -- return "" -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults) GetMaximumEdition() Edition { -+ if x != nil && x.MaximumEdition != nil { -+ return *x.MaximumEdition -+ } -+ return Edition_EDITION_UNKNOWN - } - - // Encapsulates information about the original source file from which a -@@ -2855,7 +3553,7 @@ type SourceCodeInfo struct { - func (x *SourceCodeInfo) Reset() { - *x = SourceCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2868,7 +3566,7 @@ func (x *SourceCodeInfo) String() string { - func (*SourceCodeInfo) ProtoMessage() {} - - func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2881,7 +3579,7 @@ func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21} - } - - func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -@@ -2907,7 +3605,7 @@ type GeneratedCodeInfo struct { - func (x *GeneratedCodeInfo) Reset() { - *x = GeneratedCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2920,7 +3618,7 @@ func (x *GeneratedCodeInfo) String() string { - func (*GeneratedCodeInfo) ProtoMessage() {} - - func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2933,7 +3631,7 @@ func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22} - } - - func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -@@ -2956,7 +3654,7 @@ type DescriptorProto_ExtensionRange struct { - func (x *DescriptorProto_ExtensionRange) Reset() { - *x = DescriptorProto_ExtensionRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2969,7 +3667,7 @@ func (x *DescriptorProto_ExtensionRange) String() string { - func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - - func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3021,7 +3719,7 @@ type DescriptorProto_ReservedRange struct { - func (x *DescriptorProto_ReservedRange) Reset() { - *x = DescriptorProto_ReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3034,7 +3732,7 @@ func (x *DescriptorProto_ReservedRange) String() string { - func (*DescriptorProto_ReservedRange) ProtoMessage() {} - - func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3078,10 +3776,6 @@ type ExtensionRangeOptions_Declaration struct { - // Metadata.type, Declaration.type must have a leading dot for messages - // and enums. - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -- // Deprecated. Please use "repeated". -- // -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` - // If true, indicates that the number is reserved in the extension range, - // and any extension field with the number will fail to compile. Set this - // when a declared extension field is deleted. -@@ -3094,7 +3788,7 @@ type ExtensionRangeOptions_Declaration struct { - func (x *ExtensionRangeOptions_Declaration) Reset() { - *x = ExtensionRangeOptions_Declaration{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3107,7 +3801,7 @@ func (x *ExtensionRangeOptions_Declaration) String() string { - func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} - - func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3144,14 +3838,6 @@ func (x *ExtensionRangeOptions_Declaration) GetType() string { - return "" - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -- if x != nil && x.IsRepeated != nil { -- return *x.IsRepeated -- } -- return false --} -- - func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { - if x != nil && x.Reserved != nil { - return *x.Reserved -@@ -3184,7 +3870,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3197,7 +3883,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3227,6 +3913,61 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { - return 0 - } - -+type FieldOptions_EditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Textproto value. -+} -+ -+func (x *FieldOptions_EditionDefault) Reset() { -+ *x = FieldOptions_EditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions_EditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions_EditionDefault) ProtoMessage() {} -+ -+func (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ 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 FieldOptions_EditionDefault.ProtoReflect.Descriptor instead. -+func (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+func (x *FieldOptions_EditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FieldOptions_EditionDefault) GetValue() string { -+ if x != nil && x.Value != nil { -+ return *x.Value -+ } -+ return "" -+} -+ - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). -@@ -3244,7 +3985,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3257,7 +3998,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3287,6 +4028,65 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool { - return false - } - -+// A map from every known edition with a unique set of defaults to its -+// defaults. Not all editions may be contained here. For a given edition, -+// the defaults at the closest matching edition ordered at or before it should -+// be used. This field must be in strict ascending order by edition. -+type FeatureSetDefaults_FeatureSetEditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() { -+ *x = FeatureSetDefaults_FeatureSetEditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ 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 FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - type SourceCodeInfo_Location struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache -@@ -3296,7 +4096,7 @@ type SourceCodeInfo_Location struct { - // location. - // - // Each element is a field number or an index. They form a path from -- // the root FileDescriptorProto to the place where the definition occurs. -+ // the root FileDescriptorProto to the place where the definition appears. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] -@@ -3388,7 +4188,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3401,7 +4201,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3414,7 +4214,7 @@ func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0} - } - - func (x *SourceCodeInfo_Location) GetPath() []int32 { -@@ -3475,7 +4275,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3488,7 +4288,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3501,7 +4301,7 @@ func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0} - } - - func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -@@ -3550,7 +4350,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -@@ -3588,250 +4388,250 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -- 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -- 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -- 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -- 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -- 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -- 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -- 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, -+ 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, -+ 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, -+ 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -- 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -- 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -- 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, -+ 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, -+ 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, -+ 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, -+ 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, -+ 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, -+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, -+ 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, -+ 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, -+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, -+ 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, -+ 0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88, -+ 0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, -+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, -+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, -+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, -+ 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, -+ 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, -+ 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, -+ 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, -+ 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, -+ 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, -+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, -+ 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, -+ 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, -+ 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, -+ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, -+ 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, -+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14, -+ 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, -+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, -+ 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -- 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -- 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -- 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -- 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -- 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -- 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -- 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -- 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -- 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -- 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -- 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -- 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -- 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -- 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -- 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -- 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -- 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -- 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -- 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -- 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -- 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -- 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -- 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -- 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -- 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -- 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -- 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -- 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -- 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -- 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -- 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -- 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -- 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -- 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -- 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -- 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -- 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -- 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -- 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -- 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -- 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -- 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -- 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -- 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -- 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -- 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, -+ 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, -+ 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -- 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, -+ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, -+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -- 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -- 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -- 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -- 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -- 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -- 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -- 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -- 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -- 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -- 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -- 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -- 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -- 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -- 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -- 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -- 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -- 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -- 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, -+ 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, -+ 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, -+ 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x22, 0x97, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, -+ 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, -+ 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, -+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, -+ 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, -+ 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, -+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, -+ 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, -+ 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, -+ 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, -+ 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, -+ 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, -+ 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, -+ 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, -+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, -+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -@@ -3856,259 +4656,419 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -- 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -- 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -- 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -- 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -- 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -- 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -- 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -- 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -- 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -- 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -- 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -- 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -- 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -- 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -- 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -- 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -- 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -- 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -- 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -- 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -- 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -- 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, -+ 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, -+ 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, -+ 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, -+ 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, -+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xf4, 0x03, -+ 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, -+ 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, -+ 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, -+ 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, -+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, -+ 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -- 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -- 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -- 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -- 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -- 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -- 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -- 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -- 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -- 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -- 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -- 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -- 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -- 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -- 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -- 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -- 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -- 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -- 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -- 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -- 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -- 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -- 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -- 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -- 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -- 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -- 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -- 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, -+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, -+ 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, -+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, -+ 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, -+ 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, -+ 0x08, 0x09, 0x10, 0x0a, 0x22, 0xad, 0x0a, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, -+ 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, -+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, -+ 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, -+ 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, -+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, -+ 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, -+ 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, -+ 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, -+ 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, -+ 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, -+ 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, -+ 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, -+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, -+ 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, -+ 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, -+ 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -- 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -- 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -- 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -- 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -- 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -- 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -- 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -- 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -- 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -- 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -- 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -- 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -- 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -- 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -- 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x69, 0x6f, 0x6e, 0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, -+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, -+ 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, -+ 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, -+ 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, -+ 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, -+ 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, -+ 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, -+ 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, -+ 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, -+ 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, -+ 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, -+ 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, -+ 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, -+ 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, -+ 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, -+ 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, -+ 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, -+ 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -- 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -- 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -- 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -- 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -- 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -- 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -- 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -- 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -- 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -- 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -- 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -- 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -- 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -- 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -- 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -- 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -- 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -- 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -- 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -- 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -- 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -- 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, -+ 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, -+ 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, -+ 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, -+ 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, -+ 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x81, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, -+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, -+ 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, -+ 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, -+ 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, -+ 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, -+ 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, -+ 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, -+ 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, -+ 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, -+ 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, -+ 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, -+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, -+ 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, -+ 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, -+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, -+ 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, -+ 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, -+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, -+ 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, -+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, -+ 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x0a, -+ 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0e, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, -+ 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, -+ 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x65, 0x6e, 0x75, -+ 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x42, 0x23, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0b, -+ 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x09, 0x12, 0x04, -+ 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, -+ 0x65, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, -+ 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x27, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, -+ 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, -+ 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0x52, -+ 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x78, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, -+ 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x88, 0x01, 0x01, -+ 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, -+ 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, -+ 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x78, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, -+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, -+ 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x20, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, -+ 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, -+ 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7c, 0x0a, 0x0b, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, -+ 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x33, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, -+ 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, -+ 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, -+ 0x01, 0x0a, 0x12, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0x52, 0x0a, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x45, -+ 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, -+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, -+ 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, -+ 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, -+ 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, -+ 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, -+ 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x50, 0x45, -+ 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, -+ 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, -+ 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x43, 0x0a, 0x0e, 0x55, 0x74, 0x66, 0x38, 0x56, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x54, 0x46, -+ 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, -+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, -+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0f, -+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, -+ 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, -+ 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, -+ 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, -+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, -+ 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, -+ 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, -+ 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, -+ 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0x8b, 0x4e, 0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, -+ 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07, 0x10, 0xe8, 0x07, 0x22, 0xfe, 0x02, 0x0a, 0x12, -+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, -+ 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, -+ 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, -+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, -+ 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, -+ 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, -+ 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, -+ 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -- 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -- 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -- 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -- 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -- 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -- 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -- 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -- 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -- 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -- 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -- 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, -+ 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, -+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, -+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, -+ 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, -+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, -+ 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, -+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, -+ 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, -+ 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, -+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, -+ 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x07, 0x45, 0x64, -+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, -+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, -+ 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, -+ 0x33, 0x10, 0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, -+ 0x32, 0x30, 0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, -+ 0x4f, 0x4e, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, -+ 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, -+ 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, -+ 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, -+ 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, -+ 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, -+ 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, -+ 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, -+ 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - } - - var ( -@@ -4123,103 +5083,136 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 32) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -- (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 20: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -- (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation -+ (Edition)(0), // 0: google.protobuf.Edition -+ (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel -+ (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence -+ (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType -+ (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding -+ (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation -+ (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding -+ (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 17: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 18: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 19: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 20: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 21: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 22: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 23: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 24: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 25: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 26: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 27: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 28: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 29: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 30: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 31: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 32: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 33: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 34: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 35: google.protobuf.UninterpretedOption -+ (*FeatureSet)(nil), // 36: google.protobuf.FeatureSet -+ (*FeatureSetDefaults)(nil), // 37: google.protobuf.FeatureSetDefaults -+ (*SourceCodeInfo)(nil), // 38: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 39: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 40: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 41: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 42: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*FieldOptions_EditionDefault)(nil), // 44: google.protobuf.FieldOptions.EditionDefault -+ (*UninterpretedOption_NamePart)(nil), // 45: google.protobuf.UninterpretedOption.NamePart -+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 46: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ (*SourceCodeInfo_Location)(nil), // 47: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 48: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -- 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -- 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 49, // [49:49] is the sub-list for method output_type -- 49, // [49:49] is the sub-list for method input_type -- 49, // [49:49] is the sub-list for extension type_name -- 49, // [49:49] is the sub-list for extension extendee -- 0, // [0:49] is the sub-list for field type_name -+ 18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition -+ 21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet -+ 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault -+ 36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 42: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 43: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 44: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 45: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 46: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 47: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 48: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 49: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 50: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 9, // 51: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 36, // 52: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 53: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 45, // 54: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 10, // 55: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence -+ 11, // 56: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType -+ 12, // 57: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding -+ 13, // 58: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation -+ 14, // 59: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding -+ 15, // 60: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat -+ 46, // 61: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ 0, // 62: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition -+ 0, // 63: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition -+ 47, // 64: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 48, // 65: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 20, // 66: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 0, // 67: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition -+ 0, // 68: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition -+ 36, // 69: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features:type_name -> google.protobuf.FeatureSet -+ 16, // 70: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 71, // [71:71] is the sub-list for method output_type -+ 71, // [71:71] is the sub-list for method input_type -+ 71, // [71:71] is the sub-list for extension type_name -+ 71, // [71:71] is the sub-list for extension extendee -+ 0, // [0:71] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4475,19 +5468,21 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo); i { -+ switch v := v.(*FeatureSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields -+ case 3: -+ return &v.extensionFields - default: - return nil - } - } - file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*GeneratedCodeInfo); i { -+ switch v := v.(*FeatureSetDefaults); i { - case 0: - return &v.state - case 1: -@@ -4499,7 +5494,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ExtensionRange); i { -+ switch v := v.(*SourceCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4511,7 +5506,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ReservedRange); i { -+ switch v := v.(*GeneratedCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4523,7 +5518,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*ExtensionRangeOptions_Declaration); i { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { - case 0: - return &v.state - case 1: -@@ -4535,7 +5530,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*DescriptorProto_ReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4547,7 +5542,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4559,7 +5554,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4571,6 +5566,54 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions_EditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FeatureSetDefaults_FeatureSetEditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4588,8 +5631,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 10, -- NumMessages: 28, -+ NumEnums: 17, -+ NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -new file mode 100644 -index 00000000..25de5ae0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -@@ -0,0 +1,177 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: reflect/protodesc/proto/go_features.proto -+ -+package proto -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ descriptorpb "google.golang.org/protobuf/types/descriptorpb" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type GoFeatures struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -+} -+ -+func (x *GoFeatures) Reset() { -+ *x = GoFeatures{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GoFeatures) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GoFeatures) ProtoMessage() {} -+ -+func (x *GoFeatures) ProtoReflect() protoreflect.Message { -+ mi := &file_reflect_protodesc_proto_go_features_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 GoFeatures.ProtoReflect.Descriptor instead. -+func (*GoFeatures) Descriptor() ([]byte, []int) { -+ return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { -+ if x != nil && x.LegacyUnmarshalJsonEnum != nil { -+ return *x.LegacyUnmarshalJsonEnum -+ } -+ return false -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ -+ { -+ ExtendedType: (*descriptorpb.FeatureSet)(nil), -+ ExtensionType: (*GoFeatures)(nil), -+ Field: 1002, -+ Name: "google.protobuf.go", -+ Tag: "bytes,1002,opt,name=go", -+ Filename: "reflect/protodesc/proto/go_features.proto", -+ }, -+} -+ -+// Extension fields to descriptorpb.FeatureSet. -+var ( -+ // optional google.protobuf.GoFeatures go = 1002; -+ E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -+) -+ -+var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor -+ -+var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ -+ 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, -+ 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, -+ 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, -+ 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, -+ 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, -+ 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, -+ 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+} -+ -+var ( -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -+) -+ -+func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) -+ }) -+ return file_reflect_protodesc_proto_go_features_proto_rawDescData -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ -+ (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures -+ (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -+} -+var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ -+ 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet -+ 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures -+ 2, // [2:2] is the sub-list for method output_type -+ 2, // [2:2] is the sub-list for method input_type -+ 1, // [1:2] is the sub-list for extension type_name -+ 0, // [0:1] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_reflect_protodesc_proto_go_features_proto_init() } -+func file_reflect_protodesc_proto_go_features_proto_init() { -+ if File_reflect_protodesc_proto_go_features_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GoFeatures); 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_reflect_protodesc_proto_go_features_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 1, -+ NumServices: 0, -+ }, -+ GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, -+ DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, -+ MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, -+ ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, -+ }.Build() -+ File_reflect_protodesc_proto_go_features_proto = out.File -+ file_reflect_protodesc_proto_go_features_proto_rawDesc = nil -+ file_reflect_protodesc_proto_go_features_proto_goTypes = nil -+ file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -new file mode 100644 -index 00000000..d2465712 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -@@ -0,0 +1,28 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+syntax = "proto2"; -+ -+package google.protobuf; -+ -+import "google/protobuf/descriptor.proto"; -+ -+option go_package = "google.golang.org/protobuf/types/gofeaturespb"; -+ -+extend google.protobuf.FeatureSet { -+ optional GoFeatures go = 1002; -+} -+ -+message GoFeatures { -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ optional bool legacy_unmarshal_json_enum = 1 [ -+ retention = RETENTION_RUNTIME, -+ targets = TARGET_TYPE_ENUM, -+ edition_defaults = { edition: EDITION_PROTO2, value: "true" }, -+ edition_defaults = { edition: EDITION_PROTO3, value: "false" } -+ ]; -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index 580b232f..9de51be5 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -237,7 +237,8 @@ type Any struct { - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with -- // type.googleapis.com. -+ // type.googleapis.com. As of May 2023, there are no widely used type server -+ // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. -diff --git a/vendor/modules.txt b/vendor/modules.txt -index df3f5df3..74297c46 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -262,13 +262,14 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.31.0 --## explicit; go 1.11 -+# google.golang.org/protobuf v1.33.0 -+## explicit; go 1.17 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire - google.golang.org/protobuf/internal/descfmt - google.golang.org/protobuf/internal/descopts - google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/editiondefaults - google.golang.org/protobuf/internal/encoding/defval - google.golang.org/protobuf/internal/encoding/messageset - google.golang.org/protobuf/internal/encoding/tag -@@ -291,6 +292,7 @@ google.golang.org/protobuf/reflect/protoregistry - google.golang.org/protobuf/runtime/protoiface - google.golang.org/protobuf/runtime/protoimpl - google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/gofeaturespb - google.golang.org/protobuf/types/known/anypb - google.golang.org/protobuf/types/known/durationpb - google.golang.org/protobuf/types/known/timestamppb --- -2.40.1 - diff --git a/projects/containernetworking/plugins/1-28/patches/0004-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch b/projects/containernetworking/plugins/1-28/patches/0004-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch deleted file mode 100644 index 45da226846..0000000000 --- a/projects/containernetworking/plugins/1-28/patches/0004-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch +++ /dev/null @@ -1,7679 +0,0 @@ -From a64d08df4c46c23501c45aa1de94070d6373d0de Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 9 May 2024 15:37:29 -0700 -Subject: [PATCH] Bump x/net to 0.23.0 to resolve CVE-2023-45288 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 12 +- - vendor/golang.org/x/net/context/go17.go | 1 - - vendor/golang.org/x/net/context/go19.go | 1 - - vendor/golang.org/x/net/context/pre_go17.go | 1 - - vendor/golang.org/x/net/context/pre_go19.go | 1 - - vendor/golang.org/x/net/html/token.go | 12 +- - .../x/net/internal/socket/cmsghdr.go | 1 - - .../x/net/internal/socket/cmsghdr_bsd.go | 1 - - .../internal/socket/cmsghdr_linux_32bit.go | 2 - - .../internal/socket/cmsghdr_linux_64bit.go | 2 - - .../internal/socket/cmsghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/cmsghdr_stub.go | 1 - - .../x/net/internal/socket/cmsghdr_unix.go | 1 - - .../net/internal/socket/complete_dontwait.go | 1 - - .../internal/socket/complete_nodontwait.go | 1 - - .../golang.org/x/net/internal/socket/empty.s | 1 - - .../x/net/internal/socket/error_unix.go | 1 - - .../x/net/internal/socket/iovec_32bit.go | 2 - - .../x/net/internal/socket/iovec_64bit.go | 2 - - .../internal/socket/iovec_solaris_64bit.go | 1 - - .../x/net/internal/socket/iovec_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_unix.go | 1 - - .../x/net/internal/socket/msghdr_bsd.go | 1 - - .../x/net/internal/socket/msghdr_bsdvar.go | 1 - - .../net/internal/socket/msghdr_linux_32bit.go | 2 - - .../net/internal/socket/msghdr_linux_64bit.go | 2 - - .../internal/socket/msghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/msghdr_stub.go | 1 - - .../x/net/internal/socket/msghdr_zos_s390x.go | 1 - - .../x/net/internal/socket/norace.go | 1 - - .../golang.org/x/net/internal/socket/race.go | 1 - - .../x/net/internal/socket/rawconn_mmsg.go | 1 - - .../x/net/internal/socket/rawconn_msg.go | 1 - - .../x/net/internal/socket/rawconn_nommsg.go | 1 - - .../x/net/internal/socket/rawconn_nomsg.go | 1 - - .../x/net/internal/socket/sys_bsd.go | 1 - - .../x/net/internal/socket/sys_const_unix.go | 1 - - .../x/net/internal/socket/sys_linux.go | 1 - - .../net/internal/socket/sys_linux_loong64.go | 1 - - .../net/internal/socket/sys_linux_riscv64.go | 1 - - .../x/net/internal/socket/sys_posix.go | 1 - - .../x/net/internal/socket/sys_stub.go | 1 - - .../x/net/internal/socket/sys_unix.go | 1 - - .../x/net/internal/socket/zsys_aix_ppc64.go | 1 - - .../net/internal/socket/zsys_linux_loong64.go | 1 - - .../net/internal/socket/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/net/ipv4/control_bsd.go | 1 - - .../golang.org/x/net/ipv4/control_pktinfo.go | 1 - - vendor/golang.org/x/net/ipv4/control_stub.go | 1 - - vendor/golang.org/x/net/ipv4/control_unix.go | 1 - - vendor/golang.org/x/net/ipv4/icmp_stub.go | 1 - - vendor/golang.org/x/net/ipv4/payload_cmsg.go | 1 - - .../golang.org/x/net/ipv4/payload_nocmsg.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_posix.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_aix.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreqn.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bsd.go | 1 - - vendor/golang.org/x/net/ipv4/sys_ssmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_stub.go | 1 - - .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 1 - - .../x/net/ipv4/zsys_linux_loong64.go | 1 - - .../x/net/ipv4/zsys_linux_riscv64.go | 1 - - .../golang.org/x/sys/execabs/execabs_go118.go | 1 - - .../golang.org/x/sys/execabs/execabs_go119.go | 1 - - vendor/golang.org/x/sys/unix/aliases.go | 4 +- - vendor/golang.org/x/sys/unix/asm_aix_ppc64.s | 1 - - vendor/golang.org/x/sys/unix/asm_bsd_386.s | 2 - - vendor/golang.org/x/sys/unix/asm_bsd_amd64.s | 2 - - vendor/golang.org/x/sys/unix/asm_bsd_arm.s | 2 - - vendor/golang.org/x/sys/unix/asm_bsd_arm64.s | 2 - - vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s | 2 - - .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 2 - - vendor/golang.org/x/sys/unix/asm_linux_386.s | 1 - - .../golang.org/x/sys/unix/asm_linux_amd64.s | 1 - - vendor/golang.org/x/sys/unix/asm_linux_arm.s | 1 - - .../golang.org/x/sys/unix/asm_linux_arm64.s | 3 - - .../golang.org/x/sys/unix/asm_linux_loong64.s | 3 - - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 3 - - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 3 - - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 3 - - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 2 - - .../golang.org/x/sys/unix/asm_linux_s390x.s | 3 - - .../x/sys/unix/asm_openbsd_mips64.s | 1 - - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 1 - - vendor/golang.org/x/sys/unix/asm_zos_s390x.s | 3 - - vendor/golang.org/x/sys/unix/cap_freebsd.go | 1 - - vendor/golang.org/x/sys/unix/constants.go | 1 - - vendor/golang.org/x/sys/unix/dev_aix_ppc.go | 1 - - vendor/golang.org/x/sys/unix/dev_aix_ppc64.go | 1 - - vendor/golang.org/x/sys/unix/dev_zos.go | 1 - - vendor/golang.org/x/sys/unix/dirent.go | 1 - - vendor/golang.org/x/sys/unix/endian_big.go | 1 - - vendor/golang.org/x/sys/unix/endian_little.go | 1 - - vendor/golang.org/x/sys/unix/env_unix.go | 1 - - vendor/golang.org/x/sys/unix/epoll_zos.go | 1 - - vendor/golang.org/x/sys/unix/fcntl.go | 3 +- - .../x/sys/unix/fcntl_linux_32bit.go | 1 - - vendor/golang.org/x/sys/unix/fdset.go | 1 - - vendor/golang.org/x/sys/unix/fstatfs_zos.go | 1 - - vendor/golang.org/x/sys/unix/gccgo.go | 1 - - vendor/golang.org/x/sys/unix/gccgo_c.c | 1 - - .../x/sys/unix/gccgo_linux_amd64.go | 1 - - vendor/golang.org/x/sys/unix/ifreq_linux.go | 1 - - vendor/golang.org/x/sys/unix/ioctl_linux.go | 5 + - vendor/golang.org/x/sys/unix/ioctl_signed.go | 1 - - .../golang.org/x/sys/unix/ioctl_unsigned.go | 1 - - vendor/golang.org/x/sys/unix/ioctl_zos.go | 1 - - vendor/golang.org/x/sys/unix/mkerrors.sh | 43 ++-- - vendor/golang.org/x/sys/unix/mmap_nomremap.go | 1 - - vendor/golang.org/x/sys/unix/mremap.go | 1 - - vendor/golang.org/x/sys/unix/pagesize_unix.go | 1 - - .../golang.org/x/sys/unix/pledge_openbsd.go | 92 ++----- - vendor/golang.org/x/sys/unix/ptrace_darwin.go | 1 - - vendor/golang.org/x/sys/unix/ptrace_ios.go | 1 - - vendor/golang.org/x/sys/unix/race.go | 1 - - vendor/golang.org/x/sys/unix/race0.go | 1 - - .../x/sys/unix/readdirent_getdents.go | 1 - - .../x/sys/unix/readdirent_getdirentries.go | 1 - - vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 1 - - .../x/sys/unix/sockcmsg_unix_other.go | 1 - - vendor/golang.org/x/sys/unix/syscall.go | 1 - - vendor/golang.org/x/sys/unix/syscall_aix.go | 4 +- - .../golang.org/x/sys/unix/syscall_aix_ppc.go | 1 - - .../x/sys/unix/syscall_aix_ppc64.go | 1 - - vendor/golang.org/x/sys/unix/syscall_bsd.go | 3 +- - .../x/sys/unix/syscall_darwin_amd64.go | 1 - - .../x/sys/unix/syscall_darwin_arm64.go | 1 - - .../x/sys/unix/syscall_darwin_libSystem.go | 3 +- - .../x/sys/unix/syscall_dragonfly_amd64.go | 1 - - .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- - .../x/sys/unix/syscall_freebsd_386.go | 1 - - .../x/sys/unix/syscall_freebsd_amd64.go | 1 - - .../x/sys/unix/syscall_freebsd_arm.go | 1 - - .../x/sys/unix/syscall_freebsd_arm64.go | 1 - - .../x/sys/unix/syscall_freebsd_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/syscall_hurd.go | 1 - - .../golang.org/x/sys/unix/syscall_hurd_386.go | 1 - - .../golang.org/x/sys/unix/syscall_illumos.go | 1 - - vendor/golang.org/x/sys/unix/syscall_linux.go | 132 +++++++++- - .../x/sys/unix/syscall_linux_386.go | 1 - - .../x/sys/unix/syscall_linux_alarm.go | 2 - - .../x/sys/unix/syscall_linux_amd64.go | 1 - - .../x/sys/unix/syscall_linux_amd64_gc.go | 1 - - .../x/sys/unix/syscall_linux_arm.go | 1 - - .../x/sys/unix/syscall_linux_arm64.go | 1 - - .../golang.org/x/sys/unix/syscall_linux_gc.go | 1 - - .../x/sys/unix/syscall_linux_gc_386.go | 1 - - .../x/sys/unix/syscall_linux_gc_arm.go | 1 - - .../x/sys/unix/syscall_linux_gccgo_386.go | 1 - - .../x/sys/unix/syscall_linux_gccgo_arm.go | 1 - - .../x/sys/unix/syscall_linux_loong64.go | 1 - - .../x/sys/unix/syscall_linux_mips64x.go | 2 - - .../x/sys/unix/syscall_linux_mipsx.go | 2 - - .../x/sys/unix/syscall_linux_ppc.go | 1 - - .../x/sys/unix/syscall_linux_ppc64x.go | 2 - - .../x/sys/unix/syscall_linux_riscv64.go | 1 - - .../x/sys/unix/syscall_linux_s390x.go | 1 - - .../x/sys/unix/syscall_linux_sparc64.go | 1 - - .../x/sys/unix/syscall_netbsd_386.go | 1 - - .../x/sys/unix/syscall_netbsd_amd64.go | 1 - - .../x/sys/unix/syscall_netbsd_arm.go | 1 - - .../x/sys/unix/syscall_netbsd_arm64.go | 1 - - .../golang.org/x/sys/unix/syscall_openbsd.go | 28 ++- - .../x/sys/unix/syscall_openbsd_386.go | 1 - - .../x/sys/unix/syscall_openbsd_amd64.go | 1 - - .../x/sys/unix/syscall_openbsd_arm.go | 1 - - .../x/sys/unix/syscall_openbsd_arm64.go | 1 - - .../x/sys/unix/syscall_openbsd_libc.go | 1 - - .../x/sys/unix/syscall_openbsd_ppc64.go | 1 - - .../x/sys/unix/syscall_openbsd_riscv64.go | 1 - - .../golang.org/x/sys/unix/syscall_solaris.go | 5 +- - .../x/sys/unix/syscall_solaris_amd64.go | 1 - - vendor/golang.org/x/sys/unix/syscall_unix.go | 1 - - .../golang.org/x/sys/unix/syscall_unix_gc.go | 2 - - .../x/sys/unix/syscall_unix_gc_ppc64x.go | 3 - - .../x/sys/unix/syscall_zos_s390x.go | 3 +- - vendor/golang.org/x/sys/unix/sysvshm_linux.go | 1 - - vendor/golang.org/x/sys/unix/sysvshm_unix.go | 1 - - .../x/sys/unix/sysvshm_unix_other.go | 1 - - vendor/golang.org/x/sys/unix/timestruct.go | 1 - - .../golang.org/x/sys/unix/unveil_openbsd.go | 41 ++-- - vendor/golang.org/x/sys/unix/xattr_bsd.go | 1 - - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1 - - .../x/sys/unix/zerrors_aix_ppc64.go | 1 - - .../x/sys/unix/zerrors_darwin_amd64.go | 1 - - .../x/sys/unix/zerrors_darwin_arm64.go | 1 - - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1 - - .../x/sys/unix/zerrors_freebsd_386.go | 1 - - .../x/sys/unix/zerrors_freebsd_amd64.go | 1 - - .../x/sys/unix/zerrors_freebsd_arm.go | 1 - - .../x/sys/unix/zerrors_freebsd_arm64.go | 1 - - .../x/sys/unix/zerrors_freebsd_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/zerrors_linux.go | 104 +++++++- - .../x/sys/unix/zerrors_linux_386.go | 4 +- - .../x/sys/unix/zerrors_linux_amd64.go | 4 +- - .../x/sys/unix/zerrors_linux_arm.go | 4 +- - .../x/sys/unix/zerrors_linux_arm64.go | 4 +- - .../x/sys/unix/zerrors_linux_loong64.go | 5 +- - .../x/sys/unix/zerrors_linux_mips.go | 4 +- - .../x/sys/unix/zerrors_linux_mips64.go | 4 +- - .../x/sys/unix/zerrors_linux_mips64le.go | 4 +- - .../x/sys/unix/zerrors_linux_mipsle.go | 4 +- - .../x/sys/unix/zerrors_linux_ppc.go | 4 +- - .../x/sys/unix/zerrors_linux_ppc64.go | 4 +- - .../x/sys/unix/zerrors_linux_ppc64le.go | 4 +- - .../x/sys/unix/zerrors_linux_riscv64.go | 7 +- - .../x/sys/unix/zerrors_linux_s390x.go | 4 +- - .../x/sys/unix/zerrors_linux_sparc64.go | 4 +- - .../x/sys/unix/zerrors_netbsd_386.go | 1 - - .../x/sys/unix/zerrors_netbsd_amd64.go | 1 - - .../x/sys/unix/zerrors_netbsd_arm.go | 1 - - .../x/sys/unix/zerrors_netbsd_arm64.go | 1 - - .../x/sys/unix/zerrors_openbsd_386.go | 1 - - .../x/sys/unix/zerrors_openbsd_amd64.go | 1 - - .../x/sys/unix/zerrors_openbsd_arm.go | 1 - - .../x/sys/unix/zerrors_openbsd_arm64.go | 1 - - .../x/sys/unix/zerrors_openbsd_mips64.go | 1 - - .../x/sys/unix/zerrors_openbsd_ppc64.go | 1 - - .../x/sys/unix/zerrors_openbsd_riscv64.go | 1 - - .../x/sys/unix/zerrors_solaris_amd64.go | 1 - - .../x/sys/unix/zerrors_zos_s390x.go | 1 - - .../x/sys/unix/zptrace_armnn_linux.go | 2 - - .../x/sys/unix/zptrace_mipsnn_linux.go | 2 - - .../x/sys/unix/zptrace_mipsnnle_linux.go | 2 - - .../x/sys/unix/zptrace_x86_linux.go | 2 - - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1 - - .../x/sys/unix/zsyscall_aix_ppc64.go | 1 - - .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1 - - .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1 - - .../x/sys/unix/zsyscall_darwin_amd64.go | 1 - - .../x/sys/unix/zsyscall_darwin_arm64.go | 1 - - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1 - - .../x/sys/unix/zsyscall_freebsd_386.go | 1 - - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1 - - .../x/sys/unix/zsyscall_freebsd_arm.go | 1 - - .../x/sys/unix/zsyscall_freebsd_arm64.go | 1 - - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1 - - .../x/sys/unix/zsyscall_illumos_amd64.go | 1 - - .../golang.org/x/sys/unix/zsyscall_linux.go | 36 ++- - .../x/sys/unix/zsyscall_linux_386.go | 1 - - .../x/sys/unix/zsyscall_linux_amd64.go | 1 - - .../x/sys/unix/zsyscall_linux_arm.go | 1 - - .../x/sys/unix/zsyscall_linux_arm64.go | 1 - - .../x/sys/unix/zsyscall_linux_loong64.go | 1 - - .../x/sys/unix/zsyscall_linux_mips.go | 1 - - .../x/sys/unix/zsyscall_linux_mips64.go | 1 - - .../x/sys/unix/zsyscall_linux_mips64le.go | 1 - - .../x/sys/unix/zsyscall_linux_mipsle.go | 1 - - .../x/sys/unix/zsyscall_linux_ppc.go | 1 - - .../x/sys/unix/zsyscall_linux_ppc64.go | 1 - - .../x/sys/unix/zsyscall_linux_ppc64le.go | 1 - - .../x/sys/unix/zsyscall_linux_riscv64.go | 1 - - .../x/sys/unix/zsyscall_linux_s390x.go | 1 - - .../x/sys/unix/zsyscall_linux_sparc64.go | 1 - - .../x/sys/unix/zsyscall_netbsd_386.go | 1 - - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1 - - .../x/sys/unix/zsyscall_netbsd_arm.go | 1 - - .../x/sys/unix/zsyscall_netbsd_arm64.go | 1 - - .../x/sys/unix/zsyscall_openbsd_386.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_386.s | 20 ++ - .../x/sys/unix/zsyscall_openbsd_amd64.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_amd64.s | 20 ++ - .../x/sys/unix/zsyscall_openbsd_arm.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_arm.s | 20 ++ - .../x/sys/unix/zsyscall_openbsd_arm64.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_arm64.s | 20 ++ - .../x/sys/unix/zsyscall_openbsd_mips64.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_mips64.s | 20 ++ - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_ppc64.s | 24 ++ - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 70 +++++- - .../x/sys/unix/zsyscall_openbsd_riscv64.s | 20 ++ - .../x/sys/unix/zsyscall_solaris_amd64.go | 1 - - .../x/sys/unix/zsyscall_zos_s390x.go | 1 - - .../x/sys/unix/zsysctl_openbsd_386.go | 1 - - .../x/sys/unix/zsysctl_openbsd_amd64.go | 1 - - .../x/sys/unix/zsysctl_openbsd_arm.go | 1 - - .../x/sys/unix/zsysctl_openbsd_arm64.go | 1 - - .../x/sys/unix/zsysctl_openbsd_mips64.go | 1 - - .../x/sys/unix/zsysctl_openbsd_ppc64.go | 1 - - .../x/sys/unix/zsysctl_openbsd_riscv64.go | 1 - - .../x/sys/unix/zsysnum_darwin_amd64.go | 1 - - .../x/sys/unix/zsysnum_darwin_arm64.go | 1 - - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 1 - - .../x/sys/unix/zsysnum_freebsd_386.go | 1 - - .../x/sys/unix/zsysnum_freebsd_amd64.go | 1 - - .../x/sys/unix/zsysnum_freebsd_arm.go | 1 - - .../x/sys/unix/zsysnum_freebsd_arm64.go | 1 - - .../x/sys/unix/zsysnum_freebsd_riscv64.go | 1 - - .../x/sys/unix/zsysnum_linux_386.go | 6 +- - .../x/sys/unix/zsysnum_linux_amd64.go | 6 +- - .../x/sys/unix/zsysnum_linux_arm.go | 6 +- - .../x/sys/unix/zsysnum_linux_arm64.go | 6 +- - .../x/sys/unix/zsysnum_linux_loong64.go | 6 +- - .../x/sys/unix/zsysnum_linux_mips.go | 6 +- - .../x/sys/unix/zsysnum_linux_mips64.go | 6 +- - .../x/sys/unix/zsysnum_linux_mips64le.go | 6 +- - .../x/sys/unix/zsysnum_linux_mipsle.go | 6 +- - .../x/sys/unix/zsysnum_linux_ppc.go | 6 +- - .../x/sys/unix/zsysnum_linux_ppc64.go | 6 +- - .../x/sys/unix/zsysnum_linux_ppc64le.go | 6 +- - .../x/sys/unix/zsysnum_linux_riscv64.go | 6 +- - .../x/sys/unix/zsysnum_linux_s390x.go | 6 +- - .../x/sys/unix/zsysnum_linux_sparc64.go | 6 +- - .../x/sys/unix/zsysnum_netbsd_386.go | 1 - - .../x/sys/unix/zsysnum_netbsd_amd64.go | 1 - - .../x/sys/unix/zsysnum_netbsd_arm.go | 1 - - .../x/sys/unix/zsysnum_netbsd_arm64.go | 1 - - .../x/sys/unix/zsysnum_openbsd_386.go | 1 - - .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 - - .../x/sys/unix/zsysnum_openbsd_arm.go | 1 - - .../x/sys/unix/zsysnum_openbsd_arm64.go | 1 - - .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 - - .../x/sys/unix/zsysnum_openbsd_ppc64.go | 1 - - .../x/sys/unix/zsysnum_openbsd_riscv64.go | 1 - - .../x/sys/unix/zsysnum_zos_s390x.go | 1 - - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 1 - - .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 1 - - .../x/sys/unix/ztypes_darwin_amd64.go | 1 - - .../x/sys/unix/ztypes_darwin_arm64.go | 1 - - .../x/sys/unix/ztypes_dragonfly_amd64.go | 1 - - .../x/sys/unix/ztypes_freebsd_386.go | 1 - - .../x/sys/unix/ztypes_freebsd_amd64.go | 1 - - .../x/sys/unix/ztypes_freebsd_arm.go | 1 - - .../x/sys/unix/ztypes_freebsd_arm64.go | 1 - - .../x/sys/unix/ztypes_freebsd_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/ztypes_linux.go | 230 +++++++++++++----- - .../golang.org/x/sys/unix/ztypes_linux_386.go | 1 - - .../x/sys/unix/ztypes_linux_amd64.go | 1 - - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 1 - - .../x/sys/unix/ztypes_linux_arm64.go | 1 - - .../x/sys/unix/ztypes_linux_loong64.go | 1 - - .../x/sys/unix/ztypes_linux_mips.go | 1 - - .../x/sys/unix/ztypes_linux_mips64.go | 1 - - .../x/sys/unix/ztypes_linux_mips64le.go | 1 - - .../x/sys/unix/ztypes_linux_mipsle.go | 1 - - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 1 - - .../x/sys/unix/ztypes_linux_ppc64.go | 1 - - .../x/sys/unix/ztypes_linux_ppc64le.go | 1 - - .../x/sys/unix/ztypes_linux_riscv64.go | 1 - - .../x/sys/unix/ztypes_linux_s390x.go | 1 - - .../x/sys/unix/ztypes_linux_sparc64.go | 1 - - .../x/sys/unix/ztypes_netbsd_386.go | 1 - - .../x/sys/unix/ztypes_netbsd_amd64.go | 1 - - .../x/sys/unix/ztypes_netbsd_arm.go | 1 - - .../x/sys/unix/ztypes_netbsd_arm64.go | 1 - - .../x/sys/unix/ztypes_openbsd_386.go | 1 - - .../x/sys/unix/ztypes_openbsd_amd64.go | 1 - - .../x/sys/unix/ztypes_openbsd_arm.go | 1 - - .../x/sys/unix/ztypes_openbsd_arm64.go | 1 - - .../x/sys/unix/ztypes_openbsd_mips64.go | 1 - - .../x/sys/unix/ztypes_openbsd_ppc64.go | 1 - - .../x/sys/unix/ztypes_openbsd_riscv64.go | 1 - - .../x/sys/unix/ztypes_solaris_amd64.go | 1 - - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 1 - - vendor/golang.org/x/sys/windows/aliases.go | 1 - - vendor/golang.org/x/sys/windows/empty.s | 1 - - .../golang.org/x/sys/windows/env_windows.go | 17 +- - vendor/golang.org/x/sys/windows/eventlog.go | 1 - - vendor/golang.org/x/sys/windows/mksyscall.go | 1 - - vendor/golang.org/x/sys/windows/race.go | 1 - - vendor/golang.org/x/sys/windows/race0.go | 1 - - .../golang.org/x/sys/windows/registry/key.go | 1 - - .../x/sys/windows/registry/mksyscall.go | 1 - - .../x/sys/windows/registry/syscall.go | 1 - - .../x/sys/windows/registry/value.go | 1 - - vendor/golang.org/x/sys/windows/service.go | 1 - - vendor/golang.org/x/sys/windows/str.go | 1 - - vendor/golang.org/x/sys/windows/syscall.go | 1 - - .../x/sys/windows/syscall_windows.go | 10 +- - .../golang.org/x/sys/windows/types_windows.go | 28 ++- - .../x/sys/windows/zsyscall_windows.go | 37 +++ - vendor/modules.txt | 12 +- - 382 files changed, 1392 insertions(+), 629 deletions(-) - -diff --git a/go.mod b/go.mod -index 42fc3a42..cb8c6638 100644 ---- a/go.mod -+++ b/go.mod -@@ -20,7 +20,7 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.13.0 -+ golang.org/x/sys v0.18.0 - ) - - require ( -@@ -40,8 +40,8 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.11.0 // indirect -- golang.org/x/net v0.17.0 // indirect -- golang.org/x/text v0.13.0 // indirect -+ golang.org/x/net v0.23.0 // indirect -+ golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -diff --git a/go.sum b/go.sum -index 7eb78644..b560aba5 100644 ---- a/go.sum -+++ b/go.sum -@@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= --golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - 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= -@@ -191,14 +191,14 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= --golang.org/x/sys v0.13.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/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= --golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+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/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= -diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go -index 2cb9c408..0c1b8679 100644 ---- a/vendor/golang.org/x/net/context/go17.go -+++ b/vendor/golang.org/x/net/context/go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.7 --// +build go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go -index 64d31ecc..e31e35a9 100644 ---- a/vendor/golang.org/x/net/context/go19.go -+++ b/vendor/golang.org/x/net/context/go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.9 --// +build go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go -index 7b6b6851..065ff3df 100644 ---- a/vendor/golang.org/x/net/context/pre_go17.go -+++ b/vendor/golang.org/x/net/context/pre_go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.7 --// +build !go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go -index 1f971534..ec5a6380 100644 ---- a/vendor/golang.org/x/net/context/pre_go19.go -+++ b/vendor/golang.org/x/net/context/pre_go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.9 --// +build !go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index de67f938..3c57880d 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { - return - } - switch c { -- case ' ', '\n', '\r', '\t', '\f', '/': -- z.pendingAttr[0].end = z.raw.end - 1 -- return - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { - continue - } - fallthrough -- case '>': -+ case ' ', '\n', '\r', '\t', '\f', '/', '>': -+ // WHATWG 13.2.5.33 Attribute name state -+ // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { - if z.err != nil { - return - } -+ if c == '/' { -+ // WHATWG 13.2.5.34 After attribute name state -+ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. -+ return -+ } - if c != '=' { - z.raw.end-- - return -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -index 4bdaaaf1..33a5bf59 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -index 0d30e0a0..68f438c8 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -index 4936e8a6..058ea8de 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -index f6877f98..3ca0d3a0 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -index d3dbe1b8..6d0e426c 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -index 1d9f2ed6..7ca9cb7e 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -index 19d46789..0211f225 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -index 5b1d50ae..2038f290 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -index be634095..70e6f448 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || windows || zos --// +build aix windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/empty.s b/vendor/golang.org/x/net/internal/socket/empty.s -index 90ab4ca3..49d79791 100644 ---- a/vendor/golang.org/x/net/internal/socket/empty.s -+++ b/vendor/golang.org/x/net/internal/socket/empty.s -@@ -3,6 +3,5 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && go1.12 --// +build darwin,go1.12 - - // This exists solely so we can linkname in symbols from syscall. -diff --git a/vendor/golang.org/x/net/internal/socket/error_unix.go b/vendor/golang.org/x/net/internal/socket/error_unix.go -index 78f41290..7a5cc5c4 100644 ---- a/vendor/golang.org/x/net/internal/socket/error_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/error_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -index 2b8fbb3f..340e53fb 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && (darwin || dragonfly || freebsd || linux || netbsd || openbsd) --// +build arm mips mipsle 386 ppc --// +build darwin dragonfly freebsd linux netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -index 2e94e96f..26470c19 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos) --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build aix darwin dragonfly freebsd linux netbsd openbsd zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -index f7da2bc4..8859ce10 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -index 14caf524..da886b03 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -index 113e773c..4825b21e 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !linux && !netbsd --// +build !aix,!linux,!netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -index 41883c53..311fd2c7 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || linux || netbsd --// +build aix linux netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -index 25f6847f..ebff4f6e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -index 5b8e00f1..62e6fe86 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd --// +build aix darwin dragonfly freebsd netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -index b4658fba..3dd07250 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -index 42411aff..5af9ddd6 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -index 3098f5d7..e212b50f 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -index eb79151f..e8767764 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -index 324e9ee7..529db68e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && zos --// +build s390x,zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go -index de0ad420..8af30ecf 100644 ---- a/vendor/golang.org/x/net/internal/socket/norace.go -+++ b/vendor/golang.org/x/net/internal/socket/norace.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !race --// +build !race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go -index f0a28a62..9afa9580 100644 ---- a/vendor/golang.org/x/net/internal/socket/race.go -+++ b/vendor/golang.org/x/net/internal/socket/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build race --// +build race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -index 8f79b38f..04313907 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -index f7d0b0d2..7c0d7410 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -index 02f32855..e363fb5a 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -index dd785877..ff7a8baf 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -index b258879d..e7664d48 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -index 5d99f237..d7627f87 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go -index 76f5b8ae..08d49107 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && !s390x && !386 --// +build linux,!s390x,!386 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -index af964e61..1d182470 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -index 5b128fbb..0e407d12 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go -index 42b8f234..58d86548 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_posix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go -index 7cfb349c..2e5b473c 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go -index de823932..93058db5 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -index 00691bd5..45bab004 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -index 6a94fec2..b6fc15a1 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -index c066272d..e67fc3cb 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go -index b7385dfd..c88da8cb 100644 ---- a/vendor/golang.org/x/net/ipv4/control_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -index 0e748dbd..14ae2dae 100644 ---- a/vendor/golang.org/x/net/ipv4/control_pktinfo.go -+++ b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || linux || solaris --// +build darwin linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/golang.org/x/net/ipv4/control_stub.go -index f27322c3..3ba66116 100644 ---- a/vendor/golang.org/x/net/ipv4/control_stub.go -+++ b/vendor/golang.org/x/net/ipv4/control_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/golang.org/x/net/ipv4/control_unix.go -index 2413e02f..2e765548 100644 ---- a/vendor/golang.org/x/net/ipv4/control_unix.go -+++ b/vendor/golang.org/x/net/ipv4/control_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/golang.org/x/net/ipv4/icmp_stub.go -index cd4ee6e1..c2c4ce7f 100644 ---- a/vendor/golang.org/x/net/ipv4/icmp_stub.go -+++ b/vendor/golang.org/x/net/ipv4/icmp_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -index 1bb370e2..91c685e8 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -index 53f0794e..2afd4b50 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -index eb07c1c0..82e2c378 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_posix.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -index cf036893..840108bf 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_aix.go b/vendor/golang.org/x/net/ipv4/sys_aix.go -index 02730cdf..9244a68a 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_aix.go -+++ b/vendor/golang.org/x/net/ipv4/sys_aix.go -@@ -4,7 +4,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -index 22322b38..645f254c 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris || windows --// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -index fde64014..48cfb6db 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !windows --// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -index 54eb9901..0b27b632 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux --// +build darwin freebsd linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -index dcb15f25..303a5e2e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux --// +build !darwin,!freebsd,!linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go -index fb11e324..1b4780df 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -index fc53a0d3..b1f779b4 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/golang.org/x/net/ipv4/sys_bsd.go -index e191b2f1..b7b032d2 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build netbsd || openbsd --// +build netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -index 6a4e7abf..a295e15e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux || solaris --// +build darwin freebsd linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -index 157159fd..74bd454e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux && !solaris --// +build !darwin,!freebsd,!linux,!solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/golang.org/x/net/ipv4/sys_stub.go -index d5508516..20af4074 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -index b7f2d6e5..dd454025 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -index e15c22c7..54f9e139 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -index e2edebdb..78374a52 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package ipv4 - -diff --git a/vendor/golang.org/x/sys/execabs/execabs_go118.go b/vendor/golang.org/x/sys/execabs/execabs_go118.go -index 2000064a..5627d70e 100644 ---- a/vendor/golang.org/x/sys/execabs/execabs_go118.go -+++ b/vendor/golang.org/x/sys/execabs/execabs_go118.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.19 --// +build !go1.19 - - package execabs - -diff --git a/vendor/golang.org/x/sys/execabs/execabs_go119.go b/vendor/golang.org/x/sys/execabs/execabs_go119.go -index f364b341..d60ab1b4 100644 ---- a/vendor/golang.org/x/sys/execabs/execabs_go119.go -+++ b/vendor/golang.org/x/sys/execabs/execabs_go119.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.19 --// +build go1.19 - - package execabs - -diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go -index abc89c10..b0e41985 100644 ---- a/vendor/golang.org/x/sys/unix/aliases.go -+++ b/vendor/golang.org/x/sys/unix/aliases.go -@@ -2,9 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos --// +build go1.9 -+//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s -index db9171c2..269e173c 100644 ---- a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s -+++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/vendor/golang.org/x/sys/unix/asm_bsd_386.s -index e0fcd9b3..a4fcef0e 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_386.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_386.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (freebsd || netbsd || openbsd) && gc --// +build freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s -index 2b99c349..1e63615c 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc --// +build darwin dragonfly freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s -index d702d4ad..6496c310 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_arm.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (freebsd || netbsd || openbsd) && gc --// +build freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s -index fe36a739..4fd1f54d 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin || freebsd || netbsd || openbsd) && gc --// +build darwin freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s -index e5b9a848..42f7eb9e 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin || freebsd || netbsd || openbsd) && gc --// +build darwin freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s -index d560019e..f8902667 100644 ---- a/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s -+++ b/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin || freebsd || netbsd || openbsd) && gc --// +build darwin freebsd netbsd openbsd --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s -index 8fd101d0..3b473487 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_386.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s -index 7ed38e43..67e29f31 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s -index 8ef1d514..d6ae269c 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s -index 98ae0276..01e5e253 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && arm64 && gc --// +build linux --// +build arm64 --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s -index 56535728..2abf12f6 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_loong64.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_loong64.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && loong64 && gc --// +build linux --// +build loong64 --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s -index 21231d2c..f84bae71 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (mips64 || mips64le) && gc --// +build linux --// +build mips64 mips64le --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s -index 6783b26c..f08f6280 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (mips || mipsle) && gc --// +build linux --// +build mips mipsle --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s -index 19d49893..bdfc024d 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (ppc64 || ppc64le) && gc --// +build linux --// +build ppc64 ppc64le --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s -index e42eb81d..2e8c9961 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 && gc --// +build riscv64 --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s -index c46aab33..2c394b11 100644 ---- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s -+++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && s390x && gc --// +build linux --// +build s390x --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s -index 5e7a1169..fab586a2 100644 ---- a/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s -+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s -index f8c5394c..f949ec54 100644 ---- a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s -+++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gc --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s -index 3b54e185..2f67ba86 100644 ---- a/vendor/golang.org/x/sys/unix/asm_zos_s390x.s -+++ b/vendor/golang.org/x/sys/unix/asm_zos_s390x.s -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x && gc --// +build zos --// +build s390x --// +build gc - - #include "textflag.h" - -diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go -index 0b7c6adb..a0865789 100644 ---- a/vendor/golang.org/x/sys/unix/cap_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build freebsd --// +build freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go -index 394a3965..6fb7cb77 100644 ---- a/vendor/golang.org/x/sys/unix/constants.go -+++ b/vendor/golang.org/x/sys/unix/constants.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go -index 65a99850..d7851346 100644 ---- a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix && ppc --// +build aix,ppc - - // Functions to access/create device major and minor numbers matching the - // encoding used by AIX. -diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go -index 8fc08ad0..623a5e69 100644 ---- a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix && ppc64 --// +build aix,ppc64 - - // Functions to access/create device major and minor numbers matching the - // encoding used AIX. -diff --git a/vendor/golang.org/x/sys/unix/dev_zos.go b/vendor/golang.org/x/sys/unix/dev_zos.go -index a388e59a..bb6a64fe 100644 ---- a/vendor/golang.org/x/sys/unix/dev_zos.go -+++ b/vendor/golang.org/x/sys/unix/dev_zos.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - // Functions to access/create device major and minor numbers matching the - // encoding used by z/OS. -diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go -index 2499f977..1ebf1178 100644 ---- a/vendor/golang.org/x/sys/unix/dirent.go -+++ b/vendor/golang.org/x/sys/unix/dirent.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go -index a5202655..1095fd31 100644 ---- a/vendor/golang.org/x/sys/unix/endian_big.go -+++ b/vendor/golang.org/x/sys/unix/endian_big.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - // - //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 --// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go -index b0f2bc4a..b9f0e277 100644 ---- a/vendor/golang.org/x/sys/unix/endian_little.go -+++ b/vendor/golang.org/x/sys/unix/endian_little.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - // - //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh --// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go -index 29ccc4d1..a96da71f 100644 ---- a/vendor/golang.org/x/sys/unix/env_unix.go -+++ b/vendor/golang.org/x/sys/unix/env_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - // Unix environment variables. - -diff --git a/vendor/golang.org/x/sys/unix/epoll_zos.go b/vendor/golang.org/x/sys/unix/epoll_zos.go -index cedaf7e0..7753fdde 100644 ---- a/vendor/golang.org/x/sys/unix/epoll_zos.go -+++ b/vendor/golang.org/x/sys/unix/epoll_zos.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/fcntl.go b/vendor/golang.org/x/sys/unix/fcntl.go -index e9b99125..6200876f 100644 ---- a/vendor/golang.org/x/sys/unix/fcntl.go -+++ b/vendor/golang.org/x/sys/unix/fcntl.go -@@ -2,8 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build dragonfly || freebsd || linux || netbsd || openbsd --// +build dragonfly freebsd linux netbsd openbsd -+//go:build dragonfly || freebsd || linux || netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go -index 29d44808..13b4acd5 100644 ---- a/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go -+++ b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) --// +build linux,386 linux,arm linux,mips linux,mipsle linux,ppc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go -index a8068f94..9e83d18c 100644 ---- a/vendor/golang.org/x/sys/unix/fdset.go -+++ b/vendor/golang.org/x/sys/unix/fdset.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/vendor/golang.org/x/sys/unix/fstatfs_zos.go -index e377cc9f..c8bde601 100644 ---- a/vendor/golang.org/x/sys/unix/fstatfs_zos.go -+++ b/vendor/golang.org/x/sys/unix/fstatfs_zos.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go -index b06f52d7..aca5721d 100644 ---- a/vendor/golang.org/x/sys/unix/gccgo.go -+++ b/vendor/golang.org/x/sys/unix/gccgo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gccgo && !aix && !hurd --// +build gccgo,!aix,!hurd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c -index f98a1c54..d468b7b4 100644 ---- a/vendor/golang.org/x/sys/unix/gccgo_c.c -+++ b/vendor/golang.org/x/sys/unix/gccgo_c.c -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gccgo && !aix && !hurd --// +build gccgo,!aix,!hurd - - #include - #include -diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go -index e60e49a3..972d61bd 100644 ---- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build gccgo && linux && amd64 --// +build gccgo,linux,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ifreq_linux.go b/vendor/golang.org/x/sys/unix/ifreq_linux.go -index 15721a51..848840ae 100644 ---- a/vendor/golang.org/x/sys/unix/ifreq_linux.go -+++ b/vendor/golang.org/x/sys/unix/ifreq_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ioctl_linux.go b/vendor/golang.org/x/sys/unix/ioctl_linux.go -index 0d12c085..dbe680ea 100644 ---- a/vendor/golang.org/x/sys/unix/ioctl_linux.go -+++ b/vendor/golang.org/x/sys/unix/ioctl_linux.go -@@ -231,3 +231,8 @@ func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { - func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { - return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) - } -+ -+// IoctlLoopConfigure configures all loop device parameters in a single step -+func IoctlLoopConfigure(fd int, value *LoopConfig) error { -+ return ioctlPtr(fd, LOOP_CONFIGURE, unsafe.Pointer(value)) -+} -diff --git a/vendor/golang.org/x/sys/unix/ioctl_signed.go b/vendor/golang.org/x/sys/unix/ioctl_signed.go -index 7def9580..5b0759bd 100644 ---- a/vendor/golang.org/x/sys/unix/ioctl_signed.go -+++ b/vendor/golang.org/x/sys/unix/ioctl_signed.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || solaris --// +build aix solaris - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go -index 649913d1..20f470b9 100644 ---- a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go -+++ b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd --// +build darwin dragonfly freebsd hurd linux netbsd openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ioctl_zos.go b/vendor/golang.org/x/sys/unix/ioctl_zos.go -index cdc21bf7..c8b2a750 100644 ---- a/vendor/golang.org/x/sys/unix/ioctl_zos.go -+++ b/vendor/golang.org/x/sys/unix/ioctl_zos.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 47fa6a7e..fdcaa974 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -248,6 +248,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -283,10 +284,6 @@ struct ltchars { - #include - #endif - --#ifndef MSG_FASTOPEN --#define MSG_FASTOPEN 0x20000000 --#endif -- - #ifndef PTRACE_GETREGS - #define PTRACE_GETREGS 0xc - #endif -@@ -295,14 +292,6 @@ struct ltchars { - #define PTRACE_SETREGS 0xd - #endif - --#ifndef SOL_NETLINK --#define SOL_NETLINK 270 --#endif -- --#ifndef SOL_SMC --#define SOL_SMC 286 --#endif -- - #ifdef SOL_BLUETOOTH - // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h - // but it is already in bluetooth_linux.go -@@ -319,10 +308,23 @@ struct ltchars { - #undef TIPC_WAIT_FOREVER - #define TIPC_WAIT_FOREVER 0xffffffff - --// Copied from linux/l2tp.h --// Including linux/l2tp.h here causes conflicts between linux/in.h --// and netinet/in.h included via net/route.h above. --#define IPPROTO_L2TP 115 -+// Copied from linux/netfilter/nf_nat.h -+// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -+// and netinet/in.h. -+#define NF_NAT_RANGE_MAP_IPS (1 << 0) -+#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -+#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -+#define NF_NAT_RANGE_PERSISTENT (1 << 3) -+#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -+#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -+#define NF_NAT_RANGE_NETMAP (1 << 6) -+#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ -+ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -+#define NF_NAT_RANGE_MASK \ -+ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ -+ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ -+ NF_NAT_RANGE_NETMAP) - - // Copied from linux/hid.h. - // Keep in sync with the size of the referenced fields. -@@ -519,6 +521,7 @@ ccflags="$@" - $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || - $2 ~ /^LO_(KEY|NAME)_SIZE$/ || - $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || -+ $2 == "LOOP_CONFIGURE" || - $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MREMAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT|UDP)_/ || - $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || - $2 ~ /^NFC_.*_(MAX)?SIZE$/ || -@@ -560,7 +563,7 @@ ccflags="$@" - $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || - $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || - $2 ~ /^CLONE_[A-Z_]+/ || -- $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && -+ $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+|BPF_F_LINK)$/ && - $2 ~ /^(BPF|DLT)_/ || - $2 ~ /^AUDIT_/ || - $2 ~ /^(CLOCK|TIMER)_/ || -@@ -581,7 +584,7 @@ ccflags="$@" - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || -- $2 ~ /^SECCOMP_MODE_/ || -+ $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || -@@ -602,6 +605,9 @@ ccflags="$@" - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || -+ $2 !~ /^NFT_META_IIFTYPE/ && -+ $2 ~ /^NFT_/ || -+ $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || -@@ -663,7 +669,6 @@ echo '// mkerrors.sh' "$@" - echo '// Code generated by the command above; see README.md. DO NOT EDIT.' - echo - echo "//go:build ${GOARCH} && ${GOOS}" --echo "// +build ${GOARCH},${GOOS}" - echo - go tool cgo -godefs -- "$@" _const.go >_error.out - cat _error.out | grep -vf _error.grep | grep -vf _signal.grep -diff --git a/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/vendor/golang.org/x/sys/unix/mmap_nomremap.go -index ca051363..4b68e597 100644 ---- a/vendor/golang.org/x/sys/unix/mmap_nomremap.go -+++ b/vendor/golang.org/x/sys/unix/mmap_nomremap.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mremap.go b/vendor/golang.org/x/sys/unix/mremap.go -index fa93d0aa..fd45fe52 100644 ---- a/vendor/golang.org/x/sys/unix/mremap.go -+++ b/vendor/golang.org/x/sys/unix/mremap.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux || netbsd --// +build linux netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go -index 53f1b4c5..4d0a3430 100644 ---- a/vendor/golang.org/x/sys/unix/pagesize_unix.go -+++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - // For Unix, get the pagesize from the runtime. - -diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go -index eb48294b..6a09af53 100644 ---- a/vendor/golang.org/x/sys/unix/pledge_openbsd.go -+++ b/vendor/golang.org/x/sys/unix/pledge_openbsd.go -@@ -8,54 +8,31 @@ import ( - "errors" - "fmt" - "strconv" -- "syscall" -- "unsafe" - ) - - // Pledge implements the pledge syscall. - // --// The pledge syscall does not accept execpromises on OpenBSD releases --// before 6.3. --// --// execpromises must be empty when Pledge is called on OpenBSD --// releases predating 6.3, otherwise an error will be returned. -+// This changes both the promises and execpromises; use PledgePromises or -+// PledgeExecpromises to only change the promises or execpromises -+// respectively. - // - // For more information see pledge(2). - func Pledge(promises, execpromises string) error { -- maj, min, err := majmin() -- if err != nil { -+ if err := pledgeAvailable(); err != nil { - return err - } - -- err = pledgeAvailable(maj, min, execpromises) -+ pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - -- pptr, err := syscall.BytePtrFromString(promises) -+ exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - -- // This variable will hold either a nil unsafe.Pointer or -- // an unsafe.Pointer to a string (execpromises). -- var expr unsafe.Pointer -- -- // If we're running on OpenBSD > 6.2, pass execpromises to the syscall. -- if maj > 6 || (maj == 6 && min > 2) { -- exptr, err := syscall.BytePtrFromString(execpromises) -- if err != nil { -- return err -- } -- expr = unsafe.Pointer(exptr) -- } -- -- _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) -- if e != 0 { -- return e -- } -- -- return nil -+ return pledge(pptr, exptr) - } - - // PledgePromises implements the pledge syscall. -@@ -64,30 +41,16 @@ func Pledge(promises, execpromises string) error { - // - // For more information see pledge(2). - func PledgePromises(promises string) error { -- maj, min, err := majmin() -- if err != nil { -- return err -- } -- -- err = pledgeAvailable(maj, min, "") -- if err != nil { -+ if err := pledgeAvailable(); err != nil { - return err - } - -- // This variable holds the execpromises and is always nil. -- var expr unsafe.Pointer -- -- pptr, err := syscall.BytePtrFromString(promises) -+ pptr, err := BytePtrFromString(promises) - if err != nil { - return err - } - -- _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) -- if e != 0 { -- return e -- } -- -- return nil -+ return pledge(pptr, nil) - } - - // PledgeExecpromises implements the pledge syscall. -@@ -96,30 +59,16 @@ func PledgePromises(promises string) error { - // - // For more information see pledge(2). - func PledgeExecpromises(execpromises string) error { -- maj, min, err := majmin() -- if err != nil { -+ if err := pledgeAvailable(); err != nil { - return err - } - -- err = pledgeAvailable(maj, min, execpromises) -+ exptr, err := BytePtrFromString(execpromises) - if err != nil { - return err - } - -- // This variable holds the promises and is always nil. -- var pptr unsafe.Pointer -- -- exptr, err := syscall.BytePtrFromString(execpromises) -- if err != nil { -- return err -- } -- -- _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0) -- if e != 0 { -- return e -- } -- -- return nil -+ return pledge(nil, exptr) - } - - // majmin returns major and minor version number for an OpenBSD system. -@@ -147,16 +96,15 @@ func majmin() (major int, minor int, err error) { - - // pledgeAvailable checks for availability of the pledge(2) syscall - // based on the running OpenBSD version. --func pledgeAvailable(maj, min int, execpromises string) error { -- // If OpenBSD <= 5.9, pledge is not available. -- if (maj == 5 && min != 9) || maj < 5 { -- return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min) -+func pledgeAvailable() error { -+ maj, min, err := majmin() -+ if err != nil { -+ return err - } - -- // If OpenBSD <= 6.2 and execpromises is not empty, -- // return an error - execpromises is not available before 6.3 -- if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" { -- return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min) -+ // Require OpenBSD 6.4 as a minimum. -+ if maj < 6 || (maj == 6 && min <= 3) { -+ return fmt.Errorf("cannot call Pledge on OpenBSD %d.%d", maj, min) - } - - return nil -diff --git a/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/vendor/golang.org/x/sys/unix/ptrace_darwin.go -index 463c3eff..3f0975f3 100644 ---- a/vendor/golang.org/x/sys/unix/ptrace_darwin.go -+++ b/vendor/golang.org/x/sys/unix/ptrace_darwin.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && !ios --// +build darwin,!ios - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ptrace_ios.go b/vendor/golang.org/x/sys/unix/ptrace_ios.go -index ed0509a0..a4d35db5 100644 ---- a/vendor/golang.org/x/sys/unix/ptrace_ios.go -+++ b/vendor/golang.org/x/sys/unix/ptrace_ios.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build ios --// +build ios - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go -index 6f6c5fec..714d2aae 100644 ---- a/vendor/golang.org/x/sys/unix/race.go -+++ b/vendor/golang.org/x/sys/unix/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin && race) || (linux && race) || (freebsd && race) --// +build darwin,race linux,race freebsd,race - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go -index 706e1322..4a9f6634 100644 ---- a/vendor/golang.org/x/sys/unix/race0.go -+++ b/vendor/golang.org/x/sys/unix/race0.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos --// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go -index 4d625756..dbd2b6cc 100644 ---- a/vendor/golang.org/x/sys/unix/readdirent_getdents.go -+++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || dragonfly || freebsd || linux || netbsd || openbsd --// +build aix dragonfly freebsd linux netbsd openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go -index 2a4ba47c..130398b6 100644 ---- a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go -+++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin --// +build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go -index 3865943f..c3a62dbb 100644 ---- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go -+++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - // Socket control messages - -diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go -index 0840fe4a..4a1eab37 100644 ---- a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go -+++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin freebsd linux netbsd openbsd solaris zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go -index 63e8c838..5ea74da9 100644 ---- a/vendor/golang.org/x/sys/unix/syscall.go -+++ b/vendor/golang.org/x/sys/unix/syscall.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - // Package unix contains an interface to the low-level operating system - // primitives. OS details vary depending on the underlying system, and -diff --git a/vendor/golang.org/x/sys/unix/syscall_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go -index e94e6cda..67ce6cef 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_aix.go -+++ b/vendor/golang.org/x/sys/unix/syscall_aix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix --// +build aix - - // Aix system calls. - // This file is compiled as ordinary Go code, -@@ -107,7 +106,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - if n > 0 { - sl += _Socklen(n) + 1 - } -- if sa.raw.Path[0] == '@' { -+ if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { -+ // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- -diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go -index f2871fa9..1fdaa476 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix && ppc --// +build aix,ppc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go -index 75718ec0..c87f9a9f 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix && ppc64 --// +build aix,ppc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go -index 4217de51..a00c3e54 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_bsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || netbsd || openbsd --// +build darwin dragonfly freebsd netbsd openbsd - - // BSD system call wrappers shared by *BSD based systems - // including OS X (Darwin) and FreeBSD. Like the other -@@ -317,7 +316,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { - if err != nil { - return "", err - } -- return string(buf[:vallen-1]), nil -+ return ByteSliceToString(buf[:vallen]), nil - } - - //sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -index b37310ce..0eaecf5f 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && darwin --// +build amd64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -index d51ec996..f36c6707 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm64 && darwin --// +build arm64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -index 53c96641..2f0fa76e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -@@ -2,8 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build darwin && go1.12 --// +build darwin,go1.12 -+//go:build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go -index 4e2d3212..14bab6b2 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && dragonfly --// +build amd64,dragonfly - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index 64d1bb4d..2b57e0f7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -13,6 +13,7 @@ - package unix - - import ( -+ "errors" - "sync" - "unsafe" - ) -@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) -- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { -+ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. -+ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) -- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) -- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) -- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) -- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go -index b8da5100..3967bca7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build 386 && freebsd --// +build 386,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go -index 47155c48..eff19ada 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && freebsd --// +build amd64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go -index 08932093..4f24b517 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm && freebsd --// +build arm,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go -index d151a0d0..ac30759e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm64 && freebsd --// +build arm64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go -index d5cd64b3..aab725ca 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 && freebsd --// +build riscv64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd.go b/vendor/golang.org/x/sys/unix/syscall_hurd.go -index 381fd467..ba46651f 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_hurd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_hurd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build hurd --// +build hurd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go -index 7cf54a3e..df89f9e6 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_hurd_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_hurd_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build 386 && hurd --// +build 386,hurd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go -index 87db5a6a..a863f705 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_illumos.go -+++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go -@@ -5,7 +5,6 @@ - // illumos system calls not present on Solaris. - - //go:build amd64 && illumos --// +build amd64,illumos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index fb4e5022..5682e262 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -61,15 +61,23 @@ func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) ( - } - - //sys fchmodat(dirfd int, path string, mode uint32) (err error) -- --func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { -- // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior -- // and check the flags. Otherwise the mode would be applied to the symlink -- // destination which is not what the user expects. -- if flags&^AT_SYMLINK_NOFOLLOW != 0 { -- return EINVAL -- } else if flags&AT_SYMLINK_NOFOLLOW != 0 { -- return EOPNOTSUPP -+//sys fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) -+ -+func Fchmodat(dirfd int, path string, mode uint32, flags int) error { -+ // Linux fchmodat doesn't support the flags parameter, but fchmodat2 does. -+ // Try fchmodat2 if flags are specified. -+ if flags != 0 { -+ err := fchmodat2(dirfd, path, mode, flags) -+ if err == ENOSYS { -+ // fchmodat2 isn't available. If the flags are known to be valid, -+ // return EOPNOTSUPP to indicate that fchmodat doesn't support them. -+ if flags&^(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { -+ return EINVAL -+ } else if flags&(AT_SYMLINK_NOFOLLOW|AT_EMPTY_PATH) != 0 { -+ return EOPNOTSUPP -+ } -+ } -+ return err - } - return fchmodat(dirfd, path, mode) - } -@@ -417,7 +425,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - if n > 0 { - sl += _Socklen(n) + 1 - } -- if sa.raw.Path[0] == '@' { -+ if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { -+ // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- -@@ -1301,7 +1310,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { - return "", err - } - } -- return string(buf[:vallen-1]), nil -+ return ByteSliceToString(buf[:vallen]), nil - } - - func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { -@@ -1840,6 +1849,105 @@ func Dup2(oldfd, newfd int) error { - //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) - //sys Fsopen(fsName string, flags int) (fd int, err error) - //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -+ -+//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) -+ -+func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { -+ var keyp *byte -+ if keyp, err = BytePtrFromString(key); err != nil { -+ return -+ } -+ return fsconfig(fd, cmd, keyp, value, aux) -+} -+ -+// FsconfigSetFlag is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FLAG. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+func FsconfigSetFlag(fd int, key string) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -+} -+ -+// FsconfigSetString is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_STRING. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetString(fd int, key string, value string) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(value); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -+} -+ -+// FsconfigSetBinary is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_BINARY. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetBinary(fd int, key string, value []byte) (err error) { -+ if len(value) == 0 { -+ return EINVAL -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -+} -+ -+// FsconfigSetPath is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// path is a non-empty path for specified key. -+// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -+func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -+} -+ -+// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -+// FconfigSetPath but with AT_PATH_EMPTY implied. -+func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -+} -+ -+// FsconfigSetFd is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FD. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is a file descriptor to be assigned to specified key. -+func FsconfigSetFd(fd int, key string, value int) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -+} -+ -+// FsconfigCreate is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_CREATE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigCreate(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -+} -+ -+// FsconfigReconfigure is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_RECONFIGURE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigReconfigure(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -+} -+ - //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 - //sysnb Getpgid(pid int) (pgid int, err error) - -@@ -2482,3 +2590,5 @@ func SchedGetAttr(pid int, flags uint) (*SchedAttr, error) { - } - return attr, nil - } -+ -+//sys Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go -index c7d9945e..506dafa7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build 386 && linux --// +build 386,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go -index 08086ac6..38d55641 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) --// +build linux --// +build 386 amd64 mips mipsle mips64 mipsle ppc64 ppc64le ppc s390x sparc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -index 70601ce3..d557cf8d 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && linux --// +build amd64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go -index 8b0f0f3a..facdb83b 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && linux && gc --// +build amd64,linux,gc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go -index da298641..cd2dd797 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm && linux --// +build arm,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -index f5266689..cf2ee6c7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm64 && linux --// +build arm64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go -index 2b1168d7..ffc4c2b6 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && gc --// +build linux,gc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go -index 9843fb48..9ebfdcf4 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && gc && 386 --// +build linux,gc,386 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go -index a6008fcc..5f2b57c4 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm && gc && linux --// +build arm,gc,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go -index 7740af24..d1a3ad82 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && gccgo && 386 --// +build linux,gccgo,386 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go -index e16a1229..f2f67423 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && gccgo && arm --// +build linux,gccgo,arm - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -index f6ab02ec..3d0e9845 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 && linux --// +build loong64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -index 93fe59d2..70963a95 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (mips64 || mips64le) --// +build linux --// +build mips64 mips64le - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go -index aae7f0ff..c218ebd2 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (mips || mipsle) --// +build linux --// +build mips mipsle - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go -index 66eff19a..e6c48500 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && ppc --// +build linux,ppc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go -index 806aa257..7286a9aa 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (ppc64 || ppc64le) --// +build linux --// +build ppc64 ppc64le - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -index 5e6ceee1..6f5a2889 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 && linux --// +build riscv64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go -index 2f89e8f5..66f31210 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && linux --// +build s390x,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go -index 7ca064ae..11d1f169 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build sparc64 && linux --// +build sparc64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go -index 5199d282..7a5eb574 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build 386 && netbsd --// +build 386,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go -index 70a9c52e..62d8957a 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && netbsd --// +build amd64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go -index 3eb5942f..ce6a0688 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm && netbsd --// +build arm,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go -index fc6ccfd8..d46d689d 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm64 && netbsd --// +build arm64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go -index 6f34479b..b25343c7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go -@@ -137,18 +137,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e - } - - func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { -- var _p0 unsafe.Pointer -+ var bufptr *Statfs_t - var bufsize uintptr - if len(buf) > 0 { -- _p0 = unsafe.Pointer(&buf[0]) -+ bufptr = &buf[0] - bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) - } -- r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) -- n = int(r0) -- if e1 != 0 { -- err = e1 -- } -- return -+ return getfsstat(bufptr, bufsize, flags) - } - - //sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) -@@ -171,6 +166,20 @@ func Getresgid() (rgid, egid, sgid int) { - - //sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL - -+//sys fcntl(fd int, cmd int, arg int) (n int, err error) -+//sys fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) = SYS_FCNTL -+ -+// FcntlInt performs a fcntl syscall on fd with the provided command and argument. -+func FcntlInt(fd uintptr, cmd, arg int) (int, error) { -+ return fcntl(int(fd), cmd, arg) -+} -+ -+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. -+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { -+ _, err := fcntlPtr(int(fd), cmd, unsafe.Pointer(lk)) -+ return err -+} -+ - //sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) - - func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { -@@ -326,4 +335,7 @@ func Uname(uname *Utsname) error { - //sys write(fd int, p []byte) (n int, err error) - //sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) - //sys munmap(addr uintptr, length uintptr) (err error) -+//sys getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) - //sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) -+//sys pledge(promises *byte, execpromises *byte) (err error) -+//sys unveil(path *byte, flags *byte) (err error) -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go -index 6baabcdc..9ddc89f4 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build 386 && openbsd --// +build 386,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go -index bab25360..70a3c96e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && openbsd --// +build amd64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go -index 8eed3c4d..265caa87 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm && openbsd --// +build arm,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go -index 483dde99..ac4fda17 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build arm64 && openbsd --// +build arm64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go -index 04aa43f4..0a451e6d 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build openbsd --// +build openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go -index c2796139..30a308cb 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build ppc64 && openbsd --// +build ppc64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go -index 23199a7f..ea954330 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 && openbsd --// +build riscv64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go -index b99cfa13..21974af0 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_solaris.go -+++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go -@@ -128,7 +128,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { - if n > 0 { - sl += _Socklen(n) + 1 - } -- if sa.raw.Path[0] == '@' { -+ if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { -+ // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- -@@ -157,7 +158,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { - if err != nil { - return "", err - } -- return string(buf[:vallen-1]), nil -+ return ByteSliceToString(buf[:vallen]), nil - } - - const ImplementsGetwd = true -diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go -index 0bd25ef8..e02d8cea 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go -+++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go -index f6eda270..77081de8 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_unix.go -+++ b/vendor/golang.org/x/sys/unix/syscall_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go -index b6919ca5..05c95bcc 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go -+++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc --// +build darwin dragonfly freebsd linux,!ppc64,!ppc64le netbsd openbsd solaris --// +build gc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go -index f6f707ac..23f39b7a 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go -@@ -3,9 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && (ppc64le || ppc64) && gc --// +build linux --// +build ppc64le ppc64 --// +build gc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -index 4596d041..b473038c 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -@@ -1105,7 +1104,7 @@ func GetsockoptString(fd, level, opt int) (string, error) { - return "", err - } - -- return string(buf[:vallen-1]), nil -+ return ByteSliceToString(buf[:vallen]), nil - } - - func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { -diff --git a/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/vendor/golang.org/x/sys/unix/sysvshm_linux.go -index 2c3a4437..4fcd38de 100644 ---- a/vendor/golang.org/x/sys/unix/sysvshm_linux.go -+++ b/vendor/golang.org/x/sys/unix/sysvshm_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/vendor/golang.org/x/sys/unix/sysvshm_unix.go -index 5bb41d17..79a84f18 100644 ---- a/vendor/golang.org/x/sys/unix/sysvshm_unix.go -+++ b/vendor/golang.org/x/sys/unix/sysvshm_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (darwin && !ios) || linux --// +build darwin,!ios linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go -index 71bddefd..9eb0db66 100644 ---- a/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go -+++ b/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && !ios --// +build darwin,!ios - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go -index 616b1b28..7997b190 100644 ---- a/vendor/golang.org/x/sys/unix/timestruct.go -+++ b/vendor/golang.org/x/sys/unix/timestruct.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go -index 168d5ae7..cb7e598c 100644 ---- a/vendor/golang.org/x/sys/unix/unveil_openbsd.go -+++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go -@@ -4,39 +4,48 @@ - - package unix - --import ( -- "syscall" -- "unsafe" --) -+import "fmt" - - // Unveil implements the unveil syscall. - // For more information see unveil(2). - // Note that the special case of blocking further - // unveil calls is handled by UnveilBlock. - func Unveil(path string, flags string) error { -- pathPtr, err := syscall.BytePtrFromString(path) -- if err != nil { -+ if err := supportsUnveil(); err != nil { - return err - } -- flagsPtr, err := syscall.BytePtrFromString(flags) -+ pathPtr, err := BytePtrFromString(path) - if err != nil { - return err - } -- _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0) -- if e != 0 { -- return e -+ flagsPtr, err := BytePtrFromString(flags) -+ if err != nil { -+ return err - } -- return nil -+ return unveil(pathPtr, flagsPtr) - } - - // UnveilBlock blocks future unveil calls. - // For more information see unveil(2). - func UnveilBlock() error { -- // Both pointers must be nil. -- var pathUnsafe, flagsUnsafe unsafe.Pointer -- _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0) -- if e != 0 { -- return e -+ if err := supportsUnveil(); err != nil { -+ return err - } -+ return unveil(nil, nil) -+} -+ -+// supportsUnveil checks for availability of the unveil(2) system call based -+// on the running OpenBSD version. -+func supportsUnveil() error { -+ maj, min, err := majmin() -+ if err != nil { -+ return err -+ } -+ -+ // unveil is not available before 6.4 -+ if maj < 6 || (maj == 6 && min <= 3) { -+ return fmt.Errorf("cannot call Unveil on OpenBSD %d.%d", maj, min) -+ } -+ - return nil - } -diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go -index f5f8e9f3..e1687939 100644 ---- a/vendor/golang.org/x/sys/unix/xattr_bsd.go -+++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build freebsd || netbsd --// +build freebsd netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go -index ca9799b7..2fb219d7 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc && aix --// +build ppc,aix - - // Created by cgo -godefs - DO NOT EDIT - // cgo -godefs -- -maix32 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go -index 200c8c26..b0e6f5c8 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && aix --// +build ppc64,aix - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -maix64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go -index 14300762..e40fa852 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && darwin --// +build amd64,darwin - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go -index ab044a74..bb02aa6c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && darwin --// +build arm64,darwin - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go -index 17bba0e4..c0e0f869 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && dragonfly --// +build amd64,dragonfly - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go -index f8c2c513..6c692390 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && freebsd --// +build 386,freebsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m32 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go -index 96310c3b..dd9163f8 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && freebsd --// +build amd64,freebsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go -index 777b69de..493a2a79 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && freebsd --// +build arm,freebsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go -index c557ac2d..8b437b30 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && freebsd --// +build arm64,freebsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go -index 341b4d96..67c02dd5 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && freebsd --// +build riscv64,freebsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index f9c7f479..36bf8399 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -1,7 +1,6 @@ - // Code generated by mkmerge; DO NOT EDIT. - - //go:build linux --// +build linux - - package unix - -@@ -481,10 +480,13 @@ const ( - BPF_FROM_BE = 0x8 - BPF_FROM_LE = 0x0 - BPF_FS_MAGIC = 0xcafe4a11 -+ BPF_F_AFTER = 0x10 - BPF_F_ALLOW_MULTI = 0x2 - BPF_F_ALLOW_OVERRIDE = 0x1 - BPF_F_ANY_ALIGNMENT = 0x2 -- BPF_F_KPROBE_MULTI_RETURN = 0x1 -+ BPF_F_BEFORE = 0x8 -+ BPF_F_ID = 0x20 -+ BPF_F_NETFILTER_IP_DEFRAG = 0x1 - BPF_F_QUERY_EFFECTIVE = 0x1 - BPF_F_REPLACE = 0x4 - BPF_F_SLEEPABLE = 0x10 -@@ -521,6 +523,7 @@ const ( - BPF_MAJOR_VERSION = 0x1 - BPF_MAXINSNS = 0x1000 - BPF_MEM = 0x60 -+ BPF_MEMSX = 0x80 - BPF_MEMWORDS = 0x10 - BPF_MINOR_VERSION = 0x1 - BPF_MISC = 0x7 -@@ -776,6 +779,8 @@ const ( - DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" - DEVLINK_GENL_NAME = "devlink" - DEVLINK_GENL_VERSION = 0x1 -+ DEVLINK_PORT_FN_CAP_IPSEC_CRYPTO = 0x4 -+ DEVLINK_PORT_FN_CAP_IPSEC_PACKET = 0x8 - DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 - DEVLINK_PORT_FN_CAP_ROCE = 0x1 - DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 -@@ -1698,6 +1703,7 @@ const ( - KEXEC_ON_CRASH = 0x1 - KEXEC_PRESERVE_CONTEXT = 0x2 - KEXEC_SEGMENT_MAX = 0x10 -+ KEXEC_UPDATE_ELFCOREHDR = 0x4 - KEYCTL_ASSUME_AUTHORITY = 0x10 - KEYCTL_CAPABILITIES = 0x1f - KEYCTL_CAPS0_BIG_KEY = 0x10 -@@ -1779,6 +1785,8 @@ const ( - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 -+ LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 -+ LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef -@@ -1795,6 +1803,7 @@ const ( - LOCK_SH = 0x1 - LOCK_UN = 0x8 - LOOP_CLR_FD = 0x4c01 -+ LOOP_CONFIGURE = 0x4c0a - LOOP_CTL_ADD = 0x4c80 - LOOP_CTL_GET_FREE = 0x4c82 - LOOP_CTL_REMOVE = 0x4c81 -@@ -2120,6 +2129,60 @@ const ( - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 -+ NFT_CHAIN_FLAGS = 0x7 -+ NFT_CHAIN_MAXNAMELEN = 0x100 -+ NFT_CT_MAX = 0x17 -+ NFT_DATA_RESERVED_MASK = 0xffffff00 -+ NFT_DATA_VALUE_MAXLEN = 0x40 -+ NFT_EXTHDR_OP_MAX = 0x4 -+ NFT_FIB_RESULT_MAX = 0x3 -+ NFT_INNER_MASK = 0xf -+ NFT_LOGLEVEL_MAX = 0x8 -+ NFT_NAME_MAXLEN = 0x100 -+ NFT_NG_MAX = 0x1 -+ NFT_OBJECT_CONNLIMIT = 0x5 -+ NFT_OBJECT_COUNTER = 0x1 -+ NFT_OBJECT_CT_EXPECT = 0x9 -+ NFT_OBJECT_CT_HELPER = 0x3 -+ NFT_OBJECT_CT_TIMEOUT = 0x7 -+ NFT_OBJECT_LIMIT = 0x4 -+ NFT_OBJECT_MAX = 0xa -+ NFT_OBJECT_QUOTA = 0x2 -+ NFT_OBJECT_SECMARK = 0x8 -+ NFT_OBJECT_SYNPROXY = 0xa -+ NFT_OBJECT_TUNNEL = 0x6 -+ NFT_OBJECT_UNSPEC = 0x0 -+ NFT_OBJ_MAXNAMELEN = 0x100 -+ NFT_OSF_MAXGENRELEN = 0x10 -+ NFT_QUEUE_FLAG_BYPASS = 0x1 -+ NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 -+ NFT_QUEUE_FLAG_MASK = 0x3 -+ NFT_REG32_COUNT = 0x10 -+ NFT_REG32_SIZE = 0x4 -+ NFT_REG_MAX = 0x4 -+ NFT_REG_SIZE = 0x10 -+ NFT_REJECT_ICMPX_MAX = 0x3 -+ NFT_RT_MAX = 0x4 -+ NFT_SECMARK_CTX_MAXLEN = 0x100 -+ NFT_SET_MAXNAMELEN = 0x100 -+ NFT_SOCKET_MAX = 0x3 -+ NFT_TABLE_F_MASK = 0x3 -+ NFT_TABLE_MAXNAMELEN = 0x100 -+ NFT_TRACETYPE_MAX = 0x3 -+ NFT_TUNNEL_F_MASK = 0x7 -+ NFT_TUNNEL_MAX = 0x1 -+ NFT_TUNNEL_MODE_MAX = 0x2 -+ NFT_USERDATA_MAXLEN = 0x100 -+ NFT_XFRM_KEY_MAX = 0x6 -+ NF_NAT_RANGE_MAP_IPS = 0x1 -+ NF_NAT_RANGE_MASK = 0x7f -+ NF_NAT_RANGE_NETMAP = 0x40 -+ NF_NAT_RANGE_PERSISTENT = 0x8 -+ NF_NAT_RANGE_PROTO_OFFSET = 0x20 -+ NF_NAT_RANGE_PROTO_RANDOM = 0x4 -+ NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 -+ NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 -@@ -2275,6 +2338,7 @@ const ( - PERF_MEM_LVLNUM_PMEM = 0xe - PERF_MEM_LVLNUM_RAM = 0xd - PERF_MEM_LVLNUM_SHIFT = 0x21 -+ PERF_MEM_LVLNUM_UNC = 0x8 - PERF_MEM_LVL_HIT = 0x2 - PERF_MEM_LVL_IO = 0x1000 - PERF_MEM_LVL_L1 = 0x8 -@@ -2403,6 +2467,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b -@@ -2607,8 +2672,9 @@ const ( - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 -- RTAX_FEATURE_MASK = 0xf -+ RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 -+ RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb -@@ -2851,9 +2917,38 @@ const ( - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 -+ SECCOMP_ADDFD_FLAG_SEND = 0x2 -+ SECCOMP_ADDFD_FLAG_SETFD = 0x1 -+ SECCOMP_FILTER_FLAG_LOG = 0x2 -+ SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 -+ SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 -+ SECCOMP_FILTER_FLAG_TSYNC = 0x1 -+ SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 -+ SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 -+ SECCOMP_GET_ACTION_AVAIL = 0x2 -+ SECCOMP_GET_NOTIF_SIZES = 0x3 -+ SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 -+ SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 -+ SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 -+ SECCOMP_RET_ACTION = 0x7fff0000 -+ SECCOMP_RET_ACTION_FULL = 0xffff0000 -+ SECCOMP_RET_ALLOW = 0x7fff0000 -+ SECCOMP_RET_DATA = 0xffff -+ SECCOMP_RET_ERRNO = 0x50000 -+ SECCOMP_RET_KILL = 0x0 -+ SECCOMP_RET_KILL_PROCESS = 0x80000000 -+ SECCOMP_RET_KILL_THREAD = 0x0 -+ SECCOMP_RET_LOG = 0x7ffc0000 -+ SECCOMP_RET_TRACE = 0x7ff00000 -+ SECCOMP_RET_TRAP = 0x30000 -+ SECCOMP_RET_USER_NOTIF = 0x7fc00000 -+ SECCOMP_SET_MODE_FILTER = 0x1 -+ SECCOMP_SET_MODE_STRICT = 0x0 -+ SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 -+ SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 -@@ -3013,6 +3108,7 @@ const ( - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 -+ SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -@@ -3461,6 +3557,7 @@ const ( - XDP_PACKET_HEADROOM = 0x100 - XDP_PGOFF_RX_RING = 0x0 - XDP_PGOFF_TX_RING = 0x80000000 -+ XDP_PKT_CONTD = 0x1 - XDP_RING_NEED_WAKEUP = 0x1 - XDP_RX_RING = 0x2 - XDP_SHARED_UMEM = 0x1 -@@ -3473,6 +3570,7 @@ const ( - XDP_UMEM_REG = 0x4 - XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 - XDP_USE_NEED_WAKEUP = 0x8 -+ XDP_USE_SG = 0x10 - XDP_ZEROCOPY = 0x4 - XENFS_SUPER_MAGIC = 0xabba1974 - XFS_SUPER_MAGIC = 0x58465342 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index 30aee00a..42ff8c3c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && linux --// +build 386,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go -@@ -282,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index 8ebfa512..dca43600 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && linux --// +build amd64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go -@@ -283,6 +282,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index 271a21cd..5cca668a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && linux --// +build arm,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go -@@ -289,6 +288,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 910c330a..d8cae6d1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && linux --// +build arm64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go -@@ -279,6 +278,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index a640798c..28e39afd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build loong64 && linux --// +build loong64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go -@@ -119,6 +118,7 @@ const ( - IXOFF = 0x1000 - IXON = 0x400 - LASX_CTX_MAGIC = 0x41535801 -+ LBT_CTX_MAGIC = 0x42540001 - LSX_CTX_MAGIC = 0x53580001 - MAP_ANON = 0x20 - MAP_ANONYMOUS = 0x20 -@@ -275,6 +275,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 0d5925d3..cd66e92c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips && linux --// +build mips,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go -@@ -282,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index d72a00e0..c1595eba 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && linux --// +build mips64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go -@@ -282,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index 02ba129f..ee9456b0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64le && linux --// +build mips64le,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go -@@ -282,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index 8daa6dd9..8cfca81e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mipsle && linux --// +build mipsle,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go -@@ -282,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index 63c8fa2f..60b0deb3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc && linux --// +build ppc,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go -@@ -337,6 +336,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 930799ec..f90aa728 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && linux --// +build ppc64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go -@@ -341,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index 8605a7dd..ba9e0150 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64le && linux --// +build ppc64le,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go -@@ -341,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index 95a016f1..07cdfd6e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && linux --// +build riscv64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go -@@ -228,6 +227,9 @@ const ( - PPPIOCUNBRIDGECHAN = 0x7434 - PPPIOCXFERUNIT = 0x744e - PR_SET_PTRACER_ANY = 0xffffffffffffffff -+ PTRACE_GETFDPIC = 0x21 -+ PTRACE_GETFDPIC_EXEC = 0x0 -+ PTRACE_GETFDPIC_INTERP = 0x1 - RLIMIT_AS = 0x9 - RLIMIT_MEMLOCK = 0x8 - RLIMIT_NOFILE = 0x7 -@@ -270,6 +272,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 1ae0108f..2f1dd214 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build s390x && linux --// +build s390x,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go -@@ -345,6 +344,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index 1bb7c633..f40519d9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build sparc64 && linux --// +build sparc64,linux - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go -@@ -336,6 +335,9 @@ const ( - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go -index 72f7420d..130085df 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && netbsd --// +build 386,netbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m32 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go -index 8d4eb0c0..84769a1a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && netbsd --// +build amd64,netbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go -index 9eef9749..602ded00 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && netbsd --// +build arm,netbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -marm _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go -index 3b62ba19..efc0406e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && netbsd --// +build arm64,netbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go -index af20e474..5a6500f8 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && openbsd --// +build 386,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m32 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go -index 6015fcb2..a5aeeb97 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && openbsd --// +build amd64,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go -index 8d44955e..0e9748a7 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && openbsd --// +build arm,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go -index ae16fe75..4f4449ab 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && openbsd --// +build arm64,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go -index 03d90fe3..76a363f0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && openbsd --// +build mips64,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go -index 8e2c51b1..43ca0cdf 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && openbsd --// +build ppc64,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go -index 13d40303..b1b8bb20 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && openbsd --// +build riscv64,openbsd - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go -index 1afee6a0..d2ddd317 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && solaris --// +build amd64,solaris - - // Code generated by cmd/cgo -godefs; DO NOT EDIT. - // cgo -godefs -- -m64 _const.go -diff --git a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go -index fc7d0506..4dfd2e05 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - // Hand edited based on zerrors_linux_s390x.go - // TODO: auto-generate. -diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go -index 97f20ca2..586317c7 100644 ---- a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go -+++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go -@@ -1,8 +1,6 @@ - // Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. - - //go:build linux && (arm || arm64) --// +build linux --// +build arm arm64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go -index 0b5f7943..d7c881be 100644 ---- a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go -+++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go -@@ -1,8 +1,6 @@ - // Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. - - //go:build linux && (mips || mips64) --// +build linux --// +build mips mips64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go -index 2807f7e6..2d2de5d2 100644 ---- a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go -+++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go -@@ -1,8 +1,6 @@ - // Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. - - //go:build linux && (mipsle || mips64le) --// +build linux --// +build mipsle mips64le - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go -index 281ea64e..5adc79fb 100644 ---- a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go -+++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go -@@ -1,8 +1,6 @@ - // Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. - - //go:build linux && (386 || amd64) --// +build linux --// +build 386 amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -index d1d1d233..6ea64a3c 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build aix && ppc --// +build aix,ppc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -index f99a18ad..99ee4399 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build aix && ppc64 --// +build aix,ppc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go -index c4d50ae5..b68a7836 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build aix && ppc64 && gc --// +build aix,ppc64,gc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go -index 6903d3b0..0a87450b 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build aix && ppc64 && gccgo --// +build aix,ppc64,gccgo - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -index 1cad561e..ccb02f24 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build darwin && amd64 --// +build darwin,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -index b18edbd0..1b40b997 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build darwin && arm64 --// +build darwin,arm64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -index 0c67df64..aad65fc7 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build dragonfly && amd64 --// +build dragonfly,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -index e6e05d14..c0096391 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build freebsd && 386 --// +build freebsd,386 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -index 7508acca..7664df74 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build freebsd && amd64 --// +build freebsd,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -index 7b56aead..ae099182 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build freebsd && arm --// +build freebsd,arm - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -index cc623dca..11fd5d45 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build freebsd && arm64 --// +build freebsd,arm64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -index 58184919..c3d2d653 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build freebsd && riscv64 --// +build freebsd,riscv64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -index 6be25cd1..c698cbc0 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build illumos && amd64 --// +build illumos,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index 1ff3aec7..87d8612a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -1,7 +1,6 @@ - // Code generated by mkmerge; DO NOT EDIT. - - //go:build linux --// +build linux - - package unix - -@@ -38,6 +37,21 @@ func fchmodat(dirfd int, path string, mode uint32) (err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fchmodat2(dirfd int, path string, mode uint32, flags int) (err error) { -+ var _p0 *byte -+ _p0, err = BytePtrFromString(path) -+ if err != nil { -+ return -+ } -+ _, _, e1 := Syscall6(SYS_FCHMODAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ioctl(fd int, req uint, arg uintptr) (err error) { - _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) - if e1 != 0 { -@@ -892,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { -+ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { -@@ -2195,3 +2219,13 @@ func schedGetattr(pid int, attr *SchedAttr, size uint, flags uint) (err error) { - } - return - } -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func Cachestat(fd uint, crange *CachestatRange, cstat *Cachestat_t, flags uint) (err error) { -+ _, _, e1 := Syscall6(SYS_CACHESTAT, uintptr(fd), uintptr(unsafe.Pointer(crange)), uintptr(unsafe.Pointer(cstat)), uintptr(flags), 0, 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go -index 07b549cc..4def3e9f 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && 386 --// +build linux,386 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go -index 5f481bf8..fef2bc8b 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && amd64 --// +build linux,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go -index 824cd52c..a9fd76a8 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && arm --// +build linux,arm - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go -index e77aecfe..46006502 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && arm64 --// +build linux,arm64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go -index 806ffd1e..c8987d26 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && loong64 --// +build linux,loong64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go -index 961a3afb..921f4306 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && mips --// +build linux,mips - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go -index ed05005e..44f06782 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && mips64 --// +build linux,mips64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go -index d365b718..e7fa0abf 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && mips64le --// +build linux,mips64le - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go -index c3f1b8bb..8c512567 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && mipsle --// +build linux,mipsle - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go -index a6574cf9..7392fd45 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && ppc --// +build linux,ppc - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go -index f4099026..41180434 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && ppc64 --// +build linux,ppc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go -index 9dfcc299..40c6ce7a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && ppc64le --// +build linux,ppc64le - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -index 0ab4f2ed..2cfe34ad 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && riscv64 --// +build linux,riscv64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go -index 6cde3223..61e6f070 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && s390x --// +build linux,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go -index 5253d65b..834b8420 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build linux && sparc64 --// +build linux,sparc64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -index 2df3c5ba..e91ebc14 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build netbsd && 386 --// +build netbsd,386 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -index a60556ba..be28babb 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build netbsd && amd64 --// +build netbsd,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -index 9f788917..fb587e82 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build netbsd && arm --// +build netbsd,arm - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -index 82a4cb2d..d576438b 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build netbsd && arm64 --// +build netbsd,arm64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index 66b3b645..9dc42410 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && 386 --// +build openbsd,386 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -index 3dcacd30..41b56173 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 - DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 - DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 - DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index c5c4cc11..0d3a0751 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && amd64 --// +build openbsd,amd64 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -index 2763620b..4019a656 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index 93bfbb32..c39f7776 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && arm --// +build openbsd,arm - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -index c9223140..ac4af24f 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 - DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_fcntl_trampoline_addr(SB)/4, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 - DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_getfsstat_trampoline_addr(SB)/4, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 - DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_pledge_trampoline_addr(SB)/4, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $4 -+DATA ·libc_unveil_trampoline_addr(SB)/4, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index a107b8fd..57571d07 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && arm64 --// +build openbsd,arm64 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -index a6bc32c9..f77d5321 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index c427de50..e62963e6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && mips64 --// +build openbsd,mips64 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -index b4e7bcea..fae140b6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 60c1a99a..00831354 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && ppc64 --// +build openbsd,ppc64 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -index ca3f7660..9d1e0ff0 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s -@@ -213,6 +213,12 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_fcntl(SB) -+ RET -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_ppoll(SB) - RET -@@ -801,8 +807,26 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_getfsstat(SB) -+ RET -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - CALL libc_utimensat(SB) - RET - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_pledge(SB) -+ RET -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ CALL libc_unveil(SB) -+ RET -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 52eba360..79029ed5 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build openbsd && riscv64 --// +build openbsd,riscv64 - - package unix - -@@ -585,6 +584,32 @@ var libc_sysctl_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fcntl(fd int, cmd int, arg int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_fcntl_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func fcntlPtr(fd int, cmd int, arg unsafe.Pointer) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { - r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) - n = int(r0) -@@ -2213,6 +2238,21 @@ var libc_munmap_trampoline_addr uintptr - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func getfsstat(stat *Statfs_t, bufsize uintptr, flags int) (n int, err error) { -+ r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(unsafe.Pointer(stat)), uintptr(bufsize), uintptr(flags)) -+ n = int(r0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_getfsstat_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_getfsstat getfsstat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { - var _p0 *byte - _p0, err = BytePtrFromString(path) -@@ -2229,3 +2269,31 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error - var libc_utimensat_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_utimensat utimensat "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func pledge(promises *byte, execpromises *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_pledge_trampoline_addr, uintptr(unsafe.Pointer(promises)), uintptr(unsafe.Pointer(execpromises)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_pledge_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_pledge pledge "libc.so" -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ -+func unveil(path *byte, flags *byte) (err error) { -+ _, _, e1 := syscall_syscall(libc_unveil_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(flags)), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+var libc_unveil_trampoline_addr uintptr -+ -+//go:cgo_import_dynamic libc_unveil unveil "libc.so" -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -index 477a7d5b..da115f9a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s -@@ -178,6 +178,11 @@ TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 - DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) - -+TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_fcntl(SB) -+GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) -+ - TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_ppoll(SB) - GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 -@@ -668,7 +673,22 @@ TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 - GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 - DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) - -+TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_getfsstat(SB) -+GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) -+ - TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 - JMP libc_utimensat(SB) - GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 - DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) -+ -+TEXT libc_pledge_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_pledge(SB) -+GLOBL ·libc_pledge_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_pledge_trampoline_addr(SB)/8, $libc_pledge_trampoline<>(SB) -+ -+TEXT libc_unveil_trampoline<>(SB),NOSPLIT,$0-0 -+ JMP libc_unveil(SB) -+GLOBL ·libc_unveil_trampoline_addr(SB), RODATA, $8 -+DATA ·libc_unveil_trampoline_addr(SB)/8, $libc_unveil_trampoline<>(SB) -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -index b4018946..829b87fe 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build solaris && amd64 --// +build solaris,amd64 - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -index 1d8fe1d4..94f01123 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go -index 55e04847..3a58ae81 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build 386 && openbsd --// +build 386,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go -index d2243cf8..dcb7a0eb 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build amd64 && openbsd --// +build amd64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go -index 82dc51bd..db5a7bf1 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build arm && openbsd --// +build arm,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go -index cbdda1a4..7be575a7 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build arm64 && openbsd --// +build arm64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go -index f55eae1a..d6e3174c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build mips64 && openbsd --// +build mips64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go -index e4405447..ee97157d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build ppc64 && openbsd --// +build ppc64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go -index a0db82fc..35c3b91d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build riscv64 && openbsd --// +build riscv64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go -index f8298ff9..5edda768 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && darwin --// +build amd64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go -index 5eb433bb..0dc9e8b4 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && darwin --// +build arm64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go -index 703675c0..308ddf3a 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && dragonfly --// +build amd64,dragonfly - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go -index 4e0d9610..418664e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && freebsd --// +build 386,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go -index 01636b83..34d0b86d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && freebsd --// +build amd64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go -index ad99bc10..b71cf45e 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && freebsd --// +build arm,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go -index 89dcc427..e32df1c1 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && freebsd --// +build arm64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go -index ee37aaa0..15ad6111 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && freebsd --// +build riscv64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index 9862853d..0cc3ce49 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && linux --// +build 386,linux - - package unix - -@@ -448,4 +447,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index 8901f0f4..856d92d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && linux --// +build amd64,linux - - package unix - -@@ -370,4 +369,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index 6902c37e..8d467094 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && linux --// +build arm,linux - - package unix - -@@ -412,4 +411,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index a6d3dff8..edc17324 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && linux --// +build arm64,linux - - package unix - -@@ -315,4 +314,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index b18f3f71..445eba20 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build loong64 && linux --// +build loong64,linux - - package unix - -@@ -309,4 +308,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 0302e5e3..adba01bc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips && linux --// +build mips,linux - - package unix - -@@ -432,4 +431,9 @@ const ( - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 -+ SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index 6693ba4a..014c4e9c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && linux --// +build mips64,linux - - package unix - -@@ -362,4 +361,9 @@ const ( - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 -+ SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index fd93f498..ccc97d74 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64le && linux --// +build mips64le,linux - - package unix - -@@ -362,4 +361,9 @@ const ( - SYS_FUTEX_WAITV = 5449 - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 -+ SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index 760ddcad..ec2b64a9 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mipsle && linux --// +build mipsle,linux - - package unix - -@@ -432,4 +431,9 @@ const ( - SYS_FUTEX_WAITV = 4449 - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 -+ SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index cff2b255..21a839e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc && linux --// +build ppc,linux - - package unix - -@@ -439,4 +438,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index a4b2405d..c11121ec 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && linux --// +build ppc64,linux - - package unix - -@@ -411,4 +410,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index aca54b4e..909b631f 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64le && linux --// +build ppc64le,linux - - package unix - -@@ -411,4 +410,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 9d1738d6..e49bed16 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && linux --// +build riscv64,linux - - package unix - -@@ -316,4 +315,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index 022878dc..66017d2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build s390x && linux --// +build s390x,linux - - package unix - -@@ -377,4 +376,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index 4100a761..47bab18d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build sparc64 && linux --// +build sparc64,linux - - package unix - -@@ -390,4 +389,9 @@ const ( - SYS_FUTEX_WAITV = 449 - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 -+ SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go -index 3a6699eb..b2aa8cd4 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && netbsd --// +build 386,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go -index 5677cd4f..524a1b1c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && netbsd --// +build amd64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go -index e784cb6d..d59b943a 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && netbsd --// +build arm,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go -index bd4952ef..31e771d5 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; DO NOT EDIT. - - //go:build arm64 && netbsd --// +build arm64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go -index 59773381..9fd77c6c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && openbsd --// +build 386,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go -index 16af2918..af10af28 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && openbsd --// +build amd64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go -index f59b18a9..cc2028af 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && openbsd --// +build arm,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go -index 721ef591..c06dd441 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && openbsd --// +build arm64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go -index 01c43a01..9ddbf3e0 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && openbsd --// +build mips64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go -index f258cfa2..19a6ee41 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && openbsd --// +build ppc64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go -index 07919e0e..05192a78 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && openbsd --// +build riscv64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go -index 073daad4..b2e30858 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go -index 7a8161c1..3e6d57ca 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc && aix --// +build ppc,aix - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go -index 07ed733c..3a219bdc 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && aix --// +build ppc64,aix - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go -index 690cefc3..091d107f 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && darwin --// +build amd64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go -index 5bffc10e..28ff4ef7 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && darwin --// +build arm64,darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go -index d0ba8e9b..30e405bb 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && dragonfly --// +build amd64,dragonfly - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go -index 29dc4833..6cbd094a 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && freebsd --// +build 386,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go -index 0a89b289..7c03b6ee 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && freebsd --// +build amd64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go -index c8666bb1..422107ee 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && freebsd --// +build arm,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go -index 88fb48a8..505a12ac 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && freebsd --// +build arm64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go -index 698dc975..cc986c79 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && freebsd --// +build riscv64,freebsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index 18aa70b4..eff6bcde 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -1,7 +1,6 @@ - // Code generated by mkmerge; DO NOT EDIT. - - //go:build linux --// +build linux - - package unix - -@@ -175,7 +174,8 @@ type FscryptPolicyV2 struct { - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 -- _ [4]uint8 -+ Log2_data_unit_size uint8 -+ _ [3]uint8 - Master_key_identifier [16]uint8 - } - -@@ -456,60 +456,63 @@ type Ucred struct { - } - - type TCPInfo struct { -- State uint8 -- Ca_state uint8 -- Retransmits uint8 -- Probes uint8 -- Backoff uint8 -- Options uint8 -- Rto uint32 -- Ato uint32 -- Snd_mss uint32 -- Rcv_mss uint32 -- Unacked uint32 -- Sacked uint32 -- Lost uint32 -- Retrans uint32 -- Fackets uint32 -- Last_data_sent uint32 -- Last_ack_sent uint32 -- Last_data_recv uint32 -- Last_ack_recv uint32 -- Pmtu uint32 -- Rcv_ssthresh uint32 -- Rtt uint32 -- Rttvar uint32 -- Snd_ssthresh uint32 -- Snd_cwnd uint32 -- Advmss uint32 -- Reordering uint32 -- Rcv_rtt uint32 -- Rcv_space uint32 -- Total_retrans uint32 -- Pacing_rate uint64 -- Max_pacing_rate uint64 -- Bytes_acked uint64 -- Bytes_received uint64 -- Segs_out uint32 -- Segs_in uint32 -- Notsent_bytes uint32 -- Min_rtt uint32 -- Data_segs_in uint32 -- Data_segs_out uint32 -- Delivery_rate uint64 -- Busy_time uint64 -- Rwnd_limited uint64 -- Sndbuf_limited uint64 -- Delivered uint32 -- Delivered_ce uint32 -- Bytes_sent uint64 -- Bytes_retrans uint64 -- Dsack_dups uint32 -- Reord_seen uint32 -- Rcv_ooopack uint32 -- Snd_wnd uint32 -- Rcv_wnd uint32 -- Rehash uint32 -+ State uint8 -+ Ca_state uint8 -+ Retransmits uint8 -+ Probes uint8 -+ Backoff uint8 -+ Options uint8 -+ Rto uint32 -+ Ato uint32 -+ Snd_mss uint32 -+ Rcv_mss uint32 -+ Unacked uint32 -+ Sacked uint32 -+ Lost uint32 -+ Retrans uint32 -+ Fackets uint32 -+ Last_data_sent uint32 -+ Last_ack_sent uint32 -+ Last_data_recv uint32 -+ Last_ack_recv uint32 -+ Pmtu uint32 -+ Rcv_ssthresh uint32 -+ Rtt uint32 -+ Rttvar uint32 -+ Snd_ssthresh uint32 -+ Snd_cwnd uint32 -+ Advmss uint32 -+ Reordering uint32 -+ Rcv_rtt uint32 -+ Rcv_space uint32 -+ Total_retrans uint32 -+ Pacing_rate uint64 -+ Max_pacing_rate uint64 -+ Bytes_acked uint64 -+ Bytes_received uint64 -+ Segs_out uint32 -+ Segs_in uint32 -+ Notsent_bytes uint32 -+ Min_rtt uint32 -+ Data_segs_in uint32 -+ Data_segs_out uint32 -+ Delivery_rate uint64 -+ Busy_time uint64 -+ Rwnd_limited uint64 -+ Sndbuf_limited uint64 -+ Delivered uint32 -+ Delivered_ce uint32 -+ Bytes_sent uint64 -+ Bytes_retrans uint64 -+ Dsack_dups uint32 -+ Reord_seen uint32 -+ Rcv_ooopack uint32 -+ Snd_wnd uint32 -+ Rcv_wnd uint32 -+ Rehash uint32 -+ Total_rto uint16 -+ Total_rto_recoveries uint16 -+ Total_rto_time uint32 - } - - type CanFilter struct { -@@ -552,7 +555,7 @@ const ( - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc -- SizeofTCPInfo = 0xf0 -+ SizeofTCPInfo = 0xf8 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 - ) -@@ -833,6 +836,15 @@ const ( - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -+ -+ FSCONFIG_SET_FLAG = 0x0 -+ FSCONFIG_SET_STRING = 0x1 -+ FSCONFIG_SET_BINARY = 0x2 -+ FSCONFIG_SET_PATH = 0x3 -+ FSCONFIG_SET_PATH_EMPTY = 0x4 -+ FSCONFIG_SET_FD = 0x5 -+ FSCONFIG_CMD_CREATE = 0x6 -+ FSCONFIG_CMD_RECONFIGURE = 0x7 - ) - - type OpenHow struct { -@@ -1547,6 +1559,7 @@ const ( - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 -+ IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1562,6 +1575,7 @@ const ( - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 -+ IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 -@@ -1609,6 +1623,9 @@ const ( - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e -+ IFLA_BR_MCAST_QUERIER_STATE = 0x2f -+ IFLA_BR_FDB_N_LEARNED = 0x30 -+ IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 -@@ -1646,6 +1663,14 @@ const ( - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 -+ IFLA_BRPORT_LOCKED = 0x27 -+ IFLA_BRPORT_MAB = 0x28 -+ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 -+ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a -+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b -+ IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 -@@ -1667,6 +1692,9 @@ const ( - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 -+ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 -+ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 -+ IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 -@@ -1690,9 +1718,22 @@ const ( - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 -+ IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 -+ NETKIT_NEXT = -0x1 -+ NETKIT_PASS = 0x0 -+ NETKIT_DROP = 0x2 -+ NETKIT_REDIRECT = 0x7 -+ NETKIT_L2 = 0x0 -+ NETKIT_L3 = 0x1 -+ IFLA_NETKIT_UNSPEC = 0x0 -+ IFLA_NETKIT_PEER_INFO = 0x1 -+ IFLA_NETKIT_PRIMARY = 0x2 -+ IFLA_NETKIT_POLICY = 0x3 -+ IFLA_NETKIT_PEER_POLICY = 0x4 -+ IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 -@@ -1723,6 +1764,8 @@ const ( - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d -+ IFLA_VXLAN_VNIFILTER = 0x1e -+ IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 -@@ -1737,6 +1780,7 @@ const ( - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd -+ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 -@@ -1749,6 +1793,8 @@ const ( - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 -+ IFLA_GTP_CREATE_SOCKETS = 0x5 -+ IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 -@@ -1778,6 +1824,9 @@ const ( - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c -+ IFLA_BOND_AD_LACP_ACTIVE = 0x1d -+ IFLA_BOND_MISSED_MAX = 0x1e -+ IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 -@@ -1793,6 +1842,7 @@ const ( - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 -+ IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 -@@ -1851,8 +1901,16 @@ const ( - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 -+ IFLA_STATS_GETSET_UNSPEC = 0x0 -+ IFLA_STATS_GET_FILTERS = 0x1 -+ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 -+ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 -@@ -1882,6 +1940,11 @@ const ( - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -+ IFLA_MCTP_UNSPEC = 0x0 -+ IFLA_MCTP_NET = 0x1 -+ IFLA_DSA_UNSPEC = 0x0 -+ IFLA_DSA_CONDUIT = 0x1 -+ IFLA_DSA_MASTER = 0x1 - ) - - const ( -@@ -2672,6 +2735,7 @@ const ( - BPF_PROG_TYPE_LSM = 0x1d - BPF_PROG_TYPE_SK_LOOKUP = 0x1e - BPF_PROG_TYPE_SYSCALL = 0x1f -+ BPF_PROG_TYPE_NETFILTER = 0x20 - BPF_CGROUP_INET_INGRESS = 0x0 - BPF_CGROUP_INET_EGRESS = 0x1 - BPF_CGROUP_INET_SOCK_CREATE = 0x2 -@@ -2716,6 +2780,11 @@ const ( - BPF_PERF_EVENT = 0x29 - BPF_TRACE_KPROBE_MULTI = 0x2a - BPF_LSM_CGROUP = 0x2b -+ BPF_STRUCT_OPS = 0x2c -+ BPF_NETFILTER = 0x2d -+ BPF_TCX_INGRESS = 0x2e -+ BPF_TCX_EGRESS = 0x2f -+ BPF_TRACE_UPROBE_MULTI = 0x30 - BPF_LINK_TYPE_UNSPEC = 0x0 - BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 - BPF_LINK_TYPE_TRACING = 0x2 -@@ -2726,6 +2795,18 @@ const ( - BPF_LINK_TYPE_PERF_EVENT = 0x7 - BPF_LINK_TYPE_KPROBE_MULTI = 0x8 - BPF_LINK_TYPE_STRUCT_OPS = 0x9 -+ BPF_LINK_TYPE_NETFILTER = 0xa -+ BPF_LINK_TYPE_TCX = 0xb -+ BPF_LINK_TYPE_UPROBE_MULTI = 0xc -+ BPF_PERF_EVENT_UNSPEC = 0x0 -+ BPF_PERF_EVENT_UPROBE = 0x1 -+ BPF_PERF_EVENT_URETPROBE = 0x2 -+ BPF_PERF_EVENT_KPROBE = 0x3 -+ BPF_PERF_EVENT_KRETPROBE = 0x4 -+ BPF_PERF_EVENT_TRACEPOINT = 0x5 -+ BPF_PERF_EVENT_EVENT = 0x6 -+ BPF_F_KPROBE_MULTI_RETURN = 0x1 -+ BPF_F_UPROBE_MULTI_RETURN = 0x1 - BPF_ANY = 0x0 - BPF_NOEXIST = 0x1 - BPF_EXIST = 0x2 -@@ -2743,6 +2824,8 @@ const ( - BPF_F_MMAPABLE = 0x400 - BPF_F_PRESERVE_ELEMS = 0x800 - BPF_F_INNER_MAP = 0x1000 -+ BPF_F_LINK = 0x2000 -+ BPF_F_PATH_FD = 0x4000 - BPF_STATS_RUN_TIME = 0x0 - BPF_STACK_BUILD_ID_EMPTY = 0x0 - BPF_STACK_BUILD_ID_VALID = 0x1 -@@ -2763,6 +2846,7 @@ const ( - BPF_F_ZERO_CSUM_TX = 0x2 - BPF_F_DONT_FRAGMENT = 0x4 - BPF_F_SEQ_NUMBER = 0x8 -+ BPF_F_NO_TUNNEL_KEY = 0x10 - BPF_F_TUNINFO_FLAGS = 0x10 - BPF_F_INDEX_MASK = 0xffffffff - BPF_F_CURRENT_CPU = 0xffffffff -@@ -2779,6 +2863,8 @@ const ( - BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 - BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 - BPF_F_ADJ_ROOM_ENCAP_L2_ETH = 0x40 -+ BPF_F_ADJ_ROOM_DECAP_L3_IPV4 = 0x80 -+ BPF_F_ADJ_ROOM_DECAP_L3_IPV6 = 0x100 - BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 - BPF_F_SYSCTL_BASE_NAME = 0x1 -@@ -2867,6 +2953,8 @@ const ( - BPF_DEVCG_DEV_CHAR = 0x2 - BPF_FIB_LOOKUP_DIRECT = 0x1 - BPF_FIB_LOOKUP_OUTPUT = 0x2 -+ BPF_FIB_LOOKUP_SKIP_NEIGH = 0x4 -+ BPF_FIB_LOOKUP_TBID = 0x8 - BPF_FIB_LKUP_RET_SUCCESS = 0x0 - BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 - BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 -@@ -2902,6 +2990,7 @@ const ( - BPF_CORE_ENUMVAL_EXISTS = 0xa - BPF_CORE_ENUMVAL_VALUE = 0xb - BPF_CORE_TYPE_MATCHES = 0xc -+ BPF_F_TIMER_ABS = 0x1 - ) - - const ( -@@ -2980,6 +3069,12 @@ type LoopInfo64 struct { - Encrypt_key [32]uint8 - Init [2]uint64 - } -+type LoopConfig struct { -+ Fd uint32 -+ Size uint32 -+ Info LoopInfo64 -+ _ [8]uint64 -+} - - type TIPCSocketAddr struct { - Ref uint32 -@@ -3368,7 +3463,7 @@ const ( - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 -- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -+ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 - ) - - type FsverityDigest struct { -@@ -4152,7 +4247,8 @@ const ( - ) - - type LandlockRulesetAttr struct { -- Access_fs uint64 -+ Access_fs uint64 -+ Access_net uint64 - } - - type LandlockPathBeneathAttr struct { -@@ -5103,7 +5199,7 @@ const ( - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf -- NL80211_FREQUENCY_ATTR_MAX = 0x1b -+ NL80211_FREQUENCY_ATTR_MAX = 0x1c - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc -@@ -5516,7 +5612,7 @@ const ( - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 -- NL80211_REG_RULE_ATTR_MAX = 0x7 -+ NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 -@@ -5883,3 +5979,15 @@ type SchedAttr struct { - } - - const SizeofSchedAttr = 0x38 -+ -+type Cachestat_t struct { -+ Cache uint64 -+ Dirty uint64 -+ Writeback uint64 -+ Evicted uint64 -+ Recently_evicted uint64 -+} -+type CachestatRange struct { -+ Off uint64 -+ Len uint64 -+} -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -index 6d8acbcc..438a30af 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && linux --// +build 386,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -index 59293c68..adceca35 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && linux --// +build amd64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -index 40cfa38c..eeaa00a3 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && linux --// +build arm,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -index 055bc421..6739aa91 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && linux --// +build arm64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -index f28affbc..9920ef63 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build loong64 && linux --// +build loong64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -index 9d71e7cc..2923b799 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips && linux --// +build mips,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -index fd5ccd33..ce2750ee 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && linux --// +build mips64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -index 7704de77..3038811d 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64le && linux --// +build mips64le,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -index df00b875..efc6fed1 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mipsle && linux --// +build mipsle,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -index 0942840d..9a654b75 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc && linux --// +build ppc,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -index 03487439..40d358e3 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && linux --// +build ppc64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -index bad06704..148c6ceb 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64le && linux --// +build ppc64le,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -index 1b4c97c3..72ba8154 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && linux --// +build riscv64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -index aa268d02..71e76550 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build s390x && linux --// +build s390x,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -index 444045b6..4abbdb9d 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build sparc64 && linux --// +build sparc64,linux - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go -index 9bc4c8f9..f22e7947 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && netbsd --// +build 386,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go -index bb05f655..066a7d83 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && netbsd --// +build amd64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go -index db40e3a1..439548ec 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && netbsd --// +build arm,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go -index 11121151..16085d3b 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && netbsd --// +build arm64,netbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go -index 26eba23b..afd13a3a 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build 386 && openbsd --// +build 386,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go -index 5a547988..5d97f1f9 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && openbsd --// +build amd64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go -index be58c4e1..34871cdc 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm && openbsd --// +build arm,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go -index 52338266..5911bceb 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build arm64 && openbsd --// +build arm64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go -index 605cfdb1..e4f24f3b 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build mips64 && openbsd --// +build mips64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go -index d6724c01..ca50a793 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build ppc64 && openbsd --// +build ppc64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go -index ddfd27a4..d7d7f790 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build riscv64 && openbsd --// +build riscv64,openbsd - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go -index 0400747c..14160576 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go -@@ -2,7 +2,6 @@ - // Code generated by the command above; see README.md. DO NOT EDIT. - - //go:build amd64 && solaris --// +build amd64,solaris - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go -index aec1efcb..54f31be6 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build zos && s390x --// +build zos,s390x - - // Hand edited based on ztypes_linux_s390x.go - // TODO: auto-generate. -diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go -index a20ebea6..ce2d713d 100644 ---- a/vendor/golang.org/x/sys/windows/aliases.go -+++ b/vendor/golang.org/x/sys/windows/aliases.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows && go1.9 --// +build windows,go1.9 - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/empty.s b/vendor/golang.org/x/sys/windows/empty.s -index fdbbbcd3..ba64caca 100644 ---- a/vendor/golang.org/x/sys/windows/empty.s -+++ b/vendor/golang.org/x/sys/windows/empty.s -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.12 --// +build !go1.12 - - // This file is here to allow bodyless functions with go:linkname for Go 1.11 - // and earlier (see https://golang.org/issue/23311). -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index b8ad1925..d4577a42 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := unsafe.Pointer(block) -- for { -- entry := UTF16PtrToString((*uint16)(blockp)) -- if len(entry) == 0 { -- break -+ size := unsafe.Sizeof(*block) -+ for *block != 0 { -+ // find NUL terminator -+ end := unsafe.Pointer(block) -+ for *(*uint16)(end) != 0 { -+ end = unsafe.Add(end, size) - } -- env = append(env, entry) -- blockp = unsafe.Add(blockp, 2*(len(entry)+1)) -+ -+ entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) -+ env = append(env, UTF16ToString(entry)) -+ block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go -index 2cd60645..6c366955 100644 ---- a/vendor/golang.org/x/sys/windows/eventlog.go -+++ b/vendor/golang.org/x/sys/windows/eventlog.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go -index 8563f79c..dbcdb090 100644 ---- a/vendor/golang.org/x/sys/windows/mksyscall.go -+++ b/vendor/golang.org/x/sys/windows/mksyscall.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build generate --// +build generate - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go -index 9196b089..0f1bdc38 100644 ---- a/vendor/golang.org/x/sys/windows/race.go -+++ b/vendor/golang.org/x/sys/windows/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows && race --// +build windows,race - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go -index 7bae4817..0c78da78 100644 ---- a/vendor/golang.org/x/sys/windows/race0.go -+++ b/vendor/golang.org/x/sys/windows/race0.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows && !race --// +build windows,!race - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/registry/key.go b/vendor/golang.org/x/sys/windows/registry/key.go -index 6c8d97b6..fd863244 100644 ---- a/vendor/golang.org/x/sys/windows/registry/key.go -+++ b/vendor/golang.org/x/sys/windows/registry/key.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - // Package registry provides access to the Windows registry. - // -diff --git a/vendor/golang.org/x/sys/windows/registry/mksyscall.go b/vendor/golang.org/x/sys/windows/registry/mksyscall.go -index ee74927d..bbf86ccf 100644 ---- a/vendor/golang.org/x/sys/windows/registry/mksyscall.go -+++ b/vendor/golang.org/x/sys/windows/registry/mksyscall.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build generate --// +build generate - - package registry - -diff --git a/vendor/golang.org/x/sys/windows/registry/syscall.go b/vendor/golang.org/x/sys/windows/registry/syscall.go -index 41733512..f533091c 100644 ---- a/vendor/golang.org/x/sys/windows/registry/syscall.go -+++ b/vendor/golang.org/x/sys/windows/registry/syscall.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - package registry - -diff --git a/vendor/golang.org/x/sys/windows/registry/value.go b/vendor/golang.org/x/sys/windows/registry/value.go -index 2789f6f1..74db26b9 100644 ---- a/vendor/golang.org/x/sys/windows/registry/value.go -+++ b/vendor/golang.org/x/sys/windows/registry/value.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - package registry - -diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go -index c44a1b96..a9dc6308 100644 ---- a/vendor/golang.org/x/sys/windows/service.go -+++ b/vendor/golang.org/x/sys/windows/service.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go -index 4fc01434..6a4f9ce6 100644 ---- a/vendor/golang.org/x/sys/windows/str.go -+++ b/vendor/golang.org/x/sys/windows/str.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - package windows - -diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go -index 8732cdb9..e85ed6b9 100644 ---- a/vendor/golang.org/x/sys/windows/syscall.go -+++ b/vendor/golang.org/x/sys/windows/syscall.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build windows --// +build windows - - // Package windows contains an interface to the low-level operating system - // primitives. OS details vary depending on the underlying system, and -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 35cfc57c..6395a031 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string { - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } -- -- return string(utf16.Decode(unsafe.Slice(p, n))) -+ return UTF16ToString(unsafe.Slice(p, n)) - } - - func Getpagesize() int { return 4096 } -@@ -155,6 +154,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetModuleFileName(module Handle, filename *uint16, size uint32) (n uint32, err error) = kernel32.GetModuleFileNameW - //sys GetModuleHandleEx(flags uint32, moduleName *uint16, module *Handle) (err error) = kernel32.GetModuleHandleExW - //sys SetDefaultDllDirectories(directoryFlags uint32) (err error) -+//sys AddDllDirectory(path *uint16) (cookie uintptr, err error) = kernel32.AddDllDirectory -+//sys RemoveDllDirectory(cookie uintptr) (err error) = kernel32.RemoveDllDirectory - //sys SetDllDirectory(path string) (err error) = kernel32.SetDllDirectoryW - //sys GetVersion() (ver uint32, err error) - //sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW -@@ -192,6 +193,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW - //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW - //sys SetEndOfFile(handle Handle) (err error) -+//sys SetFileValidData(handle Handle, validDataLength int64) (err error) - //sys GetSystemTimeAsFileTime(time *Filetime) - //sys GetSystemTimePreciseAsFileTime(time *Filetime) - //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -@@ -233,6 +235,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys CreateEnvironmentBlock(block **uint16, token Token, inheritExisting bool) (err error) = userenv.CreateEnvironmentBlock - //sys DestroyEnvironmentBlock(block *uint16) (err error) = userenv.DestroyEnvironmentBlock - //sys getTickCount64() (ms uint64) = kernel32.GetTickCount64 -+//sys GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) - //sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) - //sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW - //sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW -@@ -969,7 +972,8 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { - if n > 0 { - sl += int32(n) + 1 - } -- if sa.raw.Path[0] == '@' { -+ if sa.raw.Path[0] == '@' || (sa.raw.Path[0] == 0 && sl > 3) { -+ // Check sl > 3 so we don't change unnamed socket behavior. - sa.raw.Path[0] = 0 - // Don't count trailing NUL for abstract address. - sl-- -diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go -index b88dc7c8..359780f6 100644 ---- a/vendor/golang.org/x/sys/windows/types_windows.go -+++ b/vendor/golang.org/x/sys/windows/types_windows.go -@@ -1094,7 +1094,33 @@ const ( - - SOMAXCONN = 0x7fffffff - -- TCP_NODELAY = 1 -+ TCP_NODELAY = 1 -+ TCP_EXPEDITED_1122 = 2 -+ TCP_KEEPALIVE = 3 -+ TCP_MAXSEG = 4 -+ TCP_MAXRT = 5 -+ TCP_STDURG = 6 -+ TCP_NOURG = 7 -+ TCP_ATMARK = 8 -+ TCP_NOSYNRETRIES = 9 -+ TCP_TIMESTAMPS = 10 -+ TCP_OFFLOAD_PREFERENCE = 11 -+ TCP_CONGESTION_ALGORITHM = 12 -+ TCP_DELAY_FIN_ACK = 13 -+ TCP_MAXRTMS = 14 -+ TCP_FASTOPEN = 15 -+ TCP_KEEPCNT = 16 -+ TCP_KEEPIDLE = TCP_KEEPALIVE -+ TCP_KEEPINTVL = 17 -+ TCP_FAIL_CONNECT_ON_ICMP_ERROR = 18 -+ TCP_ICMP_ERROR_INFO = 19 -+ -+ UDP_NOCHECKSUM = 1 -+ UDP_SEND_MSG_SIZE = 2 -+ UDP_RECV_MAX_COALESCED_SIZE = 3 -+ UDP_CHECKSUM_COVERAGE = 20 -+ -+ UDP_COALESCED_INFO = 3 - - SHUT_RD = 0 - SHUT_WR = 1 -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 8b1688de..e8791c82 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -184,6 +184,7 @@ var ( - procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") - procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") - procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") -+ procAddDllDirectory = modkernel32.NewProc("AddDllDirectory") - procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") - procCancelIo = modkernel32.NewProc("CancelIo") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") -@@ -253,6 +254,7 @@ var ( - procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") - procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") - procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") -+ procGetFileTime = modkernel32.NewProc("GetFileTime") - procGetFileType = modkernel32.NewProc("GetFileType") - procGetFinalPathNameByHandleW = modkernel32.NewProc("GetFinalPathNameByHandleW") - procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") -@@ -329,6 +331,7 @@ var ( - procReadProcessMemory = modkernel32.NewProc("ReadProcessMemory") - procReleaseMutex = modkernel32.NewProc("ReleaseMutex") - procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") -+ procRemoveDllDirectory = modkernel32.NewProc("RemoveDllDirectory") - procResetEvent = modkernel32.NewProc("ResetEvent") - procResizePseudoConsole = modkernel32.NewProc("ResizePseudoConsole") - procResumeThread = modkernel32.NewProc("ResumeThread") -@@ -339,6 +342,7 @@ var ( - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") -+ procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") -@@ -1604,6 +1608,15 @@ func GetIfEntry(pIfRow *MibIfRow) (errcode error) { - return - } - -+func AddDllDirectory(path *uint16) (cookie uintptr, err error) { -+ r0, _, e1 := syscall.Syscall(procAddDllDirectory.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) -+ cookie = uintptr(r0) -+ if cookie == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func AssignProcessToJobObject(job Handle, process Handle) (err error) { - r1, _, e1 := syscall.Syscall(procAssignProcessToJobObject.Addr(), 2, uintptr(job), uintptr(process), 0) - if r1 == 0 { -@@ -2185,6 +2198,14 @@ func GetFileInformationByHandleEx(handle Handle, class uint32, outBuffer *byte, - return - } - -+func GetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { -+ r1, _, e1 := syscall.Syscall6(procGetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func GetFileType(filehandle Handle) (n uint32, err error) { - r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) - n = uint32(r0) -@@ -2870,6 +2891,14 @@ func RemoveDirectory(path *uint16) (err error) { - return - } - -+func RemoveDllDirectory(cookie uintptr) (err error) { -+ r1, _, e1 := syscall.Syscall(procRemoveDllDirectory.Addr(), 1, uintptr(cookie), 0, 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func ResetEvent(event Handle) (err error) { - r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) - if r1 == 0 { -@@ -2960,6 +2989,14 @@ func SetEndOfFile(handle Handle) (err error) { - return - } - -+func SetFileValidData(handle Handle, validDataLength int64) (err error) { -+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 74297c46..850e2714 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -191,8 +191,8 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.11.0 - ## explicit; go 1.17 - golang.org/x/mod/semver --# golang.org/x/net v0.17.0 --## explicit; go 1.17 -+# golang.org/x/net v0.23.0 -+## explicit; go 1.18 - golang.org/x/net/bpf - golang.org/x/net/context - golang.org/x/net/html -@@ -201,14 +201,14 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.13.0 --## explicit; go 1.17 -+# golang.org/x/sys v0.18.0 -+## explicit; go 1.18 - golang.org/x/sys/execabs - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.13.0 --## explicit; go 1.17 -+# golang.org/x/text v0.14.0 -+## explicit; go 1.18 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap - golang.org/x/text/encoding/htmlindex --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-29/GOLANG_VERSION b/projects/containernetworking/plugins/1-29/GOLANG_VERSION index d2ab029d32..71f7f51df9 100644 --- a/projects/containernetworking/plugins/1-29/GOLANG_VERSION +++ b/projects/containernetworking/plugins/1-29/GOLANG_VERSION @@ -1 +1 @@ -1.21 +1.22 diff --git a/projects/containernetworking/plugins/1-29/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch b/projects/containernetworking/plugins/1-29/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch deleted file mode 100644 index f859b72213..0000000000 --- a/projects/containernetworking/plugins/1-29/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch +++ /dev/null @@ -1,3157 +0,0 @@ -From f1e82f30296d45c942b5a45e2a922a38740366e6 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 4 Jan 2024 13:54:52 -0800 -Subject: [PATCH] Bump containerd verison to v1.7.11 to fix GHSA-7ww5-4wqc-m92c - -Signed-off-by: Sajia Zafreen ---- - go.mod | 10 +- - go.sum | 22 +- - vendor/github.com/sirupsen/logrus/README.md | 8 +- - vendor/github.com/sirupsen/logrus/writer.go | 34 +- - .../genproto/{ => googleapis/rpc}/LICENSE | 0 - .../grpc/attributes/attributes.go | 59 +- - .../grpc/grpclog/component.go | 40 +- - .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- - .../google.golang.org/grpc/grpclog/logger.go | 30 +- - .../grpc/grpclog/loggerv2.go | 56 +- - .../grpc/internal/credentials/credentials.go | 8 +- - .../grpc/internal/grpclog/grpclog.go | 40 +- - .../grpc/internal/grpclog/prefixLogger.go | 8 +- - .../grpc/internal/internal.go | 45 +- - .../grpc/internal/status/status.go | 8 +- - vendor/google.golang.org/grpc/resolver/map.go | 10 +- - .../grpc/resolver/resolver.go | 84 +- - .../google.golang.org/grpc/status/status.go | 14 +- - .../protobuf/encoding/prototext/encode.go | 14 +- - .../protobuf/internal/encoding/text/encode.go | 10 +- - .../protobuf/internal/genid/descriptor_gen.go | 48 + - .../protobuf/internal/genid/type_gen.go | 6 + - .../protobuf/internal/order/order.go | 2 +- - .../protobuf/internal/version/version.go | 2 +- - .../google.golang.org/protobuf/proto/size.go | 10 +- - .../reflect/protoreflect/source_gen.go | 27 + - .../types/descriptorpb/descriptor.pb.go | 1011 +++++++++++------ - .../protobuf/types/known/anypb/any.pb.go | 70 +- - .../types/known/timestamppb/timestamp.pb.go | 2 +- - vendor/modules.txt | 14 +- - 30 files changed, 1057 insertions(+), 665 deletions(-) - rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) - -diff --git a/go.mod b/go.mod -index 11944478..5be57166 100644 ---- a/go.mod -+++ b/go.mod -@@ -26,7 +26,7 @@ require ( - require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -- github.com/containerd/containerd v1.6.23 // indirect -+ github.com/containerd/containerd v1.7.11 // indirect - github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect -@@ -36,15 +36,15 @@ require ( - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -- github.com/sirupsen/logrus v1.9.0 // indirect -+ github.com/sirupsen/logrus v1.9.3 // indirect - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect -- google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -- google.golang.org/grpc v1.56.3 // indirect -- google.golang.org/protobuf v1.30.0 // indirect -+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect -+ google.golang.org/grpc v1.58.3 // indirect -+ google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index d67f299c..128e5c25 100644 ---- a/go.sum -+++ b/go.sum -@@ -16,8 +16,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= --github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= -+github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= -+github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= - github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= -@@ -113,8 +113,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= --github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= - 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= -@@ -124,8 +124,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - 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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -@@ -220,15 +220,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 - 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-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= - 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.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= --google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -+google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -+google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= - 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= -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= --google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md -index b042c896..d1d4a85f 100644 ---- a/vendor/github.com/sirupsen/logrus/README.md -+++ b/vendor/github.com/sirupsen/logrus/README.md -@@ -9,7 +9,7 @@ the last thing you want from your Logging library (again...). - - This does not mean Logrus is dead. Logrus will continue to be maintained for - security, (backwards compatible) bug fixes, and performance (where we are --limited by the interface). -+limited by the interface). - - I believe Logrus' biggest contribution is to have played a part in today's - widespread use of structured logging in Golang. There doesn't seem to be a -@@ -43,7 +43,7 @@ plain text): - With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash - or Splunk: - --```json -+```text - {"animal":"walrus","level":"info","msg":"A group of walrus emerges from the - ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} - -@@ -99,7 +99,7 @@ time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcr - ``` - Note that this does add measurable overhead - the cost will depend on the version of Go, but is - between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your --environment via benchmarks: -+environment via benchmarks: - ``` - go test -bench=.*CallerTracing - ``` -@@ -317,6 +317,8 @@ log.SetLevel(log.InfoLevel) - It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose - environment if your application has that. - -+Note: If you want different log levels for global (`log.SetLevel(...)`) and syslog logging, please check the [syslog hook README](hooks/syslog/README.md#different-log-levels-for-local-and-remote-logging). -+ - #### Entries - - Besides the fields added with `WithField` or `WithFields` some fields are -diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go -index 72e8e3a1..074fd4b8 100644 ---- a/vendor/github.com/sirupsen/logrus/writer.go -+++ b/vendor/github.com/sirupsen/logrus/writer.go -@@ -4,6 +4,7 @@ import ( - "bufio" - "io" - "runtime" -+ "strings" - ) - - // Writer at INFO level. See WriterLevel for details. -@@ -20,15 +21,18 @@ func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { - return NewEntry(logger).WriterLevel(level) - } - -+// Writer returns an io.Writer that writes to the logger at the info log level - func (entry *Entry) Writer() *io.PipeWriter { - return entry.WriterLevel(InfoLevel) - } - -+// WriterLevel returns an io.Writer that writes to the logger at the given log level - func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - reader, writer := io.Pipe() - - var printFunc func(args ...interface{}) - -+ // Determine which log function to use based on the specified log level - switch level { - case TraceLevel: - printFunc = entry.Trace -@@ -48,23 +52,51 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - printFunc = entry.Print - } - -+ // Start a new goroutine to scan the input and write it to the logger using the specified print function. -+ // It splits the input into chunks of up to 64KB to avoid buffer overflows. - go entry.writerScanner(reader, printFunc) -+ -+ // Set a finalizer function to close the writer when it is garbage collected - runtime.SetFinalizer(writer, writerFinalizer) - - return writer - } - -+// writerScanner scans the input from the reader and writes it to the logger - func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) { - scanner := bufio.NewScanner(reader) -+ -+ // Set the buffer size to the maximum token size to avoid buffer overflows -+ scanner.Buffer(make([]byte, bufio.MaxScanTokenSize), bufio.MaxScanTokenSize) -+ -+ // Define a split function to split the input into chunks of up to 64KB -+ chunkSize := bufio.MaxScanTokenSize // 64KB -+ splitFunc := func(data []byte, atEOF bool) (int, []byte, error) { -+ if len(data) >= chunkSize { -+ return chunkSize, data[:chunkSize], nil -+ } -+ -+ return bufio.ScanLines(data, atEOF) -+ } -+ -+ // Use the custom split function to split the input -+ scanner.Split(splitFunc) -+ -+ // Scan the input and write it to the logger using the specified print function - for scanner.Scan() { -- printFunc(scanner.Text()) -+ printFunc(strings.TrimRight(scanner.Text(), "\r\n")) - } -+ -+ // If there was an error while scanning the input, log an error - if err := scanner.Err(); err != nil { - entry.Errorf("Error while reading from Writer: %s", err) - } -+ -+ // Close the reader when we are done - reader.Close() - } - -+// WriterFinalizer is a finalizer function that closes then given writer when it is garbage collected - func writerFinalizer(writer *io.PipeWriter) { - writer.Close() - } -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -similarity index 100% -rename from vendor/google.golang.org/genproto/LICENSE -rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -index 3efca459..712fef4d 100644 ---- a/vendor/google.golang.org/grpc/attributes/attributes.go -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -34,26 +34,26 @@ import ( - // key/value pairs. Keys must be hashable, and users should define their own - // types for keys. Values should not be modified after they are added to an - // Attributes or if they were received from one. If values implement 'Equal(o --// interface{}) bool', it will be called by (*Attributes).Equal to determine --// whether two values with the same key should be considered equal. -+// any) bool', it will be called by (*Attributes).Equal to determine whether -+// two values with the same key should be considered equal. - type Attributes struct { -- m map[interface{}]interface{} -+ m map[any]any - } - - // New returns a new Attributes containing the key/value pair. --func New(key, value interface{}) *Attributes { -- return &Attributes{m: map[interface{}]interface{}{key: value}} -+func New(key, value any) *Attributes { -+ return &Attributes{m: map[any]any{key: value}} - } - - // WithValue returns a new Attributes containing the previous keys and values - // and the new key/value pair. If the same key appears multiple times, the - // last value overwrites all previous values for that key. To remove an - // existing key, use a nil value. value should not be modified later. --func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) - } -- n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } -@@ -63,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { - - // Value returns the value associated with these attributes for key, or nil if - // no value is associated with key. The returned value should not be modified. --func (a *Attributes) Value(key interface{}) interface{} { -+func (a *Attributes) Value(key any) any { - if a == nil { - return nil - } - return a.m[key] - } - --// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) --// bool' is implemented for a value in the attributes, it is called to --// determine if the value matches the one stored in the other attributes. If --// Equal is not implemented, standard equality is used to determine if the two --// values are equal. Note that some types (e.g. maps) aren't comparable by --// default, so they must be wrapped in a struct, or in an alias type, with Equal --// defined. -+// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is -+// implemented for a value in the attributes, it is called to determine if the -+// value matches the one stored in the other attributes. If Equal is not -+// implemented, standard equality is used to determine if the two values are -+// equal. Note that some types (e.g. maps) aren't comparable by default, so -+// they must be wrapped in a struct, or in an alias type, with Equal defined. - func (a *Attributes) Equal(o *Attributes) bool { - if a == nil && o == nil { - return true -@@ -93,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { - // o missing element of a - return false - } -- if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if eq, ok := v.(interface{ Equal(o any) bool }); ok { - if !eq.Equal(ov) { - return false - } -@@ -112,19 +111,31 @@ func (a *Attributes) String() string { - sb.WriteString("{") - first := true - for k, v := range a.m { -- var key, val string -- if str, ok := k.(interface{ String() string }); ok { -- key = str.String() -- } -- if str, ok := v.(interface{ String() string }); ok { -- val = str.String() -- } - if !first { - sb.WriteString(", ") - } -- sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) - first = false - } - sb.WriteString("}") - return sb.String() - } -+ -+func str(x any) string { -+ if v, ok := x.(fmt.Stringer); ok { -+ return v.String() -+ } else if v, ok := x.(string); ok { -+ return v -+ } -+ return fmt.Sprintf("<%p>", x) -+} -+ -+// MarshalJSON helps implement the json.Marshaler interface, thereby rendering -+// the Attributes correctly when printing (via pretty.JSON) structs containing -+// Attributes as fields. -+// -+// Is it impossible to unmarshal attributes from a JSON representation and this -+// method is meant only for debugging purposes. -+func (a *Attributes) MarshalJSON() ([]byte, error) { -+ return []byte(a.String()), nil -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -index 8358dd6e..ac73c9ce 100644 ---- a/vendor/google.golang.org/grpc/grpclog/component.go -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -31,71 +31,71 @@ type componentData struct { - - var cache = map[string]*componentData{} - --func (c *componentData) InfoDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) InfoDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.InfoDepth(depth+1, args...) - } - --func (c *componentData) WarningDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) WarningDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.WarningDepth(depth+1, args...) - } - --func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) ErrorDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.ErrorDepth(depth+1, args...) - } - --func (c *componentData) FatalDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) FatalDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.FatalDepth(depth+1, args...) - } - --func (c *componentData) Info(args ...interface{}) { -+func (c *componentData) Info(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warning(args ...interface{}) { -+func (c *componentData) Warning(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Error(args ...interface{}) { -+func (c *componentData) Error(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatal(args ...interface{}) { -+func (c *componentData) Fatal(args ...any) { - c.FatalDepth(1, args...) - } - --func (c *componentData) Infof(format string, args ...interface{}) { -+func (c *componentData) Infof(format string, args ...any) { - c.InfoDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Warningf(format string, args ...interface{}) { -+func (c *componentData) Warningf(format string, args ...any) { - c.WarningDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Errorf(format string, args ...interface{}) { -+func (c *componentData) Errorf(format string, args ...any) { - c.ErrorDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Fatalf(format string, args ...interface{}) { -+func (c *componentData) Fatalf(format string, args ...any) { - c.FatalDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Infoln(args ...interface{}) { -+func (c *componentData) Infoln(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warningln(args ...interface{}) { -+func (c *componentData) Warningln(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Errorln(args ...interface{}) { -+func (c *componentData) Errorln(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatalln(args ...interface{}) { -+func (c *componentData) Fatalln(args ...any) { - c.FatalDepth(1, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -index c8bb2be3..16928c9c 100644 ---- a/vendor/google.golang.org/grpc/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -42,53 +42,53 @@ func V(l int) bool { - } - - // Info logs to the INFO log. --func Info(args ...interface{}) { -+func Info(args ...any) { - grpclog.Logger.Info(args...) - } - - // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. --func Infof(format string, args ...interface{}) { -+func Infof(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. --func Infoln(args ...interface{}) { -+func Infoln(args ...any) { - grpclog.Logger.Infoln(args...) - } - - // Warning logs to the WARNING log. --func Warning(args ...interface{}) { -+func Warning(args ...any) { - grpclog.Logger.Warning(args...) - } - - // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. --func Warningf(format string, args ...interface{}) { -+func Warningf(format string, args ...any) { - grpclog.Logger.Warningf(format, args...) - } - - // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. --func Warningln(args ...interface{}) { -+func Warningln(args ...any) { - grpclog.Logger.Warningln(args...) - } - - // Error logs to the ERROR log. --func Error(args ...interface{}) { -+func Error(args ...any) { - grpclog.Logger.Error(args...) - } - - // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. --func Errorf(format string, args ...interface{}) { -+func Errorf(format string, args ...any) { - grpclog.Logger.Errorf(format, args...) - } - - // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. --func Errorln(args ...interface{}) { -+func Errorln(args ...any) { - grpclog.Logger.Errorln(args...) - } - - // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. - // It calls os.Exit() with exit code 1. --func Fatal(args ...interface{}) { -+func Fatal(args ...any) { - grpclog.Logger.Fatal(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { - - // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. - // It calls os.Exit() with exit code 1. --func Fatalf(format string, args ...interface{}) { -+func Fatalf(format string, args ...any) { - grpclog.Logger.Fatalf(format, args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { - - // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. - // It calle os.Exit()) with exit code 1. --func Fatalln(args ...interface{}) { -+func Fatalln(args ...any) { - grpclog.Logger.Fatalln(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { - // Print prints to the logger. Arguments are handled in the manner of fmt.Print. - // - // Deprecated: use Info. --func Print(args ...interface{}) { -+func Print(args ...any) { - grpclog.Logger.Info(args...) - } - - // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. - // - // Deprecated: use Infof. --func Printf(format string, args ...interface{}) { -+func Printf(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Println prints to the logger. Arguments are handled in the manner of fmt.Println. - // - // Deprecated: use Infoln. --func Println(args ...interface{}) { -+func Println(args ...any) { - grpclog.Logger.Infoln(args...) - } -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -index ef06a482..b1674d82 100644 ---- a/vendor/google.golang.org/grpc/grpclog/logger.go -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" - // - // Deprecated: use LoggerV2. - type Logger interface { -- Fatal(args ...interface{}) -- Fatalf(format string, args ...interface{}) -- Fatalln(args ...interface{}) -- Print(args ...interface{}) -- Printf(format string, args ...interface{}) -- Println(args ...interface{}) -+ Fatal(args ...any) -+ Fatalf(format string, args ...any) -+ Fatalln(args ...any) -+ Print(args ...any) -+ Printf(format string, args ...any) -+ Println(args ...any) - } - - // SetLogger sets the logger that is used in grpc. Call only from -@@ -45,39 +45,39 @@ type loggerWrapper struct { - Logger - } - --func (g *loggerWrapper) Info(args ...interface{}) { -+func (g *loggerWrapper) Info(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Infoln(args ...interface{}) { -+func (g *loggerWrapper) Infoln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+func (g *loggerWrapper) Infof(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Warning(args ...interface{}) { -+func (g *loggerWrapper) Warning(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Warningln(args ...interface{}) { -+func (g *loggerWrapper) Warningln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+func (g *loggerWrapper) Warningf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Error(args ...interface{}) { -+func (g *loggerWrapper) Error(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Errorln(args ...interface{}) { -+func (g *loggerWrapper) Errorln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+func (g *loggerWrapper) Errorf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -index 5de66e40..ecfd36d7 100644 ---- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -33,35 +33,35 @@ import ( - // LoggerV2 does underlying logging work for grpclog. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { - g.m[severity].Output(2, string(b)) - } - --func (g *loggerT) Info(args ...interface{}) { -+func (g *loggerT) Info(args ...any) { - g.output(infoLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Infoln(args ...interface{}) { -+func (g *loggerT) Infoln(args ...any) { - g.output(infoLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Infof(format string, args ...interface{}) { -+func (g *loggerT) Infof(format string, args ...any) { - g.output(infoLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Warning(args ...interface{}) { -+func (g *loggerT) Warning(args ...any) { - g.output(warningLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Warningln(args ...interface{}) { -+func (g *loggerT) Warningln(args ...any) { - g.output(warningLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Warningf(format string, args ...interface{}) { -+func (g *loggerT) Warningf(format string, args ...any) { - g.output(warningLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Error(args ...interface{}) { -+func (g *loggerT) Error(args ...any) { - g.output(errorLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Errorln(args ...interface{}) { -+func (g *loggerT) Errorln(args ...any) { - g.output(errorLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Errorf(format string, args ...interface{}) { -+func (g *loggerT) Errorf(format string, args ...any) { - g.output(errorLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Fatal(args ...interface{}) { -+func (g *loggerT) Fatal(args ...any) { - g.output(fatalLog, fmt.Sprint(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalln(args ...interface{}) { -+func (g *loggerT) Fatalln(args ...any) { - g.output(fatalLog, fmt.Sprintln(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalf(format string, args ...interface{}) { -+func (g *loggerT) Fatalf(format string, args ...any) { - g.output(fatalLog, fmt.Sprintf(format, args...)) - os.Exit(1) - } -@@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { - type DepthLoggerV2 interface { - LoggerV2 - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -index 32c9b590..9deee7f6 100644 ---- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -25,12 +25,12 @@ import ( - type requestInfoKey struct{} - - // NewRequestInfoContext creates a context with ri. --func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+func NewRequestInfoContext(ctx context.Context, ri any) context.Context { - return context.WithValue(ctx, requestInfoKey{}, ri) - } - - // RequestInfoFromContext extracts the RequestInfo from ctx. --func RequestInfoFromContext(ctx context.Context) interface{} { -+func RequestInfoFromContext(ctx context.Context) any { - return ctx.Value(requestInfoKey{}) - } - -@@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { - type clientHandshakeInfoKey struct{} - - // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. --func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+func ClientHandshakeInfoFromContext(ctx context.Context) any { - return ctx.Value(clientHandshakeInfoKey{}) - } - - // NewClientHandshakeInfoContext creates a context with chi. --func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { - return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -index b68e26a3..bfc45102 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -30,7 +30,7 @@ var Logger LoggerV2 - var DepthLogger DepthLoggerV2 - - // InfoDepth logs to the INFO log at the specified depth. --func InfoDepth(depth int, args ...interface{}) { -+func InfoDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.InfoDepth(depth, args...) - } else { -@@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { - } - - // WarningDepth logs to the WARNING log at the specified depth. --func WarningDepth(depth int, args ...interface{}) { -+func WarningDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.WarningDepth(depth, args...) - } else { -@@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { - } - - // ErrorDepth logs to the ERROR log at the specified depth. --func ErrorDepth(depth int, args ...interface{}) { -+func ErrorDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.ErrorDepth(depth, args...) - } else { -@@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { - } - - // FatalDepth logs to the FATAL log at the specified depth. --func FatalDepth(depth int, args ...interface{}) { -+func FatalDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.FatalDepth(depth, args...) - } else { -@@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { - // is defined here to avoid a circular dependency. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -116,11 +116,11 @@ type LoggerV2 interface { - // later release. - type DepthLoggerV2 interface { - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -index 02224b42..faa998de 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -31,7 +31,7 @@ type PrefixLogger struct { - } - - // Infof does info logging. --func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+func (pl *PrefixLogger) Infof(format string, args ...any) { - if pl != nil { - // Handle nil, so the tests can pass in a nil logger. - format = pl.prefix + format -@@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { - } - - // Warningf does warning logging. --func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Warningf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -@@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { - } - - // Errorf does error logging. --func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Errorf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -@@ -62,7 +62,7 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { - } - - // Debugf does info logging at verbose level 2. --func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Debugf(format string, args ...any) { - // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe - // rewrite PrefixLogger a little to ensure that we don't use the global - // `Logger` here, and instead use the `logger` field. -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -index 42ff39c8..c8a8c76d 100644 ---- a/vendor/google.golang.org/grpc/internal/internal.go -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -30,7 +30,7 @@ import ( - - var ( - // WithHealthCheckFunc is set by dialoptions.go -- WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ WithHealthCheckFunc any // func (HealthChecker) DialOption - // HealthCheckFunc is used to provide client-side LB channel health checking - HealthCheckFunc HealthChecker - // BalancerUnregister is exported by package balancer to unregister a balancer. -@@ -38,8 +38,12 @@ var ( - // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by - // default, but tests may wish to set it lower for convenience. - KeepaliveMinPingTime = 10 * time.Second -+ // KeepaliveMinServerPingTime is the minimum ping interval for servers. -+ // This must be 1s by default, but tests may wish to set it lower for -+ // convenience. -+ KeepaliveMinServerPingTime = time.Second - // ParseServiceConfig parses a JSON representation of the service config. -- ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ ParseServiceConfig any // func(string) *serviceconfig.ParseResult - // EqualServiceConfigForTesting is for testing service config generation and - // parsing. Both a and b should be returned by ParseServiceConfig. - // This function compares the config without rawJSON stripped, in case the -@@ -49,33 +53,33 @@ var ( - // given name. This is set by package certprovider for use from xDS - // bootstrap code while parsing certificate provider configs in the - // bootstrap file. -- GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ GetCertificateProviderBuilder any // func(string) certprovider.Builder - // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo - // stored in the passed in attributes. This is set by - // credentials/xds/xds.go. -- GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo - // GetServerCredentials returns the transport credentials configured on a - // gRPC server. An xDS-enabled server needs to know what type of credentials - // is configured on the underlying gRPC server. This is set by server.go. -- GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials - // CanonicalString returns the canonical string of the code defined here: - // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- CanonicalString interface{} // func (codes.Code) string -+ CanonicalString any // func (codes.Code) string - // DrainServerTransports initiates a graceful close of existing connections - // on a gRPC server accepted on the provided listener address. An - // xDS-enabled server invokes this method on a grpc.Server when a particular - // listener moves to "not-serving" mode. -- DrainServerTransports interface{} // func(*grpc.Server, string) -+ DrainServerTransports any // func(*grpc.Server, string) - // AddGlobalServerOptions adds an array of ServerOption that will be - // effective globally for newly created servers. The priority will be: 1. - // user-provided; 2. this method; 3. default values. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ AddGlobalServerOptions any // func(opt ...ServerOption) - // ClearGlobalServerOptions clears the array of extra ServerOption. This - // method is useful in testing and benchmarking. - // -@@ -88,14 +92,14 @@ var ( - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ AddGlobalDialOptions any // func(opt ...DialOption) - // DisableGlobalDialOptions returns a DialOption that prevents the - // ClientConn from applying the global DialOptions (set via - // AddGlobalDialOptions). - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ DisableGlobalDialOptions any // func() grpc.DialOption - // ClearGlobalDialOptions clears the array of extra DialOption. This - // method is useful in testing and benchmarking. - // -@@ -104,23 +108,26 @@ var ( - ClearGlobalDialOptions func() - // JoinDialOptions combines the dial options passed as arguments into a - // single dial option. -- JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption - // JoinServerOptions combines the server options passed as arguments into a - // single server option. -- JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption - - // WithBinaryLogger returns a DialOption that specifies the binary logger - // for a ClientConn. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption - // BinaryLogger returns a ServerOption that can set the binary logger for a - // server. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ BinaryLogger any // func(binarylog.Logger) grpc.ServerOption -+ -+ // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn -+ SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) - - // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using - // the provided xds bootstrap config instead of the global configuration from -@@ -131,7 +138,7 @@ var ( - // - // This function should ONLY be used for testing and may not work with some - // other features, including the CSDS service. -- NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) - - // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster - // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -@@ -163,7 +170,11 @@ var ( - UnregisterRBACHTTPFilterForTesting func() - - // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -- ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+ ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) -+ -+ // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra -+ // metadata to RPCs. -+ GRPCResolverSchemeExtraMetadata string = "xds" - ) - - // HealthChecker defines the signature of the client-side LB channel health checking function. -@@ -174,7 +185,7 @@ var ( - // - // The health checking protocol is defined at: - // https://github.com/grpc/grpc/blob/master/doc/health-checking.md --type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error - - const ( - // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index b0ead4f5..4cf85cad 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Err(c, fmt.Sprintf(format, a...)) - } - -@@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { - - // Details returns a slice of details messages attached to the status. - // If a detail cannot be decoded, the error is returned in place of the detail. --func (s *Status) Details() []interface{} { -+func (s *Status) Details() []any { - if s == nil || s.s == nil { - return nil - } -- details := make([]interface{}, 0, len(s.s.Details)) -+ details := make([]any, 0, len(s.s.Details)) - for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -index efcb7f3e..804be887 100644 ---- a/vendor/google.golang.org/grpc/resolver/map.go -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -20,7 +20,7 @@ package resolver - - type addressMapEntry struct { - addr Address -- value interface{} -+ value any - } - - // AddressMap is a map of addresses to arbitrary values taking into account -@@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { - } - - // Get returns the value for the address in the map, if present. --func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+func (a *AddressMap) Get(addr Address) (value any, ok bool) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { - } - - // Set updates or adds the value to the address in the map. --func (a *AddressMap) Set(addr Address, value interface{}) { -+func (a *AddressMap) Set(addr Address, value any) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { - } - - // Values returns a slice of all current map values. --func (a *AddressMap) Values() []interface{} { -- ret := make([]interface{}, 0, a.Len()) -+func (a *AddressMap) Values() []any { -+ ret := make([]any, 0, a.Len()) - for _, entryList := range a.m { - for _, entry := range entryList { - ret = append(ret, entry.value) -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -index 353c10b6..11384e22 100644 ---- a/vendor/google.golang.org/grpc/resolver/resolver.go -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -77,25 +77,6 @@ func GetDefaultScheme() string { - return defaultScheme - } - --// AddressType indicates the address type returned by name resolution. --// --// Deprecated: use Attributes in Address instead. --type AddressType uint8 -- --const ( -- // Backend indicates the address is for a backend server. -- // -- // Deprecated: use Attributes in Address instead. -- Backend AddressType = iota -- // GRPCLB indicates the address is for a grpclb load balancer. -- // -- // Deprecated: to select the GRPCLB load balancing policy, use a service -- // config with a corresponding loadBalancingConfig. To supply balancer -- // addresses to the GRPCLB load balancing policy, set State.Attributes -- // using balancer/grpclb/state.Set. -- GRPCLB --) -- - // Address represents a server the client connects to. - // - // # Experimental -@@ -111,9 +92,6 @@ type Address struct { - // the address, instead of the hostname from the Dial target string. In most cases, - // this should not be set. - // -- // If Type is GRPCLB, ServerName should be the name of the remote load -- // balancer, not the name of the backend. -- // - // WARNING: ServerName must only be populated with trusted values. It - // is insecure to populate it with data from untrusted inputs since untrusted - // values could be used to bypass the authority checks performed by TLS. -@@ -126,27 +104,29 @@ type Address struct { - // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attributes do not affect SubConn - // creation, connection establishment, handshaking, etc. -- BalancerAttributes *attributes.Attributes -- -- // Type is the type of this address. - // -- // Deprecated: use Attributes instead. -- Type AddressType -+ // Deprecated: when an Address is inside an Endpoint, this field should not -+ // be used, and it will eventually be removed entirely. -+ BalancerAttributes *attributes.Attributes - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // - // Deprecated: use Attributes instead. -- Metadata interface{} -+ Metadata any - } - - // Equal returns whether a and o are identical. Metadata is compared directly, - // not with any recursive introspection. -+// -+// This method compares all fields of the address. When used to tell apart -+// addresses during subchannel creation or connection establishment, it might be -+// more appropriate for the caller to implement custom equality logic. - func (a Address) Equal(o Address) bool { - return a.Addr == o.Addr && a.ServerName == o.ServerName && - a.Attributes.Equal(o.Attributes) && - a.BalancerAttributes.Equal(o.BalancerAttributes) && -- a.Type == o.Type && a.Metadata == o.Metadata -+ a.Metadata == o.Metadata - } - - // String returns JSON formatted string representation of the address. -@@ -190,11 +170,37 @@ type BuildOptions struct { - Dialer func(context.Context, string) (net.Conn, error) - } - -+// An Endpoint is one network endpoint, or server, which may have multiple -+// addresses with which it can be accessed. -+type Endpoint struct { -+ // Addresses contains a list of addresses used to access this endpoint. -+ Addresses []Address -+ -+ // Attributes contains arbitrary data about this endpoint intended for -+ // consumption by the LB policy. -+ Attributes *attributes.Attributes -+} -+ - // State contains the current Resolver state relevant to the ClientConn. - type State struct { - // Addresses is the latest set of resolved addresses for the target. -+ // -+ // If a resolver sets Addresses but does not set Endpoints, one Endpoint -+ // will be created for each Address before the State is passed to the LB -+ // policy. The BalancerAttributes of each entry in Addresses will be set -+ // in Endpoints.Attributes, and be cleared in the Endpoint's Address's -+ // BalancerAttributes. -+ // -+ // Soon, Addresses will be deprecated and replaced fully by Endpoints. - Addresses []Address - -+ // Endpoints is the latest set of resolved endpoints for the target. -+ // -+ // If a resolver produces a State containing Endpoints but not Addresses, -+ // it must take care to ensure the LB policies it selects will support -+ // Endpoints. -+ Endpoints []Endpoint -+ - // ServiceConfig contains the result from parsing the latest service - // config. If it is nil, it indicates no service config is present or the - // resolver does not provide service configs. -@@ -254,20 +260,7 @@ type ClientConn interface { - // target does not contain a scheme or if the parsed scheme is not registered - // (i.e. no corresponding resolver available to resolve the endpoint), we will - // apply the default scheme, and will attempt to reparse it. --// --// Examples: --// --// - "dns://some_authority/foo.bar" --// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} --// - "foo.bar" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} --// - "unknown_scheme://authority/endpoint" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} - type Target struct { -- // Deprecated: use URL.Scheme instead. -- Scheme string -- // Deprecated: use URL.Host instead. -- Authority string - // URL contains the parsed dial target with an optional default scheme added - // to it if the original dial target contained no scheme or contained an - // unregistered scheme. Any query params specified in the original dial -@@ -321,10 +314,3 @@ type Resolver interface { - // Close closes the resolver. - Close() - } -- --// UnregisterForTesting removes the resolver builder with the given scheme from the --// resolver map. --// This function is for testing only. --func UnregisterForTesting(scheme string) { -- delete(m, scheme) --} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index bcf2e4d8..a93360ef 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Error(c, fmt.Sprintf(format, a...)) - } - -@@ -99,25 +99,27 @@ func FromError(err error) (s *Status, ok bool) { - } - type grpcstatus interface{ GRPCStatus() *Status } - if gs, ok := err.(grpcstatus); ok { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error has status nil, which maps to codes.OK. There - // is no sensible behavior for this, so we turn it into - // an error with codes.Unknown and discard the existing - // status. - return New(codes.Unknown, err.Error()), false - } -- return gs.GRPCStatus(), true -+ return grpcStatus, true - } - var gs grpcstatus - if errors.As(err, &gs) { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error wraps an error that has status nil, which maps - // to codes.OK. There is no sensible behavior for this, - // so we turn it into an error with codes.Unknown and - // discard the existing status. - return New(codes.Unknown, err.Error()), false - } -- p := gs.GRPCStatus().Proto() -+ p := grpcStatus.Proto() - p.Message = err.Error() - return status.FromProto(p), true - } -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index ebf6c652..722a7b41 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -- return o.marshal(m) -+ return o.marshal(nil, m) -+} -+ -+// MarshalAppend appends the textproto format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { -+ return o.marshal(b, m) - } - - // marshal is a centralized function that all marshal operations go through. - // For profiling purposes, avoid changing the name of this function or - // introducing other code paths for marshal that do not go through this. --func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { - var delims = [2]byte{'{', '}'} - - if o.Multiline && o.Indent == "" { -@@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - o.Resolver = protoregistry.GlobalTypes - } - -- internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) - if err != nil { - return nil, err - } -@@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - // Treat nil message interface as an empty message, - // in which case there is nothing to output. - if m == nil { -- return []byte{}, nil -+ return b, nil - } - - enc := encoder{internalEnc, o} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -index da289ccc..cf7aed77 100644 ---- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -53,8 +53,10 @@ type encoderState struct { - // If outputASCII is true, strings will be serialized in such a way that - // multi-byte UTF-8 sequences are escaped. This property ensures that the - // overall output is ASCII (as opposed to UTF-8). --func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -- e := &Encoder{} -+func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{ -+ encoderState: encoderState{out: buf}, -+ } - if len(indent) > 0 { - if strings.Trim(indent, " \t") != "" { - return nil, errors.New("indent may only be composed of space and tab characters") -@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { - // WriteInt writes out the given signed integer value. - func (e *Encoder) WriteInt(n int64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatInt(n, 10)...) -+ e.out = strconv.AppendInt(e.out, n, 10) - } - - // WriteUint writes out the given unsigned integer value. - func (e *Encoder) WriteUint(n uint64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatUint(n, 10)...) -+ e.out = strconv.AppendUint(e.out, n, 10) - } - - // WriteLiteral writes out the given string as a literal value without quotes. -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 5c0e8f73..136f1b21 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -183,13 +183,58 @@ const ( - // Field names for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+ ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" -+ ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -+ ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -540,6 +585,7 @@ const ( - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_Targets_field_name protoreflect.Name = "targets" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -552,6 +598,7 @@ const ( - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -567,6 +614,7 @@ const ( - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index 3bc71013..e0f75fea 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -32,6 +32,7 @@ const ( - Type_Options_field_name protoreflect.Name = "options" - Type_SourceContext_field_name protoreflect.Name = "source_context" - Type_Syntax_field_name protoreflect.Name = "syntax" -+ Type_Edition_field_name protoreflect.Name = "edition" - - Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" - Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -@@ -39,6 +40,7 @@ const ( - Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" - Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" - Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+ Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" - ) - - // Field numbers for google.protobuf.Type. -@@ -49,6 +51,7 @@ const ( - Type_Options_field_number protoreflect.FieldNumber = 4 - Type_SourceContext_field_number protoreflect.FieldNumber = 5 - Type_Syntax_field_number protoreflect.FieldNumber = 6 -+ Type_Edition_field_number protoreflect.FieldNumber = 7 - ) - - // Names for google.protobuf.Field. -@@ -121,12 +124,14 @@ const ( - Enum_Options_field_name protoreflect.Name = "options" - Enum_SourceContext_field_name protoreflect.Name = "source_context" - Enum_Syntax_field_name protoreflect.Name = "syntax" -+ Enum_Edition_field_name protoreflect.Name = "edition" - - Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" - Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" - Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" - Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" - Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+ Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" - ) - - // Field numbers for google.protobuf.Enum. -@@ -136,6 +141,7 @@ const ( - Enum_Options_field_number protoreflect.FieldNumber = 3 - Enum_SourceContext_field_number protoreflect.FieldNumber = 4 - Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+ Enum_Edition_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.EnumValue. -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -index 33745ed0..dea522e1 100644 ---- a/vendor/google.golang.org/protobuf/internal/order/order.go -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -33,7 +33,7 @@ var ( - return !inOneof(ox) && inOneof(oy) - } - // Fields in disjoint oneof sets are sorted by declaration index. -- if ox != nil && oy != nil && ox != oy { -+ if inOneof(ox) && inOneof(oy) && ox != oy { - return ox.Index() < oy.Index() - } - // Fields sorted by field number. -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index f7014cd5..0999f29d 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 30 -+ Minor = 31 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -index 554b9c6c..f1692b49 100644 ---- a/vendor/google.golang.org/protobuf/proto/size.go -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore - } - - func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - if fd.IsPacked() && list.Len() > 0 { - content := 0 - for i, llen := 0, list.Len(); i < llen; i++ { - content += o.sizeSingular(num, fd.Kind(), list.Get(i)) - } -- return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ return sizeTag + protowire.SizeBytes(content) - } - - for i, llen := 0, list.Len(); i < llen; i++ { -- size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) - } - return size - } - - func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -- size += protowire.SizeTag(num) -+ size += sizeTag - size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) - return true - }) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 54ce326d..717b106f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) -+ case 19: -+ b = p.appendRepeatedField(b, "targets", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - switch (*p)[0] { - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ case 2: -+ b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 3: -+ b = p.appendSingularField(b, "verification", nil) - } - return b - } -@@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - } - return b - } -+ -+func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "number", nil) -+ case 2: -+ b = p.appendSingularField(b, "full_name", nil) -+ case 3: -+ b = p.appendSingularField(b, "type", nil) -+ case 4: -+ b = p.appendSingularField(b, "is_repeated", nil) -+ case 5: -+ b = p.appendSingularField(b, "reserved", nil) -+ case 6: -+ b = p.appendSingularField(b, "repeated", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index dac5671d..04c00f73 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,64 @@ import ( - sync "sync" - ) - -+// The verification state of the extension range. -+type ExtensionRangeOptions_VerificationState int32 -+ -+const ( -+ // All the extensions of the range must be declared. -+ ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 -+ ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 -+) -+ -+// Enum value maps for ExtensionRangeOptions_VerificationState. -+var ( -+ ExtensionRangeOptions_VerificationState_name = map[int32]string{ -+ 0: "DECLARATION", -+ 1: "UNVERIFIED", -+ } -+ ExtensionRangeOptions_VerificationState_value = map[string]int32{ -+ "DECLARATION": 0, -+ "UNVERIFIED": 1, -+ } -+) -+ -+func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { -+ p := new(ExtensionRangeOptions_VerificationState) -+ *p = x -+ return p -+} -+ -+func (x ExtensionRangeOptions_VerificationState) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = ExtensionRangeOptions_VerificationState(num) -+ return nil -+} -+ -+// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. -+func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ - type FieldDescriptorProto_Type int32 - - const ( -@@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -288,7 +346,13 @@ type FieldOptions_CType int32 - - const ( - // Default mode. -- FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_STRING FieldOptions_CType = 0 -+ // The option [ctype=CORD] may be applied to a non-repeated field of type -+ // "bytes". It indicates that in C++, the data should be stored in a Cord -+ // instead of a string. For very large strings, this may reduce memory -+ // fragmentation. It may also allow better performance when parsing from a -+ // Cord, or when parsing with aliasing enabled, as the parsed Cord may then -+ // alias the original buffer. - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 - ) -@@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -442,11 +506,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -526,11 +590,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -588,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -652,11 +716,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -1015,7 +1079,21 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` --} -+ // go/protobuf-stripping-extension-declarations -+ // Like Metadata, but we use a repeated field to hold all extension -+ // declarations. This should avoid the size increases of transforming a large -+ // extension range into small ranges in generated binaries. -+ Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // The verification state of the range. -+ // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // are marked as UNVERIFIED. -+ Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` -+} -+ -+// Default values for ExtensionRangeOptions fields. -+const ( -+ Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED -+) - - func (x *ExtensionRangeOptions) Reset() { - *x = ExtensionRangeOptions{} -@@ -1056,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption - return nil - } - -+func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { -+ if x != nil { -+ return x.Declaration -+ } -+ return nil -+} -+ -+func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { -+ if x != nil && x.Verification != nil { -+ return *x.Verification -+ } -+ return Default_ExtensionRangeOptions_Verification -+} -+ - // Describes a field within a message. - type FieldDescriptorProto struct { - state protoimpl.MessageState -@@ -2046,8 +2138,10 @@ type FieldOptions struct { - - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific -- // options below. This option is not yet implemented in the open source -- // release -- sorry, we'll try to include it in a future version! -+ // options below. This option is only implemented to support use of -+ // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of -+ // type "bytes" in the open source release -- sorry, we'll try to include -+ // other types in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly -@@ -2111,9 +2205,11 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2224,6 +2320,7 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target -@@ -2231,6 +2328,13 @@ func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - return FieldOptions_TARGET_TYPE_UNKNOWN - } - -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets -+ } -+ return nil -+} -+ - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2960,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { - return 0 - } - -+type ExtensionRangeOptions_Declaration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The extension number declared within the extension range. -+ Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` -+ // The fully-qualified name of the extension field. There must be a leading -+ // dot in front of the full name. -+ FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` -+ // The fully-qualified type name of the extension field. Unlike -+ // Metadata.type, Declaration.type must have a leading dot for messages -+ // and enums. -+ Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -+ // Deprecated. Please use "repeated". -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` -+ // If true, indicates that the number is reserved in the extension range, -+ // and any extension field with the number will fail to compile. Set this -+ // when a declared extension field is deleted. -+ Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` -+ // If true, indicates that the extension must be defined as repeated. -+ // Otherwise the extension must be defined as optional. -+ Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions_Declaration) Reset() { -+ *x = ExtensionRangeOptions_Declaration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions_Declaration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ 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 ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetFullName() string { -+ if x != nil && x.FullName != nil { -+ return *x.FullName -+ } -+ return "" -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetType() string { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return "" -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -+ if x != nil && x.IsRepeated != nil { -+ return *x.IsRepeated -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { -+ if x != nil && x.Reserved != nil { -+ return *x.Reserved -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { -+ if x != nil && x.Repeated != nil { -+ return *x.Repeated -+ } -+ return false -+} -+ - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // -@@ -2978,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2991,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3038,7 +3244,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3051,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3182,7 +3388,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3195,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3269,7 +3475,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3282,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3436,264 +3642,296 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -- 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -- 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -- 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -+ 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -+ 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -+ 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -+ 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -+ 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -+ 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -+ 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -- 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -- 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -- 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -- 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -- 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -- 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -- 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -- 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -- 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -- 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -- 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -- 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -- 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -- 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -- 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -- 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -- 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -- 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -- 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -- 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -- 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -- 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -- 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -+ 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -+ 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -+ 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -+ 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -+ 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -+ 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -+ 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -+ 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -+ 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -+ 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -+ 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -+ 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -+ 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -+ 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -+ 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -+ 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -+ 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -+ 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -+ 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -+ 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -+ 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -+ 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -+ 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -+ 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -+ 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -+ 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -+ 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -+ 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -+ 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -- 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -- 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -- 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -- 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -- 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -- 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -- 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -- 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -- 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -- 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -- 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -- 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -- 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -- 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -- 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -- 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -- 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -- 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -- 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -- 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -- 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -- 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -- 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -- 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -- 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -- 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -- 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -- 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -- 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -- 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -- 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -- 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -- 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -- 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -- 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -- 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -- 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -- 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -- 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -- 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -- 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -- 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -- 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -- 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -- 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -- 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -- 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -- 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -- 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -- 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -- 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -- 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -- 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -- 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -- 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -- 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -- 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -- 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -- 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -- 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -- 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -- 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -- 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -- 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -- 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -+ 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -+ 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -+ 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -+ 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -+ 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, -+ 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, -+ 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, -+ 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, -+ 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, -+ 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, -+ 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, -+ 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, -+ 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, -+ 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, -+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -- 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -- 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -- 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -- 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -- 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -- 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -- 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -- 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -- 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -- 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -- 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -+ 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -+ 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -+ 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -+ 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -+ 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -+ 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -+ 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -+ 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -+ 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -+ 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -+ 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -+ 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -+ 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -+ 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -+ 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -+ 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -+ 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -+ 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -@@ -3885,98 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 19: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+ (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 20: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 46, // [46:46] is the sub-list for method output_type -- 46, // [46:46] is the sub-list for method input_type -- 46, // [46:46] is the sub-list for extension type_name -- 46, // [46:46] is the sub-list for extension extendee -- 0, // [0:46] is the sub-list for field type_name -+ 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 49, // [49:49] is the sub-list for method output_type -+ 49, // [49:49] is the sub-list for method input_type -+ 49, // [49:49] is the sub-list for extension type_name -+ 49, // [49:49] is the sub-list for extension extendee -+ 0, // [0:49] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4280,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4292,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4304,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*UninterpretedOption_NamePart); i { - case 0: - return &v.state - case 1: -@@ -4316,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4333,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 9, -- NumMessages: 27, -+ NumEnums: 10, -+ NumMessages: 28, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index a6c7a33f..580b232f 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -142,39 +142,39 @@ import ( - // - // Example 2: Pack and unpack a message in Java. - // --// Foo foo = ...; --// Any any = Any.pack(foo); --// ... --// if (any.is(Foo.class)) { --// foo = any.unpack(Foo.class); --// } --// // or ... --// if (any.isSameTypeAs(Foo.getDefaultInstance())) { --// foo = any.unpack(Foo.getDefaultInstance()); --// } --// --// Example 3: Pack and unpack a message in Python. --// --// foo = Foo(...) --// any = Any() --// any.Pack(foo) --// ... --// if any.Is(Foo.DESCRIPTOR): --// any.Unpack(foo) --// ... --// --// Example 4: Pack and unpack a message in Go --// --// foo := &pb.Foo{...} --// any, err := anypb.New(foo) --// if err != nil { --// ... --// } --// ... --// foo := &pb.Foo{} --// if err := any.UnmarshalTo(foo); err != nil { --// ... --// } -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } - // - // The pack methods provided by protobuf library will by default use - // 'type.googleapis.com/full.type.name' as the type URL and the unpack -@@ -182,8 +182,8 @@ import ( - // in the type URL, for example "foo.bar.com/x/y.z" will yield type - // name "y.z". - // --// # JSON --// -+// JSON -+// ==== - // The JSON representation of an `Any` value uses the regular - // representation of the deserialized, embedded message, with an - // additional field `@type` which contains the type URL. Example: -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -index 61f69fc1..81511a33 100644 ---- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -167,7 +167,7 @@ import ( - // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - // the Joda Time's [`ISODateTimeFormat.dateTime()`]( --// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - // ) to obtain a formatter capable of generating timestamps in this format. - type Timestamp struct { - state protoimpl.MessageState -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 09b061d6..987b5b1c 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -46,8 +46,8 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 --# github.com/containerd/containerd v1.6.23 --## explicit; go 1.18 -+# github.com/containerd/containerd v1.7.11 -+## explicit; go 1.19 - github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 -@@ -171,7 +171,7 @@ github.com/pkg/errors - # github.com/safchain/ethtool v0.3.0 - ## explicit; go 1.16 - github.com/safchain/ethtool --# github.com/sirupsen/logrus v1.9.0 -+# github.com/sirupsen/logrus v1.9.3 - ## explicit; go 1.13 - github.com/sirupsen/logrus - # github.com/vishvananda/netlink v1.2.1-beta.2 -@@ -246,11 +246,11 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+# google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 - ## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.56.3 --## explicit; go 1.17 -+# google.golang.org/grpc v1.58.3 -+## explicit; go 1.19 - google.golang.org/grpc/attributes - google.golang.org/grpc/codes - google.golang.org/grpc/connectivity -@@ -263,7 +263,7 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.30.0 -+# google.golang.org/protobuf v1.31.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-29/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch b/projects/containernetworking/plugins/1-29/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch deleted file mode 100644 index a69520b061..0000000000 --- a/projects/containernetworking/plugins/1-29/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch +++ /dev/null @@ -1,7533 +0,0 @@ -From 3af5aa8e661a642da31295a18e637f975a4706a5 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Fri, 22 Mar 2024 19:12:56 +0000 -Subject: [PATCH] Bump protobuf to 1.33.0 to resolve CVE-2024-24786 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 2 +- - go.sum | 4 +- - .../protobuf/encoding/prototext/decode.go | 8 +- - .../protobuf/encoding/prototext/encode.go | 4 +- - .../protobuf/encoding/protowire/wire.go | 28 +- - .../protobuf/internal/descfmt/stringer.go | 183 +- - .../internal/editiondefaults/defaults.go | 12 + - .../editiondefaults/editions_defaults.binpb | 4 + - .../protobuf/internal/filedesc/desc.go | 102 +- - .../protobuf/internal/filedesc/desc_init.go | 52 + - .../protobuf/internal/filedesc/desc_lazy.go | 28 + - .../protobuf/internal/filedesc/editions.go | 142 + - .../protobuf/internal/genid/descriptor_gen.go | 364 ++- - .../internal/genid/go_features_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 5 + - .../protobuf/internal/genid/type_gen.go | 38 + - .../protobuf/internal/impl/codec_extension.go | 22 +- - .../protobuf/internal/impl/codec_gen.go | 113 +- - .../protobuf/internal/impl/codec_tables.go | 2 +- - .../protobuf/internal/impl/legacy_message.go | 19 +- - .../protobuf/internal/impl/message.go | 17 +- - .../internal/impl/message_reflect_field.go | 2 +- - .../protobuf/internal/impl/pointer_reflect.go | 36 + - .../protobuf/internal/impl/pointer_unsafe.go | 40 + - .../protobuf/internal/strs/strings.go | 2 +- - ...ings_unsafe.go => strings_unsafe_go120.go} | 4 +- - .../internal/strs/strings_unsafe_go121.go | 74 + - .../protobuf/internal/version/version.go | 2 +- - .../protobuf/proto/decode.go | 2 +- - .../google.golang.org/protobuf/proto/doc.go | 58 +- - .../protobuf/proto/encode.go | 2 +- - .../protobuf/proto/extension.go | 2 +- - .../google.golang.org/protobuf/proto/merge.go | 2 +- - .../google.golang.org/protobuf/proto/proto.go | 18 +- - .../protobuf/reflect/protodesc/desc.go | 29 +- - .../protobuf/reflect/protodesc/desc_init.go | 56 + - .../reflect/protodesc/desc_resolve.go | 4 +- - .../reflect/protodesc/desc_validate.go | 6 +- - .../protobuf/reflect/protodesc/editions.go | 148 + - .../protobuf/reflect/protodesc/proto.go | 18 +- - .../protobuf/reflect/protoreflect/proto.go | 85 +- - .../reflect/protoreflect/source_gen.go | 64 +- - .../protobuf/reflect/protoreflect/type.go | 44 +- - .../protobuf/reflect/protoreflect/value.go | 24 +- - .../reflect/protoreflect/value_equal.go | 8 +- - .../reflect/protoreflect/value_union.go | 44 +- - ...{value_unsafe.go => value_unsafe_go120.go} | 4 +- - .../protoreflect/value_unsafe_go121.go | 87 + - .../reflect/protoregistry/registry.go | 24 +- - .../types/descriptorpb/descriptor.pb.go | 2475 ++++++++++++----- - .../types/gofeaturespb/go_features.pb.go | 177 ++ - .../types/gofeaturespb/go_features.proto | 28 + - .../protobuf/types/known/anypb/any.pb.go | 3 +- - vendor/modules.txt | 6 +- - 54 files changed, 3699 insertions(+), 1059 deletions(-) - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/editions.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go - rename vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe.go => strings_unsafe_go120.go} (96%) - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go - rename vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe.go => value_unsafe_go120.go} (97%) - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto - -diff --git a/go.mod b/go.mod -index 5be57166..47102692 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,6 @@ require ( - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -- google.golang.org/protobuf v1.31.0 // indirect -+ google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 128e5c25..e274380d 100644 ---- a/go.sum -+++ b/go.sum -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= --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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -index 4921b2d4..a45f112b 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -21,7 +21,7 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - --// Unmarshal reads the given []byte into the given proto.Message. -+// Unmarshal reads the given []byte into the given [proto.Message]. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func Unmarshal(b []byte, m proto.Message) error { - return UnmarshalOptions{}.Unmarshal(b, m) -@@ -51,7 +51,7 @@ type UnmarshalOptions struct { - } - } - --// Unmarshal reads the given []byte and populates the given proto.Message -+// Unmarshal reads the given []byte and populates the given [proto.Message] - // using options in the UnmarshalOptions object. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -@@ -739,7 +739,9 @@ func (d decoder) skipValue() error { - case text.ListClose: - return nil - case text.MessageOpen: -- return d.skipMessageValue() -+ if err := d.skipMessageValue(); err != nil { -+ return err -+ } - default: - // Skip items. This will not validate whether skipped values are - // of the same type or not, same behavior as C++ -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index 722a7b41..95967e81 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -33,7 +33,7 @@ func Format(m proto.Message) string { - return MarshalOptions{Multiline: true}.Format(m) - } - --// Marshal writes the given proto.Message in textproto format using default -+// Marshal writes the given [proto.Message] in textproto format using default - // options. Do not depend on the output being stable. It may change over time - // across different versions of the program. - func Marshal(m proto.Message) ([]byte, error) { -@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string { - return string(b) - } - --// Marshal writes the given proto.Message in textproto format using options in -+// Marshal writes the given [proto.Message] in textproto format using options in - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -index f4b4686c..e942bc98 100644 ---- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -6,7 +6,7 @@ - // See https://protobuf.dev/programming-guides/encoding. - // - // For marshaling and unmarshaling entire protobuf messages, --// use the "google.golang.org/protobuf/proto" package instead. -+// use the [google.golang.org/protobuf/proto] package instead. - package protowire - - import ( -@@ -87,7 +87,7 @@ func ParseError(n int) error { - - // ConsumeField parses an entire field record (both tag and value) and returns - // the field number, the wire type, and the total length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - // - // The total length includes the tag header and the end group marker (if the - // field is a group). -@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) { - } - - // ConsumeFieldValue parses a field value and returns its length. --// This assumes that the field Number and wire Type have already been parsed. --// This returns a negative length upon an error (see ParseError). -+// This assumes that the field [Number] and wire [Type] have already been parsed. -+// This returns a negative length upon an error (see [ParseError]). - // - // When parsing a group, the length includes the end group marker and - // the end group is verified to match the starting field number. -@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte { - } - - // ConsumeTag parses b as a varint-encoded tag, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeTag(b []byte) (Number, Type, int) { - v, n := ConsumeVarint(b) - if n < 0 { -@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte { - } - - // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - if len(b) <= 0 { -@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte { - } - - // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, errCodeTruncated -@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte { - } - - // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, errCodeTruncated -@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte { - } - - // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeBytes(b []byte) (v []byte, n int) { - m, n := ConsumeVarint(b) - if n < 0 { -@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte { - } - - // ConsumeString parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeString(b []byte) (v string, n int) { - bb, n := ConsumeBytes(b) - return string(bb), n -@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte { - // ConsumeGroup parses b as a group value until the trailing end group marker, - // and verifies that the end marker matches the provided num. The value v - // does not contain the end marker, while the length does contain the end marker. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeGroup(num Number, b []byte) (v []byte, n int) { - n = ConsumeFieldValue(num, StartGroupType, b) - if n < 0 { -@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int { - return n + SizeTag(num) - } - --// DecodeTag decodes the field Number and wire Type from its unified form. --// The Number is -1 if the decoded field number overflows int32. -+// DecodeTag decodes the field [Number] and wire [Type] from its unified form. -+// The [Number] is -1 if the decoded field number overflows int32. - // Other than overflow, this does not check for field number validity. - func DecodeTag(x uint64) (Number, Type) { - // NOTE: MessageSet allows for larger field numbers than normal. -@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) { - return Number(x >> 3), Type(x & 7) - } - --// EncodeTag encodes the field Number and wire Type into its unified form. -+// EncodeTag encodes the field [Number] and wire [Type] into its unified form. - func EncodeTag(num Number, typ Type) uint64 { - return uint64(num)<<3 | uint64(typ&7) - } -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -index db5248e1..a45625c8 100644 ---- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - case protoreflect.FileImports: - for i := 0; i < vs.Len(); i++ { - var rs records -- rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ rv := reflect.ValueOf(vs.Get(i)) -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPublic"), "IsPublic"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ }...) - ss = append(ss, "{"+rs.Join()+"}") - } - return start + joinStrings(ss, allowMulti) + end -@@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - for i := 0; i < vs.Len(); i++ { - m := reflect.ValueOf(vs).MethodByName("Get") - v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -- ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil)) - } - return start + joinStrings(ss, allowMulti && isEnumValue) + end - } - } - --// descriptorAccessors is a list of accessors to print for each descriptor. --// --// Do not print all accessors since some contain redundant information, --// while others are pointers that we do not want to follow since the descriptor --// is actually a cyclic graph. --// --// Using a list allows us to print the accessors in a sensible order. --var descriptorAccessors = map[reflect.Type][]string{ -- reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -- reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -- reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -- reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -- reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -- reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -- reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -- reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+type methodAndName struct { -+ method reflect.Value -+ name string - } - - func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -- io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil)) - } --func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ -+func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { -+ return formatDescOpt(t, isRoot, allowMulti, record) -+} -+ -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { - rv := reflect.ValueOf(t) - rt := rv.MethodByName("ProtoType").Type().In(0) - -@@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - } - - _, isFile := t.(protoreflect.FileDescriptor) -- rs := records{allowMulti: allowMulti} -+ rs := records{ -+ allowMulti: allowMulti, -+ record: record, -+ } - if t.IsPlaceholder() { - if isFile { -- rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } else { -- rs.Append(rv, "FullName", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("FullName"), "FullName"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } - } else { - switch { - case isFile: -- rs.Append(rv, "Syntax") -+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"}) - case isRoot: -- rs.Append(rv, "Syntax", "FullName") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Syntax"), "Syntax"}, -+ {rv.MethodByName("FullName"), "FullName"}, -+ }...) - default: -- rs.Append(rv, "Name") -+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"}) - } - switch t := t.(type) { - case protoreflect.FieldDescriptor: -- for _, s := range descriptorAccessors[rt] { -- switch s { -+ accessors := []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ {rv.MethodByName("Cardinality"), "Cardinality"}, -+ {rv.MethodByName("Kind"), "Kind"}, -+ {rv.MethodByName("HasJSONName"), "HasJSONName"}, -+ {rv.MethodByName("JSONName"), "JSONName"}, -+ {rv.MethodByName("HasPresence"), "HasPresence"}, -+ {rv.MethodByName("IsExtension"), "IsExtension"}, -+ {rv.MethodByName("IsPacked"), "IsPacked"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ {rv.MethodByName("IsList"), "IsList"}, -+ {rv.MethodByName("IsMap"), "IsMap"}, -+ {rv.MethodByName("MapKey"), "MapKey"}, -+ {rv.MethodByName("MapValue"), "MapValue"}, -+ {rv.MethodByName("HasDefault"), "HasDefault"}, -+ {rv.MethodByName("Default"), "Default"}, -+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"}, -+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"}, -+ {rv.MethodByName("Message"), "Message"}, -+ {rv.MethodByName("Enum"), "Enum"}, -+ } -+ for _, s := range accessors { -+ switch s.name { - case "MapKey": - if k := t.MapKey(); k != nil { - rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -@@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - if v := t.MapValue(); v != nil { - switch v.Kind() { - case protoreflect.EnumKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())}) - case protoreflect.MessageKind, protoreflect.GroupKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())}) - default: -- rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()}) - } - } - case "ContainingOneof": - if od := t.ContainingOneof(); od != nil { -- rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())}) - } - case "ContainingMessage": - if t.IsExtension() { -- rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())}) - } - case "Message": - if !t.IsMap() { -@@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - ss = append(ss, string(fs.Get(i).Name())) - } - if len(ss) > 0 { -- rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) - } -- default: -- rs.Append(rv, descriptorAccessors[rt]...) -+ -+ case protoreflect.FileDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("Imports"), "Imports"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ {rv.MethodByName("Services"), "Services"}, -+ }...) -+ -+ case protoreflect.MessageDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"}, -+ {rv.MethodByName("Fields"), "Fields"}, -+ {rv.MethodByName("Oneofs"), "Oneofs"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, -+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ }...) -+ -+ case protoreflect.EnumDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Values"), "Values"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ }...) -+ -+ case protoreflect.EnumValueDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ }...) -+ -+ case protoreflect.ServiceDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Methods"), "Methods"}, -+ }...) -+ -+ case protoreflect.MethodDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Input"), "Input"}, -+ {rv.MethodByName("Output"), "Output"}, -+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, -+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, -+ }...) - } -- if rv.MethodByName("GoType").IsValid() { -- rs.Append(rv, "GoType") -+ if m := rv.MethodByName("GoType"); m.IsValid() { -+ rs.Append(rv, methodAndName{m, "GoType"}) - } - } - return start + rs.Join() + end -@@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - type records struct { - recs [][2]string - allowMulti bool -+ -+ // record is a function that will be called for every Append() or -+ // AppendRecs() call, to be used for testing with the -+ // InternalFormatDescOptForTesting function. -+ record func(string) - } - --func (rs *records) Append(v reflect.Value, accessors ...string) { -+func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { -+ if rs.record != nil { -+ rs.record(fieldName) -+ } -+ rs.recs = append(rs.recs, newRecs) -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) { - for _, a := range accessors { -+ if rs.record != nil { -+ rs.record(a.name) -+ } - var rv reflect.Value -- if m := v.MethodByName(a); m.IsValid() { -- rv = m.Call(nil)[0] -+ if a.method.IsValid() { -+ rv = a.method.Call(nil)[0] - } - if v.Kind() == reflect.Struct && !rv.IsValid() { -- rv = v.FieldByName(a) -+ rv = v.FieldByName(a.name) - } - if !rv.IsValid() { -- panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name)) - } - if _, ok := rv.Interface().(protoreflect.Value); ok { - rv = rv.MethodByName("Interface").Call(nil)[0] -@@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { - default: - s = fmt.Sprint(v) - } -- rs.recs = append(rs.recs, [2]string{a, s}) -+ rs.recs = append(rs.recs, [2]string{a.name, s}) - } - } - -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -new file mode 100644 -index 00000000..14656b65 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -@@ -0,0 +1,12 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package editiondefaults contains the binary representation of the editions -+// defaults. -+package editiondefaults -+ -+import _ "embed" -+ -+//go:embed editions_defaults.binpb -+var Defaults []byte -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -new file mode 100644 -index 00000000..18f07568 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -@@ -0,0 +1,4 @@ -+ -+  (0æ -+  (0ç -+  (0è æ(è -\ No newline at end of file -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -index 7c3689ba..8826bcf4 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -21,11 +21,26 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - -+// Edition is an Enum for proto2.Edition -+type Edition int32 -+ -+// These values align with the value of Enum in descriptor.proto which allows -+// direct conversion between the proto enum and this enum. -+const ( -+ EditionUnknown Edition = 0 -+ EditionProto2 Edition = 998 -+ EditionProto3 Edition = 999 -+ Edition2023 Edition = 1000 -+ EditionUnsupported Edition = 100000 -+) -+ - // The types in this file may have a suffix: - // • L0: Contains fields common to all descriptors (except File) and - // must be initialized up front. - // • L1: Contains fields specific to a descriptor and --// must be initialized up front. -+// must be initialized up front. If the associated proto uses Editions, the -+// Editions features must always be resolved. If not explicitly set, the -+// appropriate default must be resolved and set. - // • L2: Contains fields that are lazily initialized when constructing - // from the raw file descriptor. When constructing as a literal, the L2 - // fields must be initialized up front. -@@ -44,6 +59,7 @@ type ( - } - FileL1 struct { - Syntax protoreflect.Syntax -+ Edition Edition // Only used if Syntax == Editions - Path string - Package protoreflect.FullName - -@@ -51,12 +67,41 @@ type ( - Messages Messages - Extensions Extensions - Services Services -+ -+ EditionFeatures EditionFeatures - } - FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations - } -+ -+ EditionFeatures struct { -+ // IsFieldPresence is true if field_presence is EXPLICIT -+ // https://protobuf.dev/editions/features/#field_presence -+ IsFieldPresence bool -+ // IsFieldPresence is true if field_presence is LEGACY_REQUIRED -+ // https://protobuf.dev/editions/features/#field_presence -+ IsLegacyRequired bool -+ // IsOpenEnum is true if enum_type is OPEN -+ // https://protobuf.dev/editions/features/#enum_type -+ IsOpenEnum bool -+ // IsPacked is true if repeated_field_encoding is PACKED -+ // https://protobuf.dev/editions/features/#repeated_field_encoding -+ IsPacked bool -+ // IsUTF8Validated is true if utf_validation is VERIFY -+ // https://protobuf.dev/editions/features/#utf8_validation -+ IsUTF8Validated bool -+ // IsDelimitedEncoded is true if message_encoding is DELIMITED -+ // https://protobuf.dev/editions/features/#message_encoding -+ IsDelimitedEncoded bool -+ // IsJSONCompliant is true if json_format is ALLOW -+ // https://protobuf.dev/editions/features/#json_format -+ IsJSONCompliant bool -+ // GenerateLegacyUnmarshalJSON determines if the plugin generates the -+ // UnmarshalJSON([]byte) error method for enums. -+ GenerateLegacyUnmarshalJSON bool -+ } - ) - - func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -@@ -117,6 +162,8 @@ type ( - } - EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated -+ -+ EditionFeatures EditionFeatures - } - EnumL2 struct { - Options func() protoreflect.ProtoMessage -@@ -178,6 +225,8 @@ type ( - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ -+ EditionFeatures EditionFeatures - } - MessageL2 struct { - Options func() protoreflect.ProtoMessage -@@ -210,6 +259,8 @@ type ( - ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum protoreflect.EnumDescriptor - Message protoreflect.MessageDescriptor -+ -+ EditionFeatures EditionFeatures - } - - Oneof struct { -@@ -219,6 +270,8 @@ type ( - OneofL1 struct { - Options func() protoreflect.ProtoMessage - Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ -+ EditionFeatures EditionFeatures - } - ) - -@@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage { - } - func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } - func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } --func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } --func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } --func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } --func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) Kind() protoreflect.Kind { -+ return fd.L1.Kind -+} -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } - func (fd *Field) HasPresence() bool { -- return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+ if fd.L1.Cardinality == protoreflect.Repeated { -+ return false -+ } -+ explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -+ return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil - } - func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional - } - func (fd *Field) IsPacked() bool { -- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -- switch fd.L1.Kind { -- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -- default: -- return true -- } -+ if fd.L1.Cardinality != protoreflect.Repeated { -+ return false -+ } -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsPacked -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -+ // proto3 repeated fields are packed by default. -+ return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked - } -@@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} - // WARNING: This method is exempt from the compatibility promise and may be - // removed in the future without warning. - func (fd *Field) EnforceUTF8() bool { -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsUTF8Validated -+ } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } -@@ -359,10 +428,11 @@ type ( - L2 *ExtensionL2 // protected by fileDesc.once - } - ExtensionL1 struct { -- Number protoreflect.FieldNumber -- Extendee protoreflect.MessageDescriptor -- Cardinality protoreflect.Cardinality -- Kind protoreflect.Kind -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ EditionFeatures EditionFeatures - } - ExtensionL2 struct { - Options func() protoreflect.ProtoMessage -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -index 4a1584c9..237e64fd 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -5,6 +5,7 @@ - package filedesc - - import ( -+ "fmt" - "sync" - - "google.golang.org/protobuf/encoding/protowire" -@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) { - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions, numServices int - var posEnums, posMessages, posExtensions, posServices int -+ var options []byte - b0 := b - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - case "proto3": - fd.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ fd.L1.Syntax = protoreflect.Editions - default: - panic("invalid syntax") - } -@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Path = sb.MakeString(v) - case genid.FileDescriptorProto_Package_field_number: - fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_Options_field_number: -+ options = v - case genid.FileDescriptorProto_EnumType_field_number: - if prevField != genid.FileDescriptorProto_EnumType_field_number { - if numEnums > 0 { -@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) { - numServices++ - } - prevField = num -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Edition_field_number: -+ fd.L1.Edition = Edition(v) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - } - -+ if fd.L1.Syntax == protoreflect.Editions { -+ fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) -+ } -+ -+ // Parse editions features from options if any -+ if options != nil { -+ fd.unmarshalSeedOptions(options) -+ } -+ - // Must allocate all declarations before parsing each descriptor type - // to ensure we handled all descriptors in "flattened ordering". - if numEnums > 0 { -@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) { - } - } - -+func (fd *File) unmarshalSeedOptions(b []byte) { -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileOptions_Features_field_number: -+ if fd.Syntax() != protoreflect.Editions { -+ panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) -+ } -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ - func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { - ed.L0.ParentFile = pf - ed.L0.Parent = pd -@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor - md.L0.ParentFile = pf - md.L0.Parent = pd - md.L0.Index = i -+ md.L1.EditionFeatures = featuresFromParentDesc(md.Parent()) - - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions int -@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) { - case genid.MessageOptions_MessageSetWireFormat_field_number: - md.L1.IsMessageSet = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_Features_field_number: -+ md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -index 736a19a7..482a61cc 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - fd.L0.ParentFile = pf - fd.L0.Parent = pd - fd.L0.Index = i -+ fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent()) - - var rawTypeName []byte - var rawOptions []byte -@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - b = b[m:] - } - } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { -+ fd.L1.Kind = protoreflect.GroupKind -+ } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { -+ fd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch fd.L1.Kind { -@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) { - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - var rawTypeName []byte - var rawOptions []byte -+ xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) - xd.L2 = new(ExtensionL2) - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - b = b[m:] - } - } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { -+ xd.L1.Kind = protoreflect.GroupKind -+ } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { -+ xd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch xd.L1.Kind { -@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -new file mode 100644 -index 00000000..0375a49d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -@@ -0,0 +1,142 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var defaultsCache = make(map[Edition]EditionFeatures) -+ -+func init() { -+ unmarshalEditionDefaults(editiondefaults.Defaults) -+} -+ -+func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) -+ } -+ } -+ return parent -+} -+ -+func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSet_FieldPresence_field_number: -+ parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ case genid.FeatureSet_EnumType_field_number: -+ parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value -+ case genid.FeatureSet_RepeatedFieldEncoding_field_number: -+ parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value -+ case genid.FeatureSet_Utf8Validation_field_number: -+ parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value -+ case genid.FeatureSet_MessageEncoding_field_number: -+ parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value -+ case genid.FeatureSet_JsonFormat_field_number: -+ parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ parent = unmarshalGoFeature(v, parent) -+ } -+ } -+ } -+ -+ return parent -+} -+ -+func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { -+ var parentFS EditionFeatures -+ switch p := parentDesc.(type) { -+ case *File: -+ parentFS = p.L1.EditionFeatures -+ case *Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ return parentFS -+} -+ -+func unmarshalEditionDefault(b []byte) { -+ var ed Edition -+ var fs EditionFeatures -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: -+ ed = Edition(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: -+ fs = unmarshalFeatureSet(v, fs) -+ } -+ } -+ } -+ defaultsCache[ed] = fs -+} -+ -+func unmarshalEditionDefaults(b []byte) { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.FeatureSetDefaults_Defaults_field_number: -+ def, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ unmarshalEditionDefault(def) -+ case genid.FeatureSetDefaults_MinimumEdition_field_number, -+ genid.FeatureSetDefaults_MaximumEdition_field_number: -+ // We don't care about the minimum and maximum editions. If the -+ // edition we are looking for later on is not in the cache we know -+ // it is outside of the range between minimum and maximum edition. -+ _, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) -+ } -+ } -+} -+ -+func getFeaturesFor(ed Edition) EditionFeatures { -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ panic(fmt.Sprintf("unsupported edition: %v", ed)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 136f1b21..40272c89 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -12,6 +12,27 @@ import ( - - const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" - -+// Full and short names for google.protobuf.Edition. -+const ( -+ Edition_enum_fullname = "google.protobuf.Edition" -+ Edition_enum_name = "Edition" -+) -+ -+// Enum values for google.protobuf.Edition. -+const ( -+ Edition_EDITION_UNKNOWN_enum_value = 0 -+ Edition_EDITION_PROTO2_enum_value = 998 -+ Edition_EDITION_PROTO3_enum_value = 999 -+ Edition_EDITION_2023_enum_value = 1000 -+ Edition_EDITION_2024_enum_value = 1001 -+ Edition_EDITION_1_TEST_ONLY_enum_value = 1 -+ Edition_EDITION_2_TEST_ONLY_enum_value = 2 -+ Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 -+ Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 -+ Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 -+ Edition_EDITION_MAX_enum_value = 2147483647 -+) -+ - // Names for google.protobuf.FileDescriptorSet. - const ( - FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -@@ -81,7 +102,7 @@ const ( - FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 - FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 - FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -- FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 14 - ) - - // Names for google.protobuf.DescriptorProto. -@@ -184,10 +205,12 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Features_field_name protoreflect.Name = "features" - ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" - ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features" - ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - -@@ -195,6 +218,7 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Features_field_number protoreflect.FieldNumber = 50 - ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 - ) - -@@ -204,6 +228,12 @@ const ( - ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" - ) - -+// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_DECLARATION_enum_value = 0 -+ ExtensionRangeOptions_UNVERIFIED_enum_value = 1 -+) -+ - // Names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( - ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -@@ -212,29 +242,26 @@ const ( - - // Field names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -- ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -- ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" - -- ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -- ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -- ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -- ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -- ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -- ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -- ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -- ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -291,12 +318,41 @@ const ( - FieldDescriptorProto_Type_enum_name = "Type" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1 -+ FieldDescriptorProto_TYPE_FLOAT_enum_value = 2 -+ FieldDescriptorProto_TYPE_INT64_enum_value = 3 -+ FieldDescriptorProto_TYPE_UINT64_enum_value = 4 -+ FieldDescriptorProto_TYPE_INT32_enum_value = 5 -+ FieldDescriptorProto_TYPE_FIXED64_enum_value = 6 -+ FieldDescriptorProto_TYPE_FIXED32_enum_value = 7 -+ FieldDescriptorProto_TYPE_BOOL_enum_value = 8 -+ FieldDescriptorProto_TYPE_STRING_enum_value = 9 -+ FieldDescriptorProto_TYPE_GROUP_enum_value = 10 -+ FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11 -+ FieldDescriptorProto_TYPE_BYTES_enum_value = 12 -+ FieldDescriptorProto_TYPE_UINT32_enum_value = 13 -+ FieldDescriptorProto_TYPE_ENUM_enum_value = 14 -+ FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 -+ FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 -+ FieldDescriptorProto_TYPE_SINT32_enum_value = 17 -+ FieldDescriptorProto_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.FieldDescriptorProto.Label. - const ( - FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" - FieldDescriptorProto_Label_enum_name = "Label" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 -+ FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 -+ FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 -+) -+ - // Names for google.protobuf.OneofDescriptorProto. - const ( - OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -@@ -468,7 +524,6 @@ const ( - FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" - FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" - FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -- FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" - FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" - FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -@@ -478,6 +533,7 @@ const ( - FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" - FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" - FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_Features_field_name protoreflect.Name = "features" - FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -@@ -490,7 +546,6 @@ const ( - FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" - FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" - FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -- FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" - FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" - FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -@@ -500,6 +555,7 @@ const ( - FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" - FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" - FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.features" - FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" - ) - -@@ -515,7 +571,6 @@ const ( - FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 - FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 - FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -- FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 - FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 - FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 - FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -@@ -525,6 +580,7 @@ const ( - FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 - FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 - FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_Features_field_number protoreflect.FieldNumber = 50 - FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -534,6 +590,13 @@ const ( - FileOptions_OptimizeMode_enum_name = "OptimizeMode" - ) - -+// Enum values for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_SPEED_enum_value = 1 -+ FileOptions_CODE_SIZE_enum_value = 2 -+ FileOptions_LITE_RUNTIME_enum_value = 3 -+) -+ - // Names for google.protobuf.MessageOptions. - const ( - MessageOptions_message_name protoreflect.Name = "MessageOptions" -@@ -547,6 +610,7 @@ const ( - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_name protoreflect.Name = "features" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -@@ -554,6 +618,7 @@ const ( - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.features" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" - ) - -@@ -564,6 +629,7 @@ const ( - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_Features_field_number protoreflect.FieldNumber = 12 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -584,8 +650,9 @@ const ( - FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" -- FieldOptions_Target_field_name protoreflect.Name = "target" - FieldOptions_Targets_field_name protoreflect.Name = "targets" -+ FieldOptions_EditionDefaults_field_name protoreflect.Name = "edition_defaults" -+ FieldOptions_Features_field_name protoreflect.Name = "features" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -597,8 +664,9 @@ const ( - FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -- FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" - FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" -+ FieldOptions_EditionDefaults_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" -+ FieldOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.features" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -613,8 +681,9 @@ const ( - FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -- FieldOptions_Target_field_number protoreflect.FieldNumber = 18 - FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 -+ FieldOptions_EditionDefaults_field_number protoreflect.FieldNumber = 20 -+ FieldOptions_Features_field_number protoreflect.FieldNumber = 21 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -624,24 +693,80 @@ const ( - FieldOptions_CType_enum_name = "CType" - ) - -+// Enum values for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_STRING_enum_value = 0 -+ FieldOptions_CORD_enum_value = 1 -+ FieldOptions_STRING_PIECE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.JSType. - const ( - FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" - FieldOptions_JSType_enum_name = "JSType" - ) - -+// Enum values for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JS_NORMAL_enum_value = 0 -+ FieldOptions_JS_STRING_enum_value = 1 -+ FieldOptions_JS_NUMBER_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionRetention. - const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_RETENTION_UNKNOWN_enum_value = 0 -+ FieldOptions_RETENTION_RUNTIME_enum_value = 1 -+ FieldOptions_RETENTION_SOURCE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionTargetType. - const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0 -+ FieldOptions_TARGET_TYPE_FILE_enum_value = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3 -+ FieldOptions_TARGET_TYPE_FIELD_enum_value = 4 -+ FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5 -+ FieldOptions_TARGET_TYPE_ENUM_enum_value = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7 -+ FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8 -+ FieldOptions_TARGET_TYPE_METHOD_enum_value = 9 -+) -+ -+// Names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault" -+ FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" -+) -+ -+// Field names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FieldOptions_EditionDefault_Value_field_name protoreflect.Name = "value" -+ -+ FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" -+ FieldOptions_EditionDefault_Value_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" -+) -+ -+// Field numbers for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_EditionDefault_Value_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.OneofOptions. - const ( - OneofOptions_message_name protoreflect.Name = "OneofOptions" -@@ -650,13 +775,16 @@ const ( - - // Field names for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_name protoreflect.Name = "features" - OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ OneofOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.features" - OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_number protoreflect.FieldNumber = 1 - OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -671,11 +799,13 @@ const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_name protoreflect.Name = "features" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.features" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" - ) - -@@ -684,6 +814,7 @@ const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_Features_field_number protoreflect.FieldNumber = 7 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -696,15 +827,21 @@ const ( - // Field names for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_Features_field_name protoreflect.Name = "features" -+ EnumValueOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.features" -+ EnumValueOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact" - EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_Features_field_number protoreflect.FieldNumber = 2 -+ EnumValueOptions_DebugRedact_field_number protoreflect.FieldNumber = 3 - EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -716,15 +853,18 @@ const ( - - // Field names for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_name protoreflect.Name = "features" - ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" - ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ ServiceOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.features" - ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" - ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_number protoreflect.FieldNumber = 34 - ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) -@@ -739,10 +879,12 @@ const ( - const ( - MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_Features_field_name protoreflect.Name = "features" - MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" - MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.features" - MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" - ) - -@@ -750,6 +892,7 @@ const ( - const ( - MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_Features_field_number protoreflect.FieldNumber = 35 - MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -759,6 +902,13 @@ const ( - MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" - ) - -+// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 -+ MethodOptions_NO_SIDE_EFFECTS_enum_value = 1 -+ MethodOptions_IDEMPOTENT_enum_value = 2 -+) -+ - // Names for google.protobuf.UninterpretedOption. - const ( - UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -@@ -816,6 +966,163 @@ const ( - UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 - ) - -+// Names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_message_name protoreflect.Name = "FeatureSet" -+ FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" -+) -+ -+// Field names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence" -+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation" -+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding" -+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format" -+ -+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" -+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" -+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" -+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format" -+) -+ -+// Field numbers for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1 -+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2 -+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 -+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4 -+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5 -+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" -+ FeatureSet_FieldPresence_enum_name = "FieldPresence" -+) -+ -+// Enum values for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 -+ FeatureSet_EXPLICIT_enum_value = 1 -+ FeatureSet_IMPLICIT_enum_value = 2 -+ FeatureSet_LEGACY_REQUIRED_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" -+ FeatureSet_EnumType_enum_name = "EnumType" -+) -+ -+// Enum values for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 -+ FeatureSet_OPEN_enum_value = 1 -+ FeatureSet_CLOSED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" -+ FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_PACKED_enum_value = 1 -+ FeatureSet_EXPANDED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" -+ FeatureSet_Utf8Validation_enum_name = "Utf8Validation" -+) -+ -+// Enum values for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 -+ FeatureSet_VERIFY_enum_value = 2 -+ FeatureSet_NONE_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" -+ FeatureSet_MessageEncoding_enum_name = "MessageEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_LENGTH_PREFIXED_enum_value = 1 -+ FeatureSet_DELIMITED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" -+ FeatureSet_JsonFormat_enum_name = "JsonFormat" -+) -+ -+// Enum values for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 -+ FeatureSet_ALLOW_enum_value = 1 -+ FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults" -+ FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_name protoreflect.Name = "defaults" -+ FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" -+ -+ FeatureSetDefaults_Defaults_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" -+ FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_number protoreflect.FieldNumber = 1 -+ FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 -+ FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_message_name protoreflect.Name = "FeatureSetEditionDefault" -+ FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" -+ -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.SourceCodeInfo. - const ( - SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -@@ -917,3 +1224,10 @@ const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" - ) -+ -+// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_NONE_enum_value = 0 -+ GeneratedCodeInfo_Annotation_SET_enum_value = 1 -+ GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -new file mode 100644 -index 00000000..fd9015e8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" -+ -+// Names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_message_name protoreflect.Name = "GoFeatures" -+ GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" -+) -+ -+// Field names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" -+ -+ GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" -+) -+ -+// Field numbers for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -index 1a38944b..ad6f80c4 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -18,6 +18,11 @@ const ( - NullValue_enum_name = "NullValue" - ) - -+// Enum values for google.protobuf.NullValue. -+const ( -+ NullValue_NULL_VALUE_enum_value = 0 -+) -+ - // Names for google.protobuf.Struct. - const ( - Struct_message_name protoreflect.Name = "Struct" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index e0f75fea..49bc73e2 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -18,6 +18,13 @@ const ( - Syntax_enum_name = "Syntax" - ) - -+// Enum values for google.protobuf.Syntax. -+const ( -+ Syntax_SYNTAX_PROTO2_enum_value = 0 -+ Syntax_SYNTAX_PROTO3_enum_value = 1 -+ Syntax_SYNTAX_EDITIONS_enum_value = 2 -+) -+ - // Names for google.protobuf.Type. - const ( - Type_message_name protoreflect.Name = "Type" -@@ -105,12 +112,43 @@ const ( - Field_Kind_enum_name = "Kind" - ) - -+// Enum values for google.protobuf.Field.Kind. -+const ( -+ Field_TYPE_UNKNOWN_enum_value = 0 -+ Field_TYPE_DOUBLE_enum_value = 1 -+ Field_TYPE_FLOAT_enum_value = 2 -+ Field_TYPE_INT64_enum_value = 3 -+ Field_TYPE_UINT64_enum_value = 4 -+ Field_TYPE_INT32_enum_value = 5 -+ Field_TYPE_FIXED64_enum_value = 6 -+ Field_TYPE_FIXED32_enum_value = 7 -+ Field_TYPE_BOOL_enum_value = 8 -+ Field_TYPE_STRING_enum_value = 9 -+ Field_TYPE_GROUP_enum_value = 10 -+ Field_TYPE_MESSAGE_enum_value = 11 -+ Field_TYPE_BYTES_enum_value = 12 -+ Field_TYPE_UINT32_enum_value = 13 -+ Field_TYPE_ENUM_enum_value = 14 -+ Field_TYPE_SFIXED32_enum_value = 15 -+ Field_TYPE_SFIXED64_enum_value = 16 -+ Field_TYPE_SINT32_enum_value = 17 -+ Field_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.Field.Cardinality. - const ( - Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" - Field_Cardinality_enum_name = "Cardinality" - ) - -+// Enum values for google.protobuf.Field.Cardinality. -+const ( -+ Field_CARDINALITY_UNKNOWN_enum_value = 0 -+ Field_CARDINALITY_OPTIONAL_enum_value = 1 -+ Field_CARDINALITY_REQUIRED_enum_value = 2 -+ Field_CARDINALITY_REPEATED_enum_value = 3 -+) -+ - // Names for google.protobuf.Enum. - const ( - Enum_message_name protoreflect.Name = "Enum" -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -index e74cefdc..2b8f122c 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -21,26 +21,18 @@ type extensionFieldInfo struct { - validation validationInfo - } - --var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -- - func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { - if xi, ok := xt.(*ExtensionInfo); ok { - xi.lazyInit() - return xi.info - } -- return legacyLoadExtensionFieldInfo(xt) --} -- --// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. --func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -- return xi.(*extensionFieldInfo) -- } -- e := makeExtensionFieldInfo(xt.TypeDescriptor()) -- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -- return e.(*extensionFieldInfo) -- } -- return e -+ // Ideally we'd cache the resulting *extensionFieldInfo so we don't have to -+ // recompute this metadata repeatedly. But without support for something like -+ // weak references, such a cache would pin temporary values (like dynamic -+ // extension types, constructed for the duration of a user request) to the -+ // heap forever, causing memory usage of the cache to grow unbounded. -+ // See discussion in https://github.com/golang/protobuf/issues/1521. -+ return makeExtensionFieldInfo(xt.TypeDescriptor()) - } - - func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -index 1a509b63..f55dc01e 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions - func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BoolSlice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growBoolSlice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growFloat32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growFloat64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -index 576dcf3a..13077751 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, - return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == protoreflect.GroupKind: - return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -- case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ case !fd.HasPresence() && fd.ContainingOneof() == nil: - // Populated oneof fields always encode even if set to the zero value, - // which normally are not encoded in proto3. - switch fd.Kind() { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -index 61c483fa..2ab2c629 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName - - // Obtain a list of oneof wrapper types. - var oneofWrappers []reflect.Type -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := t.MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- for _, v := range vs { -- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -index 4f5fb67a..629bacdc 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -192,12 +192,17 @@ fieldLoop: - - // Derive a mapping of oneof wrappers to fields. - oneofWrappers := mi.OneofWrappers -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- oneofWrappers = vs -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -index 5e736c60..986322b1 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool { - } - return true - default: -- panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -index 4c491bdf..517e9443 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) { - p.v.Elem().Set(v.v) - } - -+func growSlice(p pointer, addCap int) { -+ // TODO: Once we only support Go 1.20 and newer, use reflect.Grow. -+ in := p.v.Elem() -+ out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) -+ reflect.Copy(out, in) -+ p.v.Elem().Set(out) -+} -+ -+func (p pointer) growBoolSlice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ - func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } - func (ms *messageState) pointer() pointer { panic("not supported") } - func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -index ee0e0573..4b020e31 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) { - *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) - } - -+func (p pointer) growBoolSlice(addCap int) { -+ sp := p.BoolSlice() -+ s := make([]bool, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ sp := p.Int32Slice() -+ s := make([]int32, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ sp := p.Int64Slice() -+ s := make([]int64, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ - // Static check that MessageState does not exceed the size of a pointer. - const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -index 0b74e765..a6e7df24 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -17,7 +17,7 @@ import ( - - // EnforceUTF8 reports whether to enforce strict UTF-8 validation. - func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -- if flags.ProtoLegacy { -+ if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions { - if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { - return fd.EnforceUTF8() - } -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -similarity index 96% -rename from vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -rename to vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -index 61a84d34..a008acd0 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package strs - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -new file mode 100644 -index 00000000..60166f2b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -@@ -0,0 +1,74 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) string { -+ return unsafe.String(unsafe.SliceData(b), len(b)) -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) []byte { -+ return unsafe.Slice(unsafe.StringData(s), len(s)) -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index 0999f29d..a50fcfb4 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 31 -+ Minor = 33 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -index 48d47946..e5b03b56 100644 ---- a/vendor/google.golang.org/protobuf/proto/decode.go -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -69,7 +69,7 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { - // UnmarshalState parses a wire-format message and places the result in m. - // - // This method permits fine-grained control over the unmarshaler. --// Most users should use Unmarshal instead. -+// Most users should use [Unmarshal] instead. - func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - if o.RecursionLimit == 0 { - o.RecursionLimit = protowire.DefaultRecursionLimit -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -index ec71e717..80ed16a0 100644 ---- a/vendor/google.golang.org/protobuf/proto/doc.go -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -18,27 +18,27 @@ - // This package contains functions to convert to and from the wire format, - // an efficient binary serialization of protocol buffers. - // --// • Size reports the size of a message in the wire format. -+// - [Size] reports the size of a message in the wire format. - // --// • Marshal converts a message to the wire format. --// The MarshalOptions type provides more control over wire marshaling. -+// - [Marshal] converts a message to the wire format. -+// The [MarshalOptions] type provides more control over wire marshaling. - // --// • Unmarshal converts a message from the wire format. --// The UnmarshalOptions type provides more control over wire unmarshaling. -+// - [Unmarshal] converts a message from the wire format. -+// The [UnmarshalOptions] type provides more control over wire unmarshaling. - // - // # Basic message operations - // --// • Clone makes a deep copy of a message. -+// - [Clone] makes a deep copy of a message. - // --// • Merge merges the content of a message into another. -+// - [Merge] merges the content of a message into another. - // --// • Equal compares two messages. For more control over comparisons --// and detailed reporting of differences, see package --// "google.golang.org/protobuf/testing/protocmp". -+// - [Equal] compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// [google.golang.org/protobuf/testing/protocmp]. - // --// • Reset clears the content of a message. -+// - [Reset] clears the content of a message. - // --// • CheckInitialized reports whether all required fields in a message are set. -+// - [CheckInitialized] reports whether all required fields in a message are set. - // - // # Optional scalar constructors - // -@@ -46,9 +46,9 @@ - // as pointers to a value. For example, an optional string field has the - // Go type *string. - // --// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String --// take a value and return a pointer to a new instance of it, --// to simplify construction of optional field values. -+// - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String] -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. - // - // Generated enum types usually have an Enum method which performs the - // same operation. -@@ -57,29 +57,29 @@ - // - // # Extension accessors - // --// • HasExtension, GetExtension, SetExtension, and ClearExtension --// access extension field values in a protocol buffer message. -+// - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension] -+// access extension field values in a protocol buffer message. - // - // Extension fields are only supported in proto2. - // - // # Related packages - // --// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to --// and from JSON. -+// - Package [google.golang.org/protobuf/encoding/protojson] converts messages to -+// and from JSON. - // --// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to --// and from the text format. -+// - Package [google.golang.org/protobuf/encoding/prototext] converts messages to -+// and from the text format. - // --// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a --// reflection interface for protocol buffer data types. -+// - Package [google.golang.org/protobuf/reflect/protoreflect] provides a -+// reflection interface for protocol buffer data types. - // --// • Package "google.golang.org/protobuf/testing/protocmp" provides features --// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" --// package. -+// - Package [google.golang.org/protobuf/testing/protocmp] provides features -+// to compare protocol buffer messages with the [github.com/google/go-cmp/cmp] -+// package. - // --// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic --// message type, suitable for working with messages where the protocol buffer --// type is only known at runtime. -+// - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. - // - // This module contains additional packages for more specialized use cases. - // Consult the individual package documentation for details. -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -index bf7f816d..4fed202f 100644 ---- a/vendor/google.golang.org/protobuf/proto/encode.go -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -129,7 +129,7 @@ func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { - // MarshalState returns the wire-format encoding of a message. - // - // This method permits fine-grained control over the marshaler. --// Most users should use Marshal instead. -+// Most users should use [Marshal] instead. - func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - return o.marshal(in.Buf, in.Message) - } -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -index 5f293cda..17899a3a 100644 ---- a/vendor/google.golang.org/protobuf/proto/extension.go -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -26,7 +26,7 @@ func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - } - - // ClearExtension clears an extension field such that subsequent --// HasExtension calls return false. -+// [HasExtension] calls return false. - // It panics if m is invalid or if xt does not extend m. - func ClearExtension(m Message, xt protoreflect.ExtensionType) { - m.ProtoReflect().Clear(xt.TypeDescriptor()) -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -index d761ab33..3c6fe578 100644 ---- a/vendor/google.golang.org/protobuf/proto/merge.go -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -21,7 +21,7 @@ import ( - // The unknown fields of src are appended to the unknown fields of dst. - // - // It is semantically equivalent to unmarshaling the encoded form of src --// into dst with the UnmarshalOptions.Merge option specified. -+// into dst with the [UnmarshalOptions.Merge] option specified. - func Merge(dst, src Message) { - // TODO: Should nil src be treated as semantically equivalent to a - // untyped, read-only, empty message? What about a nil dst? -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -index 1f0d183b..7543ee6b 100644 ---- a/vendor/google.golang.org/protobuf/proto/proto.go -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -15,18 +15,20 @@ import ( - // protobuf module that accept a Message, except where otherwise specified. - // - // This is the v2 interface definition for protobuf messages. --// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// The v1 interface definition is [github.com/golang/protobuf/proto.Message]. - // --// To convert a v1 message to a v2 message, --// use "github.com/golang/protobuf/proto".MessageV2. --// To convert a v2 message to a v1 message, --// use "github.com/golang/protobuf/proto".MessageV1. -+// - To convert a v1 message to a v2 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV2Of]. -+// - To convert a v2 message to a v1 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV1Of]. - type Message = protoreflect.ProtoMessage - --// Error matches all errors produced by packages in the protobuf module. -+// Error matches all errors produced by packages in the protobuf module -+// according to [errors.Is]. - // --// That is, errors.Is(err, Error) reports whether an error is produced --// by this module. -+// Example usage: -+// -+// if errors.Is(err, proto.Error) { ... } - var Error error - - func init() { -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -index e4dfb120..baa0cc62 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -3,11 +3,11 @@ - // license that can be found in the LICENSE file. - - // Package protodesc provides functionality for converting --// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. - // - // The google.protobuf.FileDescriptorProto is a protobuf message that describes - // the type information for a .proto file in a form that is easily serializable. --// The protoreflect.FileDescriptor is a more structured representation of -+// The [protoreflect.FileDescriptor] is a more structured representation of - // the FileDescriptorProto message where references and remote dependencies - // can be directly followed. - package protodesc -@@ -24,11 +24,11 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// Resolver is the resolver used by NewFile to resolve dependencies. -+// Resolver is the resolver used by [NewFile] to resolve dependencies. - // The enums and messages provided must belong to some parent file, - // which is also registered. - // --// It is implemented by protoregistry.Files. -+// It is implemented by [protoregistry.Files]. - type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -@@ -61,19 +61,19 @@ type FileOptions struct { - AllowUnresolvable bool - } - --// NewFile creates a new protoreflect.FileDescriptor from the provided --// file descriptor message. See FileOptions.New for more information. -+// NewFile creates a new [protoreflect.FileDescriptor] from the provided -+// file descriptor message. See [FileOptions.New] for more information. - func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) - } - --// NewFiles creates a new protoregistry.Files from the provided --// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+// NewFiles creates a new [protoregistry.Files] from the provided -+// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. - func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) - } - --// New creates a new protoreflect.FileDescriptor from the provided -+// New creates a new [protoreflect.FileDescriptor] from the provided - // file descriptor message. The file must represent a valid proto file according - // to protobuf semantics. The returned descriptor is a deep copy of the input. - // -@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ f.L1.Syntax = protoreflect.Editions -+ f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } -+ if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { -+ return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) -+ } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") -@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ if f.L1.Syntax == protoreflect.Editions { -+ initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) -+ } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { -@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) { - } - } - --// NewFiles creates a new protoregistry.Files from the provided -+// NewFiles creates a new [protoregistry.Files] from the provided - // FileDescriptorSet message. The descriptor set must include only - // valid files according to protobuf semantics. The returned descriptors - // are a deep copy of the input. -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -index 37efda1a..b3278163 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } -@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } -+ if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) -+ } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } -@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - return ms, nil - } - -+// canBePacked returns whether the field can use packed encoding: -+// https://protobuf.dev/programming-guides/encoding/#packed -+func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { -+ if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { -+ return false // not a repeated field -+ } -+ -+ switch protoreflect.Kind(fd.GetType()) { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return false // not a scalar type field -+ -+ case protoreflect.StringKind, protoreflect.BytesKind: -+ // string and bytes can explicitly not be declared as packed, -+ // see https://protobuf.dev/programming-guides/encoding/#packed -+ return false -+ -+ default: -+ return true -+ } -+} -+ - func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { -@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } -+ -+ if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) -+ -+ if f.L1.EditionFeatures.IsLegacyRequired { -+ f.L1.Cardinality = protoreflect.Required -+ } -+ // We reuse the existing field because the old option `[packed = -+ // true]` is mutually exclusive with the editions feature. -+ if canBePacked(fd) { -+ f.L1.HasPacked = true -+ f.L1.IsPacked = f.L1.EditionFeatures.IsPacked -+ } -+ -+ // We pretend this option is always explicitly set because the only -+ // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 -+ // or to return the appropriate default. -+ // When using editions we either parse the option or resolve the -+ // appropriate default here (instead of later when this option is -+ // requested from the descriptor). -+ // In proto2/proto3 syntax HasEnforceUTF8 might be false. -+ f.L1.HasEnforceUTF8 = true -+ f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated -+ -+ if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { -+ f.L1.Kind = protoreflect.GroupKind -+ } -+ } - } - return fs, nil - } -@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ if parent.Syntax() == protoreflect.Editions { -+ o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) -+ } - } - } - return os, nil -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -index 27d7e350..254ca585 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab - } else if err != nil { - return v, ev, err - } -- if fd.Syntax() == protoreflect.Proto3 { -- return v, ev, errors.New("cannot be specified under proto3 semantics") -+ if !fd.HasPresence() { -+ return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -index 9af1d564..e4dcaf87 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } -- if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { -@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error { - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil -- case fd.Syntax() != protoreflect.Proto2: -- return errors.New("invalid under proto2 semantics") -+ case fd.Syntax() == protoreflect.Proto3: -+ return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -new file mode 100644 -index 00000000..2a6b29d1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -@@ -0,0 +1,148 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "os" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/types/descriptorpb" -+ gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -+) -+ -+const ( -+ SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 -+ SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -+) -+ -+var defaults = &descriptorpb.FeatureSetDefaults{} -+var defaultsCacheMu sync.Mutex -+var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) -+ -+func init() { -+ err := proto.Unmarshal(editiondefaults.Defaults, defaults) -+ if err != nil { -+ fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) -+ os.Exit(1) -+ } -+} -+ -+func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { -+ return filedesc.Edition(epb) -+} -+ -+func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { -+ switch ed { -+ case filedesc.EditionUnknown: -+ return descriptorpb.Edition_EDITION_UNKNOWN -+ case filedesc.EditionProto2: -+ return descriptorpb.Edition_EDITION_PROTO2 -+ case filedesc.EditionProto3: -+ return descriptorpb.Edition_EDITION_PROTO3 -+ case filedesc.Edition2023: -+ return descriptorpb.Edition_EDITION_2023 -+ default: -+ panic(fmt.Sprintf("unknown value for edition: %v", ed)) -+ } -+} -+ -+func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { -+ defaultsCacheMu.Lock() -+ defer defaultsCacheMu.Unlock() -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ edpb := toEditionProto(ed) -+ if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { -+ // This should never happen protodesc.(FileOptions).New would fail when -+ // initializing the file descriptor. -+ // This most likely means the embedded defaults were not updated. -+ fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) -+ os.Exit(1) -+ } -+ fs := defaults.GetDefaults()[0].GetFeatures() -+ // Using a linear search for now. -+ // Editions are guaranteed to be sorted and thus we could use a binary search. -+ // Given that there are only a handful of editions (with one more per year) -+ // there is not much reason to use a binary search. -+ for _, def := range defaults.GetDefaults() { -+ if def.GetEdition() <= edpb { -+ fs = def.GetFeatures() -+ } else { -+ break -+ } -+ } -+ defaultsCache[ed] = fs -+ return fs -+} -+ -+// mergeEditionFeatures merges the parent and child feature sets. This function -+// should be used when initializing Go descriptors from descriptor protos which -+// is why the parent is a filedesc.EditionsFeatures (Go representation) while -+// the child is a descriptorproto.FeatureSet (protoc representation). -+// Any feature set by the child overwrites what is set by the parent. -+func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { -+ var parentFS filedesc.EditionFeatures -+ switch p := parentDesc.(type) { -+ case *filedesc.File: -+ parentFS = p.L1.EditionFeatures -+ case *filedesc.Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ if child == nil { -+ return parentFS -+ } -+ if fp := child.FieldPresence; fp != nil { -+ parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || -+ *fp == descriptorpb.FeatureSet_EXPLICIT -+ parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED -+ } -+ if et := child.EnumType; et != nil { -+ parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN -+ } -+ -+ if rfe := child.RepeatedFieldEncoding; rfe != nil { -+ parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED -+ } -+ -+ if utf8val := child.Utf8Validation; utf8val != nil { -+ parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY -+ } -+ -+ if me := child.MessageEncoding; me != nil { -+ parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED -+ } -+ -+ if jf := child.JsonFormat; jf != nil { -+ parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW -+ } -+ -+ if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { -+ if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { -+ parentFS.GenerateLegacyUnmarshalJSON = *luje -+ } -+ } -+ -+ return parentFS -+} -+ -+// initFileDescFromFeatureSet initializes editions related fields in fd based -+// on fs. If fs is nil it is assumed to be an empty featureset and all fields -+// will be initialized with the appropriate default. fd.L1.Edition must be set -+// before calling this function. -+func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { -+ dfs := getFeatureSetFor(fd.L1.Edition) -+ // initialize the featureset with the defaults -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) -+ // overwrite any options explicitly specified -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -index a7c5ceff..9d6e0542 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -16,7 +16,7 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a - // google.protobuf.FileDescriptorProto message. - func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ -@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } -- if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p - } - --// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a - // google.protobuf.DescriptorProto message. - func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ -@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des - return p - } - --// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a - // google.protobuf.FieldDescriptorProto message. - func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ -@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi - return p - } - --// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a - // google.protobuf.OneofDescriptorProto message. - func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ -@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On - } - } - --// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a - // google.protobuf.EnumDescriptorProto message. - func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ -@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD - return p - } - --// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a - // google.protobuf.EnumValueDescriptorProto message. - func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ -@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip - } - } - --// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a - // google.protobuf.ServiceDescriptorProto message. - func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ -@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto - return p - } - --// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a - // google.protobuf.MethodDescriptorProto message. - func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -index 55aa1492..00b01fbd 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -10,46 +10,46 @@ - // - // # Protocol Buffer Descriptors - // --// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor]) - // are immutable objects that represent protobuf type information. - // They are wrappers around the messages declared in descriptor.proto. - // Protobuf descriptors alone lack any information regarding Go types. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Descriptor and ProtoReflect.Descriptor accessors respectively - // return the protobuf descriptor for the values. - // - // The protobuf descriptor interfaces are not meant to be implemented by - // user code since they might need to be extended in the future to support - // additions to the protobuf language. --// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// The [google.golang.org/protobuf/reflect/protodesc] package converts between - // google.protobuf.DescriptorProto messages and protobuf descriptors. - // - // # Go Type Descriptors - // --// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for - // a concrete Go type that represents the associated protobuf descriptor. - // There is commonly a one-to-one relationship between protobuf descriptors and - // Go type descriptors, but it can potentially be a one-to-many relationship. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Type and ProtoReflect.Type accessors respectively - // return the protobuf descriptor for the values. - // --// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// The [google.golang.org/protobuf/types/dynamicpb] package can be used to - // create Go type descriptors from protobuf descriptors. - // - // # Value Interfaces - // --// The Enum and Message interfaces provide a reflective view over an -+// The [Enum] and [Message] interfaces provide a reflective view over an - // enum or message instance. For enums, it provides the ability to retrieve - // the enum value number for any concrete enum type. For messages, it provides - // the ability to access or manipulate fields of the message. - // --// To convert a proto.Message to a protoreflect.Message, use the -+// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the - // former's ProtoReflect method. Since the ProtoReflect method is new to the - // v2 message interface, it may not be present on older message implementations. --// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// The [github.com/golang/protobuf/proto.MessageReflect] function can be used - // to obtain a reflective view on older messages. - // - // # Relationships -@@ -71,12 +71,12 @@ - // │ │ - // └────────────────── Type() ───────┘ - // --// • An EnumType describes a concrete Go enum type. -+// • An [EnumType] describes a concrete Go enum type. - // It has an EnumDescriptor and can construct an Enum instance. - // --// • An EnumDescriptor describes an abstract protobuf enum type. -+// • An [EnumDescriptor] describes an abstract protobuf enum type. - // --// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// • An [Enum] is a concrete enum instance. Generated enums implement Enum. - // - // ┌──────────────── New() ─────────────────┠- // │ │ -@@ -90,24 +90,26 @@ - // │ │ - // └─────────────────── Type() ─────────┘ - // --// • A MessageType describes a concrete Go message type. --// It has a MessageDescriptor and can construct a Message instance. --// Just as how Go's reflect.Type is a reflective description of a Go type, --// a MessageType is a reflective description of a Go type for a protobuf message. -+// • A [MessageType] describes a concrete Go message type. -+// It has a [MessageDescriptor] and can construct a [Message] instance. -+// Just as how Go's [reflect.Type] is a reflective description of a Go type, -+// a [MessageType] is a reflective description of a Go type for a protobuf message. - // --// • A MessageDescriptor describes an abstract protobuf message type. --// It has no understanding of Go types. In order to construct a MessageType --// from just a MessageDescriptor, you can consider looking up the message type --// in the global registry using protoregistry.GlobalTypes.FindMessageByName --// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// • A [MessageDescriptor] describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a [MessageType] -+// from just a [MessageDescriptor], you can consider looking up the message type -+// in the global registry using the FindMessageByName method on -+// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes] -+// or constructing a dynamic [MessageType] using -+// [google.golang.org/protobuf/types/dynamicpb.NewMessageType]. - // --// • A Message is a reflective view over a concrete message instance. --// Generated messages implement ProtoMessage, which can convert to a Message. --// Just as how Go's reflect.Value is a reflective view over a Go value, --// a Message is a reflective view over a concrete protobuf message instance. --// Using Go reflection as an analogy, the ProtoReflect method is similar to --// calling reflect.ValueOf, and the Message.Interface method is similar to --// calling reflect.Value.Interface. -+// • A [Message] is a reflective view over a concrete message instance. -+// Generated messages implement [ProtoMessage], which can convert to a [Message]. -+// Just as how Go's [reflect.Value] is a reflective view over a Go value, -+// a [Message] is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to -+// calling [reflect.ValueOf], and the [Message.Interface] method is similar to -+// calling [reflect.Value.Interface]. - // - // ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠- // │ V │ V -@@ -119,15 +121,15 @@ - // │ │ - // └────── implements ────────┘ - // --// • An ExtensionType describes a concrete Go implementation of an extension. --// It has an ExtensionTypeDescriptor and can convert to/from --// abstract Values and Go values. -+// • An [ExtensionType] describes a concrete Go implementation of an extension. -+// It has an [ExtensionTypeDescriptor] and can convert to/from -+// an abstract [Value] and a Go value. - // --// • An ExtensionTypeDescriptor is an ExtensionDescriptor --// which also has an ExtensionType. -+// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor] -+// which also has an [ExtensionType]. - // --// • An ExtensionDescriptor describes an abstract protobuf extension field and --// may not always be an ExtensionTypeDescriptor. -+// • An [ExtensionDescriptor] describes an abstract protobuf extension field and -+// may not always be an [ExtensionTypeDescriptor]. - package protoreflect - - import ( -@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement - - // ProtoMessage is the top-level interface that all proto messages implement. - // This is declared in the protoreflect package to avoid a cyclic dependency; --// use the proto.Message type instead, which aliases this type. -+// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type. - type ProtoMessage interface{ ProtoReflect() Message } - - // Syntax is the language version of the proto file. -@@ -151,8 +153,9 @@ type Syntax syntax - type syntax int8 // keep exact type opaque as the int type may change - - const ( -- Proto2 Syntax = 2 -- Proto3 Syntax = 3 -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+ Editions Syntax = 4 - ) - - // IsValid reports whether the syntax is valid. -@@ -172,6 +175,8 @@ func (s Syntax) String() string { - return "proto2" - case Proto3: - return "proto3" -+ case Editions: -+ return "editions" - default: - return fmt.Sprintf("", s) - } -@@ -436,7 +441,7 @@ type Names interface { - // FullName is a qualified name that uniquely identifies a proto declaration. - // A qualified name is the concatenation of the proto package along with the - // fully-declared name (i.e., name of parent preceding the name of the child), --// with a '.' delimiter placed between each Name. -+// with a '.' delimiter placed between each [Name]. - // - // This should not have any leading or trailing dots. - type FullName string // e.g., "google.protobuf.Field.Kind" -@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool { - } - - // Name returns the short name, which is the last identifier segment. --// A single segment FullName is the Name itself. -+// A single segment FullName is the [Name] itself. - func (n FullName) Name() Name { - if i := strings.LastIndexByte(string(n), '.'); i >= 0 { - return Name(n[i+1:]) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 717b106f..7dcc2ff0 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { - b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) - case 12: - b = p.appendSingularField(b, "syntax", nil) -- case 13: -+ case 14: - b = p.appendSingularField(b, "edition", nil) - } - return b -@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "java_generic_services", nil) - case 18: - b = p.appendSingularField(b, "py_generic_services", nil) -- case 42: -- b = p.appendSingularField(b, "php_generic_services", nil) - case 23: - b = p.appendSingularField(b, "deprecated", nil) - case 31: -@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "php_metadata_namespace", nil) - case 45: - b = p.appendSingularField(b, "ruby_package", nil) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { - b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 12: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 7: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 34: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 33: - b = p.appendSingularField(b, "deprecated", nil) - case 999: -@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) -- case 18: -- b = p.appendSingularField(b, "target", nil) - case 19: - b = p.appendRepeatedField(b, "targets", nil) -+ case 20: -+ b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault) -+ case 21: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFeatureSet(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "field_presence", nil) -+ case 2: -+ b = p.appendSingularField(b, "enum_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "repeated_field_encoding", nil) -+ case 4: -+ b = p.appendSingularField(b, "utf8_validation", nil) -+ case 5: -+ b = p.appendSingularField(b, "message_encoding", nil) -+ case 6: -+ b = p.appendSingularField(b, "json_format", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - case 2: - b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 3: - b = p.appendSingularField(b, "verification", nil) - } -@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { - switch (*p)[0] { - case 1: - b = p.appendSingularField(b, "deprecated", nil) -+ case 2: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) -+ case 3: -+ b = p.appendSingularField(b, "debug_redact", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 34: - b = p.appendSingularField(b, "idempotency_level", nil) -+ case 35: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 3: -+ b = p.appendSingularField(b, "edition", nil) -+ case 2: -+ b = p.appendSingularField(b, "value", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { - b = p.appendSingularField(b, "full_name", nil) - case 3: - b = p.appendSingularField(b, "type", nil) -- case 4: -- b = p.appendSingularField(b, "is_repeated", nil) - case 5: - b = p.appendSingularField(b, "reserved", nil) - case 6: -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -index 3867470d..60ff62b4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -12,7 +12,7 @@ package protoreflect - // exactly identical. However, it is possible for the same semantically - // identical proto type to be represented by multiple type descriptors. - // --// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// For example, suppose we have t1 and t2 which are both an [MessageDescriptor]. - // If t1 == t2, then the types are definitely equal and all accessors return - // the same information. However, if t1 != t2, then it is still possible that - // they still represent the same proto type (e.g., t1.FullName == t2.FullName). -@@ -115,7 +115,7 @@ type Descriptor interface { - // corresponds with the google.protobuf.FileDescriptorProto message. - // - // Top-level declarations: --// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor]. - type FileDescriptor interface { - Descriptor // Descriptor.FullName is identical to Package - -@@ -180,8 +180,8 @@ type FileImport struct { - // corresponds with the google.protobuf.DescriptorProto message. - // - // Nested declarations: --// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, --// and/or MessageDescriptor. -+// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor], -+// and/or [MessageDescriptor]. - type MessageDescriptor interface { - Descriptor - -@@ -214,7 +214,7 @@ type MessageDescriptor interface { - ExtensionRanges() FieldRanges - // ExtensionRangeOptions returns the ith extension range options. - // -- // To avoid a dependency cycle, this method returns a proto.Message value, -+ // To avoid a dependency cycle, this method returns a proto.Message] value, - // which always contains a google.protobuf.ExtensionRangeOptions message. - // This method returns a typed nil-pointer if no options are present. - // The caller must import the descriptorpb package to use this. -@@ -231,9 +231,9 @@ type MessageDescriptor interface { - } - type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } - --// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation. - // It is recommended that implementations of this interface also implement the --// MessageFieldTypes interface. -+// [MessageFieldTypes] interface. - type MessageType interface { - // New returns a newly allocated empty message. - // It may return nil for synthetic messages representing a map entry. -@@ -249,19 +249,19 @@ type MessageType interface { - Descriptor() MessageDescriptor - } - --// MessageFieldTypes extends a MessageType by providing type information -+// MessageFieldTypes extends a [MessageType] by providing type information - // regarding enums and messages referenced by the message fields. - type MessageFieldTypes interface { - MessageType - -- // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // Enum returns the EnumType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not an enum kind. - // It panics if out of bounds. - // - // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() - Enum(i int) EnumType - -- // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // Message returns the MessageType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not a message or group kind. - // It panics if out of bounds. - // -@@ -286,8 +286,8 @@ type MessageDescriptors interface { - // corresponds with the google.protobuf.FieldDescriptorProto message. - // - // It is used for both normal fields defined within the parent message --// (e.g., MessageDescriptor.Fields) and fields that extend some remote message --// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message -+// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]). - type FieldDescriptor interface { - Descriptor - -@@ -344,7 +344,7 @@ type FieldDescriptor interface { - // IsMap reports whether this field represents a map, - // where the value type for the associated field is a Map. - // It is equivalent to checking whether Cardinality is Repeated, -- // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ // that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true. - IsMap() bool - - // MapKey returns the field descriptor for the key in the map entry. -@@ -419,7 +419,7 @@ type OneofDescriptor interface { - - // IsSynthetic reports whether this is a synthetic oneof created to support - // proto3 optional semantics. If true, Fields contains exactly one field -- // with HasOptionalKeyword specified. -+ // with FieldDescriptor.HasOptionalKeyword specified. - IsSynthetic() bool - - // Fields is a list of fields belonging to this oneof. -@@ -442,10 +442,10 @@ type OneofDescriptors interface { - doNotImplement - } - --// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation. - type ExtensionDescriptor = FieldDescriptor - --// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType]. - type ExtensionTypeDescriptor interface { - ExtensionDescriptor - -@@ -470,12 +470,12 @@ type ExtensionDescriptors interface { - doNotImplement - } - --// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete - // Go implementation. The nested field descriptor must be for a extension field. - // - // While a normal field is a member of the parent message that it is declared --// within (see Descriptor.Parent), an extension field is a member of some other --// target message (see ExtensionDescriptor.Extendee) and may have no -+// within (see [Descriptor.Parent]), an extension field is a member of some other -+// target message (see [FieldDescriptor.ContainingMessage]) and may have no - // relationship with the parent. However, the full name of an extension field is - // relative to the parent that it is declared within. - // -@@ -532,7 +532,7 @@ type ExtensionType interface { - // corresponds with the google.protobuf.EnumDescriptorProto message. - // - // Nested declarations: --// EnumValueDescriptor. -+// [EnumValueDescriptor]. - type EnumDescriptor interface { - Descriptor - -@@ -548,7 +548,7 @@ type EnumDescriptor interface { - } - type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } - --// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation. - type EnumType interface { - // New returns an instance of this enum type with its value set to n. - New(n EnumNumber) Enum -@@ -610,7 +610,7 @@ type EnumValueDescriptors interface { - // ServiceDescriptor describes a service and - // corresponds with the google.protobuf.ServiceDescriptorProto message. - // --// Nested declarations: MethodDescriptor. -+// Nested declarations: [MethodDescriptor]. - type ServiceDescriptor interface { - Descriptor - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -index 37601b78..a7b0d06f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -27,16 +27,16 @@ type Enum interface { - // Message is a reflective interface for a concrete message value, - // encapsulating both type and value information for the message. - // --// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// Accessor/mutators for individual fields are keyed by [FieldDescriptor]. - // For non-extension fields, the descriptor must exactly match the - // field known by the parent message. --// For extension fields, the descriptor must implement ExtensionTypeDescriptor, --// extend the parent message (i.e., have the same message FullName), and -+// For extension fields, the descriptor must implement [ExtensionTypeDescriptor], -+// extend the parent message (i.e., have the same message [FullName]), and - // be within the parent's extension range. - // --// Each field Value can be a scalar or a composite type (Message, List, or Map). --// See Value for the Go types associated with a FieldDescriptor. --// Providing a Value that is invalid or of an incorrect type panics. -+// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]). -+// See [Value] for the Go types associated with a [FieldDescriptor]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type Message interface { - // Descriptor returns message descriptor, which contains only the protobuf - // type information for the message. -@@ -152,7 +152,7 @@ type Message interface { - // This method may return nil. - // - // The returned methods type is identical to -- // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // google.golang.org/protobuf/runtime/protoiface.Methods. - // Consult the protoiface package documentation for details. - ProtoMethods() *methods - } -@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool { - } - - // List is a zero-indexed, ordered list. --// The element Value type is determined by FieldDescriptor.Kind. --// Providing a Value that is invalid or of an incorrect type panics. -+// The element [Value] type is determined by [FieldDescriptor.Kind]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type List interface { - // Len reports the number of entries in the List. - // Get, Set, and Truncate panic with out of bound indexes. -@@ -226,9 +226,9 @@ type List interface { - } - - // Map is an unordered, associative map. --// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. --// The entry Value type is determined by FieldDescriptor.MapValue.Kind. --// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind. -+// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind. -+// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics. - type Map interface { - // Len reports the number of elements in the map. - Len() int -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -index 59165254..654599d4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -24,19 +24,19 @@ import ( - // Unlike the == operator, a NaN is equal to another NaN. - // - // - Enums are equal if they contain the same number. --// Since Value does not contain an enum descriptor, -+// Since [Value] does not contain an enum descriptor, - // enum values do not consider the type of the enum. - // - // - Other scalar values are equal if they contain the same value. - // --// - Message values are equal if they belong to the same message descriptor, -+// - [Message] values are equal if they belong to the same message descriptor, - // have the same set of populated known and extension field values, - // and the same set of unknown fields values. - // --// - Lists are equal if they are the same length and -+// - [List] values are equal if they are the same length and - // each corresponding element is equal. - // --// - Maps are equal if they have the same set of keys and -+// - [Map] values are equal if they have the same set of keys and - // the corresponding value for each key is equal. - func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -index 08e5ef73..16030973 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -11,7 +11,7 @@ import ( - - // Value is a union where only one Go type may be set at a time. - // The Value is used to represent all possible values a field may take. --// The following shows which Go type is used to represent each proto Kind: -+// The following shows which Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -31,22 +31,22 @@ import ( - // - // Multiple protobuf Kinds may be represented by a single Go type if the type - // can losslessly represent the information for the proto kind. For example, --// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64, - // but use different integer encoding methods. - // --// The List or Map types are used if the field cardinality is repeated. --// A field is a List if FieldDescriptor.IsList reports true. --// A field is a Map if FieldDescriptor.IsMap reports true. -+// The [List] or [Map] types are used if the field cardinality is repeated. -+// A field is a [List] if [FieldDescriptor.IsList] reports true. -+// A field is a [Map] if [FieldDescriptor.IsMap] reports true. - // - // Converting to/from a Value and a concrete Go value panics on type mismatch. --// For example, ValueOf("hello").Int() panics because this attempts to -+// For example, [ValueOf]("hello").Int() panics because this attempts to - // retrieve an int64 from a string. - // --// List, Map, and Message Values are called "composite" values. -+// [List], [Map], and [Message] Values are called "composite" values. - // - // A composite Value may alias (reference) memory at some location, - // such that changes to the Value updates the that location. --// A composite value acquired with a Mutable method, such as Message.Mutable, -+// A composite value acquired with a Mutable method, such as [Message.Mutable], - // always references the source object. - // - // For example: -@@ -65,7 +65,7 @@ import ( - // // appending to the List here may or may not modify the message. - // list.Append(protoreflect.ValueOfInt32(0)) - // --// Some operations, such as Message.Get, may return an "empty, read-only" -+// Some operations, such as [Message.Get], may return an "empty, read-only" - // composite Value. Modifying an empty, read-only value panics. - type Value value - -@@ -306,7 +306,7 @@ func (v Value) Float() float64 { - } - } - --// String returns v as a string. Since this method implements fmt.Stringer, -+// String returns v as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (v Value) String() string { - switch v.typ { -@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte { - } - } - --// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber]. - func (v Value) Enum() EnumNumber { - switch v.typ { - case enumType: -@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber { - } - } - --// Message returns v as a Message and panics if the type is not a Message. -+// Message returns v as a [Message] and panics if the type is not a [Message]. - func (v Value) Message() Message { - switch vi := v.getIface().(type) { - case Message: -@@ -347,7 +347,7 @@ func (v Value) Message() Message { - } - } - --// List returns v as a List and panics if the type is not a List. -+// List returns v as a [List] and panics if the type is not a [List]. - func (v Value) List() List { - switch vi := v.getIface().(type) { - case List: -@@ -357,7 +357,7 @@ func (v Value) List() List { - } - } - --// Map returns v as a Map and panics if the type is not a Map. -+// Map returns v as a [Map] and panics if the type is not a [Map]. - func (v Value) Map() Map { - switch vi := v.getIface().(type) { - case Map: -@@ -367,7 +367,7 @@ func (v Value) Map() Map { - } - } - --// MapKey returns v as a MapKey and panics for invalid MapKey types. -+// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types. - func (v Value) MapKey() MapKey { - switch v.typ { - case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey { - } - - // MapKey is used to index maps, where the Go type of the MapKey must match --// the specified key Kind (see MessageDescriptor.IsMapEntry). --// The following shows what Go type is used to represent each proto Kind: -+// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]). -+// The following shows what Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey { - // â•‘ string │ StringKind â•‘ - // â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• - // --// A MapKey is constructed and accessed through a Value: -+// A MapKey is constructed and accessed through a [Value]: - // - // k := ValueOf("hash").MapKey() // convert string to MapKey - // s := k.String() // convert MapKey to string - // --// The MapKey is a strict subset of valid types used in Value; --// converting a Value to a MapKey with an invalid type panics. -+// The MapKey is a strict subset of valid types used in [Value]; -+// converting a [Value] to a MapKey with an invalid type panics. - type MapKey value - - // IsValid reports whether k is populated with a value. -@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 { - return Value(k).Uint() - } - --// String returns k as a string. Since this method implements fmt.Stringer, -+// String returns k as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (k MapKey) String() string { - return Value(k).String() - } - --// Value returns k as a Value. -+// Value returns k as a [Value]. - func (k MapKey) Value() Value { - return Value(k) - } -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -similarity index 97% -rename from vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -rename to vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -index 702ddf22..b1fdbe3e 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package protoreflect - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -new file mode 100644 -index 00000000..43547011 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -@@ -0,0 +1,87 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ ifaceHeader struct { -+ _ [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it. -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() string { -+ return unsafe.String((*byte)(v.ptr), v.num) -+} -+func (v Value) getBytes() []byte { -+ return unsafe.Slice((*byte)(v.ptr), v.num) -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -index aeb55977..6267dc52 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -5,12 +5,12 @@ - // Package protoregistry provides data structures to register and lookup - // protobuf descriptor types. - // --// The Files registry contains file descriptors and provides the ability -+// The [Files] registry contains file descriptors and provides the ability - // to iterate over the files or lookup a specific descriptor within the files. --// Files only contains protobuf descriptors and has no understanding of Go -+// [Files] only contains protobuf descriptors and has no understanding of Go - // type information that may be associated with each descriptor. - // --// The Types registry contains descriptor types for which there is a known -+// The [Types] registry contains descriptor types for which there is a known - // Go type associated with that descriptor. It provides the ability to iterate - // over the registered types or lookup a type by name. - package protoregistry -@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) { - - // FindDescriptorByName looks up a descriptor by the full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { - if r == nil { - return nil, NotFound -@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { - - // FindFileByPath looks up a file by the path. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - // This returns an error if multiple files have the same path. - func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { - if r == nil { -@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type MessageTypeResolver interface { - // FindMessageByName looks up a message by its full name. - // E.g., "google.protobuf.Any" -@@ -451,7 +451,7 @@ type MessageTypeResolver interface { - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type ExtensionTypeResolver interface { - // FindExtensionByName looks up a extension field by the field's full name. - // Note that this is the full name of the field as determined by -@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac - // FindEnumByName looks up an enum by its full name. - // E.g., "google.protobuf.Field.Kind". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { - if r == nil { - return nil, NotFound -@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp - // FindMessageByName looks up a message by its full name, - // e.g. "google.protobuf.Any". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - if r == nil { - return nil, NotFound -@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M - // FindMessageByURL looks up a message by a URL identifier. - // See documentation on google.protobuf.Any.type_url for the URL format. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // This function is similar to FindMessageByName but - // truncates anything before and including '/' in the URL. -@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // where the extension is declared and is unrelated to the full name of the - // message being extended. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E - // FindExtensionByNumber looks up a extension field by the field number - // within some parent message, identified by full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index 04c00f73..78624cf6 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,103 @@ import ( - sync "sync" - ) - -+// The full set of known editions. -+type Edition int32 -+ -+const ( -+ // A placeholder for an unknown edition value. -+ Edition_EDITION_UNKNOWN Edition = 0 -+ // Legacy syntax "editions". These pre-date editions, but behave much like -+ // distinct editions. These can't be used to specify the edition of proto -+ // files, but feature definitions must supply proto2/proto3 defaults for -+ // backwards compatibility. -+ Edition_EDITION_PROTO2 Edition = 998 -+ Edition_EDITION_PROTO3 Edition = 999 -+ // Editions that have been released. The specific values are arbitrary and -+ // should not be depended on, but they will always be time-ordered for easy -+ // comparison. -+ Edition_EDITION_2023 Edition = 1000 -+ Edition_EDITION_2024 Edition = 1001 -+ // Placeholder editions for testing feature resolution. These should not be -+ // used or relyed on outside of tests. -+ Edition_EDITION_1_TEST_ONLY Edition = 1 -+ Edition_EDITION_2_TEST_ONLY Edition = 2 -+ Edition_EDITION_99997_TEST_ONLY Edition = 99997 -+ Edition_EDITION_99998_TEST_ONLY Edition = 99998 -+ Edition_EDITION_99999_TEST_ONLY Edition = 99999 -+ // Placeholder for specifying unbounded edition support. This should only -+ // ever be used by plugins that can expect to never require any changes to -+ // support a new edition. -+ Edition_EDITION_MAX Edition = 2147483647 -+) -+ -+// Enum value maps for Edition. -+var ( -+ Edition_name = map[int32]string{ -+ 0: "EDITION_UNKNOWN", -+ 998: "EDITION_PROTO2", -+ 999: "EDITION_PROTO3", -+ 1000: "EDITION_2023", -+ 1001: "EDITION_2024", -+ 1: "EDITION_1_TEST_ONLY", -+ 2: "EDITION_2_TEST_ONLY", -+ 99997: "EDITION_99997_TEST_ONLY", -+ 99998: "EDITION_99998_TEST_ONLY", -+ 99999: "EDITION_99999_TEST_ONLY", -+ 2147483647: "EDITION_MAX", -+ } -+ Edition_value = map[string]int32{ -+ "EDITION_UNKNOWN": 0, -+ "EDITION_PROTO2": 998, -+ "EDITION_PROTO3": 999, -+ "EDITION_2023": 1000, -+ "EDITION_2024": 1001, -+ "EDITION_1_TEST_ONLY": 1, -+ "EDITION_2_TEST_ONLY": 2, -+ "EDITION_99997_TEST_ONLY": 99997, -+ "EDITION_99998_TEST_ONLY": 99998, -+ "EDITION_99999_TEST_ONLY": 99999, -+ "EDITION_MAX": 2147483647, -+ } -+) -+ -+func (x Edition) Enum() *Edition { -+ p := new(Edition) -+ *p = x -+ return p -+} -+ -+func (x Edition) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (Edition) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (Edition) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x Edition) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *Edition) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = Edition(num) -+ return nil -+} -+ -+// Deprecated: Use Edition.Descriptor instead. -+func (Edition) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ - // The verification state of the extension range. - type ExtensionRangeOptions_VerificationState int32 - -@@ -80,11 +177,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string { - } - - func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -@@ -125,9 +222,10 @@ const ( - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - // Tag-delimited aggregate. -- // Group type is deprecated and not supported in proto3. However, Proto3 -+ // Group type is deprecated and not supported after google.protobuf. However, Proto3 - // implementations should still be able to parse the group wire format and -- // treat group fields as unknown fields. -+ // treat group fields as unknown fields. In Editions, the group wire format -+ // can be enabled via the `message_encoding` feature. - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. - // New in version 2. -@@ -195,11 +293,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -226,21 +324,24 @@ type FieldDescriptorProto_Label int32 - const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -- FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+ // The required label is only allowed in google.protobuf. In proto3 and Editions -+ // it's explicitly prohibited. In Editions, the `field_presence` feature -+ // can be used to get this behavior. -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - ) - - // Enum value maps for FieldDescriptorProto_Label. - var ( - FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", -- 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -+ 2: "LABEL_REQUIRED", - } - FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, -- "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -+ "LABEL_REQUIRED": 2, - } - ) - -@@ -255,11 +356,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -316,11 +417,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -382,11 +483,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -444,11 +545,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -506,11 +607,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -590,11 +691,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -652,11 +753,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -678,6 +779,363 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} - } - -+type FeatureSet_FieldPresence int32 -+ -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0 -+ FeatureSet_EXPLICIT FeatureSet_FieldPresence = 1 -+ FeatureSet_IMPLICIT FeatureSet_FieldPresence = 2 -+ FeatureSet_LEGACY_REQUIRED FeatureSet_FieldPresence = 3 -+) -+ -+// Enum value maps for FeatureSet_FieldPresence. -+var ( -+ FeatureSet_FieldPresence_name = map[int32]string{ -+ 0: "FIELD_PRESENCE_UNKNOWN", -+ 1: "EXPLICIT", -+ 2: "IMPLICIT", -+ 3: "LEGACY_REQUIRED", -+ } -+ FeatureSet_FieldPresence_value = map[string]int32{ -+ "FIELD_PRESENCE_UNKNOWN": 0, -+ "EXPLICIT": 1, -+ "IMPLICIT": 2, -+ "LEGACY_REQUIRED": 3, -+ } -+) -+ -+func (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence { -+ p := new(FeatureSet_FieldPresence) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_FieldPresence) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor() -+} -+ -+func (FeatureSet_FieldPresence) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[10] -+} -+ -+func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_FieldPresence(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead. -+func (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+type FeatureSet_EnumType int32 -+ -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0 -+ FeatureSet_OPEN FeatureSet_EnumType = 1 -+ FeatureSet_CLOSED FeatureSet_EnumType = 2 -+) -+ -+// Enum value maps for FeatureSet_EnumType. -+var ( -+ FeatureSet_EnumType_name = map[int32]string{ -+ 0: "ENUM_TYPE_UNKNOWN", -+ 1: "OPEN", -+ 2: "CLOSED", -+ } -+ FeatureSet_EnumType_value = map[string]int32{ -+ "ENUM_TYPE_UNKNOWN": 0, -+ "OPEN": 1, -+ "CLOSED": 2, -+ } -+) -+ -+func (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType { -+ p := new(FeatureSet_EnumType) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_EnumType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor() -+} -+ -+func (FeatureSet_EnumType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[11] -+} -+ -+func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_EnumType(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_EnumType.Descriptor instead. -+func (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1} -+} -+ -+type FeatureSet_RepeatedFieldEncoding int32 -+ -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0 -+ FeatureSet_PACKED FeatureSet_RepeatedFieldEncoding = 1 -+ FeatureSet_EXPANDED FeatureSet_RepeatedFieldEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_RepeatedFieldEncoding. -+var ( -+ FeatureSet_RepeatedFieldEncoding_name = map[int32]string{ -+ 0: "REPEATED_FIELD_ENCODING_UNKNOWN", -+ 1: "PACKED", -+ 2: "EXPANDED", -+ } -+ FeatureSet_RepeatedFieldEncoding_value = map[string]int32{ -+ "REPEATED_FIELD_ENCODING_UNKNOWN": 0, -+ "PACKED": 1, -+ "EXPANDED": 2, -+ } -+) -+ -+func (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding { -+ p := new(FeatureSet_RepeatedFieldEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor() -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[12] -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_RepeatedFieldEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead. -+func (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2} -+} -+ -+type FeatureSet_Utf8Validation int32 -+ -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0 -+ FeatureSet_VERIFY FeatureSet_Utf8Validation = 2 -+ FeatureSet_NONE FeatureSet_Utf8Validation = 3 -+) -+ -+// Enum value maps for FeatureSet_Utf8Validation. -+var ( -+ FeatureSet_Utf8Validation_name = map[int32]string{ -+ 0: "UTF8_VALIDATION_UNKNOWN", -+ 2: "VERIFY", -+ 3: "NONE", -+ } -+ FeatureSet_Utf8Validation_value = map[string]int32{ -+ "UTF8_VALIDATION_UNKNOWN": 0, -+ "VERIFY": 2, -+ "NONE": 3, -+ } -+) -+ -+func (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation { -+ p := new(FeatureSet_Utf8Validation) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_Utf8Validation) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor() -+} -+ -+func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[13] -+} -+ -+func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_Utf8Validation(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead. -+func (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3} -+} -+ -+type FeatureSet_MessageEncoding int32 -+ -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0 -+ FeatureSet_LENGTH_PREFIXED FeatureSet_MessageEncoding = 1 -+ FeatureSet_DELIMITED FeatureSet_MessageEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_MessageEncoding. -+var ( -+ FeatureSet_MessageEncoding_name = map[int32]string{ -+ 0: "MESSAGE_ENCODING_UNKNOWN", -+ 1: "LENGTH_PREFIXED", -+ 2: "DELIMITED", -+ } -+ FeatureSet_MessageEncoding_value = map[string]int32{ -+ "MESSAGE_ENCODING_UNKNOWN": 0, -+ "LENGTH_PREFIXED": 1, -+ "DELIMITED": 2, -+ } -+) -+ -+func (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding { -+ p := new(FeatureSet_MessageEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_MessageEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor() -+} -+ -+func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[14] -+} -+ -+func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_MessageEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead. -+func (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4} -+} -+ -+type FeatureSet_JsonFormat int32 -+ -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0 -+ FeatureSet_ALLOW FeatureSet_JsonFormat = 1 -+ FeatureSet_LEGACY_BEST_EFFORT FeatureSet_JsonFormat = 2 -+) -+ -+// Enum value maps for FeatureSet_JsonFormat. -+var ( -+ FeatureSet_JsonFormat_name = map[int32]string{ -+ 0: "JSON_FORMAT_UNKNOWN", -+ 1: "ALLOW", -+ 2: "LEGACY_BEST_EFFORT", -+ } -+ FeatureSet_JsonFormat_value = map[string]int32{ -+ "JSON_FORMAT_UNKNOWN": 0, -+ "ALLOW": 1, -+ "LEGACY_BEST_EFFORT": 2, -+ } -+) -+ -+func (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat { -+ p := new(FeatureSet_JsonFormat) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_JsonFormat) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor() -+} -+ -+func (FeatureSet_JsonFormat) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[15] -+} -+ -+func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_JsonFormat(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead. -+func (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5} -+} -+ - // Represents the identified object's effect on the element in the original - // .proto file. - type GeneratedCodeInfo_Annotation_Semantic int32 -@@ -716,11 +1174,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[9] -+ return &file_google_protobuf_descriptor_proto_enumTypes[16] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -739,7 +1197,7 @@ func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - - // Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. - func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0} - } - - // The protocol compiler can output a FileDescriptorSet containing the .proto -@@ -822,8 +1280,8 @@ type FileDescriptorProto struct { - // - // If `edition` is present, this value must be "editions". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -- // The edition of the proto file, which is an opaque string. -- Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+ // The edition of the proto file. -+ Edition *Edition `protobuf:"varint,14,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` - } - - func (x *FileDescriptorProto) Reset() { -@@ -942,11 +1400,11 @@ func (x *FileDescriptorProto) GetSyntax() string { - return "" - } - --func (x *FileDescriptorProto) GetEdition() string { -+func (x *FileDescriptorProto) GetEdition() Edition { - if x != nil && x.Edition != nil { - return *x.Edition - } -- return "" -+ return Edition_EDITION_UNKNOWN - } - - // Describes a message type. -@@ -1079,13 +1537,14 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -- // go/protobuf-stripping-extension-declarations -- // Like Metadata, but we use a repeated field to hold all extension -- // declarations. This should avoid the size increases of transforming a large -- // extension range into small ranges in generated binaries. -+ // For external users: DO NOT USE. We are in the process of open sourcing -+ // extension declaration and executing internal cleanups before it can be -+ // used externally. - Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The verification state of the range. -- // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // TODO: flip the default to DECLARATION once all empty ranges - // are marked as UNVERIFIED. - Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` - } -@@ -1141,6 +1600,13 @@ func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declar - return nil - } - -+func (x *ExtensionRangeOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { - if x != nil && x.Verification != nil { - return *x.Verification -@@ -1186,12 +1652,12 @@ type FieldDescriptorProto struct { - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // -- // When proto3_optional is true, this field must be belong to a oneof to -- // signal to old proto3 clients that presence is tracked for this field. This -- // oneof is known as a "synthetic" oneof, and this field must be its sole -- // member (each proto3 optional field gets its own synthetic oneof). Synthetic -- // oneofs exist in the descriptor only, and do not generate any API. Synthetic -- // oneofs must be ordered after all "real" oneofs. -+ // When proto3_optional is true, this field must belong to a oneof to signal -+ // to old proto3 clients that presence is tracked for this field. This oneof -+ // is known as a "synthetic" oneof, and this field must be its sole member -+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs -+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs -+ // must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still -@@ -1738,7 +2204,6 @@ type FileOptions struct { - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -- PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very -@@ -1772,6 +2237,8 @@ type FileOptions struct { - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -@@ -1785,7 +2252,6 @@ const ( - Default_FileOptions_CcGenericServices = bool(false) - Default_FileOptions_JavaGenericServices = bool(false) - Default_FileOptions_PyGenericServices = bool(false) -- Default_FileOptions_PhpGenericServices = bool(false) - Default_FileOptions_Deprecated = bool(false) - Default_FileOptions_CcEnableArenas = bool(true) - ) -@@ -1893,13 +2359,6 @@ func (x *FileOptions) GetPyGenericServices() bool { - return Default_FileOptions_PyGenericServices - } - --func (x *FileOptions) GetPhpGenericServices() bool { -- if x != nil && x.PhpGenericServices != nil { -- return *x.PhpGenericServices -- } -- return Default_FileOptions_PhpGenericServices --} -- - func (x *FileOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -1963,6 +2422,13 @@ func (x *FileOptions) GetRubyPackage() string { - return "" - } - -+func (x *FileOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2006,10 +2472,6 @@ type MessageOptions struct { - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -- // NOTE: Do not set the option in .proto files. Always use the maps syntax -- // instead. The option should only be implicitly set by the proto compiler -- // parser. -- // - // Whether the message is an automatically generated map entry type for the - // maps field. - // -@@ -2030,6 +2492,10 @@ type MessageOptions struct { - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. -+ // -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. -@@ -2039,11 +2505,13 @@ type MessageOptions struct { - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. - // -- // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // TODO This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,12,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2123,6 +2591,13 @@ func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *MessageOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2147,7 +2622,9 @@ type FieldOptions struct { - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to -- // false will avoid using packed encoding. -+ // false will avoid using packed encoding. This option is prohibited in -+ // Editions, but the `repeated_field_encoding` feature can be used to control -+ // the behavior. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types -@@ -2178,19 +2655,11 @@ type FieldOptions struct { - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // -- // Note that implementations may choose not to check required fields within -- // a lazy sub-message. That is, calling IsInitialized() on the outer message -- // may return true even if the inner message has missing required fields. -- // This is necessary because otherwise the inner message would have to be -- // parsed in order to perform the check, defeating the purpose of lazy -- // parsing. An implementation which chooses not to check required fields -- // must be consistent about it. That is, for any particular sub-message, the -- // implementation must either *always* check its required fields, or *never* -- // check its required fields, regardless of whether or not the message has -- // been parsed. -- // -- // As of May 2022, lazy verifies the contents of the byte stream during -- // parsing. An invalid byte stream will cause the overall parsing to fail. -+ // Note that lazy message fields are still eagerly verified to check -+ // ill-formed wireformat or missing required fields. Calling IsInitialized() -+ // on the outer message would fail if the inner message has missing required -+ // fields. Failed verification would result in parsing failure (except when -+ // uninitialized messages are acceptable). - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance -@@ -2205,11 +2674,12 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -- Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ EditionDefaults []*FieldOptions_EditionDefault `protobuf:"bytes,20,rep,name=edition_defaults,json=editionDefaults" json:"edition_defaults,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,21,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2320,17 +2790,23 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -- if x != nil && x.Target != nil { -- return *x.Target -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets - } -- return FieldOptions_TARGET_TYPE_UNKNOWN -+ return nil - } - --func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+func (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault { - if x != nil { -- return x.Targets -+ return x.EditionDefaults -+ } -+ return nil -+} -+ -+func (x *FieldOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features - } - return nil - } -@@ -2348,6 +2824,8 @@ type OneofOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,1,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2384,6 +2862,13 @@ func (*OneofOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} - } - -+func (x *OneofOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2409,11 +2894,13 @@ type EnumOptions struct { - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. -- // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // TODO Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,7,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2477,6 +2964,13 @@ func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *EnumOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2495,13 +2989,20 @@ type EnumValueOptions struct { - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+ // Indicate that fields annotated with this enum value should not be printed -+ // out when using debug formats, e.g. when the field contains sensitive -+ // credentials. -+ DebugRedact *bool `protobuf:"varint,3,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } - - // Default values for EnumValueOptions fields. - const ( -- Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_DebugRedact = bool(false) - ) - - func (x *EnumValueOptions) Reset() { -@@ -2543,6 +3044,20 @@ func (x *EnumValueOptions) GetDeprecated() bool { - return Default_EnumValueOptions_Deprecated - } - -+func (x *EnumValueOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ -+func (x *EnumValueOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_EnumValueOptions_DebugRedact -+} -+ - func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2556,6 +3071,8 @@ type ServiceOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,34,opt,name=features" json:"features,omitempty"` - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, -@@ -2602,6 +3119,13 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} - } - -+func (x *ServiceOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ServiceOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -2628,6 +3152,8 @@ type MethodOptions struct { - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,35,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2684,6 +3210,13 @@ func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { - return Default_MethodOptions_IdempotencyLevel - } - -+func (x *MethodOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2770,28 +3303,193 @@ func (x *UninterpretedOption) GetNegativeIntValue() int64 { - if x != nil && x.NegativeIntValue != nil { - return *x.NegativeIntValue - } -- return 0 -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// TODO Enums in C++ gencode (and potentially other languages) are -+// not well scoped. This means that each of the feature enums below can clash -+// with each other. The short names we've chosen maximize call-site -+// readability, but leave us very open to this scenario. A future feature will -+// be designed and implemented to handle this, hopefully before we ever hit a -+// conflict here. -+type FeatureSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"` -+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"` -+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"` -+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"` -+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"` -+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"` -+} -+ -+func (x *FeatureSet) Reset() { -+ *x = FeatureSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSet) ProtoMessage() {} -+ -+func (x *FeatureSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ 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 FeatureSet.ProtoReflect.Descriptor instead. -+func (*FeatureSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence { -+ if x != nil && x.FieldPresence != nil { -+ return *x.FieldPresence -+ } -+ return FeatureSet_FIELD_PRESENCE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetEnumType() FeatureSet_EnumType { -+ if x != nil && x.EnumType != nil { -+ return *x.EnumType -+ } -+ return FeatureSet_ENUM_TYPE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding { -+ if x != nil && x.RepeatedFieldEncoding != nil { -+ return *x.RepeatedFieldEncoding -+ } -+ return FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation { -+ if x != nil && x.Utf8Validation != nil { -+ return *x.Utf8Validation -+ } -+ return FeatureSet_UTF8_VALIDATION_UNKNOWN -+} -+ -+func (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding { -+ if x != nil && x.MessageEncoding != nil { -+ return *x.MessageEncoding -+ } -+ return FeatureSet_MESSAGE_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat { -+ if x != nil && x.JsonFormat != nil { -+ return *x.JsonFormat -+ } -+ return FeatureSet_JSON_FORMAT_UNKNOWN -+} -+ -+// A compiled specification for the defaults of a set of features. These -+// messages are generated from FeatureSet extensions and can be used to seed -+// feature resolution. The resolution with this object becomes a simple search -+// for the closest matching edition, followed by proto merges. -+type FeatureSetDefaults struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Defaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:"bytes,1,rep,name=defaults" json:"defaults,omitempty"` -+ // The minimum supported edition (inclusive) when this was constructed. -+ // Editions before this will not have defaults. -+ MinimumEdition *Edition `protobuf:"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition" json:"minimum_edition,omitempty"` -+ // The maximum known edition (inclusive) when this was constructed. Editions -+ // after this will not have reliable defaults. -+ MaximumEdition *Edition `protobuf:"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition" json:"maximum_edition,omitempty"` -+} -+ -+func (x *FeatureSetDefaults) Reset() { -+ *x = FeatureSetDefaults{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ 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) - } - --func (x *UninterpretedOption) GetDoubleValue() float64 { -- if x != nil && x.DoubleValue != nil { -- return *x.DoubleValue -- } -- return 0 -+// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} - } - --func (x *UninterpretedOption) GetStringValue() []byte { -+func (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault { - if x != nil { -- return x.StringValue -+ return x.Defaults - } - return nil - } - --func (x *UninterpretedOption) GetAggregateValue() string { -- if x != nil && x.AggregateValue != nil { -- return *x.AggregateValue -+func (x *FeatureSetDefaults) GetMinimumEdition() Edition { -+ if x != nil && x.MinimumEdition != nil { -+ return *x.MinimumEdition - } -- return "" -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults) GetMaximumEdition() Edition { -+ if x != nil && x.MaximumEdition != nil { -+ return *x.MaximumEdition -+ } -+ return Edition_EDITION_UNKNOWN - } - - // Encapsulates information about the original source file from which a -@@ -2855,7 +3553,7 @@ type SourceCodeInfo struct { - func (x *SourceCodeInfo) Reset() { - *x = SourceCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2868,7 +3566,7 @@ func (x *SourceCodeInfo) String() string { - func (*SourceCodeInfo) ProtoMessage() {} - - func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2881,7 +3579,7 @@ func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21} - } - - func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -@@ -2907,7 +3605,7 @@ type GeneratedCodeInfo struct { - func (x *GeneratedCodeInfo) Reset() { - *x = GeneratedCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2920,7 +3618,7 @@ func (x *GeneratedCodeInfo) String() string { - func (*GeneratedCodeInfo) ProtoMessage() {} - - func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2933,7 +3631,7 @@ func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22} - } - - func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -@@ -2956,7 +3654,7 @@ type DescriptorProto_ExtensionRange struct { - func (x *DescriptorProto_ExtensionRange) Reset() { - *x = DescriptorProto_ExtensionRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2969,7 +3667,7 @@ func (x *DescriptorProto_ExtensionRange) String() string { - func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - - func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3021,7 +3719,7 @@ type DescriptorProto_ReservedRange struct { - func (x *DescriptorProto_ReservedRange) Reset() { - *x = DescriptorProto_ReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3034,7 +3732,7 @@ func (x *DescriptorProto_ReservedRange) String() string { - func (*DescriptorProto_ReservedRange) ProtoMessage() {} - - func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3078,10 +3776,6 @@ type ExtensionRangeOptions_Declaration struct { - // Metadata.type, Declaration.type must have a leading dot for messages - // and enums. - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -- // Deprecated. Please use "repeated". -- // -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` - // If true, indicates that the number is reserved in the extension range, - // and any extension field with the number will fail to compile. Set this - // when a declared extension field is deleted. -@@ -3094,7 +3788,7 @@ type ExtensionRangeOptions_Declaration struct { - func (x *ExtensionRangeOptions_Declaration) Reset() { - *x = ExtensionRangeOptions_Declaration{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3107,7 +3801,7 @@ func (x *ExtensionRangeOptions_Declaration) String() string { - func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} - - func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3144,14 +3838,6 @@ func (x *ExtensionRangeOptions_Declaration) GetType() string { - return "" - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -- if x != nil && x.IsRepeated != nil { -- return *x.IsRepeated -- } -- return false --} -- - func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { - if x != nil && x.Reserved != nil { - return *x.Reserved -@@ -3184,7 +3870,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3197,7 +3883,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3227,6 +3913,61 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { - return 0 - } - -+type FieldOptions_EditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Textproto value. -+} -+ -+func (x *FieldOptions_EditionDefault) Reset() { -+ *x = FieldOptions_EditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions_EditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions_EditionDefault) ProtoMessage() {} -+ -+func (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ 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 FieldOptions_EditionDefault.ProtoReflect.Descriptor instead. -+func (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+func (x *FieldOptions_EditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FieldOptions_EditionDefault) GetValue() string { -+ if x != nil && x.Value != nil { -+ return *x.Value -+ } -+ return "" -+} -+ - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). -@@ -3244,7 +3985,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3257,7 +3998,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3287,6 +4028,65 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool { - return false - } - -+// A map from every known edition with a unique set of defaults to its -+// defaults. Not all editions may be contained here. For a given edition, -+// the defaults at the closest matching edition ordered at or before it should -+// be used. This field must be in strict ascending order by edition. -+type FeatureSetDefaults_FeatureSetEditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() { -+ *x = FeatureSetDefaults_FeatureSetEditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ 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 FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - type SourceCodeInfo_Location struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache -@@ -3296,7 +4096,7 @@ type SourceCodeInfo_Location struct { - // location. - // - // Each element is a field number or an index. They form a path from -- // the root FileDescriptorProto to the place where the definition occurs. -+ // the root FileDescriptorProto to the place where the definition appears. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] -@@ -3388,7 +4188,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3401,7 +4201,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3414,7 +4214,7 @@ func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0} - } - - func (x *SourceCodeInfo_Location) GetPath() []int32 { -@@ -3475,7 +4275,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3488,7 +4288,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3501,7 +4301,7 @@ func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0} - } - - func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -@@ -3550,7 +4350,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -@@ -3588,250 +4388,250 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -- 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -- 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -- 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -- 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -- 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -- 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -- 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, -+ 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, -+ 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, -+ 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -- 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -- 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -- 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, -+ 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, -+ 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, -+ 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, -+ 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, -+ 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, -+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, -+ 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, -+ 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, -+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, -+ 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, -+ 0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88, -+ 0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, -+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, -+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, -+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, -+ 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, -+ 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, -+ 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, -+ 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, -+ 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, -+ 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, -+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, -+ 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, -+ 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, -+ 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, -+ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, -+ 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, -+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14, -+ 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, -+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, -+ 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -- 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -- 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -- 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -- 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -- 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -- 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -- 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -- 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -- 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -- 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -- 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -- 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -- 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -- 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -- 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -- 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -- 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -- 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -- 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -- 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -- 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -- 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -- 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -- 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -- 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -- 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -- 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -- 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -- 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -- 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -- 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -- 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -- 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -- 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -- 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -- 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -- 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -- 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -- 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -- 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -- 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -- 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -- 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -- 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -- 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -- 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, -+ 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, -+ 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -- 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, -+ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, -+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -- 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -- 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -- 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -- 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -- 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -- 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -- 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -- 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -- 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -- 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -- 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -- 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -- 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -- 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -- 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -- 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -- 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -- 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, -+ 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, -+ 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, -+ 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x22, 0x97, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, -+ 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, -+ 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, -+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, -+ 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, -+ 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, -+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, -+ 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, -+ 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, -+ 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, -+ 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, -+ 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, -+ 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, -+ 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, -+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, -+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -@@ -3856,259 +4656,419 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -- 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -- 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -- 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -- 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -- 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -- 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -- 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -- 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -- 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -- 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -- 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -- 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -- 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -- 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -- 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -- 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -- 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -- 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -- 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -- 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -- 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -- 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, -+ 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, -+ 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, -+ 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, -+ 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, -+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xf4, 0x03, -+ 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, -+ 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, -+ 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, -+ 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, -+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, -+ 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -- 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -- 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -- 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -- 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -- 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -- 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -- 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -- 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -- 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -- 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -- 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -- 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -- 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -- 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -- 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -- 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -- 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -- 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -- 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -- 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -- 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -- 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -- 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -- 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -- 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -- 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -- 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, -+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, -+ 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, -+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, -+ 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, -+ 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, -+ 0x08, 0x09, 0x10, 0x0a, 0x22, 0xad, 0x0a, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, -+ 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, -+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, -+ 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, -+ 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, -+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, -+ 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, -+ 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, -+ 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, -+ 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, -+ 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, -+ 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, -+ 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, -+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, -+ 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, -+ 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, -+ 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -- 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -- 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -- 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -- 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -- 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -- 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -- 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -- 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -- 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -- 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -- 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -- 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -- 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -- 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -- 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x69, 0x6f, 0x6e, 0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, -+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, -+ 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, -+ 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, -+ 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, -+ 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, -+ 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, -+ 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, -+ 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, -+ 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, -+ 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, -+ 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, -+ 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, -+ 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, -+ 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, -+ 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, -+ 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, -+ 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, -+ 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -- 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -- 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -- 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -- 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -- 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -- 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -- 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -- 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -- 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -- 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -- 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -- 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -- 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -- 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -- 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -- 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -- 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -- 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -- 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -- 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -- 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -- 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, -+ 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, -+ 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, -+ 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, -+ 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, -+ 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x81, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, -+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, -+ 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, -+ 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, -+ 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, -+ 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, -+ 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, -+ 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, -+ 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, -+ 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, -+ 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, -+ 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, -+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, -+ 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, -+ 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, -+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, -+ 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, -+ 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, -+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, -+ 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, -+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, -+ 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x0a, -+ 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0e, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, -+ 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, -+ 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x65, 0x6e, 0x75, -+ 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x42, 0x23, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0b, -+ 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x09, 0x12, 0x04, -+ 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, -+ 0x65, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, -+ 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x27, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, -+ 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, -+ 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0x52, -+ 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x78, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, -+ 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x88, 0x01, 0x01, -+ 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, -+ 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, -+ 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x78, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, -+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, -+ 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x20, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, -+ 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, -+ 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7c, 0x0a, 0x0b, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, -+ 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x33, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, -+ 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, -+ 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, -+ 0x01, 0x0a, 0x12, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0x52, 0x0a, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x45, -+ 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, -+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, -+ 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, -+ 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, -+ 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, -+ 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, -+ 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x50, 0x45, -+ 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, -+ 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, -+ 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x43, 0x0a, 0x0e, 0x55, 0x74, 0x66, 0x38, 0x56, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x54, 0x46, -+ 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, -+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, -+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0f, -+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, -+ 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, -+ 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, -+ 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, -+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, -+ 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, -+ 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, -+ 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, -+ 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0x8b, 0x4e, 0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, -+ 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07, 0x10, 0xe8, 0x07, 0x22, 0xfe, 0x02, 0x0a, 0x12, -+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, -+ 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, -+ 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, -+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, -+ 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, -+ 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, -+ 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, -+ 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -- 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -- 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -- 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -- 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -- 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -- 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -- 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -- 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -- 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -- 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -- 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, -+ 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, -+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, -+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, -+ 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, -+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, -+ 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, -+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, -+ 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, -+ 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, -+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, -+ 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x07, 0x45, 0x64, -+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, -+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, -+ 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, -+ 0x33, 0x10, 0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, -+ 0x32, 0x30, 0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, -+ 0x4f, 0x4e, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, -+ 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, -+ 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, -+ 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, -+ 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, -+ 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, -+ 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, -+ 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, -+ 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - } - - var ( -@@ -4123,103 +5083,136 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 32) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -- (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 20: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -- (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation -+ (Edition)(0), // 0: google.protobuf.Edition -+ (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel -+ (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence -+ (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType -+ (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding -+ (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation -+ (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding -+ (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 17: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 18: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 19: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 20: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 21: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 22: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 23: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 24: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 25: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 26: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 27: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 28: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 29: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 30: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 31: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 32: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 33: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 34: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 35: google.protobuf.UninterpretedOption -+ (*FeatureSet)(nil), // 36: google.protobuf.FeatureSet -+ (*FeatureSetDefaults)(nil), // 37: google.protobuf.FeatureSetDefaults -+ (*SourceCodeInfo)(nil), // 38: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 39: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 40: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 41: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 42: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*FieldOptions_EditionDefault)(nil), // 44: google.protobuf.FieldOptions.EditionDefault -+ (*UninterpretedOption_NamePart)(nil), // 45: google.protobuf.UninterpretedOption.NamePart -+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 46: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ (*SourceCodeInfo_Location)(nil), // 47: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 48: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -- 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -- 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 49, // [49:49] is the sub-list for method output_type -- 49, // [49:49] is the sub-list for method input_type -- 49, // [49:49] is the sub-list for extension type_name -- 49, // [49:49] is the sub-list for extension extendee -- 0, // [0:49] is the sub-list for field type_name -+ 18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition -+ 21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet -+ 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault -+ 36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 42: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 43: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 44: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 45: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 46: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 47: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 48: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 49: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 50: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 9, // 51: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 36, // 52: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 53: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 45, // 54: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 10, // 55: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence -+ 11, // 56: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType -+ 12, // 57: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding -+ 13, // 58: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation -+ 14, // 59: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding -+ 15, // 60: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat -+ 46, // 61: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ 0, // 62: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition -+ 0, // 63: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition -+ 47, // 64: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 48, // 65: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 20, // 66: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 0, // 67: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition -+ 0, // 68: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition -+ 36, // 69: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features:type_name -> google.protobuf.FeatureSet -+ 16, // 70: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 71, // [71:71] is the sub-list for method output_type -+ 71, // [71:71] is the sub-list for method input_type -+ 71, // [71:71] is the sub-list for extension type_name -+ 71, // [71:71] is the sub-list for extension extendee -+ 0, // [0:71] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4475,19 +5468,21 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo); i { -+ switch v := v.(*FeatureSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields -+ case 3: -+ return &v.extensionFields - default: - return nil - } - } - file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*GeneratedCodeInfo); i { -+ switch v := v.(*FeatureSetDefaults); i { - case 0: - return &v.state - case 1: -@@ -4499,7 +5494,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ExtensionRange); i { -+ switch v := v.(*SourceCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4511,7 +5506,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ReservedRange); i { -+ switch v := v.(*GeneratedCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4523,7 +5518,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*ExtensionRangeOptions_Declaration); i { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { - case 0: - return &v.state - case 1: -@@ -4535,7 +5530,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*DescriptorProto_ReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4547,7 +5542,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4559,7 +5554,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4571,6 +5566,54 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions_EditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FeatureSetDefaults_FeatureSetEditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4588,8 +5631,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 10, -- NumMessages: 28, -+ NumEnums: 17, -+ NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -new file mode 100644 -index 00000000..25de5ae0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -@@ -0,0 +1,177 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: reflect/protodesc/proto/go_features.proto -+ -+package proto -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ descriptorpb "google.golang.org/protobuf/types/descriptorpb" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type GoFeatures struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -+} -+ -+func (x *GoFeatures) Reset() { -+ *x = GoFeatures{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GoFeatures) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GoFeatures) ProtoMessage() {} -+ -+func (x *GoFeatures) ProtoReflect() protoreflect.Message { -+ mi := &file_reflect_protodesc_proto_go_features_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 GoFeatures.ProtoReflect.Descriptor instead. -+func (*GoFeatures) Descriptor() ([]byte, []int) { -+ return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { -+ if x != nil && x.LegacyUnmarshalJsonEnum != nil { -+ return *x.LegacyUnmarshalJsonEnum -+ } -+ return false -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ -+ { -+ ExtendedType: (*descriptorpb.FeatureSet)(nil), -+ ExtensionType: (*GoFeatures)(nil), -+ Field: 1002, -+ Name: "google.protobuf.go", -+ Tag: "bytes,1002,opt,name=go", -+ Filename: "reflect/protodesc/proto/go_features.proto", -+ }, -+} -+ -+// Extension fields to descriptorpb.FeatureSet. -+var ( -+ // optional google.protobuf.GoFeatures go = 1002; -+ E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -+) -+ -+var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor -+ -+var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ -+ 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, -+ 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, -+ 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, -+ 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, -+ 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, -+ 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, -+ 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+} -+ -+var ( -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -+) -+ -+func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) -+ }) -+ return file_reflect_protodesc_proto_go_features_proto_rawDescData -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ -+ (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures -+ (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -+} -+var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ -+ 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet -+ 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures -+ 2, // [2:2] is the sub-list for method output_type -+ 2, // [2:2] is the sub-list for method input_type -+ 1, // [1:2] is the sub-list for extension type_name -+ 0, // [0:1] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_reflect_protodesc_proto_go_features_proto_init() } -+func file_reflect_protodesc_proto_go_features_proto_init() { -+ if File_reflect_protodesc_proto_go_features_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GoFeatures); 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_reflect_protodesc_proto_go_features_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 1, -+ NumServices: 0, -+ }, -+ GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, -+ DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, -+ MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, -+ ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, -+ }.Build() -+ File_reflect_protodesc_proto_go_features_proto = out.File -+ file_reflect_protodesc_proto_go_features_proto_rawDesc = nil -+ file_reflect_protodesc_proto_go_features_proto_goTypes = nil -+ file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -new file mode 100644 -index 00000000..d2465712 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -@@ -0,0 +1,28 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+syntax = "proto2"; -+ -+package google.protobuf; -+ -+import "google/protobuf/descriptor.proto"; -+ -+option go_package = "google.golang.org/protobuf/types/gofeaturespb"; -+ -+extend google.protobuf.FeatureSet { -+ optional GoFeatures go = 1002; -+} -+ -+message GoFeatures { -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ optional bool legacy_unmarshal_json_enum = 1 [ -+ retention = RETENTION_RUNTIME, -+ targets = TARGET_TYPE_ENUM, -+ edition_defaults = { edition: EDITION_PROTO2, value: "true" }, -+ edition_defaults = { edition: EDITION_PROTO3, value: "false" } -+ ]; -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index 580b232f..9de51be5 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -237,7 +237,8 @@ type Any struct { - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with -- // type.googleapis.com. -+ // type.googleapis.com. As of May 2023, there are no widely used type server -+ // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 987b5b1c..6636e54e 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -263,13 +263,14 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.31.0 --## explicit; go 1.11 -+# google.golang.org/protobuf v1.33.0 -+## explicit; go 1.17 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire - google.golang.org/protobuf/internal/descfmt - google.golang.org/protobuf/internal/descopts - google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/editiondefaults - google.golang.org/protobuf/internal/encoding/defval - google.golang.org/protobuf/internal/encoding/messageset - google.golang.org/protobuf/internal/encoding/tag -@@ -292,6 +293,7 @@ google.golang.org/protobuf/reflect/protoregistry - google.golang.org/protobuf/runtime/protoiface - google.golang.org/protobuf/runtime/protoimpl - google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/gofeaturespb - google.golang.org/protobuf/types/known/anypb - google.golang.org/protobuf/types/known/durationpb - google.golang.org/protobuf/types/known/timestamppb --- -2.40.1 - diff --git a/projects/containernetworking/plugins/1-29/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch b/projects/containernetworking/plugins/1-29/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch deleted file mode 100644 index 1a1c8490a3..0000000000 --- a/projects/containernetworking/plugins/1-29/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch +++ /dev/null @@ -1,2408 +0,0 @@ -From 8339edf51d004377876b9e4ee2daa0cbcbf5e760 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 9 May 2024 15:45:09 -0700 -Subject: [PATCH] Bump x/net to 0.23.0 to resolve CVE-2023-45288 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 12 +- - vendor/golang.org/x/net/context/go17.go | 1 - - vendor/golang.org/x/net/context/go19.go | 1 - - vendor/golang.org/x/net/context/pre_go17.go | 1 - - vendor/golang.org/x/net/context/pre_go19.go | 1 - - vendor/golang.org/x/net/html/token.go | 12 +- - .../x/net/internal/socket/cmsghdr.go | 1 - - .../x/net/internal/socket/cmsghdr_bsd.go | 1 - - .../internal/socket/cmsghdr_linux_32bit.go | 2 - - .../internal/socket/cmsghdr_linux_64bit.go | 2 - - .../internal/socket/cmsghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/cmsghdr_stub.go | 1 - - .../x/net/internal/socket/cmsghdr_unix.go | 1 - - .../net/internal/socket/complete_dontwait.go | 1 - - .../internal/socket/complete_nodontwait.go | 1 - - .../golang.org/x/net/internal/socket/empty.s | 1 - - .../x/net/internal/socket/error_unix.go | 1 - - .../x/net/internal/socket/iovec_32bit.go | 2 - - .../x/net/internal/socket/iovec_64bit.go | 2 - - .../internal/socket/iovec_solaris_64bit.go | 1 - - .../x/net/internal/socket/iovec_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_unix.go | 1 - - .../x/net/internal/socket/msghdr_bsd.go | 1 - - .../x/net/internal/socket/msghdr_bsdvar.go | 1 - - .../net/internal/socket/msghdr_linux_32bit.go | 2 - - .../net/internal/socket/msghdr_linux_64bit.go | 2 - - .../internal/socket/msghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/msghdr_stub.go | 1 - - .../x/net/internal/socket/msghdr_zos_s390x.go | 1 - - .../x/net/internal/socket/norace.go | 1 - - .../golang.org/x/net/internal/socket/race.go | 1 - - .../x/net/internal/socket/rawconn_mmsg.go | 1 - - .../x/net/internal/socket/rawconn_msg.go | 1 - - .../x/net/internal/socket/rawconn_nommsg.go | 1 - - .../x/net/internal/socket/rawconn_nomsg.go | 1 - - .../x/net/internal/socket/sys_bsd.go | 1 - - .../x/net/internal/socket/sys_const_unix.go | 1 - - .../x/net/internal/socket/sys_linux.go | 1 - - .../net/internal/socket/sys_linux_loong64.go | 1 - - .../net/internal/socket/sys_linux_riscv64.go | 1 - - .../x/net/internal/socket/sys_posix.go | 1 - - .../x/net/internal/socket/sys_stub.go | 1 - - .../x/net/internal/socket/sys_unix.go | 1 - - .../x/net/internal/socket/zsys_aix_ppc64.go | 1 - - .../net/internal/socket/zsys_linux_loong64.go | 1 - - .../net/internal/socket/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/net/ipv4/control_bsd.go | 1 - - .../golang.org/x/net/ipv4/control_pktinfo.go | 1 - - vendor/golang.org/x/net/ipv4/control_stub.go | 1 - - vendor/golang.org/x/net/ipv4/control_unix.go | 1 - - vendor/golang.org/x/net/ipv4/icmp_stub.go | 1 - - vendor/golang.org/x/net/ipv4/payload_cmsg.go | 1 - - .../golang.org/x/net/ipv4/payload_nocmsg.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_posix.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_aix.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreqn.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bsd.go | 1 - - vendor/golang.org/x/net/ipv4/sys_ssmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_stub.go | 1 - - .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 1 - - .../x/net/ipv4/zsys_linux_loong64.go | 1 - - .../x/net/ipv4/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/aliases.go | 2 +- - vendor/golang.org/x/sys/unix/mkerrors.sh | 39 ++-- - .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- - .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- - vendor/golang.org/x/sys/unix/syscall_linux.go | 99 ++++++++++ - vendor/golang.org/x/sys/unix/zerrors_linux.go | 90 ++++++++- - .../x/sys/unix/zerrors_linux_386.go | 3 + - .../x/sys/unix/zerrors_linux_amd64.go | 3 + - .../x/sys/unix/zerrors_linux_arm.go | 3 + - .../x/sys/unix/zerrors_linux_arm64.go | 3 + - .../x/sys/unix/zerrors_linux_loong64.go | 3 + - .../x/sys/unix/zerrors_linux_mips.go | 3 + - .../x/sys/unix/zerrors_linux_mips64.go | 3 + - .../x/sys/unix/zerrors_linux_mips64le.go | 3 + - .../x/sys/unix/zerrors_linux_mipsle.go | 3 + - .../x/sys/unix/zerrors_linux_ppc.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + - .../x/sys/unix/zerrors_linux_riscv64.go | 3 + - .../x/sys/unix/zerrors_linux_s390x.go | 3 + - .../x/sys/unix/zerrors_linux_sparc64.go | 3 + - .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + - .../x/sys/unix/zsyscall_openbsd_386.go | 2 - - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2 - - .../x/sys/unix/zsysnum_linux_386.go | 4 + - .../x/sys/unix/zsysnum_linux_amd64.go | 3 + - .../x/sys/unix/zsysnum_linux_arm.go | 4 + - .../x/sys/unix/zsysnum_linux_arm64.go | 4 + - .../x/sys/unix/zsysnum_linux_loong64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + - .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64le.go | 4 + - .../x/sys/unix/zsysnum_linux_riscv64.go | 4 + - .../x/sys/unix/zsysnum_linux_s390x.go | 4 + - .../x/sys/unix/zsysnum_linux_sparc64.go | 4 + - vendor/golang.org/x/sys/unix/ztypes_linux.go | 185 ++++++++++++------ - .../golang.org/x/sys/windows/env_windows.go | 17 +- - .../x/sys/windows/syscall_windows.go | 4 +- - .../x/sys/windows/zsyscall_windows.go | 9 + - vendor/modules.txt | 10 +- - 120 files changed, 501 insertions(+), 200 deletions(-) - -diff --git a/go.mod b/go.mod -index 47102692..f0b6e706 100644 ---- a/go.mod -+++ b/go.mod -@@ -20,7 +20,7 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.15.0 -+ golang.org/x/sys v0.18.0 - ) - - require ( -@@ -40,8 +40,8 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect -- golang.org/x/net v0.17.0 // indirect -- golang.org/x/text v0.13.0 // indirect -+ golang.org/x/net v0.23.0 // indirect -+ golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -diff --git a/go.sum b/go.sum -index e274380d..bf1e5961 100644 ---- a/go.sum -+++ b/go.sum -@@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= --golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - 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= -@@ -191,14 +191,14 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= --golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -+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/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= --golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+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/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= -diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go -index 2cb9c408..0c1b8679 100644 ---- a/vendor/golang.org/x/net/context/go17.go -+++ b/vendor/golang.org/x/net/context/go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.7 --// +build go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go -index 64d31ecc..e31e35a9 100644 ---- a/vendor/golang.org/x/net/context/go19.go -+++ b/vendor/golang.org/x/net/context/go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.9 --// +build go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go -index 7b6b6851..065ff3df 100644 ---- a/vendor/golang.org/x/net/context/pre_go17.go -+++ b/vendor/golang.org/x/net/context/pre_go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.7 --// +build !go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go -index 1f971534..ec5a6380 100644 ---- a/vendor/golang.org/x/net/context/pre_go19.go -+++ b/vendor/golang.org/x/net/context/pre_go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.9 --// +build !go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index de67f938..3c57880d 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { - return - } - switch c { -- case ' ', '\n', '\r', '\t', '\f', '/': -- z.pendingAttr[0].end = z.raw.end - 1 -- return - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { - continue - } - fallthrough -- case '>': -+ case ' ', '\n', '\r', '\t', '\f', '/', '>': -+ // WHATWG 13.2.5.33 Attribute name state -+ // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { - if z.err != nil { - return - } -+ if c == '/' { -+ // WHATWG 13.2.5.34 After attribute name state -+ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. -+ return -+ } - if c != '=' { - z.raw.end-- - return -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -index 4bdaaaf1..33a5bf59 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -index 0d30e0a0..68f438c8 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -index 4936e8a6..058ea8de 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -index f6877f98..3ca0d3a0 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -index d3dbe1b8..6d0e426c 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -index 1d9f2ed6..7ca9cb7e 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -index 19d46789..0211f225 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -index 5b1d50ae..2038f290 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -index be634095..70e6f448 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || windows || zos --// +build aix windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/empty.s b/vendor/golang.org/x/net/internal/socket/empty.s -index 90ab4ca3..49d79791 100644 ---- a/vendor/golang.org/x/net/internal/socket/empty.s -+++ b/vendor/golang.org/x/net/internal/socket/empty.s -@@ -3,6 +3,5 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && go1.12 --// +build darwin,go1.12 - - // This exists solely so we can linkname in symbols from syscall. -diff --git a/vendor/golang.org/x/net/internal/socket/error_unix.go b/vendor/golang.org/x/net/internal/socket/error_unix.go -index 78f41290..7a5cc5c4 100644 ---- a/vendor/golang.org/x/net/internal/socket/error_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/error_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -index 2b8fbb3f..340e53fb 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && (darwin || dragonfly || freebsd || linux || netbsd || openbsd) --// +build arm mips mipsle 386 ppc --// +build darwin dragonfly freebsd linux netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -index 2e94e96f..26470c19 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos) --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build aix darwin dragonfly freebsd linux netbsd openbsd zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -index f7da2bc4..8859ce10 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -index 14caf524..da886b03 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -index 113e773c..4825b21e 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !linux && !netbsd --// +build !aix,!linux,!netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -index 41883c53..311fd2c7 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || linux || netbsd --// +build aix linux netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -index 25f6847f..ebff4f6e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -index 5b8e00f1..62e6fe86 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd --// +build aix darwin dragonfly freebsd netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -index b4658fba..3dd07250 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -index 42411aff..5af9ddd6 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -index 3098f5d7..e212b50f 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -index eb79151f..e8767764 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -index 324e9ee7..529db68e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && zos --// +build s390x,zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go -index de0ad420..8af30ecf 100644 ---- a/vendor/golang.org/x/net/internal/socket/norace.go -+++ b/vendor/golang.org/x/net/internal/socket/norace.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !race --// +build !race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go -index f0a28a62..9afa9580 100644 ---- a/vendor/golang.org/x/net/internal/socket/race.go -+++ b/vendor/golang.org/x/net/internal/socket/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build race --// +build race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -index 8f79b38f..04313907 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -index f7d0b0d2..7c0d7410 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -index 02f32855..e363fb5a 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -index dd785877..ff7a8baf 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -index b258879d..e7664d48 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -index 5d99f237..d7627f87 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go -index 76f5b8ae..08d49107 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && !s390x && !386 --// +build linux,!s390x,!386 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -index af964e61..1d182470 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -index 5b128fbb..0e407d12 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go -index 42b8f234..58d86548 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_posix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go -index 7cfb349c..2e5b473c 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go -index de823932..93058db5 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -index 00691bd5..45bab004 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -index 6a94fec2..b6fc15a1 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -index c066272d..e67fc3cb 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go -index b7385dfd..c88da8cb 100644 ---- a/vendor/golang.org/x/net/ipv4/control_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -index 0e748dbd..14ae2dae 100644 ---- a/vendor/golang.org/x/net/ipv4/control_pktinfo.go -+++ b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || linux || solaris --// +build darwin linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/golang.org/x/net/ipv4/control_stub.go -index f27322c3..3ba66116 100644 ---- a/vendor/golang.org/x/net/ipv4/control_stub.go -+++ b/vendor/golang.org/x/net/ipv4/control_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/golang.org/x/net/ipv4/control_unix.go -index 2413e02f..2e765548 100644 ---- a/vendor/golang.org/x/net/ipv4/control_unix.go -+++ b/vendor/golang.org/x/net/ipv4/control_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/golang.org/x/net/ipv4/icmp_stub.go -index cd4ee6e1..c2c4ce7f 100644 ---- a/vendor/golang.org/x/net/ipv4/icmp_stub.go -+++ b/vendor/golang.org/x/net/ipv4/icmp_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -index 1bb370e2..91c685e8 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -index 53f0794e..2afd4b50 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -index eb07c1c0..82e2c378 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_posix.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -index cf036893..840108bf 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_aix.go b/vendor/golang.org/x/net/ipv4/sys_aix.go -index 02730cdf..9244a68a 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_aix.go -+++ b/vendor/golang.org/x/net/ipv4/sys_aix.go -@@ -4,7 +4,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -index 22322b38..645f254c 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris || windows --// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -index fde64014..48cfb6db 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !windows --// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -index 54eb9901..0b27b632 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux --// +build darwin freebsd linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -index dcb15f25..303a5e2e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux --// +build !darwin,!freebsd,!linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go -index fb11e324..1b4780df 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -index fc53a0d3..b1f779b4 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/golang.org/x/net/ipv4/sys_bsd.go -index e191b2f1..b7b032d2 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build netbsd || openbsd --// +build netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -index 6a4e7abf..a295e15e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux || solaris --// +build darwin freebsd linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -index 157159fd..74bd454e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux && !solaris --// +build !darwin,!freebsd,!linux,!solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/golang.org/x/net/ipv4/sys_stub.go -index d5508516..20af4074 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -index b7f2d6e5..dd454025 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -index e15c22c7..54f9e139 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -index e2edebdb..78374a52 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package ipv4 - -diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go -index e7d3df4b..b0e41985 100644 ---- a/vendor/golang.org/x/sys/unix/aliases.go -+++ b/vendor/golang.org/x/sys/unix/aliases.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 -+//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 6202638b..fdcaa974 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -248,6 +248,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -283,10 +284,6 @@ struct ltchars { - #include - #endif - --#ifndef MSG_FASTOPEN --#define MSG_FASTOPEN 0x20000000 --#endif -- - #ifndef PTRACE_GETREGS - #define PTRACE_GETREGS 0xc - #endif -@@ -295,14 +292,6 @@ struct ltchars { - #define PTRACE_SETREGS 0xd - #endif - --#ifndef SOL_NETLINK --#define SOL_NETLINK 270 --#endif -- --#ifndef SOL_SMC --#define SOL_SMC 286 --#endif -- - #ifdef SOL_BLUETOOTH - // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h - // but it is already in bluetooth_linux.go -@@ -319,10 +308,23 @@ struct ltchars { - #undef TIPC_WAIT_FOREVER - #define TIPC_WAIT_FOREVER 0xffffffff - --// Copied from linux/l2tp.h --// Including linux/l2tp.h here causes conflicts between linux/in.h --// and netinet/in.h included via net/route.h above. --#define IPPROTO_L2TP 115 -+// Copied from linux/netfilter/nf_nat.h -+// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -+// and netinet/in.h. -+#define NF_NAT_RANGE_MAP_IPS (1 << 0) -+#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -+#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -+#define NF_NAT_RANGE_PERSISTENT (1 << 3) -+#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -+#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -+#define NF_NAT_RANGE_NETMAP (1 << 6) -+#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ -+ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -+#define NF_NAT_RANGE_MASK \ -+ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ -+ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ -+ NF_NAT_RANGE_NETMAP) - - // Copied from linux/hid.h. - // Keep in sync with the size of the referenced fields. -@@ -582,7 +584,7 @@ ccflags="$@" - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || -- $2 ~ /^SECCOMP_MODE_/ || -+ $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || -@@ -603,6 +605,9 @@ ccflags="$@" - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || -+ $2 !~ /^NFT_META_IIFTYPE/ && -+ $2 ~ /^NFT_/ || -+ $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -index 16dc6993..2f0fa76e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build darwin && go1.12 -+//go:build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index 64d1bb4d..2b57e0f7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -13,6 +13,7 @@ - package unix - - import ( -+ "errors" - "sync" - "unsafe" - ) -@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) -- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { -+ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. -+ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) -- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) -- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) -- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) -- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index 0f85e29e..5682e262 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -1849,6 +1849,105 @@ func Dup2(oldfd, newfd int) error { - //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) - //sys Fsopen(fsName string, flags int) (fd int, err error) - //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -+ -+//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) -+ -+func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { -+ var keyp *byte -+ if keyp, err = BytePtrFromString(key); err != nil { -+ return -+ } -+ return fsconfig(fd, cmd, keyp, value, aux) -+} -+ -+// FsconfigSetFlag is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FLAG. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+func FsconfigSetFlag(fd int, key string) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -+} -+ -+// FsconfigSetString is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_STRING. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetString(fd int, key string, value string) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(value); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -+} -+ -+// FsconfigSetBinary is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_BINARY. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetBinary(fd int, key string, value []byte) (err error) { -+ if len(value) == 0 { -+ return EINVAL -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -+} -+ -+// FsconfigSetPath is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// path is a non-empty path for specified key. -+// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -+func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -+} -+ -+// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -+// FconfigSetPath but with AT_PATH_EMPTY implied. -+func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -+} -+ -+// FsconfigSetFd is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FD. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is a file descriptor to be assigned to specified key. -+func FsconfigSetFd(fd int, key string, value int) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -+} -+ -+// FsconfigCreate is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_CREATE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigCreate(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -+} -+ -+// FsconfigReconfigure is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_RECONFIGURE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigReconfigure(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -+} -+ - //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 - //sysnb Getpgid(pid int) (pgid int, err error) - -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index c73cfe2f..36bf8399 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -1785,6 +1785,8 @@ const ( - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 -+ LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 -+ LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef -@@ -2127,6 +2129,60 @@ const ( - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 -+ NFT_CHAIN_FLAGS = 0x7 -+ NFT_CHAIN_MAXNAMELEN = 0x100 -+ NFT_CT_MAX = 0x17 -+ NFT_DATA_RESERVED_MASK = 0xffffff00 -+ NFT_DATA_VALUE_MAXLEN = 0x40 -+ NFT_EXTHDR_OP_MAX = 0x4 -+ NFT_FIB_RESULT_MAX = 0x3 -+ NFT_INNER_MASK = 0xf -+ NFT_LOGLEVEL_MAX = 0x8 -+ NFT_NAME_MAXLEN = 0x100 -+ NFT_NG_MAX = 0x1 -+ NFT_OBJECT_CONNLIMIT = 0x5 -+ NFT_OBJECT_COUNTER = 0x1 -+ NFT_OBJECT_CT_EXPECT = 0x9 -+ NFT_OBJECT_CT_HELPER = 0x3 -+ NFT_OBJECT_CT_TIMEOUT = 0x7 -+ NFT_OBJECT_LIMIT = 0x4 -+ NFT_OBJECT_MAX = 0xa -+ NFT_OBJECT_QUOTA = 0x2 -+ NFT_OBJECT_SECMARK = 0x8 -+ NFT_OBJECT_SYNPROXY = 0xa -+ NFT_OBJECT_TUNNEL = 0x6 -+ NFT_OBJECT_UNSPEC = 0x0 -+ NFT_OBJ_MAXNAMELEN = 0x100 -+ NFT_OSF_MAXGENRELEN = 0x10 -+ NFT_QUEUE_FLAG_BYPASS = 0x1 -+ NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 -+ NFT_QUEUE_FLAG_MASK = 0x3 -+ NFT_REG32_COUNT = 0x10 -+ NFT_REG32_SIZE = 0x4 -+ NFT_REG_MAX = 0x4 -+ NFT_REG_SIZE = 0x10 -+ NFT_REJECT_ICMPX_MAX = 0x3 -+ NFT_RT_MAX = 0x4 -+ NFT_SECMARK_CTX_MAXLEN = 0x100 -+ NFT_SET_MAXNAMELEN = 0x100 -+ NFT_SOCKET_MAX = 0x3 -+ NFT_TABLE_F_MASK = 0x3 -+ NFT_TABLE_MAXNAMELEN = 0x100 -+ NFT_TRACETYPE_MAX = 0x3 -+ NFT_TUNNEL_F_MASK = 0x7 -+ NFT_TUNNEL_MAX = 0x1 -+ NFT_TUNNEL_MODE_MAX = 0x2 -+ NFT_USERDATA_MAXLEN = 0x100 -+ NFT_XFRM_KEY_MAX = 0x6 -+ NF_NAT_RANGE_MAP_IPS = 0x1 -+ NF_NAT_RANGE_MASK = 0x7f -+ NF_NAT_RANGE_NETMAP = 0x40 -+ NF_NAT_RANGE_PERSISTENT = 0x8 -+ NF_NAT_RANGE_PROTO_OFFSET = 0x20 -+ NF_NAT_RANGE_PROTO_RANDOM = 0x4 -+ NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 -+ NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 -@@ -2411,6 +2467,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b -@@ -2615,8 +2672,9 @@ const ( - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 -- RTAX_FEATURE_MASK = 0xf -+ RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 -+ RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb -@@ -2859,9 +2917,38 @@ const ( - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 -+ SECCOMP_ADDFD_FLAG_SEND = 0x2 -+ SECCOMP_ADDFD_FLAG_SETFD = 0x1 -+ SECCOMP_FILTER_FLAG_LOG = 0x2 -+ SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 -+ SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 -+ SECCOMP_FILTER_FLAG_TSYNC = 0x1 -+ SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 -+ SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 -+ SECCOMP_GET_ACTION_AVAIL = 0x2 -+ SECCOMP_GET_NOTIF_SIZES = 0x3 -+ SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 -+ SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 -+ SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 -+ SECCOMP_RET_ACTION = 0x7fff0000 -+ SECCOMP_RET_ACTION_FULL = 0xffff0000 -+ SECCOMP_RET_ALLOW = 0x7fff0000 -+ SECCOMP_RET_DATA = 0xffff -+ SECCOMP_RET_ERRNO = 0x50000 -+ SECCOMP_RET_KILL = 0x0 -+ SECCOMP_RET_KILL_PROCESS = 0x80000000 -+ SECCOMP_RET_KILL_THREAD = 0x0 -+ SECCOMP_RET_LOG = 0x7ffc0000 -+ SECCOMP_RET_TRACE = 0x7ff00000 -+ SECCOMP_RET_TRAP = 0x30000 -+ SECCOMP_RET_USER_NOTIF = 0x7fc00000 -+ SECCOMP_SET_MODE_FILTER = 0x1 -+ SECCOMP_SET_MODE_STRICT = 0x0 -+ SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 -+ SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 -@@ -3021,6 +3108,7 @@ const ( - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 -+ SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index 4920821c..42ff8c3c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index a0c1e411..dca43600 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -282,6 +282,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index c6398556..5cca668a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -288,6 +288,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 47cc62e2..d8cae6d1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -278,6 +278,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index 27ac4a09..28e39afd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -275,6 +275,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 54694642..cd66e92c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index 3adb81d7..c1595eba 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index 2dfe98f0..ee9456b0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index f5398f84..8cfca81e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index c54f152d..60b0deb3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -336,6 +336,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 76057dc7..f90aa728 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index e0c3725e..ba9e0150 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index 18f2813e..07cdfd6e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -272,6 +272,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 11619d4e..2f1dd214 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -344,6 +344,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index 396d994d..f40519d9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -335,6 +335,9 @@ const ( - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index 1488d271..87d8612a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -906,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { -+ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index a1d06159..9dc42410 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index 5b2a7409..0d3a0751 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index f6eda134..c39f7776 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index 55df20ae..57571d07 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index 8c1155cb..e62963e6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 7cc80c58..00831354 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 0688737f..79029ed5 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index fcf3ecbd..0cc3ce49 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -448,4 +448,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index f56dc250..856d92d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -371,4 +371,7 @@ const ( - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index 974bf246..8d467094 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -412,4 +412,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index 39a2739e..edc17324 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -315,4 +315,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index cf9c9d77..445eba20 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -309,4 +309,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 10b7362e..adba01bc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index cd4d8b4f..014c4e9c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index 2c0efca8..ccc97d74 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index a72e31d3..ec2b64a9 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index c7d1e374..21a839e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -439,4 +439,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index f4d4838c..c11121ec 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index b64f0e59..909b631f 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 95711195..e49bed16 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -316,4 +316,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index f94e943b..66017d2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -377,4 +377,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index ba0c2bc5..47bab18d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -390,4 +390,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index bbf8399f..eff6bcde 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -174,7 +174,8 @@ type FscryptPolicyV2 struct { - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 -- _ [4]uint8 -+ Log2_data_unit_size uint8 -+ _ [3]uint8 - Master_key_identifier [16]uint8 - } - -@@ -455,60 +456,63 @@ type Ucred struct { - } - - type TCPInfo struct { -- State uint8 -- Ca_state uint8 -- Retransmits uint8 -- Probes uint8 -- Backoff uint8 -- Options uint8 -- Rto uint32 -- Ato uint32 -- Snd_mss uint32 -- Rcv_mss uint32 -- Unacked uint32 -- Sacked uint32 -- Lost uint32 -- Retrans uint32 -- Fackets uint32 -- Last_data_sent uint32 -- Last_ack_sent uint32 -- Last_data_recv uint32 -- Last_ack_recv uint32 -- Pmtu uint32 -- Rcv_ssthresh uint32 -- Rtt uint32 -- Rttvar uint32 -- Snd_ssthresh uint32 -- Snd_cwnd uint32 -- Advmss uint32 -- Reordering uint32 -- Rcv_rtt uint32 -- Rcv_space uint32 -- Total_retrans uint32 -- Pacing_rate uint64 -- Max_pacing_rate uint64 -- Bytes_acked uint64 -- Bytes_received uint64 -- Segs_out uint32 -- Segs_in uint32 -- Notsent_bytes uint32 -- Min_rtt uint32 -- Data_segs_in uint32 -- Data_segs_out uint32 -- Delivery_rate uint64 -- Busy_time uint64 -- Rwnd_limited uint64 -- Sndbuf_limited uint64 -- Delivered uint32 -- Delivered_ce uint32 -- Bytes_sent uint64 -- Bytes_retrans uint64 -- Dsack_dups uint32 -- Reord_seen uint32 -- Rcv_ooopack uint32 -- Snd_wnd uint32 -- Rcv_wnd uint32 -- Rehash uint32 -+ State uint8 -+ Ca_state uint8 -+ Retransmits uint8 -+ Probes uint8 -+ Backoff uint8 -+ Options uint8 -+ Rto uint32 -+ Ato uint32 -+ Snd_mss uint32 -+ Rcv_mss uint32 -+ Unacked uint32 -+ Sacked uint32 -+ Lost uint32 -+ Retrans uint32 -+ Fackets uint32 -+ Last_data_sent uint32 -+ Last_ack_sent uint32 -+ Last_data_recv uint32 -+ Last_ack_recv uint32 -+ Pmtu uint32 -+ Rcv_ssthresh uint32 -+ Rtt uint32 -+ Rttvar uint32 -+ Snd_ssthresh uint32 -+ Snd_cwnd uint32 -+ Advmss uint32 -+ Reordering uint32 -+ Rcv_rtt uint32 -+ Rcv_space uint32 -+ Total_retrans uint32 -+ Pacing_rate uint64 -+ Max_pacing_rate uint64 -+ Bytes_acked uint64 -+ Bytes_received uint64 -+ Segs_out uint32 -+ Segs_in uint32 -+ Notsent_bytes uint32 -+ Min_rtt uint32 -+ Data_segs_in uint32 -+ Data_segs_out uint32 -+ Delivery_rate uint64 -+ Busy_time uint64 -+ Rwnd_limited uint64 -+ Sndbuf_limited uint64 -+ Delivered uint32 -+ Delivered_ce uint32 -+ Bytes_sent uint64 -+ Bytes_retrans uint64 -+ Dsack_dups uint32 -+ Reord_seen uint32 -+ Rcv_ooopack uint32 -+ Snd_wnd uint32 -+ Rcv_wnd uint32 -+ Rehash uint32 -+ Total_rto uint16 -+ Total_rto_recoveries uint16 -+ Total_rto_time uint32 - } - - type CanFilter struct { -@@ -551,7 +555,7 @@ const ( - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc -- SizeofTCPInfo = 0xf0 -+ SizeofTCPInfo = 0xf8 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 - ) -@@ -832,6 +836,15 @@ const ( - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -+ -+ FSCONFIG_SET_FLAG = 0x0 -+ FSCONFIG_SET_STRING = 0x1 -+ FSCONFIG_SET_BINARY = 0x2 -+ FSCONFIG_SET_PATH = 0x3 -+ FSCONFIG_SET_PATH_EMPTY = 0x4 -+ FSCONFIG_SET_FD = 0x5 -+ FSCONFIG_CMD_CREATE = 0x6 -+ FSCONFIG_CMD_RECONFIGURE = 0x7 - ) - - type OpenHow struct { -@@ -1546,6 +1559,7 @@ const ( - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 -+ IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1561,6 +1575,7 @@ const ( - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 -+ IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 -@@ -1608,6 +1623,9 @@ const ( - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e -+ IFLA_BR_MCAST_QUERIER_STATE = 0x2f -+ IFLA_BR_FDB_N_LEARNED = 0x30 -+ IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 -@@ -1645,6 +1663,14 @@ const ( - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 -+ IFLA_BRPORT_LOCKED = 0x27 -+ IFLA_BRPORT_MAB = 0x28 -+ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 -+ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a -+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b -+ IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 -@@ -1666,6 +1692,9 @@ const ( - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 -+ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 -+ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 -+ IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 -@@ -1689,9 +1718,22 @@ const ( - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 -+ IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 -+ NETKIT_NEXT = -0x1 -+ NETKIT_PASS = 0x0 -+ NETKIT_DROP = 0x2 -+ NETKIT_REDIRECT = 0x7 -+ NETKIT_L2 = 0x0 -+ NETKIT_L3 = 0x1 -+ IFLA_NETKIT_UNSPEC = 0x0 -+ IFLA_NETKIT_PEER_INFO = 0x1 -+ IFLA_NETKIT_PRIMARY = 0x2 -+ IFLA_NETKIT_POLICY = 0x3 -+ IFLA_NETKIT_PEER_POLICY = 0x4 -+ IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 -@@ -1722,6 +1764,8 @@ const ( - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d -+ IFLA_VXLAN_VNIFILTER = 0x1e -+ IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 -@@ -1736,6 +1780,7 @@ const ( - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd -+ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 -@@ -1748,6 +1793,8 @@ const ( - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 -+ IFLA_GTP_CREATE_SOCKETS = 0x5 -+ IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 -@@ -1777,6 +1824,9 @@ const ( - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c -+ IFLA_BOND_AD_LACP_ACTIVE = 0x1d -+ IFLA_BOND_MISSED_MAX = 0x1e -+ IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 -@@ -1792,6 +1842,7 @@ const ( - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 -+ IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 -@@ -1850,8 +1901,16 @@ const ( - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 -+ IFLA_STATS_GETSET_UNSPEC = 0x0 -+ IFLA_STATS_GET_FILTERS = 0x1 -+ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 -+ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 -@@ -1881,6 +1940,11 @@ const ( - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -+ IFLA_MCTP_UNSPEC = 0x0 -+ IFLA_MCTP_NET = 0x1 -+ IFLA_DSA_UNSPEC = 0x0 -+ IFLA_DSA_CONDUIT = 0x1 -+ IFLA_DSA_MASTER = 0x1 - ) - - const ( -@@ -3399,7 +3463,7 @@ const ( - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 -- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -+ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 - ) - - type FsverityDigest struct { -@@ -4183,7 +4247,8 @@ const ( - ) - - type LandlockRulesetAttr struct { -- Access_fs uint64 -+ Access_fs uint64 -+ Access_net uint64 - } - - type LandlockPathBeneathAttr struct { -@@ -5134,7 +5199,7 @@ const ( - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf -- NL80211_FREQUENCY_ATTR_MAX = 0x1b -+ NL80211_FREQUENCY_ATTR_MAX = 0x1c - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc -@@ -5547,7 +5612,7 @@ const ( - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 -- NL80211_REG_RULE_ATTR_MAX = 0x7 -+ NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index b8ad1925..d4577a42 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := unsafe.Pointer(block) -- for { -- entry := UTF16PtrToString((*uint16)(blockp)) -- if len(entry) == 0 { -- break -+ size := unsafe.Sizeof(*block) -+ for *block != 0 { -+ // find NUL terminator -+ end := unsafe.Pointer(block) -+ for *(*uint16)(end) != 0 { -+ end = unsafe.Add(end, size) - } -- env = append(env, entry) -- blockp = unsafe.Add(blockp, 2*(len(entry)+1)) -+ -+ entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) -+ env = append(env, UTF16ToString(entry)) -+ block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 47dc5796..6395a031 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string { - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } -- -- return string(utf16.Decode(unsafe.Slice(p, n))) -+ return UTF16ToString(unsafe.Slice(p, n)) - } - - func Getpagesize() int { return 4096 } -@@ -194,6 +193,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW - //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW - //sys SetEndOfFile(handle Handle) (err error) -+//sys SetFileValidData(handle Handle, validDataLength int64) (err error) - //sys GetSystemTimeAsFileTime(time *Filetime) - //sys GetSystemTimePreciseAsFileTime(time *Filetime) - //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 146a1f01..e8791c82 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -342,6 +342,7 @@ var ( - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") -+ procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") -@@ -2988,6 +2989,14 @@ func SetEndOfFile(handle Handle) (err error) { - return - } - -+func SetFileValidData(handle Handle, validDataLength int64) (err error) { -+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 6636e54e..aca1c689 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -191,8 +191,8 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.13.0 - ## explicit; go 1.18 - golang.org/x/mod/semver --# golang.org/x/net v0.17.0 --## explicit; go 1.17 -+# golang.org/x/net v0.23.0 -+## explicit; go 1.18 - golang.org/x/net/bpf - golang.org/x/net/context - golang.org/x/net/html -@@ -201,14 +201,14 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.15.0 -+# golang.org/x/sys v0.18.0 - ## explicit; go 1.18 - golang.org/x/sys/execabs - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.13.0 --## explicit; go 1.17 -+# golang.org/x/text v0.14.0 -+## explicit; go 1.18 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap - golang.org/x/text/encoding/htmlindex --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-30/GOLANG_VERSION b/projects/containernetworking/plugins/1-30/GOLANG_VERSION index d2ab029d32..71f7f51df9 100644 --- a/projects/containernetworking/plugins/1-30/GOLANG_VERSION +++ b/projects/containernetworking/plugins/1-30/GOLANG_VERSION @@ -1 +1 @@ -1.21 +1.22 diff --git a/projects/containernetworking/plugins/1-30/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch b/projects/containernetworking/plugins/1-30/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch deleted file mode 100644 index f859b72213..0000000000 --- a/projects/containernetworking/plugins/1-30/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch +++ /dev/null @@ -1,3157 +0,0 @@ -From f1e82f30296d45c942b5a45e2a922a38740366e6 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 4 Jan 2024 13:54:52 -0800 -Subject: [PATCH] Bump containerd verison to v1.7.11 to fix GHSA-7ww5-4wqc-m92c - -Signed-off-by: Sajia Zafreen ---- - go.mod | 10 +- - go.sum | 22 +- - vendor/github.com/sirupsen/logrus/README.md | 8 +- - vendor/github.com/sirupsen/logrus/writer.go | 34 +- - .../genproto/{ => googleapis/rpc}/LICENSE | 0 - .../grpc/attributes/attributes.go | 59 +- - .../grpc/grpclog/component.go | 40 +- - .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- - .../google.golang.org/grpc/grpclog/logger.go | 30 +- - .../grpc/grpclog/loggerv2.go | 56 +- - .../grpc/internal/credentials/credentials.go | 8 +- - .../grpc/internal/grpclog/grpclog.go | 40 +- - .../grpc/internal/grpclog/prefixLogger.go | 8 +- - .../grpc/internal/internal.go | 45 +- - .../grpc/internal/status/status.go | 8 +- - vendor/google.golang.org/grpc/resolver/map.go | 10 +- - .../grpc/resolver/resolver.go | 84 +- - .../google.golang.org/grpc/status/status.go | 14 +- - .../protobuf/encoding/prototext/encode.go | 14 +- - .../protobuf/internal/encoding/text/encode.go | 10 +- - .../protobuf/internal/genid/descriptor_gen.go | 48 + - .../protobuf/internal/genid/type_gen.go | 6 + - .../protobuf/internal/order/order.go | 2 +- - .../protobuf/internal/version/version.go | 2 +- - .../google.golang.org/protobuf/proto/size.go | 10 +- - .../reflect/protoreflect/source_gen.go | 27 + - .../types/descriptorpb/descriptor.pb.go | 1011 +++++++++++------ - .../protobuf/types/known/anypb/any.pb.go | 70 +- - .../types/known/timestamppb/timestamp.pb.go | 2 +- - vendor/modules.txt | 14 +- - 30 files changed, 1057 insertions(+), 665 deletions(-) - rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) - -diff --git a/go.mod b/go.mod -index 11944478..5be57166 100644 ---- a/go.mod -+++ b/go.mod -@@ -26,7 +26,7 @@ require ( - require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -- github.com/containerd/containerd v1.6.23 // indirect -+ github.com/containerd/containerd v1.7.11 // indirect - github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect -@@ -36,15 +36,15 @@ require ( - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -- github.com/sirupsen/logrus v1.9.0 // indirect -+ github.com/sirupsen/logrus v1.9.3 // indirect - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect -- google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -- google.golang.org/grpc v1.56.3 // indirect -- google.golang.org/protobuf v1.30.0 // indirect -+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect -+ google.golang.org/grpc v1.58.3 // indirect -+ google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index d67f299c..128e5c25 100644 ---- a/go.sum -+++ b/go.sum -@@ -16,8 +16,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= --github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= -+github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= -+github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= - github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= -@@ -113,8 +113,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= --github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= - 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= -@@ -124,8 +124,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - 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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -@@ -220,15 +220,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 - 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-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= - 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.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= --google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -+google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -+google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= - 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= -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= --google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md -index b042c896..d1d4a85f 100644 ---- a/vendor/github.com/sirupsen/logrus/README.md -+++ b/vendor/github.com/sirupsen/logrus/README.md -@@ -9,7 +9,7 @@ the last thing you want from your Logging library (again...). - - This does not mean Logrus is dead. Logrus will continue to be maintained for - security, (backwards compatible) bug fixes, and performance (where we are --limited by the interface). -+limited by the interface). - - I believe Logrus' biggest contribution is to have played a part in today's - widespread use of structured logging in Golang. There doesn't seem to be a -@@ -43,7 +43,7 @@ plain text): - With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash - or Splunk: - --```json -+```text - {"animal":"walrus","level":"info","msg":"A group of walrus emerges from the - ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} - -@@ -99,7 +99,7 @@ time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcr - ``` - Note that this does add measurable overhead - the cost will depend on the version of Go, but is - between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your --environment via benchmarks: -+environment via benchmarks: - ``` - go test -bench=.*CallerTracing - ``` -@@ -317,6 +317,8 @@ log.SetLevel(log.InfoLevel) - It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose - environment if your application has that. - -+Note: If you want different log levels for global (`log.SetLevel(...)`) and syslog logging, please check the [syslog hook README](hooks/syslog/README.md#different-log-levels-for-local-and-remote-logging). -+ - #### Entries - - Besides the fields added with `WithField` or `WithFields` some fields are -diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go -index 72e8e3a1..074fd4b8 100644 ---- a/vendor/github.com/sirupsen/logrus/writer.go -+++ b/vendor/github.com/sirupsen/logrus/writer.go -@@ -4,6 +4,7 @@ import ( - "bufio" - "io" - "runtime" -+ "strings" - ) - - // Writer at INFO level. See WriterLevel for details. -@@ -20,15 +21,18 @@ func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { - return NewEntry(logger).WriterLevel(level) - } - -+// Writer returns an io.Writer that writes to the logger at the info log level - func (entry *Entry) Writer() *io.PipeWriter { - return entry.WriterLevel(InfoLevel) - } - -+// WriterLevel returns an io.Writer that writes to the logger at the given log level - func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - reader, writer := io.Pipe() - - var printFunc func(args ...interface{}) - -+ // Determine which log function to use based on the specified log level - switch level { - case TraceLevel: - printFunc = entry.Trace -@@ -48,23 +52,51 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - printFunc = entry.Print - } - -+ // Start a new goroutine to scan the input and write it to the logger using the specified print function. -+ // It splits the input into chunks of up to 64KB to avoid buffer overflows. - go entry.writerScanner(reader, printFunc) -+ -+ // Set a finalizer function to close the writer when it is garbage collected - runtime.SetFinalizer(writer, writerFinalizer) - - return writer - } - -+// writerScanner scans the input from the reader and writes it to the logger - func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) { - scanner := bufio.NewScanner(reader) -+ -+ // Set the buffer size to the maximum token size to avoid buffer overflows -+ scanner.Buffer(make([]byte, bufio.MaxScanTokenSize), bufio.MaxScanTokenSize) -+ -+ // Define a split function to split the input into chunks of up to 64KB -+ chunkSize := bufio.MaxScanTokenSize // 64KB -+ splitFunc := func(data []byte, atEOF bool) (int, []byte, error) { -+ if len(data) >= chunkSize { -+ return chunkSize, data[:chunkSize], nil -+ } -+ -+ return bufio.ScanLines(data, atEOF) -+ } -+ -+ // Use the custom split function to split the input -+ scanner.Split(splitFunc) -+ -+ // Scan the input and write it to the logger using the specified print function - for scanner.Scan() { -- printFunc(scanner.Text()) -+ printFunc(strings.TrimRight(scanner.Text(), "\r\n")) - } -+ -+ // If there was an error while scanning the input, log an error - if err := scanner.Err(); err != nil { - entry.Errorf("Error while reading from Writer: %s", err) - } -+ -+ // Close the reader when we are done - reader.Close() - } - -+// WriterFinalizer is a finalizer function that closes then given writer when it is garbage collected - func writerFinalizer(writer *io.PipeWriter) { - writer.Close() - } -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -similarity index 100% -rename from vendor/google.golang.org/genproto/LICENSE -rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -index 3efca459..712fef4d 100644 ---- a/vendor/google.golang.org/grpc/attributes/attributes.go -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -34,26 +34,26 @@ import ( - // key/value pairs. Keys must be hashable, and users should define their own - // types for keys. Values should not be modified after they are added to an - // Attributes or if they were received from one. If values implement 'Equal(o --// interface{}) bool', it will be called by (*Attributes).Equal to determine --// whether two values with the same key should be considered equal. -+// any) bool', it will be called by (*Attributes).Equal to determine whether -+// two values with the same key should be considered equal. - type Attributes struct { -- m map[interface{}]interface{} -+ m map[any]any - } - - // New returns a new Attributes containing the key/value pair. --func New(key, value interface{}) *Attributes { -- return &Attributes{m: map[interface{}]interface{}{key: value}} -+func New(key, value any) *Attributes { -+ return &Attributes{m: map[any]any{key: value}} - } - - // WithValue returns a new Attributes containing the previous keys and values - // and the new key/value pair. If the same key appears multiple times, the - // last value overwrites all previous values for that key. To remove an - // existing key, use a nil value. value should not be modified later. --func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) - } -- n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } -@@ -63,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { - - // Value returns the value associated with these attributes for key, or nil if - // no value is associated with key. The returned value should not be modified. --func (a *Attributes) Value(key interface{}) interface{} { -+func (a *Attributes) Value(key any) any { - if a == nil { - return nil - } - return a.m[key] - } - --// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) --// bool' is implemented for a value in the attributes, it is called to --// determine if the value matches the one stored in the other attributes. If --// Equal is not implemented, standard equality is used to determine if the two --// values are equal. Note that some types (e.g. maps) aren't comparable by --// default, so they must be wrapped in a struct, or in an alias type, with Equal --// defined. -+// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is -+// implemented for a value in the attributes, it is called to determine if the -+// value matches the one stored in the other attributes. If Equal is not -+// implemented, standard equality is used to determine if the two values are -+// equal. Note that some types (e.g. maps) aren't comparable by default, so -+// they must be wrapped in a struct, or in an alias type, with Equal defined. - func (a *Attributes) Equal(o *Attributes) bool { - if a == nil && o == nil { - return true -@@ -93,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { - // o missing element of a - return false - } -- if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if eq, ok := v.(interface{ Equal(o any) bool }); ok { - if !eq.Equal(ov) { - return false - } -@@ -112,19 +111,31 @@ func (a *Attributes) String() string { - sb.WriteString("{") - first := true - for k, v := range a.m { -- var key, val string -- if str, ok := k.(interface{ String() string }); ok { -- key = str.String() -- } -- if str, ok := v.(interface{ String() string }); ok { -- val = str.String() -- } - if !first { - sb.WriteString(", ") - } -- sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) - first = false - } - sb.WriteString("}") - return sb.String() - } -+ -+func str(x any) string { -+ if v, ok := x.(fmt.Stringer); ok { -+ return v.String() -+ } else if v, ok := x.(string); ok { -+ return v -+ } -+ return fmt.Sprintf("<%p>", x) -+} -+ -+// MarshalJSON helps implement the json.Marshaler interface, thereby rendering -+// the Attributes correctly when printing (via pretty.JSON) structs containing -+// Attributes as fields. -+// -+// Is it impossible to unmarshal attributes from a JSON representation and this -+// method is meant only for debugging purposes. -+func (a *Attributes) MarshalJSON() ([]byte, error) { -+ return []byte(a.String()), nil -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -index 8358dd6e..ac73c9ce 100644 ---- a/vendor/google.golang.org/grpc/grpclog/component.go -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -31,71 +31,71 @@ type componentData struct { - - var cache = map[string]*componentData{} - --func (c *componentData) InfoDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) InfoDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.InfoDepth(depth+1, args...) - } - --func (c *componentData) WarningDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) WarningDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.WarningDepth(depth+1, args...) - } - --func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) ErrorDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.ErrorDepth(depth+1, args...) - } - --func (c *componentData) FatalDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) FatalDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.FatalDepth(depth+1, args...) - } - --func (c *componentData) Info(args ...interface{}) { -+func (c *componentData) Info(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warning(args ...interface{}) { -+func (c *componentData) Warning(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Error(args ...interface{}) { -+func (c *componentData) Error(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatal(args ...interface{}) { -+func (c *componentData) Fatal(args ...any) { - c.FatalDepth(1, args...) - } - --func (c *componentData) Infof(format string, args ...interface{}) { -+func (c *componentData) Infof(format string, args ...any) { - c.InfoDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Warningf(format string, args ...interface{}) { -+func (c *componentData) Warningf(format string, args ...any) { - c.WarningDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Errorf(format string, args ...interface{}) { -+func (c *componentData) Errorf(format string, args ...any) { - c.ErrorDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Fatalf(format string, args ...interface{}) { -+func (c *componentData) Fatalf(format string, args ...any) { - c.FatalDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Infoln(args ...interface{}) { -+func (c *componentData) Infoln(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warningln(args ...interface{}) { -+func (c *componentData) Warningln(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Errorln(args ...interface{}) { -+func (c *componentData) Errorln(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatalln(args ...interface{}) { -+func (c *componentData) Fatalln(args ...any) { - c.FatalDepth(1, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -index c8bb2be3..16928c9c 100644 ---- a/vendor/google.golang.org/grpc/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -42,53 +42,53 @@ func V(l int) bool { - } - - // Info logs to the INFO log. --func Info(args ...interface{}) { -+func Info(args ...any) { - grpclog.Logger.Info(args...) - } - - // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. --func Infof(format string, args ...interface{}) { -+func Infof(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. --func Infoln(args ...interface{}) { -+func Infoln(args ...any) { - grpclog.Logger.Infoln(args...) - } - - // Warning logs to the WARNING log. --func Warning(args ...interface{}) { -+func Warning(args ...any) { - grpclog.Logger.Warning(args...) - } - - // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. --func Warningf(format string, args ...interface{}) { -+func Warningf(format string, args ...any) { - grpclog.Logger.Warningf(format, args...) - } - - // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. --func Warningln(args ...interface{}) { -+func Warningln(args ...any) { - grpclog.Logger.Warningln(args...) - } - - // Error logs to the ERROR log. --func Error(args ...interface{}) { -+func Error(args ...any) { - grpclog.Logger.Error(args...) - } - - // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. --func Errorf(format string, args ...interface{}) { -+func Errorf(format string, args ...any) { - grpclog.Logger.Errorf(format, args...) - } - - // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. --func Errorln(args ...interface{}) { -+func Errorln(args ...any) { - grpclog.Logger.Errorln(args...) - } - - // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. - // It calls os.Exit() with exit code 1. --func Fatal(args ...interface{}) { -+func Fatal(args ...any) { - grpclog.Logger.Fatal(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { - - // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. - // It calls os.Exit() with exit code 1. --func Fatalf(format string, args ...interface{}) { -+func Fatalf(format string, args ...any) { - grpclog.Logger.Fatalf(format, args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { - - // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. - // It calle os.Exit()) with exit code 1. --func Fatalln(args ...interface{}) { -+func Fatalln(args ...any) { - grpclog.Logger.Fatalln(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { - // Print prints to the logger. Arguments are handled in the manner of fmt.Print. - // - // Deprecated: use Info. --func Print(args ...interface{}) { -+func Print(args ...any) { - grpclog.Logger.Info(args...) - } - - // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. - // - // Deprecated: use Infof. --func Printf(format string, args ...interface{}) { -+func Printf(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Println prints to the logger. Arguments are handled in the manner of fmt.Println. - // - // Deprecated: use Infoln. --func Println(args ...interface{}) { -+func Println(args ...any) { - grpclog.Logger.Infoln(args...) - } -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -index ef06a482..b1674d82 100644 ---- a/vendor/google.golang.org/grpc/grpclog/logger.go -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" - // - // Deprecated: use LoggerV2. - type Logger interface { -- Fatal(args ...interface{}) -- Fatalf(format string, args ...interface{}) -- Fatalln(args ...interface{}) -- Print(args ...interface{}) -- Printf(format string, args ...interface{}) -- Println(args ...interface{}) -+ Fatal(args ...any) -+ Fatalf(format string, args ...any) -+ Fatalln(args ...any) -+ Print(args ...any) -+ Printf(format string, args ...any) -+ Println(args ...any) - } - - // SetLogger sets the logger that is used in grpc. Call only from -@@ -45,39 +45,39 @@ type loggerWrapper struct { - Logger - } - --func (g *loggerWrapper) Info(args ...interface{}) { -+func (g *loggerWrapper) Info(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Infoln(args ...interface{}) { -+func (g *loggerWrapper) Infoln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+func (g *loggerWrapper) Infof(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Warning(args ...interface{}) { -+func (g *loggerWrapper) Warning(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Warningln(args ...interface{}) { -+func (g *loggerWrapper) Warningln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+func (g *loggerWrapper) Warningf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Error(args ...interface{}) { -+func (g *loggerWrapper) Error(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Errorln(args ...interface{}) { -+func (g *loggerWrapper) Errorln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+func (g *loggerWrapper) Errorf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -index 5de66e40..ecfd36d7 100644 ---- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -33,35 +33,35 @@ import ( - // LoggerV2 does underlying logging work for grpclog. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { - g.m[severity].Output(2, string(b)) - } - --func (g *loggerT) Info(args ...interface{}) { -+func (g *loggerT) Info(args ...any) { - g.output(infoLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Infoln(args ...interface{}) { -+func (g *loggerT) Infoln(args ...any) { - g.output(infoLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Infof(format string, args ...interface{}) { -+func (g *loggerT) Infof(format string, args ...any) { - g.output(infoLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Warning(args ...interface{}) { -+func (g *loggerT) Warning(args ...any) { - g.output(warningLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Warningln(args ...interface{}) { -+func (g *loggerT) Warningln(args ...any) { - g.output(warningLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Warningf(format string, args ...interface{}) { -+func (g *loggerT) Warningf(format string, args ...any) { - g.output(warningLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Error(args ...interface{}) { -+func (g *loggerT) Error(args ...any) { - g.output(errorLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Errorln(args ...interface{}) { -+func (g *loggerT) Errorln(args ...any) { - g.output(errorLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Errorf(format string, args ...interface{}) { -+func (g *loggerT) Errorf(format string, args ...any) { - g.output(errorLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Fatal(args ...interface{}) { -+func (g *loggerT) Fatal(args ...any) { - g.output(fatalLog, fmt.Sprint(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalln(args ...interface{}) { -+func (g *loggerT) Fatalln(args ...any) { - g.output(fatalLog, fmt.Sprintln(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalf(format string, args ...interface{}) { -+func (g *loggerT) Fatalf(format string, args ...any) { - g.output(fatalLog, fmt.Sprintf(format, args...)) - os.Exit(1) - } -@@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { - type DepthLoggerV2 interface { - LoggerV2 - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -index 32c9b590..9deee7f6 100644 ---- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -25,12 +25,12 @@ import ( - type requestInfoKey struct{} - - // NewRequestInfoContext creates a context with ri. --func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+func NewRequestInfoContext(ctx context.Context, ri any) context.Context { - return context.WithValue(ctx, requestInfoKey{}, ri) - } - - // RequestInfoFromContext extracts the RequestInfo from ctx. --func RequestInfoFromContext(ctx context.Context) interface{} { -+func RequestInfoFromContext(ctx context.Context) any { - return ctx.Value(requestInfoKey{}) - } - -@@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { - type clientHandshakeInfoKey struct{} - - // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. --func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+func ClientHandshakeInfoFromContext(ctx context.Context) any { - return ctx.Value(clientHandshakeInfoKey{}) - } - - // NewClientHandshakeInfoContext creates a context with chi. --func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { - return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -index b68e26a3..bfc45102 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -30,7 +30,7 @@ var Logger LoggerV2 - var DepthLogger DepthLoggerV2 - - // InfoDepth logs to the INFO log at the specified depth. --func InfoDepth(depth int, args ...interface{}) { -+func InfoDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.InfoDepth(depth, args...) - } else { -@@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { - } - - // WarningDepth logs to the WARNING log at the specified depth. --func WarningDepth(depth int, args ...interface{}) { -+func WarningDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.WarningDepth(depth, args...) - } else { -@@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { - } - - // ErrorDepth logs to the ERROR log at the specified depth. --func ErrorDepth(depth int, args ...interface{}) { -+func ErrorDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.ErrorDepth(depth, args...) - } else { -@@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { - } - - // FatalDepth logs to the FATAL log at the specified depth. --func FatalDepth(depth int, args ...interface{}) { -+func FatalDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.FatalDepth(depth, args...) - } else { -@@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { - // is defined here to avoid a circular dependency. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -116,11 +116,11 @@ type LoggerV2 interface { - // later release. - type DepthLoggerV2 interface { - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -index 02224b42..faa998de 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -31,7 +31,7 @@ type PrefixLogger struct { - } - - // Infof does info logging. --func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+func (pl *PrefixLogger) Infof(format string, args ...any) { - if pl != nil { - // Handle nil, so the tests can pass in a nil logger. - format = pl.prefix + format -@@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { - } - - // Warningf does warning logging. --func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Warningf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -@@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { - } - - // Errorf does error logging. --func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Errorf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -@@ -62,7 +62,7 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { - } - - // Debugf does info logging at verbose level 2. --func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Debugf(format string, args ...any) { - // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe - // rewrite PrefixLogger a little to ensure that we don't use the global - // `Logger` here, and instead use the `logger` field. -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -index 42ff39c8..c8a8c76d 100644 ---- a/vendor/google.golang.org/grpc/internal/internal.go -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -30,7 +30,7 @@ import ( - - var ( - // WithHealthCheckFunc is set by dialoptions.go -- WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ WithHealthCheckFunc any // func (HealthChecker) DialOption - // HealthCheckFunc is used to provide client-side LB channel health checking - HealthCheckFunc HealthChecker - // BalancerUnregister is exported by package balancer to unregister a balancer. -@@ -38,8 +38,12 @@ var ( - // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by - // default, but tests may wish to set it lower for convenience. - KeepaliveMinPingTime = 10 * time.Second -+ // KeepaliveMinServerPingTime is the minimum ping interval for servers. -+ // This must be 1s by default, but tests may wish to set it lower for -+ // convenience. -+ KeepaliveMinServerPingTime = time.Second - // ParseServiceConfig parses a JSON representation of the service config. -- ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ ParseServiceConfig any // func(string) *serviceconfig.ParseResult - // EqualServiceConfigForTesting is for testing service config generation and - // parsing. Both a and b should be returned by ParseServiceConfig. - // This function compares the config without rawJSON stripped, in case the -@@ -49,33 +53,33 @@ var ( - // given name. This is set by package certprovider for use from xDS - // bootstrap code while parsing certificate provider configs in the - // bootstrap file. -- GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ GetCertificateProviderBuilder any // func(string) certprovider.Builder - // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo - // stored in the passed in attributes. This is set by - // credentials/xds/xds.go. -- GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo - // GetServerCredentials returns the transport credentials configured on a - // gRPC server. An xDS-enabled server needs to know what type of credentials - // is configured on the underlying gRPC server. This is set by server.go. -- GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials - // CanonicalString returns the canonical string of the code defined here: - // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- CanonicalString interface{} // func (codes.Code) string -+ CanonicalString any // func (codes.Code) string - // DrainServerTransports initiates a graceful close of existing connections - // on a gRPC server accepted on the provided listener address. An - // xDS-enabled server invokes this method on a grpc.Server when a particular - // listener moves to "not-serving" mode. -- DrainServerTransports interface{} // func(*grpc.Server, string) -+ DrainServerTransports any // func(*grpc.Server, string) - // AddGlobalServerOptions adds an array of ServerOption that will be - // effective globally for newly created servers. The priority will be: 1. - // user-provided; 2. this method; 3. default values. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ AddGlobalServerOptions any // func(opt ...ServerOption) - // ClearGlobalServerOptions clears the array of extra ServerOption. This - // method is useful in testing and benchmarking. - // -@@ -88,14 +92,14 @@ var ( - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ AddGlobalDialOptions any // func(opt ...DialOption) - // DisableGlobalDialOptions returns a DialOption that prevents the - // ClientConn from applying the global DialOptions (set via - // AddGlobalDialOptions). - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ DisableGlobalDialOptions any // func() grpc.DialOption - // ClearGlobalDialOptions clears the array of extra DialOption. This - // method is useful in testing and benchmarking. - // -@@ -104,23 +108,26 @@ var ( - ClearGlobalDialOptions func() - // JoinDialOptions combines the dial options passed as arguments into a - // single dial option. -- JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption - // JoinServerOptions combines the server options passed as arguments into a - // single server option. -- JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption - - // WithBinaryLogger returns a DialOption that specifies the binary logger - // for a ClientConn. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption - // BinaryLogger returns a ServerOption that can set the binary logger for a - // server. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ BinaryLogger any // func(binarylog.Logger) grpc.ServerOption -+ -+ // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn -+ SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) - - // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using - // the provided xds bootstrap config instead of the global configuration from -@@ -131,7 +138,7 @@ var ( - // - // This function should ONLY be used for testing and may not work with some - // other features, including the CSDS service. -- NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) - - // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster - // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -@@ -163,7 +170,11 @@ var ( - UnregisterRBACHTTPFilterForTesting func() - - // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -- ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+ ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) -+ -+ // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra -+ // metadata to RPCs. -+ GRPCResolverSchemeExtraMetadata string = "xds" - ) - - // HealthChecker defines the signature of the client-side LB channel health checking function. -@@ -174,7 +185,7 @@ var ( - // - // The health checking protocol is defined at: - // https://github.com/grpc/grpc/blob/master/doc/health-checking.md --type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error - - const ( - // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index b0ead4f5..4cf85cad 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Err(c, fmt.Sprintf(format, a...)) - } - -@@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { - - // Details returns a slice of details messages attached to the status. - // If a detail cannot be decoded, the error is returned in place of the detail. --func (s *Status) Details() []interface{} { -+func (s *Status) Details() []any { - if s == nil || s.s == nil { - return nil - } -- details := make([]interface{}, 0, len(s.s.Details)) -+ details := make([]any, 0, len(s.s.Details)) - for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -index efcb7f3e..804be887 100644 ---- a/vendor/google.golang.org/grpc/resolver/map.go -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -20,7 +20,7 @@ package resolver - - type addressMapEntry struct { - addr Address -- value interface{} -+ value any - } - - // AddressMap is a map of addresses to arbitrary values taking into account -@@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { - } - - // Get returns the value for the address in the map, if present. --func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+func (a *AddressMap) Get(addr Address) (value any, ok bool) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { - } - - // Set updates or adds the value to the address in the map. --func (a *AddressMap) Set(addr Address, value interface{}) { -+func (a *AddressMap) Set(addr Address, value any) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { - } - - // Values returns a slice of all current map values. --func (a *AddressMap) Values() []interface{} { -- ret := make([]interface{}, 0, a.Len()) -+func (a *AddressMap) Values() []any { -+ ret := make([]any, 0, a.Len()) - for _, entryList := range a.m { - for _, entry := range entryList { - ret = append(ret, entry.value) -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -index 353c10b6..11384e22 100644 ---- a/vendor/google.golang.org/grpc/resolver/resolver.go -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -77,25 +77,6 @@ func GetDefaultScheme() string { - return defaultScheme - } - --// AddressType indicates the address type returned by name resolution. --// --// Deprecated: use Attributes in Address instead. --type AddressType uint8 -- --const ( -- // Backend indicates the address is for a backend server. -- // -- // Deprecated: use Attributes in Address instead. -- Backend AddressType = iota -- // GRPCLB indicates the address is for a grpclb load balancer. -- // -- // Deprecated: to select the GRPCLB load balancing policy, use a service -- // config with a corresponding loadBalancingConfig. To supply balancer -- // addresses to the GRPCLB load balancing policy, set State.Attributes -- // using balancer/grpclb/state.Set. -- GRPCLB --) -- - // Address represents a server the client connects to. - // - // # Experimental -@@ -111,9 +92,6 @@ type Address struct { - // the address, instead of the hostname from the Dial target string. In most cases, - // this should not be set. - // -- // If Type is GRPCLB, ServerName should be the name of the remote load -- // balancer, not the name of the backend. -- // - // WARNING: ServerName must only be populated with trusted values. It - // is insecure to populate it with data from untrusted inputs since untrusted - // values could be used to bypass the authority checks performed by TLS. -@@ -126,27 +104,29 @@ type Address struct { - // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attributes do not affect SubConn - // creation, connection establishment, handshaking, etc. -- BalancerAttributes *attributes.Attributes -- -- // Type is the type of this address. - // -- // Deprecated: use Attributes instead. -- Type AddressType -+ // Deprecated: when an Address is inside an Endpoint, this field should not -+ // be used, and it will eventually be removed entirely. -+ BalancerAttributes *attributes.Attributes - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // - // Deprecated: use Attributes instead. -- Metadata interface{} -+ Metadata any - } - - // Equal returns whether a and o are identical. Metadata is compared directly, - // not with any recursive introspection. -+// -+// This method compares all fields of the address. When used to tell apart -+// addresses during subchannel creation or connection establishment, it might be -+// more appropriate for the caller to implement custom equality logic. - func (a Address) Equal(o Address) bool { - return a.Addr == o.Addr && a.ServerName == o.ServerName && - a.Attributes.Equal(o.Attributes) && - a.BalancerAttributes.Equal(o.BalancerAttributes) && -- a.Type == o.Type && a.Metadata == o.Metadata -+ a.Metadata == o.Metadata - } - - // String returns JSON formatted string representation of the address. -@@ -190,11 +170,37 @@ type BuildOptions struct { - Dialer func(context.Context, string) (net.Conn, error) - } - -+// An Endpoint is one network endpoint, or server, which may have multiple -+// addresses with which it can be accessed. -+type Endpoint struct { -+ // Addresses contains a list of addresses used to access this endpoint. -+ Addresses []Address -+ -+ // Attributes contains arbitrary data about this endpoint intended for -+ // consumption by the LB policy. -+ Attributes *attributes.Attributes -+} -+ - // State contains the current Resolver state relevant to the ClientConn. - type State struct { - // Addresses is the latest set of resolved addresses for the target. -+ // -+ // If a resolver sets Addresses but does not set Endpoints, one Endpoint -+ // will be created for each Address before the State is passed to the LB -+ // policy. The BalancerAttributes of each entry in Addresses will be set -+ // in Endpoints.Attributes, and be cleared in the Endpoint's Address's -+ // BalancerAttributes. -+ // -+ // Soon, Addresses will be deprecated and replaced fully by Endpoints. - Addresses []Address - -+ // Endpoints is the latest set of resolved endpoints for the target. -+ // -+ // If a resolver produces a State containing Endpoints but not Addresses, -+ // it must take care to ensure the LB policies it selects will support -+ // Endpoints. -+ Endpoints []Endpoint -+ - // ServiceConfig contains the result from parsing the latest service - // config. If it is nil, it indicates no service config is present or the - // resolver does not provide service configs. -@@ -254,20 +260,7 @@ type ClientConn interface { - // target does not contain a scheme or if the parsed scheme is not registered - // (i.e. no corresponding resolver available to resolve the endpoint), we will - // apply the default scheme, and will attempt to reparse it. --// --// Examples: --// --// - "dns://some_authority/foo.bar" --// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} --// - "foo.bar" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} --// - "unknown_scheme://authority/endpoint" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} - type Target struct { -- // Deprecated: use URL.Scheme instead. -- Scheme string -- // Deprecated: use URL.Host instead. -- Authority string - // URL contains the parsed dial target with an optional default scheme added - // to it if the original dial target contained no scheme or contained an - // unregistered scheme. Any query params specified in the original dial -@@ -321,10 +314,3 @@ type Resolver interface { - // Close closes the resolver. - Close() - } -- --// UnregisterForTesting removes the resolver builder with the given scheme from the --// resolver map. --// This function is for testing only. --func UnregisterForTesting(scheme string) { -- delete(m, scheme) --} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index bcf2e4d8..a93360ef 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Error(c, fmt.Sprintf(format, a...)) - } - -@@ -99,25 +99,27 @@ func FromError(err error) (s *Status, ok bool) { - } - type grpcstatus interface{ GRPCStatus() *Status } - if gs, ok := err.(grpcstatus); ok { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error has status nil, which maps to codes.OK. There - // is no sensible behavior for this, so we turn it into - // an error with codes.Unknown and discard the existing - // status. - return New(codes.Unknown, err.Error()), false - } -- return gs.GRPCStatus(), true -+ return grpcStatus, true - } - var gs grpcstatus - if errors.As(err, &gs) { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error wraps an error that has status nil, which maps - // to codes.OK. There is no sensible behavior for this, - // so we turn it into an error with codes.Unknown and - // discard the existing status. - return New(codes.Unknown, err.Error()), false - } -- p := gs.GRPCStatus().Proto() -+ p := grpcStatus.Proto() - p.Message = err.Error() - return status.FromProto(p), true - } -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index ebf6c652..722a7b41 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -- return o.marshal(m) -+ return o.marshal(nil, m) -+} -+ -+// MarshalAppend appends the textproto format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { -+ return o.marshal(b, m) - } - - // marshal is a centralized function that all marshal operations go through. - // For profiling purposes, avoid changing the name of this function or - // introducing other code paths for marshal that do not go through this. --func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { - var delims = [2]byte{'{', '}'} - - if o.Multiline && o.Indent == "" { -@@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - o.Resolver = protoregistry.GlobalTypes - } - -- internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) - if err != nil { - return nil, err - } -@@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - // Treat nil message interface as an empty message, - // in which case there is nothing to output. - if m == nil { -- return []byte{}, nil -+ return b, nil - } - - enc := encoder{internalEnc, o} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -index da289ccc..cf7aed77 100644 ---- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -53,8 +53,10 @@ type encoderState struct { - // If outputASCII is true, strings will be serialized in such a way that - // multi-byte UTF-8 sequences are escaped. This property ensures that the - // overall output is ASCII (as opposed to UTF-8). --func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -- e := &Encoder{} -+func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{ -+ encoderState: encoderState{out: buf}, -+ } - if len(indent) > 0 { - if strings.Trim(indent, " \t") != "" { - return nil, errors.New("indent may only be composed of space and tab characters") -@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { - // WriteInt writes out the given signed integer value. - func (e *Encoder) WriteInt(n int64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatInt(n, 10)...) -+ e.out = strconv.AppendInt(e.out, n, 10) - } - - // WriteUint writes out the given unsigned integer value. - func (e *Encoder) WriteUint(n uint64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatUint(n, 10)...) -+ e.out = strconv.AppendUint(e.out, n, 10) - } - - // WriteLiteral writes out the given string as a literal value without quotes. -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 5c0e8f73..136f1b21 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -183,13 +183,58 @@ const ( - // Field names for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+ ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" -+ ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -+ ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -540,6 +585,7 @@ const ( - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_Targets_field_name protoreflect.Name = "targets" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -552,6 +598,7 @@ const ( - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -567,6 +614,7 @@ const ( - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index 3bc71013..e0f75fea 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -32,6 +32,7 @@ const ( - Type_Options_field_name protoreflect.Name = "options" - Type_SourceContext_field_name protoreflect.Name = "source_context" - Type_Syntax_field_name protoreflect.Name = "syntax" -+ Type_Edition_field_name protoreflect.Name = "edition" - - Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" - Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -@@ -39,6 +40,7 @@ const ( - Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" - Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" - Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+ Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" - ) - - // Field numbers for google.protobuf.Type. -@@ -49,6 +51,7 @@ const ( - Type_Options_field_number protoreflect.FieldNumber = 4 - Type_SourceContext_field_number protoreflect.FieldNumber = 5 - Type_Syntax_field_number protoreflect.FieldNumber = 6 -+ Type_Edition_field_number protoreflect.FieldNumber = 7 - ) - - // Names for google.protobuf.Field. -@@ -121,12 +124,14 @@ const ( - Enum_Options_field_name protoreflect.Name = "options" - Enum_SourceContext_field_name protoreflect.Name = "source_context" - Enum_Syntax_field_name protoreflect.Name = "syntax" -+ Enum_Edition_field_name protoreflect.Name = "edition" - - Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" - Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" - Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" - Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" - Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+ Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" - ) - - // Field numbers for google.protobuf.Enum. -@@ -136,6 +141,7 @@ const ( - Enum_Options_field_number protoreflect.FieldNumber = 3 - Enum_SourceContext_field_number protoreflect.FieldNumber = 4 - Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+ Enum_Edition_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.EnumValue. -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -index 33745ed0..dea522e1 100644 ---- a/vendor/google.golang.org/protobuf/internal/order/order.go -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -33,7 +33,7 @@ var ( - return !inOneof(ox) && inOneof(oy) - } - // Fields in disjoint oneof sets are sorted by declaration index. -- if ox != nil && oy != nil && ox != oy { -+ if inOneof(ox) && inOneof(oy) && ox != oy { - return ox.Index() < oy.Index() - } - // Fields sorted by field number. -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index f7014cd5..0999f29d 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 30 -+ Minor = 31 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -index 554b9c6c..f1692b49 100644 ---- a/vendor/google.golang.org/protobuf/proto/size.go -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore - } - - func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - if fd.IsPacked() && list.Len() > 0 { - content := 0 - for i, llen := 0, list.Len(); i < llen; i++ { - content += o.sizeSingular(num, fd.Kind(), list.Get(i)) - } -- return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ return sizeTag + protowire.SizeBytes(content) - } - - for i, llen := 0, list.Len(); i < llen; i++ { -- size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) - } - return size - } - - func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -- size += protowire.SizeTag(num) -+ size += sizeTag - size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) - return true - }) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 54ce326d..717b106f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) -+ case 19: -+ b = p.appendRepeatedField(b, "targets", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - switch (*p)[0] { - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ case 2: -+ b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 3: -+ b = p.appendSingularField(b, "verification", nil) - } - return b - } -@@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - } - return b - } -+ -+func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "number", nil) -+ case 2: -+ b = p.appendSingularField(b, "full_name", nil) -+ case 3: -+ b = p.appendSingularField(b, "type", nil) -+ case 4: -+ b = p.appendSingularField(b, "is_repeated", nil) -+ case 5: -+ b = p.appendSingularField(b, "reserved", nil) -+ case 6: -+ b = p.appendSingularField(b, "repeated", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index dac5671d..04c00f73 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,64 @@ import ( - sync "sync" - ) - -+// The verification state of the extension range. -+type ExtensionRangeOptions_VerificationState int32 -+ -+const ( -+ // All the extensions of the range must be declared. -+ ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 -+ ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 -+) -+ -+// Enum value maps for ExtensionRangeOptions_VerificationState. -+var ( -+ ExtensionRangeOptions_VerificationState_name = map[int32]string{ -+ 0: "DECLARATION", -+ 1: "UNVERIFIED", -+ } -+ ExtensionRangeOptions_VerificationState_value = map[string]int32{ -+ "DECLARATION": 0, -+ "UNVERIFIED": 1, -+ } -+) -+ -+func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { -+ p := new(ExtensionRangeOptions_VerificationState) -+ *p = x -+ return p -+} -+ -+func (x ExtensionRangeOptions_VerificationState) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = ExtensionRangeOptions_VerificationState(num) -+ return nil -+} -+ -+// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. -+func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ - type FieldDescriptorProto_Type int32 - - const ( -@@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -288,7 +346,13 @@ type FieldOptions_CType int32 - - const ( - // Default mode. -- FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_STRING FieldOptions_CType = 0 -+ // The option [ctype=CORD] may be applied to a non-repeated field of type -+ // "bytes". It indicates that in C++, the data should be stored in a Cord -+ // instead of a string. For very large strings, this may reduce memory -+ // fragmentation. It may also allow better performance when parsing from a -+ // Cord, or when parsing with aliasing enabled, as the parsed Cord may then -+ // alias the original buffer. - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 - ) -@@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -442,11 +506,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -526,11 +590,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -588,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -652,11 +716,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -1015,7 +1079,21 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` --} -+ // go/protobuf-stripping-extension-declarations -+ // Like Metadata, but we use a repeated field to hold all extension -+ // declarations. This should avoid the size increases of transforming a large -+ // extension range into small ranges in generated binaries. -+ Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // The verification state of the range. -+ // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // are marked as UNVERIFIED. -+ Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` -+} -+ -+// Default values for ExtensionRangeOptions fields. -+const ( -+ Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED -+) - - func (x *ExtensionRangeOptions) Reset() { - *x = ExtensionRangeOptions{} -@@ -1056,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption - return nil - } - -+func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { -+ if x != nil { -+ return x.Declaration -+ } -+ return nil -+} -+ -+func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { -+ if x != nil && x.Verification != nil { -+ return *x.Verification -+ } -+ return Default_ExtensionRangeOptions_Verification -+} -+ - // Describes a field within a message. - type FieldDescriptorProto struct { - state protoimpl.MessageState -@@ -2046,8 +2138,10 @@ type FieldOptions struct { - - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific -- // options below. This option is not yet implemented in the open source -- // release -- sorry, we'll try to include it in a future version! -+ // options below. This option is only implemented to support use of -+ // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of -+ // type "bytes" in the open source release -- sorry, we'll try to include -+ // other types in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly -@@ -2111,9 +2205,11 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2224,6 +2320,7 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target -@@ -2231,6 +2328,13 @@ func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - return FieldOptions_TARGET_TYPE_UNKNOWN - } - -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets -+ } -+ return nil -+} -+ - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2960,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { - return 0 - } - -+type ExtensionRangeOptions_Declaration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The extension number declared within the extension range. -+ Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` -+ // The fully-qualified name of the extension field. There must be a leading -+ // dot in front of the full name. -+ FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` -+ // The fully-qualified type name of the extension field. Unlike -+ // Metadata.type, Declaration.type must have a leading dot for messages -+ // and enums. -+ Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -+ // Deprecated. Please use "repeated". -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` -+ // If true, indicates that the number is reserved in the extension range, -+ // and any extension field with the number will fail to compile. Set this -+ // when a declared extension field is deleted. -+ Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` -+ // If true, indicates that the extension must be defined as repeated. -+ // Otherwise the extension must be defined as optional. -+ Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions_Declaration) Reset() { -+ *x = ExtensionRangeOptions_Declaration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions_Declaration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ 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 ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetFullName() string { -+ if x != nil && x.FullName != nil { -+ return *x.FullName -+ } -+ return "" -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetType() string { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return "" -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -+ if x != nil && x.IsRepeated != nil { -+ return *x.IsRepeated -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { -+ if x != nil && x.Reserved != nil { -+ return *x.Reserved -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { -+ if x != nil && x.Repeated != nil { -+ return *x.Repeated -+ } -+ return false -+} -+ - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // -@@ -2978,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2991,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3038,7 +3244,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3051,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3182,7 +3388,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3195,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3269,7 +3475,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3282,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3436,264 +3642,296 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -- 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -- 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -- 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -+ 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -+ 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -+ 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -+ 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -+ 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -+ 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -+ 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -- 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -- 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -- 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -- 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -- 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -- 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -- 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -- 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -- 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -- 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -- 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -- 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -- 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -- 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -- 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -- 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -- 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -- 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -- 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -- 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -- 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -- 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -- 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -+ 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -+ 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -+ 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -+ 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -+ 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -+ 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -+ 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -+ 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -+ 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -+ 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -+ 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -+ 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -+ 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -+ 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -+ 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -+ 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -+ 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -+ 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -+ 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -+ 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -+ 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -+ 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -+ 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -+ 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -+ 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -+ 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -+ 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -+ 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -+ 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -- 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -- 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -- 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -- 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -- 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -- 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -- 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -- 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -- 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -- 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -- 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -- 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -- 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -- 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -- 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -- 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -- 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -- 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -- 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -- 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -- 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -- 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -- 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -- 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -- 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -- 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -- 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -- 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -- 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -- 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -- 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -- 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -- 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -- 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -- 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -- 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -- 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -- 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -- 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -- 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -- 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -- 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -- 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -- 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -- 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -- 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -- 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -- 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -- 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -- 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -- 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -- 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -- 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -- 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -- 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -- 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -- 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -- 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -- 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -- 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -- 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -- 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -- 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -- 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -- 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -+ 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -+ 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -+ 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -+ 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -+ 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, -+ 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, -+ 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, -+ 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, -+ 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, -+ 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, -+ 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, -+ 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, -+ 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, -+ 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, -+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -- 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -- 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -- 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -- 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -- 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -- 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -- 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -- 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -- 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -- 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -- 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -+ 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -+ 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -+ 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -+ 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -+ 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -+ 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -+ 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -+ 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -+ 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -+ 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -+ 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -+ 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -+ 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -+ 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -+ 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -+ 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -+ 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -+ 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -@@ -3885,98 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 19: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+ (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 20: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 46, // [46:46] is the sub-list for method output_type -- 46, // [46:46] is the sub-list for method input_type -- 46, // [46:46] is the sub-list for extension type_name -- 46, // [46:46] is the sub-list for extension extendee -- 0, // [0:46] is the sub-list for field type_name -+ 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 49, // [49:49] is the sub-list for method output_type -+ 49, // [49:49] is the sub-list for method input_type -+ 49, // [49:49] is the sub-list for extension type_name -+ 49, // [49:49] is the sub-list for extension extendee -+ 0, // [0:49] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4280,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4292,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4304,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*UninterpretedOption_NamePart); i { - case 0: - return &v.state - case 1: -@@ -4316,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4333,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 9, -- NumMessages: 27, -+ NumEnums: 10, -+ NumMessages: 28, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index a6c7a33f..580b232f 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -142,39 +142,39 @@ import ( - // - // Example 2: Pack and unpack a message in Java. - // --// Foo foo = ...; --// Any any = Any.pack(foo); --// ... --// if (any.is(Foo.class)) { --// foo = any.unpack(Foo.class); --// } --// // or ... --// if (any.isSameTypeAs(Foo.getDefaultInstance())) { --// foo = any.unpack(Foo.getDefaultInstance()); --// } --// --// Example 3: Pack and unpack a message in Python. --// --// foo = Foo(...) --// any = Any() --// any.Pack(foo) --// ... --// if any.Is(Foo.DESCRIPTOR): --// any.Unpack(foo) --// ... --// --// Example 4: Pack and unpack a message in Go --// --// foo := &pb.Foo{...} --// any, err := anypb.New(foo) --// if err != nil { --// ... --// } --// ... --// foo := &pb.Foo{} --// if err := any.UnmarshalTo(foo); err != nil { --// ... --// } -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } - // - // The pack methods provided by protobuf library will by default use - // 'type.googleapis.com/full.type.name' as the type URL and the unpack -@@ -182,8 +182,8 @@ import ( - // in the type URL, for example "foo.bar.com/x/y.z" will yield type - // name "y.z". - // --// # JSON --// -+// JSON -+// ==== - // The JSON representation of an `Any` value uses the regular - // representation of the deserialized, embedded message, with an - // additional field `@type` which contains the type URL. Example: -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -index 61f69fc1..81511a33 100644 ---- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -167,7 +167,7 @@ import ( - // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - // the Joda Time's [`ISODateTimeFormat.dateTime()`]( --// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - // ) to obtain a formatter capable of generating timestamps in this format. - type Timestamp struct { - state protoimpl.MessageState -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 09b061d6..987b5b1c 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -46,8 +46,8 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 --# github.com/containerd/containerd v1.6.23 --## explicit; go 1.18 -+# github.com/containerd/containerd v1.7.11 -+## explicit; go 1.19 - github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 -@@ -171,7 +171,7 @@ github.com/pkg/errors - # github.com/safchain/ethtool v0.3.0 - ## explicit; go 1.16 - github.com/safchain/ethtool --# github.com/sirupsen/logrus v1.9.0 -+# github.com/sirupsen/logrus v1.9.3 - ## explicit; go 1.13 - github.com/sirupsen/logrus - # github.com/vishvananda/netlink v1.2.1-beta.2 -@@ -246,11 +246,11 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+# google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 - ## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.56.3 --## explicit; go 1.17 -+# google.golang.org/grpc v1.58.3 -+## explicit; go 1.19 - google.golang.org/grpc/attributes - google.golang.org/grpc/codes - google.golang.org/grpc/connectivity -@@ -263,7 +263,7 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.30.0 -+# google.golang.org/protobuf v1.31.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-30/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch b/projects/containernetworking/plugins/1-30/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch deleted file mode 100644 index a69520b061..0000000000 --- a/projects/containernetworking/plugins/1-30/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch +++ /dev/null @@ -1,7533 +0,0 @@ -From 3af5aa8e661a642da31295a18e637f975a4706a5 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Fri, 22 Mar 2024 19:12:56 +0000 -Subject: [PATCH] Bump protobuf to 1.33.0 to resolve CVE-2024-24786 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 2 +- - go.sum | 4 +- - .../protobuf/encoding/prototext/decode.go | 8 +- - .../protobuf/encoding/prototext/encode.go | 4 +- - .../protobuf/encoding/protowire/wire.go | 28 +- - .../protobuf/internal/descfmt/stringer.go | 183 +- - .../internal/editiondefaults/defaults.go | 12 + - .../editiondefaults/editions_defaults.binpb | 4 + - .../protobuf/internal/filedesc/desc.go | 102 +- - .../protobuf/internal/filedesc/desc_init.go | 52 + - .../protobuf/internal/filedesc/desc_lazy.go | 28 + - .../protobuf/internal/filedesc/editions.go | 142 + - .../protobuf/internal/genid/descriptor_gen.go | 364 ++- - .../internal/genid/go_features_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 5 + - .../protobuf/internal/genid/type_gen.go | 38 + - .../protobuf/internal/impl/codec_extension.go | 22 +- - .../protobuf/internal/impl/codec_gen.go | 113 +- - .../protobuf/internal/impl/codec_tables.go | 2 +- - .../protobuf/internal/impl/legacy_message.go | 19 +- - .../protobuf/internal/impl/message.go | 17 +- - .../internal/impl/message_reflect_field.go | 2 +- - .../protobuf/internal/impl/pointer_reflect.go | 36 + - .../protobuf/internal/impl/pointer_unsafe.go | 40 + - .../protobuf/internal/strs/strings.go | 2 +- - ...ings_unsafe.go => strings_unsafe_go120.go} | 4 +- - .../internal/strs/strings_unsafe_go121.go | 74 + - .../protobuf/internal/version/version.go | 2 +- - .../protobuf/proto/decode.go | 2 +- - .../google.golang.org/protobuf/proto/doc.go | 58 +- - .../protobuf/proto/encode.go | 2 +- - .../protobuf/proto/extension.go | 2 +- - .../google.golang.org/protobuf/proto/merge.go | 2 +- - .../google.golang.org/protobuf/proto/proto.go | 18 +- - .../protobuf/reflect/protodesc/desc.go | 29 +- - .../protobuf/reflect/protodesc/desc_init.go | 56 + - .../reflect/protodesc/desc_resolve.go | 4 +- - .../reflect/protodesc/desc_validate.go | 6 +- - .../protobuf/reflect/protodesc/editions.go | 148 + - .../protobuf/reflect/protodesc/proto.go | 18 +- - .../protobuf/reflect/protoreflect/proto.go | 85 +- - .../reflect/protoreflect/source_gen.go | 64 +- - .../protobuf/reflect/protoreflect/type.go | 44 +- - .../protobuf/reflect/protoreflect/value.go | 24 +- - .../reflect/protoreflect/value_equal.go | 8 +- - .../reflect/protoreflect/value_union.go | 44 +- - ...{value_unsafe.go => value_unsafe_go120.go} | 4 +- - .../protoreflect/value_unsafe_go121.go | 87 + - .../reflect/protoregistry/registry.go | 24 +- - .../types/descriptorpb/descriptor.pb.go | 2475 ++++++++++++----- - .../types/gofeaturespb/go_features.pb.go | 177 ++ - .../types/gofeaturespb/go_features.proto | 28 + - .../protobuf/types/known/anypb/any.pb.go | 3 +- - vendor/modules.txt | 6 +- - 54 files changed, 3699 insertions(+), 1059 deletions(-) - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/editions.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go - rename vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe.go => strings_unsafe_go120.go} (96%) - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go - rename vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe.go => value_unsafe_go120.go} (97%) - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto - -diff --git a/go.mod b/go.mod -index 5be57166..47102692 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,6 @@ require ( - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -- google.golang.org/protobuf v1.31.0 // indirect -+ google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 128e5c25..e274380d 100644 ---- a/go.sum -+++ b/go.sum -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= --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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -index 4921b2d4..a45f112b 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -21,7 +21,7 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - --// Unmarshal reads the given []byte into the given proto.Message. -+// Unmarshal reads the given []byte into the given [proto.Message]. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func Unmarshal(b []byte, m proto.Message) error { - return UnmarshalOptions{}.Unmarshal(b, m) -@@ -51,7 +51,7 @@ type UnmarshalOptions struct { - } - } - --// Unmarshal reads the given []byte and populates the given proto.Message -+// Unmarshal reads the given []byte and populates the given [proto.Message] - // using options in the UnmarshalOptions object. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -@@ -739,7 +739,9 @@ func (d decoder) skipValue() error { - case text.ListClose: - return nil - case text.MessageOpen: -- return d.skipMessageValue() -+ if err := d.skipMessageValue(); err != nil { -+ return err -+ } - default: - // Skip items. This will not validate whether skipped values are - // of the same type or not, same behavior as C++ -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index 722a7b41..95967e81 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -33,7 +33,7 @@ func Format(m proto.Message) string { - return MarshalOptions{Multiline: true}.Format(m) - } - --// Marshal writes the given proto.Message in textproto format using default -+// Marshal writes the given [proto.Message] in textproto format using default - // options. Do not depend on the output being stable. It may change over time - // across different versions of the program. - func Marshal(m proto.Message) ([]byte, error) { -@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string { - return string(b) - } - --// Marshal writes the given proto.Message in textproto format using options in -+// Marshal writes the given [proto.Message] in textproto format using options in - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -index f4b4686c..e942bc98 100644 ---- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -6,7 +6,7 @@ - // See https://protobuf.dev/programming-guides/encoding. - // - // For marshaling and unmarshaling entire protobuf messages, --// use the "google.golang.org/protobuf/proto" package instead. -+// use the [google.golang.org/protobuf/proto] package instead. - package protowire - - import ( -@@ -87,7 +87,7 @@ func ParseError(n int) error { - - // ConsumeField parses an entire field record (both tag and value) and returns - // the field number, the wire type, and the total length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - // - // The total length includes the tag header and the end group marker (if the - // field is a group). -@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) { - } - - // ConsumeFieldValue parses a field value and returns its length. --// This assumes that the field Number and wire Type have already been parsed. --// This returns a negative length upon an error (see ParseError). -+// This assumes that the field [Number] and wire [Type] have already been parsed. -+// This returns a negative length upon an error (see [ParseError]). - // - // When parsing a group, the length includes the end group marker and - // the end group is verified to match the starting field number. -@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte { - } - - // ConsumeTag parses b as a varint-encoded tag, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeTag(b []byte) (Number, Type, int) { - v, n := ConsumeVarint(b) - if n < 0 { -@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte { - } - - // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - if len(b) <= 0 { -@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte { - } - - // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, errCodeTruncated -@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte { - } - - // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, errCodeTruncated -@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte { - } - - // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeBytes(b []byte) (v []byte, n int) { - m, n := ConsumeVarint(b) - if n < 0 { -@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte { - } - - // ConsumeString parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeString(b []byte) (v string, n int) { - bb, n := ConsumeBytes(b) - return string(bb), n -@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte { - // ConsumeGroup parses b as a group value until the trailing end group marker, - // and verifies that the end marker matches the provided num. The value v - // does not contain the end marker, while the length does contain the end marker. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeGroup(num Number, b []byte) (v []byte, n int) { - n = ConsumeFieldValue(num, StartGroupType, b) - if n < 0 { -@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int { - return n + SizeTag(num) - } - --// DecodeTag decodes the field Number and wire Type from its unified form. --// The Number is -1 if the decoded field number overflows int32. -+// DecodeTag decodes the field [Number] and wire [Type] from its unified form. -+// The [Number] is -1 if the decoded field number overflows int32. - // Other than overflow, this does not check for field number validity. - func DecodeTag(x uint64) (Number, Type) { - // NOTE: MessageSet allows for larger field numbers than normal. -@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) { - return Number(x >> 3), Type(x & 7) - } - --// EncodeTag encodes the field Number and wire Type into its unified form. -+// EncodeTag encodes the field [Number] and wire [Type] into its unified form. - func EncodeTag(num Number, typ Type) uint64 { - return uint64(num)<<3 | uint64(typ&7) - } -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -index db5248e1..a45625c8 100644 ---- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - case protoreflect.FileImports: - for i := 0; i < vs.Len(); i++ { - var rs records -- rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ rv := reflect.ValueOf(vs.Get(i)) -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPublic"), "IsPublic"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ }...) - ss = append(ss, "{"+rs.Join()+"}") - } - return start + joinStrings(ss, allowMulti) + end -@@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - for i := 0; i < vs.Len(); i++ { - m := reflect.ValueOf(vs).MethodByName("Get") - v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -- ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil)) - } - return start + joinStrings(ss, allowMulti && isEnumValue) + end - } - } - --// descriptorAccessors is a list of accessors to print for each descriptor. --// --// Do not print all accessors since some contain redundant information, --// while others are pointers that we do not want to follow since the descriptor --// is actually a cyclic graph. --// --// Using a list allows us to print the accessors in a sensible order. --var descriptorAccessors = map[reflect.Type][]string{ -- reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -- reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -- reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -- reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -- reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -- reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -- reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -- reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+type methodAndName struct { -+ method reflect.Value -+ name string - } - - func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -- io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil)) - } --func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ -+func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { -+ return formatDescOpt(t, isRoot, allowMulti, record) -+} -+ -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { - rv := reflect.ValueOf(t) - rt := rv.MethodByName("ProtoType").Type().In(0) - -@@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - } - - _, isFile := t.(protoreflect.FileDescriptor) -- rs := records{allowMulti: allowMulti} -+ rs := records{ -+ allowMulti: allowMulti, -+ record: record, -+ } - if t.IsPlaceholder() { - if isFile { -- rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } else { -- rs.Append(rv, "FullName", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("FullName"), "FullName"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } - } else { - switch { - case isFile: -- rs.Append(rv, "Syntax") -+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"}) - case isRoot: -- rs.Append(rv, "Syntax", "FullName") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Syntax"), "Syntax"}, -+ {rv.MethodByName("FullName"), "FullName"}, -+ }...) - default: -- rs.Append(rv, "Name") -+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"}) - } - switch t := t.(type) { - case protoreflect.FieldDescriptor: -- for _, s := range descriptorAccessors[rt] { -- switch s { -+ accessors := []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ {rv.MethodByName("Cardinality"), "Cardinality"}, -+ {rv.MethodByName("Kind"), "Kind"}, -+ {rv.MethodByName("HasJSONName"), "HasJSONName"}, -+ {rv.MethodByName("JSONName"), "JSONName"}, -+ {rv.MethodByName("HasPresence"), "HasPresence"}, -+ {rv.MethodByName("IsExtension"), "IsExtension"}, -+ {rv.MethodByName("IsPacked"), "IsPacked"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ {rv.MethodByName("IsList"), "IsList"}, -+ {rv.MethodByName("IsMap"), "IsMap"}, -+ {rv.MethodByName("MapKey"), "MapKey"}, -+ {rv.MethodByName("MapValue"), "MapValue"}, -+ {rv.MethodByName("HasDefault"), "HasDefault"}, -+ {rv.MethodByName("Default"), "Default"}, -+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"}, -+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"}, -+ {rv.MethodByName("Message"), "Message"}, -+ {rv.MethodByName("Enum"), "Enum"}, -+ } -+ for _, s := range accessors { -+ switch s.name { - case "MapKey": - if k := t.MapKey(); k != nil { - rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -@@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - if v := t.MapValue(); v != nil { - switch v.Kind() { - case protoreflect.EnumKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())}) - case protoreflect.MessageKind, protoreflect.GroupKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())}) - default: -- rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()}) - } - } - case "ContainingOneof": - if od := t.ContainingOneof(); od != nil { -- rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())}) - } - case "ContainingMessage": - if t.IsExtension() { -- rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())}) - } - case "Message": - if !t.IsMap() { -@@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - ss = append(ss, string(fs.Get(i).Name())) - } - if len(ss) > 0 { -- rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) - } -- default: -- rs.Append(rv, descriptorAccessors[rt]...) -+ -+ case protoreflect.FileDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("Imports"), "Imports"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ {rv.MethodByName("Services"), "Services"}, -+ }...) -+ -+ case protoreflect.MessageDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"}, -+ {rv.MethodByName("Fields"), "Fields"}, -+ {rv.MethodByName("Oneofs"), "Oneofs"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, -+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ }...) -+ -+ case protoreflect.EnumDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Values"), "Values"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ }...) -+ -+ case protoreflect.EnumValueDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ }...) -+ -+ case protoreflect.ServiceDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Methods"), "Methods"}, -+ }...) -+ -+ case protoreflect.MethodDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Input"), "Input"}, -+ {rv.MethodByName("Output"), "Output"}, -+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, -+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, -+ }...) - } -- if rv.MethodByName("GoType").IsValid() { -- rs.Append(rv, "GoType") -+ if m := rv.MethodByName("GoType"); m.IsValid() { -+ rs.Append(rv, methodAndName{m, "GoType"}) - } - } - return start + rs.Join() + end -@@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - type records struct { - recs [][2]string - allowMulti bool -+ -+ // record is a function that will be called for every Append() or -+ // AppendRecs() call, to be used for testing with the -+ // InternalFormatDescOptForTesting function. -+ record func(string) - } - --func (rs *records) Append(v reflect.Value, accessors ...string) { -+func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { -+ if rs.record != nil { -+ rs.record(fieldName) -+ } -+ rs.recs = append(rs.recs, newRecs) -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) { - for _, a := range accessors { -+ if rs.record != nil { -+ rs.record(a.name) -+ } - var rv reflect.Value -- if m := v.MethodByName(a); m.IsValid() { -- rv = m.Call(nil)[0] -+ if a.method.IsValid() { -+ rv = a.method.Call(nil)[0] - } - if v.Kind() == reflect.Struct && !rv.IsValid() { -- rv = v.FieldByName(a) -+ rv = v.FieldByName(a.name) - } - if !rv.IsValid() { -- panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name)) - } - if _, ok := rv.Interface().(protoreflect.Value); ok { - rv = rv.MethodByName("Interface").Call(nil)[0] -@@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { - default: - s = fmt.Sprint(v) - } -- rs.recs = append(rs.recs, [2]string{a, s}) -+ rs.recs = append(rs.recs, [2]string{a.name, s}) - } - } - -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -new file mode 100644 -index 00000000..14656b65 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -@@ -0,0 +1,12 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package editiondefaults contains the binary representation of the editions -+// defaults. -+package editiondefaults -+ -+import _ "embed" -+ -+//go:embed editions_defaults.binpb -+var Defaults []byte -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -new file mode 100644 -index 00000000..18f07568 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -@@ -0,0 +1,4 @@ -+ -+  (0æ -+  (0ç -+  (0è æ(è -\ No newline at end of file -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -index 7c3689ba..8826bcf4 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -21,11 +21,26 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - -+// Edition is an Enum for proto2.Edition -+type Edition int32 -+ -+// These values align with the value of Enum in descriptor.proto which allows -+// direct conversion between the proto enum and this enum. -+const ( -+ EditionUnknown Edition = 0 -+ EditionProto2 Edition = 998 -+ EditionProto3 Edition = 999 -+ Edition2023 Edition = 1000 -+ EditionUnsupported Edition = 100000 -+) -+ - // The types in this file may have a suffix: - // • L0: Contains fields common to all descriptors (except File) and - // must be initialized up front. - // • L1: Contains fields specific to a descriptor and --// must be initialized up front. -+// must be initialized up front. If the associated proto uses Editions, the -+// Editions features must always be resolved. If not explicitly set, the -+// appropriate default must be resolved and set. - // • L2: Contains fields that are lazily initialized when constructing - // from the raw file descriptor. When constructing as a literal, the L2 - // fields must be initialized up front. -@@ -44,6 +59,7 @@ type ( - } - FileL1 struct { - Syntax protoreflect.Syntax -+ Edition Edition // Only used if Syntax == Editions - Path string - Package protoreflect.FullName - -@@ -51,12 +67,41 @@ type ( - Messages Messages - Extensions Extensions - Services Services -+ -+ EditionFeatures EditionFeatures - } - FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations - } -+ -+ EditionFeatures struct { -+ // IsFieldPresence is true if field_presence is EXPLICIT -+ // https://protobuf.dev/editions/features/#field_presence -+ IsFieldPresence bool -+ // IsFieldPresence is true if field_presence is LEGACY_REQUIRED -+ // https://protobuf.dev/editions/features/#field_presence -+ IsLegacyRequired bool -+ // IsOpenEnum is true if enum_type is OPEN -+ // https://protobuf.dev/editions/features/#enum_type -+ IsOpenEnum bool -+ // IsPacked is true if repeated_field_encoding is PACKED -+ // https://protobuf.dev/editions/features/#repeated_field_encoding -+ IsPacked bool -+ // IsUTF8Validated is true if utf_validation is VERIFY -+ // https://protobuf.dev/editions/features/#utf8_validation -+ IsUTF8Validated bool -+ // IsDelimitedEncoded is true if message_encoding is DELIMITED -+ // https://protobuf.dev/editions/features/#message_encoding -+ IsDelimitedEncoded bool -+ // IsJSONCompliant is true if json_format is ALLOW -+ // https://protobuf.dev/editions/features/#json_format -+ IsJSONCompliant bool -+ // GenerateLegacyUnmarshalJSON determines if the plugin generates the -+ // UnmarshalJSON([]byte) error method for enums. -+ GenerateLegacyUnmarshalJSON bool -+ } - ) - - func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -@@ -117,6 +162,8 @@ type ( - } - EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated -+ -+ EditionFeatures EditionFeatures - } - EnumL2 struct { - Options func() protoreflect.ProtoMessage -@@ -178,6 +225,8 @@ type ( - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ -+ EditionFeatures EditionFeatures - } - MessageL2 struct { - Options func() protoreflect.ProtoMessage -@@ -210,6 +259,8 @@ type ( - ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum protoreflect.EnumDescriptor - Message protoreflect.MessageDescriptor -+ -+ EditionFeatures EditionFeatures - } - - Oneof struct { -@@ -219,6 +270,8 @@ type ( - OneofL1 struct { - Options func() protoreflect.ProtoMessage - Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ -+ EditionFeatures EditionFeatures - } - ) - -@@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage { - } - func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } - func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } --func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } --func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } --func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } --func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) Kind() protoreflect.Kind { -+ return fd.L1.Kind -+} -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } - func (fd *Field) HasPresence() bool { -- return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+ if fd.L1.Cardinality == protoreflect.Repeated { -+ return false -+ } -+ explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -+ return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil - } - func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional - } - func (fd *Field) IsPacked() bool { -- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -- switch fd.L1.Kind { -- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -- default: -- return true -- } -+ if fd.L1.Cardinality != protoreflect.Repeated { -+ return false -+ } -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsPacked -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -+ // proto3 repeated fields are packed by default. -+ return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked - } -@@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} - // WARNING: This method is exempt from the compatibility promise and may be - // removed in the future without warning. - func (fd *Field) EnforceUTF8() bool { -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsUTF8Validated -+ } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } -@@ -359,10 +428,11 @@ type ( - L2 *ExtensionL2 // protected by fileDesc.once - } - ExtensionL1 struct { -- Number protoreflect.FieldNumber -- Extendee protoreflect.MessageDescriptor -- Cardinality protoreflect.Cardinality -- Kind protoreflect.Kind -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ EditionFeatures EditionFeatures - } - ExtensionL2 struct { - Options func() protoreflect.ProtoMessage -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -index 4a1584c9..237e64fd 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -5,6 +5,7 @@ - package filedesc - - import ( -+ "fmt" - "sync" - - "google.golang.org/protobuf/encoding/protowire" -@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) { - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions, numServices int - var posEnums, posMessages, posExtensions, posServices int -+ var options []byte - b0 := b - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - case "proto3": - fd.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ fd.L1.Syntax = protoreflect.Editions - default: - panic("invalid syntax") - } -@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Path = sb.MakeString(v) - case genid.FileDescriptorProto_Package_field_number: - fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_Options_field_number: -+ options = v - case genid.FileDescriptorProto_EnumType_field_number: - if prevField != genid.FileDescriptorProto_EnumType_field_number { - if numEnums > 0 { -@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) { - numServices++ - } - prevField = num -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Edition_field_number: -+ fd.L1.Edition = Edition(v) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - } - -+ if fd.L1.Syntax == protoreflect.Editions { -+ fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) -+ } -+ -+ // Parse editions features from options if any -+ if options != nil { -+ fd.unmarshalSeedOptions(options) -+ } -+ - // Must allocate all declarations before parsing each descriptor type - // to ensure we handled all descriptors in "flattened ordering". - if numEnums > 0 { -@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) { - } - } - -+func (fd *File) unmarshalSeedOptions(b []byte) { -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileOptions_Features_field_number: -+ if fd.Syntax() != protoreflect.Editions { -+ panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) -+ } -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ - func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { - ed.L0.ParentFile = pf - ed.L0.Parent = pd -@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor - md.L0.ParentFile = pf - md.L0.Parent = pd - md.L0.Index = i -+ md.L1.EditionFeatures = featuresFromParentDesc(md.Parent()) - - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions int -@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) { - case genid.MessageOptions_MessageSetWireFormat_field_number: - md.L1.IsMessageSet = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_Features_field_number: -+ md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -index 736a19a7..482a61cc 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - fd.L0.ParentFile = pf - fd.L0.Parent = pd - fd.L0.Index = i -+ fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent()) - - var rawTypeName []byte - var rawOptions []byte -@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - b = b[m:] - } - } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { -+ fd.L1.Kind = protoreflect.GroupKind -+ } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { -+ fd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch fd.L1.Kind { -@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) { - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - var rawTypeName []byte - var rawOptions []byte -+ xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) - xd.L2 = new(ExtensionL2) - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - b = b[m:] - } - } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { -+ xd.L1.Kind = protoreflect.GroupKind -+ } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { -+ xd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch xd.L1.Kind { -@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -new file mode 100644 -index 00000000..0375a49d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -@@ -0,0 +1,142 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var defaultsCache = make(map[Edition]EditionFeatures) -+ -+func init() { -+ unmarshalEditionDefaults(editiondefaults.Defaults) -+} -+ -+func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) -+ } -+ } -+ return parent -+} -+ -+func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSet_FieldPresence_field_number: -+ parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ case genid.FeatureSet_EnumType_field_number: -+ parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value -+ case genid.FeatureSet_RepeatedFieldEncoding_field_number: -+ parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value -+ case genid.FeatureSet_Utf8Validation_field_number: -+ parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value -+ case genid.FeatureSet_MessageEncoding_field_number: -+ parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value -+ case genid.FeatureSet_JsonFormat_field_number: -+ parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ parent = unmarshalGoFeature(v, parent) -+ } -+ } -+ } -+ -+ return parent -+} -+ -+func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { -+ var parentFS EditionFeatures -+ switch p := parentDesc.(type) { -+ case *File: -+ parentFS = p.L1.EditionFeatures -+ case *Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ return parentFS -+} -+ -+func unmarshalEditionDefault(b []byte) { -+ var ed Edition -+ var fs EditionFeatures -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: -+ ed = Edition(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: -+ fs = unmarshalFeatureSet(v, fs) -+ } -+ } -+ } -+ defaultsCache[ed] = fs -+} -+ -+func unmarshalEditionDefaults(b []byte) { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.FeatureSetDefaults_Defaults_field_number: -+ def, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ unmarshalEditionDefault(def) -+ case genid.FeatureSetDefaults_MinimumEdition_field_number, -+ genid.FeatureSetDefaults_MaximumEdition_field_number: -+ // We don't care about the minimum and maximum editions. If the -+ // edition we are looking for later on is not in the cache we know -+ // it is outside of the range between minimum and maximum edition. -+ _, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) -+ } -+ } -+} -+ -+func getFeaturesFor(ed Edition) EditionFeatures { -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ panic(fmt.Sprintf("unsupported edition: %v", ed)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 136f1b21..40272c89 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -12,6 +12,27 @@ import ( - - const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" - -+// Full and short names for google.protobuf.Edition. -+const ( -+ Edition_enum_fullname = "google.protobuf.Edition" -+ Edition_enum_name = "Edition" -+) -+ -+// Enum values for google.protobuf.Edition. -+const ( -+ Edition_EDITION_UNKNOWN_enum_value = 0 -+ Edition_EDITION_PROTO2_enum_value = 998 -+ Edition_EDITION_PROTO3_enum_value = 999 -+ Edition_EDITION_2023_enum_value = 1000 -+ Edition_EDITION_2024_enum_value = 1001 -+ Edition_EDITION_1_TEST_ONLY_enum_value = 1 -+ Edition_EDITION_2_TEST_ONLY_enum_value = 2 -+ Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 -+ Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 -+ Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 -+ Edition_EDITION_MAX_enum_value = 2147483647 -+) -+ - // Names for google.protobuf.FileDescriptorSet. - const ( - FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -@@ -81,7 +102,7 @@ const ( - FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 - FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 - FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -- FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 14 - ) - - // Names for google.protobuf.DescriptorProto. -@@ -184,10 +205,12 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Features_field_name protoreflect.Name = "features" - ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" - ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features" - ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - -@@ -195,6 +218,7 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Features_field_number protoreflect.FieldNumber = 50 - ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 - ) - -@@ -204,6 +228,12 @@ const ( - ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" - ) - -+// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_DECLARATION_enum_value = 0 -+ ExtensionRangeOptions_UNVERIFIED_enum_value = 1 -+) -+ - // Names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( - ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -@@ -212,29 +242,26 @@ const ( - - // Field names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -- ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -- ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" - -- ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -- ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -- ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -- ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -- ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -- ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -- ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -- ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -291,12 +318,41 @@ const ( - FieldDescriptorProto_Type_enum_name = "Type" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1 -+ FieldDescriptorProto_TYPE_FLOAT_enum_value = 2 -+ FieldDescriptorProto_TYPE_INT64_enum_value = 3 -+ FieldDescriptorProto_TYPE_UINT64_enum_value = 4 -+ FieldDescriptorProto_TYPE_INT32_enum_value = 5 -+ FieldDescriptorProto_TYPE_FIXED64_enum_value = 6 -+ FieldDescriptorProto_TYPE_FIXED32_enum_value = 7 -+ FieldDescriptorProto_TYPE_BOOL_enum_value = 8 -+ FieldDescriptorProto_TYPE_STRING_enum_value = 9 -+ FieldDescriptorProto_TYPE_GROUP_enum_value = 10 -+ FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11 -+ FieldDescriptorProto_TYPE_BYTES_enum_value = 12 -+ FieldDescriptorProto_TYPE_UINT32_enum_value = 13 -+ FieldDescriptorProto_TYPE_ENUM_enum_value = 14 -+ FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 -+ FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 -+ FieldDescriptorProto_TYPE_SINT32_enum_value = 17 -+ FieldDescriptorProto_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.FieldDescriptorProto.Label. - const ( - FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" - FieldDescriptorProto_Label_enum_name = "Label" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 -+ FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 -+ FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 -+) -+ - // Names for google.protobuf.OneofDescriptorProto. - const ( - OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -@@ -468,7 +524,6 @@ const ( - FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" - FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" - FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -- FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" - FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" - FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -@@ -478,6 +533,7 @@ const ( - FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" - FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" - FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_Features_field_name protoreflect.Name = "features" - FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -@@ -490,7 +546,6 @@ const ( - FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" - FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" - FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -- FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" - FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" - FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -@@ -500,6 +555,7 @@ const ( - FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" - FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" - FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.features" - FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" - ) - -@@ -515,7 +571,6 @@ const ( - FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 - FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 - FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -- FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 - FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 - FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 - FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -@@ -525,6 +580,7 @@ const ( - FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 - FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 - FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_Features_field_number protoreflect.FieldNumber = 50 - FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -534,6 +590,13 @@ const ( - FileOptions_OptimizeMode_enum_name = "OptimizeMode" - ) - -+// Enum values for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_SPEED_enum_value = 1 -+ FileOptions_CODE_SIZE_enum_value = 2 -+ FileOptions_LITE_RUNTIME_enum_value = 3 -+) -+ - // Names for google.protobuf.MessageOptions. - const ( - MessageOptions_message_name protoreflect.Name = "MessageOptions" -@@ -547,6 +610,7 @@ const ( - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_name protoreflect.Name = "features" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -@@ -554,6 +618,7 @@ const ( - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.features" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" - ) - -@@ -564,6 +629,7 @@ const ( - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_Features_field_number protoreflect.FieldNumber = 12 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -584,8 +650,9 @@ const ( - FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" -- FieldOptions_Target_field_name protoreflect.Name = "target" - FieldOptions_Targets_field_name protoreflect.Name = "targets" -+ FieldOptions_EditionDefaults_field_name protoreflect.Name = "edition_defaults" -+ FieldOptions_Features_field_name protoreflect.Name = "features" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -597,8 +664,9 @@ const ( - FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -- FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" - FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" -+ FieldOptions_EditionDefaults_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" -+ FieldOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.features" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -613,8 +681,9 @@ const ( - FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -- FieldOptions_Target_field_number protoreflect.FieldNumber = 18 - FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 -+ FieldOptions_EditionDefaults_field_number protoreflect.FieldNumber = 20 -+ FieldOptions_Features_field_number protoreflect.FieldNumber = 21 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -624,24 +693,80 @@ const ( - FieldOptions_CType_enum_name = "CType" - ) - -+// Enum values for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_STRING_enum_value = 0 -+ FieldOptions_CORD_enum_value = 1 -+ FieldOptions_STRING_PIECE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.JSType. - const ( - FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" - FieldOptions_JSType_enum_name = "JSType" - ) - -+// Enum values for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JS_NORMAL_enum_value = 0 -+ FieldOptions_JS_STRING_enum_value = 1 -+ FieldOptions_JS_NUMBER_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionRetention. - const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_RETENTION_UNKNOWN_enum_value = 0 -+ FieldOptions_RETENTION_RUNTIME_enum_value = 1 -+ FieldOptions_RETENTION_SOURCE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionTargetType. - const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0 -+ FieldOptions_TARGET_TYPE_FILE_enum_value = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3 -+ FieldOptions_TARGET_TYPE_FIELD_enum_value = 4 -+ FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5 -+ FieldOptions_TARGET_TYPE_ENUM_enum_value = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7 -+ FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8 -+ FieldOptions_TARGET_TYPE_METHOD_enum_value = 9 -+) -+ -+// Names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault" -+ FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" -+) -+ -+// Field names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FieldOptions_EditionDefault_Value_field_name protoreflect.Name = "value" -+ -+ FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" -+ FieldOptions_EditionDefault_Value_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" -+) -+ -+// Field numbers for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_EditionDefault_Value_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.OneofOptions. - const ( - OneofOptions_message_name protoreflect.Name = "OneofOptions" -@@ -650,13 +775,16 @@ const ( - - // Field names for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_name protoreflect.Name = "features" - OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ OneofOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.features" - OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_number protoreflect.FieldNumber = 1 - OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -671,11 +799,13 @@ const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_name protoreflect.Name = "features" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.features" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" - ) - -@@ -684,6 +814,7 @@ const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_Features_field_number protoreflect.FieldNumber = 7 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -696,15 +827,21 @@ const ( - // Field names for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_Features_field_name protoreflect.Name = "features" -+ EnumValueOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.features" -+ EnumValueOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact" - EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_Features_field_number protoreflect.FieldNumber = 2 -+ EnumValueOptions_DebugRedact_field_number protoreflect.FieldNumber = 3 - EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -716,15 +853,18 @@ const ( - - // Field names for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_name protoreflect.Name = "features" - ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" - ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ ServiceOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.features" - ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" - ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_number protoreflect.FieldNumber = 34 - ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) -@@ -739,10 +879,12 @@ const ( - const ( - MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_Features_field_name protoreflect.Name = "features" - MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" - MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.features" - MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" - ) - -@@ -750,6 +892,7 @@ const ( - const ( - MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_Features_field_number protoreflect.FieldNumber = 35 - MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -759,6 +902,13 @@ const ( - MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" - ) - -+// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 -+ MethodOptions_NO_SIDE_EFFECTS_enum_value = 1 -+ MethodOptions_IDEMPOTENT_enum_value = 2 -+) -+ - // Names for google.protobuf.UninterpretedOption. - const ( - UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -@@ -816,6 +966,163 @@ const ( - UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 - ) - -+// Names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_message_name protoreflect.Name = "FeatureSet" -+ FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" -+) -+ -+// Field names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence" -+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation" -+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding" -+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format" -+ -+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" -+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" -+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" -+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format" -+) -+ -+// Field numbers for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1 -+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2 -+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 -+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4 -+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5 -+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" -+ FeatureSet_FieldPresence_enum_name = "FieldPresence" -+) -+ -+// Enum values for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 -+ FeatureSet_EXPLICIT_enum_value = 1 -+ FeatureSet_IMPLICIT_enum_value = 2 -+ FeatureSet_LEGACY_REQUIRED_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" -+ FeatureSet_EnumType_enum_name = "EnumType" -+) -+ -+// Enum values for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 -+ FeatureSet_OPEN_enum_value = 1 -+ FeatureSet_CLOSED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" -+ FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_PACKED_enum_value = 1 -+ FeatureSet_EXPANDED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" -+ FeatureSet_Utf8Validation_enum_name = "Utf8Validation" -+) -+ -+// Enum values for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 -+ FeatureSet_VERIFY_enum_value = 2 -+ FeatureSet_NONE_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" -+ FeatureSet_MessageEncoding_enum_name = "MessageEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_LENGTH_PREFIXED_enum_value = 1 -+ FeatureSet_DELIMITED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" -+ FeatureSet_JsonFormat_enum_name = "JsonFormat" -+) -+ -+// Enum values for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 -+ FeatureSet_ALLOW_enum_value = 1 -+ FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults" -+ FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_name protoreflect.Name = "defaults" -+ FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" -+ -+ FeatureSetDefaults_Defaults_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" -+ FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_number protoreflect.FieldNumber = 1 -+ FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 -+ FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_message_name protoreflect.Name = "FeatureSetEditionDefault" -+ FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" -+ -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.SourceCodeInfo. - const ( - SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -@@ -917,3 +1224,10 @@ const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" - ) -+ -+// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_NONE_enum_value = 0 -+ GeneratedCodeInfo_Annotation_SET_enum_value = 1 -+ GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -new file mode 100644 -index 00000000..fd9015e8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" -+ -+// Names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_message_name protoreflect.Name = "GoFeatures" -+ GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" -+) -+ -+// Field names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" -+ -+ GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" -+) -+ -+// Field numbers for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -index 1a38944b..ad6f80c4 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -18,6 +18,11 @@ const ( - NullValue_enum_name = "NullValue" - ) - -+// Enum values for google.protobuf.NullValue. -+const ( -+ NullValue_NULL_VALUE_enum_value = 0 -+) -+ - // Names for google.protobuf.Struct. - const ( - Struct_message_name protoreflect.Name = "Struct" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index e0f75fea..49bc73e2 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -18,6 +18,13 @@ const ( - Syntax_enum_name = "Syntax" - ) - -+// Enum values for google.protobuf.Syntax. -+const ( -+ Syntax_SYNTAX_PROTO2_enum_value = 0 -+ Syntax_SYNTAX_PROTO3_enum_value = 1 -+ Syntax_SYNTAX_EDITIONS_enum_value = 2 -+) -+ - // Names for google.protobuf.Type. - const ( - Type_message_name protoreflect.Name = "Type" -@@ -105,12 +112,43 @@ const ( - Field_Kind_enum_name = "Kind" - ) - -+// Enum values for google.protobuf.Field.Kind. -+const ( -+ Field_TYPE_UNKNOWN_enum_value = 0 -+ Field_TYPE_DOUBLE_enum_value = 1 -+ Field_TYPE_FLOAT_enum_value = 2 -+ Field_TYPE_INT64_enum_value = 3 -+ Field_TYPE_UINT64_enum_value = 4 -+ Field_TYPE_INT32_enum_value = 5 -+ Field_TYPE_FIXED64_enum_value = 6 -+ Field_TYPE_FIXED32_enum_value = 7 -+ Field_TYPE_BOOL_enum_value = 8 -+ Field_TYPE_STRING_enum_value = 9 -+ Field_TYPE_GROUP_enum_value = 10 -+ Field_TYPE_MESSAGE_enum_value = 11 -+ Field_TYPE_BYTES_enum_value = 12 -+ Field_TYPE_UINT32_enum_value = 13 -+ Field_TYPE_ENUM_enum_value = 14 -+ Field_TYPE_SFIXED32_enum_value = 15 -+ Field_TYPE_SFIXED64_enum_value = 16 -+ Field_TYPE_SINT32_enum_value = 17 -+ Field_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.Field.Cardinality. - const ( - Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" - Field_Cardinality_enum_name = "Cardinality" - ) - -+// Enum values for google.protobuf.Field.Cardinality. -+const ( -+ Field_CARDINALITY_UNKNOWN_enum_value = 0 -+ Field_CARDINALITY_OPTIONAL_enum_value = 1 -+ Field_CARDINALITY_REQUIRED_enum_value = 2 -+ Field_CARDINALITY_REPEATED_enum_value = 3 -+) -+ - // Names for google.protobuf.Enum. - const ( - Enum_message_name protoreflect.Name = "Enum" -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -index e74cefdc..2b8f122c 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -21,26 +21,18 @@ type extensionFieldInfo struct { - validation validationInfo - } - --var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -- - func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { - if xi, ok := xt.(*ExtensionInfo); ok { - xi.lazyInit() - return xi.info - } -- return legacyLoadExtensionFieldInfo(xt) --} -- --// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. --func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -- return xi.(*extensionFieldInfo) -- } -- e := makeExtensionFieldInfo(xt.TypeDescriptor()) -- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -- return e.(*extensionFieldInfo) -- } -- return e -+ // Ideally we'd cache the resulting *extensionFieldInfo so we don't have to -+ // recompute this metadata repeatedly. But without support for something like -+ // weak references, such a cache would pin temporary values (like dynamic -+ // extension types, constructed for the duration of a user request) to the -+ // heap forever, causing memory usage of the cache to grow unbounded. -+ // See discussion in https://github.com/golang/protobuf/issues/1521. -+ return makeExtensionFieldInfo(xt.TypeDescriptor()) - } - - func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -index 1a509b63..f55dc01e 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions - func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BoolSlice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growBoolSlice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growFloat32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growFloat64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -index 576dcf3a..13077751 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, - return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == protoreflect.GroupKind: - return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -- case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ case !fd.HasPresence() && fd.ContainingOneof() == nil: - // Populated oneof fields always encode even if set to the zero value, - // which normally are not encoded in proto3. - switch fd.Kind() { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -index 61c483fa..2ab2c629 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName - - // Obtain a list of oneof wrapper types. - var oneofWrappers []reflect.Type -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := t.MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- for _, v := range vs { -- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -index 4f5fb67a..629bacdc 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -192,12 +192,17 @@ fieldLoop: - - // Derive a mapping of oneof wrappers to fields. - oneofWrappers := mi.OneofWrappers -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- oneofWrappers = vs -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -index 5e736c60..986322b1 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool { - } - return true - default: -- panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -index 4c491bdf..517e9443 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) { - p.v.Elem().Set(v.v) - } - -+func growSlice(p pointer, addCap int) { -+ // TODO: Once we only support Go 1.20 and newer, use reflect.Grow. -+ in := p.v.Elem() -+ out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) -+ reflect.Copy(out, in) -+ p.v.Elem().Set(out) -+} -+ -+func (p pointer) growBoolSlice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ - func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } - func (ms *messageState) pointer() pointer { panic("not supported") } - func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -index ee0e0573..4b020e31 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) { - *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) - } - -+func (p pointer) growBoolSlice(addCap int) { -+ sp := p.BoolSlice() -+ s := make([]bool, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ sp := p.Int32Slice() -+ s := make([]int32, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ sp := p.Int64Slice() -+ s := make([]int64, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ - // Static check that MessageState does not exceed the size of a pointer. - const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -index 0b74e765..a6e7df24 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -17,7 +17,7 @@ import ( - - // EnforceUTF8 reports whether to enforce strict UTF-8 validation. - func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -- if flags.ProtoLegacy { -+ if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions { - if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { - return fd.EnforceUTF8() - } -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -similarity index 96% -rename from vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -rename to vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -index 61a84d34..a008acd0 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package strs - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -new file mode 100644 -index 00000000..60166f2b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -@@ -0,0 +1,74 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) string { -+ return unsafe.String(unsafe.SliceData(b), len(b)) -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) []byte { -+ return unsafe.Slice(unsafe.StringData(s), len(s)) -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index 0999f29d..a50fcfb4 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 31 -+ Minor = 33 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -index 48d47946..e5b03b56 100644 ---- a/vendor/google.golang.org/protobuf/proto/decode.go -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -69,7 +69,7 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { - // UnmarshalState parses a wire-format message and places the result in m. - // - // This method permits fine-grained control over the unmarshaler. --// Most users should use Unmarshal instead. -+// Most users should use [Unmarshal] instead. - func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - if o.RecursionLimit == 0 { - o.RecursionLimit = protowire.DefaultRecursionLimit -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -index ec71e717..80ed16a0 100644 ---- a/vendor/google.golang.org/protobuf/proto/doc.go -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -18,27 +18,27 @@ - // This package contains functions to convert to and from the wire format, - // an efficient binary serialization of protocol buffers. - // --// • Size reports the size of a message in the wire format. -+// - [Size] reports the size of a message in the wire format. - // --// • Marshal converts a message to the wire format. --// The MarshalOptions type provides more control over wire marshaling. -+// - [Marshal] converts a message to the wire format. -+// The [MarshalOptions] type provides more control over wire marshaling. - // --// • Unmarshal converts a message from the wire format. --// The UnmarshalOptions type provides more control over wire unmarshaling. -+// - [Unmarshal] converts a message from the wire format. -+// The [UnmarshalOptions] type provides more control over wire unmarshaling. - // - // # Basic message operations - // --// • Clone makes a deep copy of a message. -+// - [Clone] makes a deep copy of a message. - // --// • Merge merges the content of a message into another. -+// - [Merge] merges the content of a message into another. - // --// • Equal compares two messages. For more control over comparisons --// and detailed reporting of differences, see package --// "google.golang.org/protobuf/testing/protocmp". -+// - [Equal] compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// [google.golang.org/protobuf/testing/protocmp]. - // --// • Reset clears the content of a message. -+// - [Reset] clears the content of a message. - // --// • CheckInitialized reports whether all required fields in a message are set. -+// - [CheckInitialized] reports whether all required fields in a message are set. - // - // # Optional scalar constructors - // -@@ -46,9 +46,9 @@ - // as pointers to a value. For example, an optional string field has the - // Go type *string. - // --// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String --// take a value and return a pointer to a new instance of it, --// to simplify construction of optional field values. -+// - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String] -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. - // - // Generated enum types usually have an Enum method which performs the - // same operation. -@@ -57,29 +57,29 @@ - // - // # Extension accessors - // --// • HasExtension, GetExtension, SetExtension, and ClearExtension --// access extension field values in a protocol buffer message. -+// - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension] -+// access extension field values in a protocol buffer message. - // - // Extension fields are only supported in proto2. - // - // # Related packages - // --// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to --// and from JSON. -+// - Package [google.golang.org/protobuf/encoding/protojson] converts messages to -+// and from JSON. - // --// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to --// and from the text format. -+// - Package [google.golang.org/protobuf/encoding/prototext] converts messages to -+// and from the text format. - // --// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a --// reflection interface for protocol buffer data types. -+// - Package [google.golang.org/protobuf/reflect/protoreflect] provides a -+// reflection interface for protocol buffer data types. - // --// • Package "google.golang.org/protobuf/testing/protocmp" provides features --// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" --// package. -+// - Package [google.golang.org/protobuf/testing/protocmp] provides features -+// to compare protocol buffer messages with the [github.com/google/go-cmp/cmp] -+// package. - // --// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic --// message type, suitable for working with messages where the protocol buffer --// type is only known at runtime. -+// - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. - // - // This module contains additional packages for more specialized use cases. - // Consult the individual package documentation for details. -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -index bf7f816d..4fed202f 100644 ---- a/vendor/google.golang.org/protobuf/proto/encode.go -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -129,7 +129,7 @@ func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { - // MarshalState returns the wire-format encoding of a message. - // - // This method permits fine-grained control over the marshaler. --// Most users should use Marshal instead. -+// Most users should use [Marshal] instead. - func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - return o.marshal(in.Buf, in.Message) - } -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -index 5f293cda..17899a3a 100644 ---- a/vendor/google.golang.org/protobuf/proto/extension.go -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -26,7 +26,7 @@ func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - } - - // ClearExtension clears an extension field such that subsequent --// HasExtension calls return false. -+// [HasExtension] calls return false. - // It panics if m is invalid or if xt does not extend m. - func ClearExtension(m Message, xt protoreflect.ExtensionType) { - m.ProtoReflect().Clear(xt.TypeDescriptor()) -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -index d761ab33..3c6fe578 100644 ---- a/vendor/google.golang.org/protobuf/proto/merge.go -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -21,7 +21,7 @@ import ( - // The unknown fields of src are appended to the unknown fields of dst. - // - // It is semantically equivalent to unmarshaling the encoded form of src --// into dst with the UnmarshalOptions.Merge option specified. -+// into dst with the [UnmarshalOptions.Merge] option specified. - func Merge(dst, src Message) { - // TODO: Should nil src be treated as semantically equivalent to a - // untyped, read-only, empty message? What about a nil dst? -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -index 1f0d183b..7543ee6b 100644 ---- a/vendor/google.golang.org/protobuf/proto/proto.go -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -15,18 +15,20 @@ import ( - // protobuf module that accept a Message, except where otherwise specified. - // - // This is the v2 interface definition for protobuf messages. --// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// The v1 interface definition is [github.com/golang/protobuf/proto.Message]. - // --// To convert a v1 message to a v2 message, --// use "github.com/golang/protobuf/proto".MessageV2. --// To convert a v2 message to a v1 message, --// use "github.com/golang/protobuf/proto".MessageV1. -+// - To convert a v1 message to a v2 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV2Of]. -+// - To convert a v2 message to a v1 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV1Of]. - type Message = protoreflect.ProtoMessage - --// Error matches all errors produced by packages in the protobuf module. -+// Error matches all errors produced by packages in the protobuf module -+// according to [errors.Is]. - // --// That is, errors.Is(err, Error) reports whether an error is produced --// by this module. -+// Example usage: -+// -+// if errors.Is(err, proto.Error) { ... } - var Error error - - func init() { -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -index e4dfb120..baa0cc62 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -3,11 +3,11 @@ - // license that can be found in the LICENSE file. - - // Package protodesc provides functionality for converting --// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. - // - // The google.protobuf.FileDescriptorProto is a protobuf message that describes - // the type information for a .proto file in a form that is easily serializable. --// The protoreflect.FileDescriptor is a more structured representation of -+// The [protoreflect.FileDescriptor] is a more structured representation of - // the FileDescriptorProto message where references and remote dependencies - // can be directly followed. - package protodesc -@@ -24,11 +24,11 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// Resolver is the resolver used by NewFile to resolve dependencies. -+// Resolver is the resolver used by [NewFile] to resolve dependencies. - // The enums and messages provided must belong to some parent file, - // which is also registered. - // --// It is implemented by protoregistry.Files. -+// It is implemented by [protoregistry.Files]. - type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -@@ -61,19 +61,19 @@ type FileOptions struct { - AllowUnresolvable bool - } - --// NewFile creates a new protoreflect.FileDescriptor from the provided --// file descriptor message. See FileOptions.New for more information. -+// NewFile creates a new [protoreflect.FileDescriptor] from the provided -+// file descriptor message. See [FileOptions.New] for more information. - func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) - } - --// NewFiles creates a new protoregistry.Files from the provided --// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+// NewFiles creates a new [protoregistry.Files] from the provided -+// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. - func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) - } - --// New creates a new protoreflect.FileDescriptor from the provided -+// New creates a new [protoreflect.FileDescriptor] from the provided - // file descriptor message. The file must represent a valid proto file according - // to protobuf semantics. The returned descriptor is a deep copy of the input. - // -@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ f.L1.Syntax = protoreflect.Editions -+ f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } -+ if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { -+ return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) -+ } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") -@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ if f.L1.Syntax == protoreflect.Editions { -+ initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) -+ } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { -@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) { - } - } - --// NewFiles creates a new protoregistry.Files from the provided -+// NewFiles creates a new [protoregistry.Files] from the provided - // FileDescriptorSet message. The descriptor set must include only - // valid files according to protobuf semantics. The returned descriptors - // are a deep copy of the input. -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -index 37efda1a..b3278163 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } -@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } -+ if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) -+ } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } -@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - return ms, nil - } - -+// canBePacked returns whether the field can use packed encoding: -+// https://protobuf.dev/programming-guides/encoding/#packed -+func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { -+ if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { -+ return false // not a repeated field -+ } -+ -+ switch protoreflect.Kind(fd.GetType()) { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return false // not a scalar type field -+ -+ case protoreflect.StringKind, protoreflect.BytesKind: -+ // string and bytes can explicitly not be declared as packed, -+ // see https://protobuf.dev/programming-guides/encoding/#packed -+ return false -+ -+ default: -+ return true -+ } -+} -+ - func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { -@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } -+ -+ if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) -+ -+ if f.L1.EditionFeatures.IsLegacyRequired { -+ f.L1.Cardinality = protoreflect.Required -+ } -+ // We reuse the existing field because the old option `[packed = -+ // true]` is mutually exclusive with the editions feature. -+ if canBePacked(fd) { -+ f.L1.HasPacked = true -+ f.L1.IsPacked = f.L1.EditionFeatures.IsPacked -+ } -+ -+ // We pretend this option is always explicitly set because the only -+ // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 -+ // or to return the appropriate default. -+ // When using editions we either parse the option or resolve the -+ // appropriate default here (instead of later when this option is -+ // requested from the descriptor). -+ // In proto2/proto3 syntax HasEnforceUTF8 might be false. -+ f.L1.HasEnforceUTF8 = true -+ f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated -+ -+ if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { -+ f.L1.Kind = protoreflect.GroupKind -+ } -+ } - } - return fs, nil - } -@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ if parent.Syntax() == protoreflect.Editions { -+ o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) -+ } - } - } - return os, nil -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -index 27d7e350..254ca585 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab - } else if err != nil { - return v, ev, err - } -- if fd.Syntax() == protoreflect.Proto3 { -- return v, ev, errors.New("cannot be specified under proto3 semantics") -+ if !fd.HasPresence() { -+ return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -index 9af1d564..e4dcaf87 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } -- if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { -@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error { - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil -- case fd.Syntax() != protoreflect.Proto2: -- return errors.New("invalid under proto2 semantics") -+ case fd.Syntax() == protoreflect.Proto3: -+ return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -new file mode 100644 -index 00000000..2a6b29d1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -@@ -0,0 +1,148 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "os" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/types/descriptorpb" -+ gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -+) -+ -+const ( -+ SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 -+ SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -+) -+ -+var defaults = &descriptorpb.FeatureSetDefaults{} -+var defaultsCacheMu sync.Mutex -+var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) -+ -+func init() { -+ err := proto.Unmarshal(editiondefaults.Defaults, defaults) -+ if err != nil { -+ fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) -+ os.Exit(1) -+ } -+} -+ -+func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { -+ return filedesc.Edition(epb) -+} -+ -+func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { -+ switch ed { -+ case filedesc.EditionUnknown: -+ return descriptorpb.Edition_EDITION_UNKNOWN -+ case filedesc.EditionProto2: -+ return descriptorpb.Edition_EDITION_PROTO2 -+ case filedesc.EditionProto3: -+ return descriptorpb.Edition_EDITION_PROTO3 -+ case filedesc.Edition2023: -+ return descriptorpb.Edition_EDITION_2023 -+ default: -+ panic(fmt.Sprintf("unknown value for edition: %v", ed)) -+ } -+} -+ -+func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { -+ defaultsCacheMu.Lock() -+ defer defaultsCacheMu.Unlock() -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ edpb := toEditionProto(ed) -+ if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { -+ // This should never happen protodesc.(FileOptions).New would fail when -+ // initializing the file descriptor. -+ // This most likely means the embedded defaults were not updated. -+ fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) -+ os.Exit(1) -+ } -+ fs := defaults.GetDefaults()[0].GetFeatures() -+ // Using a linear search for now. -+ // Editions are guaranteed to be sorted and thus we could use a binary search. -+ // Given that there are only a handful of editions (with one more per year) -+ // there is not much reason to use a binary search. -+ for _, def := range defaults.GetDefaults() { -+ if def.GetEdition() <= edpb { -+ fs = def.GetFeatures() -+ } else { -+ break -+ } -+ } -+ defaultsCache[ed] = fs -+ return fs -+} -+ -+// mergeEditionFeatures merges the parent and child feature sets. This function -+// should be used when initializing Go descriptors from descriptor protos which -+// is why the parent is a filedesc.EditionsFeatures (Go representation) while -+// the child is a descriptorproto.FeatureSet (protoc representation). -+// Any feature set by the child overwrites what is set by the parent. -+func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { -+ var parentFS filedesc.EditionFeatures -+ switch p := parentDesc.(type) { -+ case *filedesc.File: -+ parentFS = p.L1.EditionFeatures -+ case *filedesc.Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ if child == nil { -+ return parentFS -+ } -+ if fp := child.FieldPresence; fp != nil { -+ parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || -+ *fp == descriptorpb.FeatureSet_EXPLICIT -+ parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED -+ } -+ if et := child.EnumType; et != nil { -+ parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN -+ } -+ -+ if rfe := child.RepeatedFieldEncoding; rfe != nil { -+ parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED -+ } -+ -+ if utf8val := child.Utf8Validation; utf8val != nil { -+ parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY -+ } -+ -+ if me := child.MessageEncoding; me != nil { -+ parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED -+ } -+ -+ if jf := child.JsonFormat; jf != nil { -+ parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW -+ } -+ -+ if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { -+ if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { -+ parentFS.GenerateLegacyUnmarshalJSON = *luje -+ } -+ } -+ -+ return parentFS -+} -+ -+// initFileDescFromFeatureSet initializes editions related fields in fd based -+// on fs. If fs is nil it is assumed to be an empty featureset and all fields -+// will be initialized with the appropriate default. fd.L1.Edition must be set -+// before calling this function. -+func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { -+ dfs := getFeatureSetFor(fd.L1.Edition) -+ // initialize the featureset with the defaults -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) -+ // overwrite any options explicitly specified -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -index a7c5ceff..9d6e0542 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -16,7 +16,7 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a - // google.protobuf.FileDescriptorProto message. - func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ -@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } -- if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p - } - --// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a - // google.protobuf.DescriptorProto message. - func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ -@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des - return p - } - --// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a - // google.protobuf.FieldDescriptorProto message. - func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ -@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi - return p - } - --// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a - // google.protobuf.OneofDescriptorProto message. - func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ -@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On - } - } - --// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a - // google.protobuf.EnumDescriptorProto message. - func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ -@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD - return p - } - --// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a - // google.protobuf.EnumValueDescriptorProto message. - func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ -@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip - } - } - --// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a - // google.protobuf.ServiceDescriptorProto message. - func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ -@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto - return p - } - --// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a - // google.protobuf.MethodDescriptorProto message. - func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -index 55aa1492..00b01fbd 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -10,46 +10,46 @@ - // - // # Protocol Buffer Descriptors - // --// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor]) - // are immutable objects that represent protobuf type information. - // They are wrappers around the messages declared in descriptor.proto. - // Protobuf descriptors alone lack any information regarding Go types. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Descriptor and ProtoReflect.Descriptor accessors respectively - // return the protobuf descriptor for the values. - // - // The protobuf descriptor interfaces are not meant to be implemented by - // user code since they might need to be extended in the future to support - // additions to the protobuf language. --// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// The [google.golang.org/protobuf/reflect/protodesc] package converts between - // google.protobuf.DescriptorProto messages and protobuf descriptors. - // - // # Go Type Descriptors - // --// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for - // a concrete Go type that represents the associated protobuf descriptor. - // There is commonly a one-to-one relationship between protobuf descriptors and - // Go type descriptors, but it can potentially be a one-to-many relationship. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Type and ProtoReflect.Type accessors respectively - // return the protobuf descriptor for the values. - // --// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// The [google.golang.org/protobuf/types/dynamicpb] package can be used to - // create Go type descriptors from protobuf descriptors. - // - // # Value Interfaces - // --// The Enum and Message interfaces provide a reflective view over an -+// The [Enum] and [Message] interfaces provide a reflective view over an - // enum or message instance. For enums, it provides the ability to retrieve - // the enum value number for any concrete enum type. For messages, it provides - // the ability to access or manipulate fields of the message. - // --// To convert a proto.Message to a protoreflect.Message, use the -+// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the - // former's ProtoReflect method. Since the ProtoReflect method is new to the - // v2 message interface, it may not be present on older message implementations. --// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// The [github.com/golang/protobuf/proto.MessageReflect] function can be used - // to obtain a reflective view on older messages. - // - // # Relationships -@@ -71,12 +71,12 @@ - // │ │ - // └────────────────── Type() ───────┘ - // --// • An EnumType describes a concrete Go enum type. -+// • An [EnumType] describes a concrete Go enum type. - // It has an EnumDescriptor and can construct an Enum instance. - // --// • An EnumDescriptor describes an abstract protobuf enum type. -+// • An [EnumDescriptor] describes an abstract protobuf enum type. - // --// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// • An [Enum] is a concrete enum instance. Generated enums implement Enum. - // - // ┌──────────────── New() ─────────────────┠- // │ │ -@@ -90,24 +90,26 @@ - // │ │ - // └─────────────────── Type() ─────────┘ - // --// • A MessageType describes a concrete Go message type. --// It has a MessageDescriptor and can construct a Message instance. --// Just as how Go's reflect.Type is a reflective description of a Go type, --// a MessageType is a reflective description of a Go type for a protobuf message. -+// • A [MessageType] describes a concrete Go message type. -+// It has a [MessageDescriptor] and can construct a [Message] instance. -+// Just as how Go's [reflect.Type] is a reflective description of a Go type, -+// a [MessageType] is a reflective description of a Go type for a protobuf message. - // --// • A MessageDescriptor describes an abstract protobuf message type. --// It has no understanding of Go types. In order to construct a MessageType --// from just a MessageDescriptor, you can consider looking up the message type --// in the global registry using protoregistry.GlobalTypes.FindMessageByName --// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// • A [MessageDescriptor] describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a [MessageType] -+// from just a [MessageDescriptor], you can consider looking up the message type -+// in the global registry using the FindMessageByName method on -+// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes] -+// or constructing a dynamic [MessageType] using -+// [google.golang.org/protobuf/types/dynamicpb.NewMessageType]. - // --// • A Message is a reflective view over a concrete message instance. --// Generated messages implement ProtoMessage, which can convert to a Message. --// Just as how Go's reflect.Value is a reflective view over a Go value, --// a Message is a reflective view over a concrete protobuf message instance. --// Using Go reflection as an analogy, the ProtoReflect method is similar to --// calling reflect.ValueOf, and the Message.Interface method is similar to --// calling reflect.Value.Interface. -+// • A [Message] is a reflective view over a concrete message instance. -+// Generated messages implement [ProtoMessage], which can convert to a [Message]. -+// Just as how Go's [reflect.Value] is a reflective view over a Go value, -+// a [Message] is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to -+// calling [reflect.ValueOf], and the [Message.Interface] method is similar to -+// calling [reflect.Value.Interface]. - // - // ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠- // │ V │ V -@@ -119,15 +121,15 @@ - // │ │ - // └────── implements ────────┘ - // --// • An ExtensionType describes a concrete Go implementation of an extension. --// It has an ExtensionTypeDescriptor and can convert to/from --// abstract Values and Go values. -+// • An [ExtensionType] describes a concrete Go implementation of an extension. -+// It has an [ExtensionTypeDescriptor] and can convert to/from -+// an abstract [Value] and a Go value. - // --// • An ExtensionTypeDescriptor is an ExtensionDescriptor --// which also has an ExtensionType. -+// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor] -+// which also has an [ExtensionType]. - // --// • An ExtensionDescriptor describes an abstract protobuf extension field and --// may not always be an ExtensionTypeDescriptor. -+// • An [ExtensionDescriptor] describes an abstract protobuf extension field and -+// may not always be an [ExtensionTypeDescriptor]. - package protoreflect - - import ( -@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement - - // ProtoMessage is the top-level interface that all proto messages implement. - // This is declared in the protoreflect package to avoid a cyclic dependency; --// use the proto.Message type instead, which aliases this type. -+// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type. - type ProtoMessage interface{ ProtoReflect() Message } - - // Syntax is the language version of the proto file. -@@ -151,8 +153,9 @@ type Syntax syntax - type syntax int8 // keep exact type opaque as the int type may change - - const ( -- Proto2 Syntax = 2 -- Proto3 Syntax = 3 -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+ Editions Syntax = 4 - ) - - // IsValid reports whether the syntax is valid. -@@ -172,6 +175,8 @@ func (s Syntax) String() string { - return "proto2" - case Proto3: - return "proto3" -+ case Editions: -+ return "editions" - default: - return fmt.Sprintf("", s) - } -@@ -436,7 +441,7 @@ type Names interface { - // FullName is a qualified name that uniquely identifies a proto declaration. - // A qualified name is the concatenation of the proto package along with the - // fully-declared name (i.e., name of parent preceding the name of the child), --// with a '.' delimiter placed between each Name. -+// with a '.' delimiter placed between each [Name]. - // - // This should not have any leading or trailing dots. - type FullName string // e.g., "google.protobuf.Field.Kind" -@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool { - } - - // Name returns the short name, which is the last identifier segment. --// A single segment FullName is the Name itself. -+// A single segment FullName is the [Name] itself. - func (n FullName) Name() Name { - if i := strings.LastIndexByte(string(n), '.'); i >= 0 { - return Name(n[i+1:]) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 717b106f..7dcc2ff0 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { - b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) - case 12: - b = p.appendSingularField(b, "syntax", nil) -- case 13: -+ case 14: - b = p.appendSingularField(b, "edition", nil) - } - return b -@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "java_generic_services", nil) - case 18: - b = p.appendSingularField(b, "py_generic_services", nil) -- case 42: -- b = p.appendSingularField(b, "php_generic_services", nil) - case 23: - b = p.appendSingularField(b, "deprecated", nil) - case 31: -@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "php_metadata_namespace", nil) - case 45: - b = p.appendSingularField(b, "ruby_package", nil) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { - b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 12: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 7: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 34: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 33: - b = p.appendSingularField(b, "deprecated", nil) - case 999: -@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) -- case 18: -- b = p.appendSingularField(b, "target", nil) - case 19: - b = p.appendRepeatedField(b, "targets", nil) -+ case 20: -+ b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault) -+ case 21: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFeatureSet(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "field_presence", nil) -+ case 2: -+ b = p.appendSingularField(b, "enum_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "repeated_field_encoding", nil) -+ case 4: -+ b = p.appendSingularField(b, "utf8_validation", nil) -+ case 5: -+ b = p.appendSingularField(b, "message_encoding", nil) -+ case 6: -+ b = p.appendSingularField(b, "json_format", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - case 2: - b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 3: - b = p.appendSingularField(b, "verification", nil) - } -@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { - switch (*p)[0] { - case 1: - b = p.appendSingularField(b, "deprecated", nil) -+ case 2: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) -+ case 3: -+ b = p.appendSingularField(b, "debug_redact", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 34: - b = p.appendSingularField(b, "idempotency_level", nil) -+ case 35: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 3: -+ b = p.appendSingularField(b, "edition", nil) -+ case 2: -+ b = p.appendSingularField(b, "value", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { - b = p.appendSingularField(b, "full_name", nil) - case 3: - b = p.appendSingularField(b, "type", nil) -- case 4: -- b = p.appendSingularField(b, "is_repeated", nil) - case 5: - b = p.appendSingularField(b, "reserved", nil) - case 6: -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -index 3867470d..60ff62b4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -12,7 +12,7 @@ package protoreflect - // exactly identical. However, it is possible for the same semantically - // identical proto type to be represented by multiple type descriptors. - // --// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// For example, suppose we have t1 and t2 which are both an [MessageDescriptor]. - // If t1 == t2, then the types are definitely equal and all accessors return - // the same information. However, if t1 != t2, then it is still possible that - // they still represent the same proto type (e.g., t1.FullName == t2.FullName). -@@ -115,7 +115,7 @@ type Descriptor interface { - // corresponds with the google.protobuf.FileDescriptorProto message. - // - // Top-level declarations: --// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor]. - type FileDescriptor interface { - Descriptor // Descriptor.FullName is identical to Package - -@@ -180,8 +180,8 @@ type FileImport struct { - // corresponds with the google.protobuf.DescriptorProto message. - // - // Nested declarations: --// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, --// and/or MessageDescriptor. -+// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor], -+// and/or [MessageDescriptor]. - type MessageDescriptor interface { - Descriptor - -@@ -214,7 +214,7 @@ type MessageDescriptor interface { - ExtensionRanges() FieldRanges - // ExtensionRangeOptions returns the ith extension range options. - // -- // To avoid a dependency cycle, this method returns a proto.Message value, -+ // To avoid a dependency cycle, this method returns a proto.Message] value, - // which always contains a google.protobuf.ExtensionRangeOptions message. - // This method returns a typed nil-pointer if no options are present. - // The caller must import the descriptorpb package to use this. -@@ -231,9 +231,9 @@ type MessageDescriptor interface { - } - type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } - --// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation. - // It is recommended that implementations of this interface also implement the --// MessageFieldTypes interface. -+// [MessageFieldTypes] interface. - type MessageType interface { - // New returns a newly allocated empty message. - // It may return nil for synthetic messages representing a map entry. -@@ -249,19 +249,19 @@ type MessageType interface { - Descriptor() MessageDescriptor - } - --// MessageFieldTypes extends a MessageType by providing type information -+// MessageFieldTypes extends a [MessageType] by providing type information - // regarding enums and messages referenced by the message fields. - type MessageFieldTypes interface { - MessageType - -- // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // Enum returns the EnumType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not an enum kind. - // It panics if out of bounds. - // - // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() - Enum(i int) EnumType - -- // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // Message returns the MessageType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not a message or group kind. - // It panics if out of bounds. - // -@@ -286,8 +286,8 @@ type MessageDescriptors interface { - // corresponds with the google.protobuf.FieldDescriptorProto message. - // - // It is used for both normal fields defined within the parent message --// (e.g., MessageDescriptor.Fields) and fields that extend some remote message --// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message -+// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]). - type FieldDescriptor interface { - Descriptor - -@@ -344,7 +344,7 @@ type FieldDescriptor interface { - // IsMap reports whether this field represents a map, - // where the value type for the associated field is a Map. - // It is equivalent to checking whether Cardinality is Repeated, -- // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ // that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true. - IsMap() bool - - // MapKey returns the field descriptor for the key in the map entry. -@@ -419,7 +419,7 @@ type OneofDescriptor interface { - - // IsSynthetic reports whether this is a synthetic oneof created to support - // proto3 optional semantics. If true, Fields contains exactly one field -- // with HasOptionalKeyword specified. -+ // with FieldDescriptor.HasOptionalKeyword specified. - IsSynthetic() bool - - // Fields is a list of fields belonging to this oneof. -@@ -442,10 +442,10 @@ type OneofDescriptors interface { - doNotImplement - } - --// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation. - type ExtensionDescriptor = FieldDescriptor - --// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType]. - type ExtensionTypeDescriptor interface { - ExtensionDescriptor - -@@ -470,12 +470,12 @@ type ExtensionDescriptors interface { - doNotImplement - } - --// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete - // Go implementation. The nested field descriptor must be for a extension field. - // - // While a normal field is a member of the parent message that it is declared --// within (see Descriptor.Parent), an extension field is a member of some other --// target message (see ExtensionDescriptor.Extendee) and may have no -+// within (see [Descriptor.Parent]), an extension field is a member of some other -+// target message (see [FieldDescriptor.ContainingMessage]) and may have no - // relationship with the parent. However, the full name of an extension field is - // relative to the parent that it is declared within. - // -@@ -532,7 +532,7 @@ type ExtensionType interface { - // corresponds with the google.protobuf.EnumDescriptorProto message. - // - // Nested declarations: --// EnumValueDescriptor. -+// [EnumValueDescriptor]. - type EnumDescriptor interface { - Descriptor - -@@ -548,7 +548,7 @@ type EnumDescriptor interface { - } - type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } - --// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation. - type EnumType interface { - // New returns an instance of this enum type with its value set to n. - New(n EnumNumber) Enum -@@ -610,7 +610,7 @@ type EnumValueDescriptors interface { - // ServiceDescriptor describes a service and - // corresponds with the google.protobuf.ServiceDescriptorProto message. - // --// Nested declarations: MethodDescriptor. -+// Nested declarations: [MethodDescriptor]. - type ServiceDescriptor interface { - Descriptor - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -index 37601b78..a7b0d06f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -27,16 +27,16 @@ type Enum interface { - // Message is a reflective interface for a concrete message value, - // encapsulating both type and value information for the message. - // --// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// Accessor/mutators for individual fields are keyed by [FieldDescriptor]. - // For non-extension fields, the descriptor must exactly match the - // field known by the parent message. --// For extension fields, the descriptor must implement ExtensionTypeDescriptor, --// extend the parent message (i.e., have the same message FullName), and -+// For extension fields, the descriptor must implement [ExtensionTypeDescriptor], -+// extend the parent message (i.e., have the same message [FullName]), and - // be within the parent's extension range. - // --// Each field Value can be a scalar or a composite type (Message, List, or Map). --// See Value for the Go types associated with a FieldDescriptor. --// Providing a Value that is invalid or of an incorrect type panics. -+// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]). -+// See [Value] for the Go types associated with a [FieldDescriptor]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type Message interface { - // Descriptor returns message descriptor, which contains only the protobuf - // type information for the message. -@@ -152,7 +152,7 @@ type Message interface { - // This method may return nil. - // - // The returned methods type is identical to -- // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // google.golang.org/protobuf/runtime/protoiface.Methods. - // Consult the protoiface package documentation for details. - ProtoMethods() *methods - } -@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool { - } - - // List is a zero-indexed, ordered list. --// The element Value type is determined by FieldDescriptor.Kind. --// Providing a Value that is invalid or of an incorrect type panics. -+// The element [Value] type is determined by [FieldDescriptor.Kind]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type List interface { - // Len reports the number of entries in the List. - // Get, Set, and Truncate panic with out of bound indexes. -@@ -226,9 +226,9 @@ type List interface { - } - - // Map is an unordered, associative map. --// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. --// The entry Value type is determined by FieldDescriptor.MapValue.Kind. --// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind. -+// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind. -+// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics. - type Map interface { - // Len reports the number of elements in the map. - Len() int -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -index 59165254..654599d4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -24,19 +24,19 @@ import ( - // Unlike the == operator, a NaN is equal to another NaN. - // - // - Enums are equal if they contain the same number. --// Since Value does not contain an enum descriptor, -+// Since [Value] does not contain an enum descriptor, - // enum values do not consider the type of the enum. - // - // - Other scalar values are equal if they contain the same value. - // --// - Message values are equal if they belong to the same message descriptor, -+// - [Message] values are equal if they belong to the same message descriptor, - // have the same set of populated known and extension field values, - // and the same set of unknown fields values. - // --// - Lists are equal if they are the same length and -+// - [List] values are equal if they are the same length and - // each corresponding element is equal. - // --// - Maps are equal if they have the same set of keys and -+// - [Map] values are equal if they have the same set of keys and - // the corresponding value for each key is equal. - func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -index 08e5ef73..16030973 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -11,7 +11,7 @@ import ( - - // Value is a union where only one Go type may be set at a time. - // The Value is used to represent all possible values a field may take. --// The following shows which Go type is used to represent each proto Kind: -+// The following shows which Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -31,22 +31,22 @@ import ( - // - // Multiple protobuf Kinds may be represented by a single Go type if the type - // can losslessly represent the information for the proto kind. For example, --// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64, - // but use different integer encoding methods. - // --// The List or Map types are used if the field cardinality is repeated. --// A field is a List if FieldDescriptor.IsList reports true. --// A field is a Map if FieldDescriptor.IsMap reports true. -+// The [List] or [Map] types are used if the field cardinality is repeated. -+// A field is a [List] if [FieldDescriptor.IsList] reports true. -+// A field is a [Map] if [FieldDescriptor.IsMap] reports true. - // - // Converting to/from a Value and a concrete Go value panics on type mismatch. --// For example, ValueOf("hello").Int() panics because this attempts to -+// For example, [ValueOf]("hello").Int() panics because this attempts to - // retrieve an int64 from a string. - // --// List, Map, and Message Values are called "composite" values. -+// [List], [Map], and [Message] Values are called "composite" values. - // - // A composite Value may alias (reference) memory at some location, - // such that changes to the Value updates the that location. --// A composite value acquired with a Mutable method, such as Message.Mutable, -+// A composite value acquired with a Mutable method, such as [Message.Mutable], - // always references the source object. - // - // For example: -@@ -65,7 +65,7 @@ import ( - // // appending to the List here may or may not modify the message. - // list.Append(protoreflect.ValueOfInt32(0)) - // --// Some operations, such as Message.Get, may return an "empty, read-only" -+// Some operations, such as [Message.Get], may return an "empty, read-only" - // composite Value. Modifying an empty, read-only value panics. - type Value value - -@@ -306,7 +306,7 @@ func (v Value) Float() float64 { - } - } - --// String returns v as a string. Since this method implements fmt.Stringer, -+// String returns v as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (v Value) String() string { - switch v.typ { -@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte { - } - } - --// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber]. - func (v Value) Enum() EnumNumber { - switch v.typ { - case enumType: -@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber { - } - } - --// Message returns v as a Message and panics if the type is not a Message. -+// Message returns v as a [Message] and panics if the type is not a [Message]. - func (v Value) Message() Message { - switch vi := v.getIface().(type) { - case Message: -@@ -347,7 +347,7 @@ func (v Value) Message() Message { - } - } - --// List returns v as a List and panics if the type is not a List. -+// List returns v as a [List] and panics if the type is not a [List]. - func (v Value) List() List { - switch vi := v.getIface().(type) { - case List: -@@ -357,7 +357,7 @@ func (v Value) List() List { - } - } - --// Map returns v as a Map and panics if the type is not a Map. -+// Map returns v as a [Map] and panics if the type is not a [Map]. - func (v Value) Map() Map { - switch vi := v.getIface().(type) { - case Map: -@@ -367,7 +367,7 @@ func (v Value) Map() Map { - } - } - --// MapKey returns v as a MapKey and panics for invalid MapKey types. -+// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types. - func (v Value) MapKey() MapKey { - switch v.typ { - case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey { - } - - // MapKey is used to index maps, where the Go type of the MapKey must match --// the specified key Kind (see MessageDescriptor.IsMapEntry). --// The following shows what Go type is used to represent each proto Kind: -+// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]). -+// The following shows what Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey { - // â•‘ string │ StringKind â•‘ - // â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• - // --// A MapKey is constructed and accessed through a Value: -+// A MapKey is constructed and accessed through a [Value]: - // - // k := ValueOf("hash").MapKey() // convert string to MapKey - // s := k.String() // convert MapKey to string - // --// The MapKey is a strict subset of valid types used in Value; --// converting a Value to a MapKey with an invalid type panics. -+// The MapKey is a strict subset of valid types used in [Value]; -+// converting a [Value] to a MapKey with an invalid type panics. - type MapKey value - - // IsValid reports whether k is populated with a value. -@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 { - return Value(k).Uint() - } - --// String returns k as a string. Since this method implements fmt.Stringer, -+// String returns k as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (k MapKey) String() string { - return Value(k).String() - } - --// Value returns k as a Value. -+// Value returns k as a [Value]. - func (k MapKey) Value() Value { - return Value(k) - } -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -similarity index 97% -rename from vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -rename to vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -index 702ddf22..b1fdbe3e 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package protoreflect - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -new file mode 100644 -index 00000000..43547011 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -@@ -0,0 +1,87 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ ifaceHeader struct { -+ _ [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it. -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() string { -+ return unsafe.String((*byte)(v.ptr), v.num) -+} -+func (v Value) getBytes() []byte { -+ return unsafe.Slice((*byte)(v.ptr), v.num) -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -index aeb55977..6267dc52 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -5,12 +5,12 @@ - // Package protoregistry provides data structures to register and lookup - // protobuf descriptor types. - // --// The Files registry contains file descriptors and provides the ability -+// The [Files] registry contains file descriptors and provides the ability - // to iterate over the files or lookup a specific descriptor within the files. --// Files only contains protobuf descriptors and has no understanding of Go -+// [Files] only contains protobuf descriptors and has no understanding of Go - // type information that may be associated with each descriptor. - // --// The Types registry contains descriptor types for which there is a known -+// The [Types] registry contains descriptor types for which there is a known - // Go type associated with that descriptor. It provides the ability to iterate - // over the registered types or lookup a type by name. - package protoregistry -@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) { - - // FindDescriptorByName looks up a descriptor by the full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { - if r == nil { - return nil, NotFound -@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { - - // FindFileByPath looks up a file by the path. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - // This returns an error if multiple files have the same path. - func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { - if r == nil { -@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type MessageTypeResolver interface { - // FindMessageByName looks up a message by its full name. - // E.g., "google.protobuf.Any" -@@ -451,7 +451,7 @@ type MessageTypeResolver interface { - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type ExtensionTypeResolver interface { - // FindExtensionByName looks up a extension field by the field's full name. - // Note that this is the full name of the field as determined by -@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac - // FindEnumByName looks up an enum by its full name. - // E.g., "google.protobuf.Field.Kind". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { - if r == nil { - return nil, NotFound -@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp - // FindMessageByName looks up a message by its full name, - // e.g. "google.protobuf.Any". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - if r == nil { - return nil, NotFound -@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M - // FindMessageByURL looks up a message by a URL identifier. - // See documentation on google.protobuf.Any.type_url for the URL format. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // This function is similar to FindMessageByName but - // truncates anything before and including '/' in the URL. -@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // where the extension is declared and is unrelated to the full name of the - // message being extended. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E - // FindExtensionByNumber looks up a extension field by the field number - // within some parent message, identified by full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index 04c00f73..78624cf6 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,103 @@ import ( - sync "sync" - ) - -+// The full set of known editions. -+type Edition int32 -+ -+const ( -+ // A placeholder for an unknown edition value. -+ Edition_EDITION_UNKNOWN Edition = 0 -+ // Legacy syntax "editions". These pre-date editions, but behave much like -+ // distinct editions. These can't be used to specify the edition of proto -+ // files, but feature definitions must supply proto2/proto3 defaults for -+ // backwards compatibility. -+ Edition_EDITION_PROTO2 Edition = 998 -+ Edition_EDITION_PROTO3 Edition = 999 -+ // Editions that have been released. The specific values are arbitrary and -+ // should not be depended on, but they will always be time-ordered for easy -+ // comparison. -+ Edition_EDITION_2023 Edition = 1000 -+ Edition_EDITION_2024 Edition = 1001 -+ // Placeholder editions for testing feature resolution. These should not be -+ // used or relyed on outside of tests. -+ Edition_EDITION_1_TEST_ONLY Edition = 1 -+ Edition_EDITION_2_TEST_ONLY Edition = 2 -+ Edition_EDITION_99997_TEST_ONLY Edition = 99997 -+ Edition_EDITION_99998_TEST_ONLY Edition = 99998 -+ Edition_EDITION_99999_TEST_ONLY Edition = 99999 -+ // Placeholder for specifying unbounded edition support. This should only -+ // ever be used by plugins that can expect to never require any changes to -+ // support a new edition. -+ Edition_EDITION_MAX Edition = 2147483647 -+) -+ -+// Enum value maps for Edition. -+var ( -+ Edition_name = map[int32]string{ -+ 0: "EDITION_UNKNOWN", -+ 998: "EDITION_PROTO2", -+ 999: "EDITION_PROTO3", -+ 1000: "EDITION_2023", -+ 1001: "EDITION_2024", -+ 1: "EDITION_1_TEST_ONLY", -+ 2: "EDITION_2_TEST_ONLY", -+ 99997: "EDITION_99997_TEST_ONLY", -+ 99998: "EDITION_99998_TEST_ONLY", -+ 99999: "EDITION_99999_TEST_ONLY", -+ 2147483647: "EDITION_MAX", -+ } -+ Edition_value = map[string]int32{ -+ "EDITION_UNKNOWN": 0, -+ "EDITION_PROTO2": 998, -+ "EDITION_PROTO3": 999, -+ "EDITION_2023": 1000, -+ "EDITION_2024": 1001, -+ "EDITION_1_TEST_ONLY": 1, -+ "EDITION_2_TEST_ONLY": 2, -+ "EDITION_99997_TEST_ONLY": 99997, -+ "EDITION_99998_TEST_ONLY": 99998, -+ "EDITION_99999_TEST_ONLY": 99999, -+ "EDITION_MAX": 2147483647, -+ } -+) -+ -+func (x Edition) Enum() *Edition { -+ p := new(Edition) -+ *p = x -+ return p -+} -+ -+func (x Edition) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (Edition) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (Edition) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x Edition) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *Edition) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = Edition(num) -+ return nil -+} -+ -+// Deprecated: Use Edition.Descriptor instead. -+func (Edition) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ - // The verification state of the extension range. - type ExtensionRangeOptions_VerificationState int32 - -@@ -80,11 +177,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string { - } - - func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -@@ -125,9 +222,10 @@ const ( - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - // Tag-delimited aggregate. -- // Group type is deprecated and not supported in proto3. However, Proto3 -+ // Group type is deprecated and not supported after google.protobuf. However, Proto3 - // implementations should still be able to parse the group wire format and -- // treat group fields as unknown fields. -+ // treat group fields as unknown fields. In Editions, the group wire format -+ // can be enabled via the `message_encoding` feature. - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. - // New in version 2. -@@ -195,11 +293,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -226,21 +324,24 @@ type FieldDescriptorProto_Label int32 - const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -- FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+ // The required label is only allowed in google.protobuf. In proto3 and Editions -+ // it's explicitly prohibited. In Editions, the `field_presence` feature -+ // can be used to get this behavior. -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - ) - - // Enum value maps for FieldDescriptorProto_Label. - var ( - FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", -- 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -+ 2: "LABEL_REQUIRED", - } - FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, -- "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -+ "LABEL_REQUIRED": 2, - } - ) - -@@ -255,11 +356,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -316,11 +417,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -382,11 +483,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -444,11 +545,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -506,11 +607,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -590,11 +691,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -652,11 +753,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -678,6 +779,363 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} - } - -+type FeatureSet_FieldPresence int32 -+ -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0 -+ FeatureSet_EXPLICIT FeatureSet_FieldPresence = 1 -+ FeatureSet_IMPLICIT FeatureSet_FieldPresence = 2 -+ FeatureSet_LEGACY_REQUIRED FeatureSet_FieldPresence = 3 -+) -+ -+// Enum value maps for FeatureSet_FieldPresence. -+var ( -+ FeatureSet_FieldPresence_name = map[int32]string{ -+ 0: "FIELD_PRESENCE_UNKNOWN", -+ 1: "EXPLICIT", -+ 2: "IMPLICIT", -+ 3: "LEGACY_REQUIRED", -+ } -+ FeatureSet_FieldPresence_value = map[string]int32{ -+ "FIELD_PRESENCE_UNKNOWN": 0, -+ "EXPLICIT": 1, -+ "IMPLICIT": 2, -+ "LEGACY_REQUIRED": 3, -+ } -+) -+ -+func (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence { -+ p := new(FeatureSet_FieldPresence) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_FieldPresence) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor() -+} -+ -+func (FeatureSet_FieldPresence) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[10] -+} -+ -+func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_FieldPresence(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead. -+func (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+type FeatureSet_EnumType int32 -+ -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0 -+ FeatureSet_OPEN FeatureSet_EnumType = 1 -+ FeatureSet_CLOSED FeatureSet_EnumType = 2 -+) -+ -+// Enum value maps for FeatureSet_EnumType. -+var ( -+ FeatureSet_EnumType_name = map[int32]string{ -+ 0: "ENUM_TYPE_UNKNOWN", -+ 1: "OPEN", -+ 2: "CLOSED", -+ } -+ FeatureSet_EnumType_value = map[string]int32{ -+ "ENUM_TYPE_UNKNOWN": 0, -+ "OPEN": 1, -+ "CLOSED": 2, -+ } -+) -+ -+func (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType { -+ p := new(FeatureSet_EnumType) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_EnumType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor() -+} -+ -+func (FeatureSet_EnumType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[11] -+} -+ -+func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_EnumType(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_EnumType.Descriptor instead. -+func (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1} -+} -+ -+type FeatureSet_RepeatedFieldEncoding int32 -+ -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0 -+ FeatureSet_PACKED FeatureSet_RepeatedFieldEncoding = 1 -+ FeatureSet_EXPANDED FeatureSet_RepeatedFieldEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_RepeatedFieldEncoding. -+var ( -+ FeatureSet_RepeatedFieldEncoding_name = map[int32]string{ -+ 0: "REPEATED_FIELD_ENCODING_UNKNOWN", -+ 1: "PACKED", -+ 2: "EXPANDED", -+ } -+ FeatureSet_RepeatedFieldEncoding_value = map[string]int32{ -+ "REPEATED_FIELD_ENCODING_UNKNOWN": 0, -+ "PACKED": 1, -+ "EXPANDED": 2, -+ } -+) -+ -+func (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding { -+ p := new(FeatureSet_RepeatedFieldEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor() -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[12] -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_RepeatedFieldEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead. -+func (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2} -+} -+ -+type FeatureSet_Utf8Validation int32 -+ -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0 -+ FeatureSet_VERIFY FeatureSet_Utf8Validation = 2 -+ FeatureSet_NONE FeatureSet_Utf8Validation = 3 -+) -+ -+// Enum value maps for FeatureSet_Utf8Validation. -+var ( -+ FeatureSet_Utf8Validation_name = map[int32]string{ -+ 0: "UTF8_VALIDATION_UNKNOWN", -+ 2: "VERIFY", -+ 3: "NONE", -+ } -+ FeatureSet_Utf8Validation_value = map[string]int32{ -+ "UTF8_VALIDATION_UNKNOWN": 0, -+ "VERIFY": 2, -+ "NONE": 3, -+ } -+) -+ -+func (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation { -+ p := new(FeatureSet_Utf8Validation) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_Utf8Validation) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor() -+} -+ -+func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[13] -+} -+ -+func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_Utf8Validation(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead. -+func (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3} -+} -+ -+type FeatureSet_MessageEncoding int32 -+ -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0 -+ FeatureSet_LENGTH_PREFIXED FeatureSet_MessageEncoding = 1 -+ FeatureSet_DELIMITED FeatureSet_MessageEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_MessageEncoding. -+var ( -+ FeatureSet_MessageEncoding_name = map[int32]string{ -+ 0: "MESSAGE_ENCODING_UNKNOWN", -+ 1: "LENGTH_PREFIXED", -+ 2: "DELIMITED", -+ } -+ FeatureSet_MessageEncoding_value = map[string]int32{ -+ "MESSAGE_ENCODING_UNKNOWN": 0, -+ "LENGTH_PREFIXED": 1, -+ "DELIMITED": 2, -+ } -+) -+ -+func (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding { -+ p := new(FeatureSet_MessageEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_MessageEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor() -+} -+ -+func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[14] -+} -+ -+func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_MessageEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead. -+func (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4} -+} -+ -+type FeatureSet_JsonFormat int32 -+ -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0 -+ FeatureSet_ALLOW FeatureSet_JsonFormat = 1 -+ FeatureSet_LEGACY_BEST_EFFORT FeatureSet_JsonFormat = 2 -+) -+ -+// Enum value maps for FeatureSet_JsonFormat. -+var ( -+ FeatureSet_JsonFormat_name = map[int32]string{ -+ 0: "JSON_FORMAT_UNKNOWN", -+ 1: "ALLOW", -+ 2: "LEGACY_BEST_EFFORT", -+ } -+ FeatureSet_JsonFormat_value = map[string]int32{ -+ "JSON_FORMAT_UNKNOWN": 0, -+ "ALLOW": 1, -+ "LEGACY_BEST_EFFORT": 2, -+ } -+) -+ -+func (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat { -+ p := new(FeatureSet_JsonFormat) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_JsonFormat) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor() -+} -+ -+func (FeatureSet_JsonFormat) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[15] -+} -+ -+func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_JsonFormat(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead. -+func (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5} -+} -+ - // Represents the identified object's effect on the element in the original - // .proto file. - type GeneratedCodeInfo_Annotation_Semantic int32 -@@ -716,11 +1174,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[9] -+ return &file_google_protobuf_descriptor_proto_enumTypes[16] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -739,7 +1197,7 @@ func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - - // Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. - func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0} - } - - // The protocol compiler can output a FileDescriptorSet containing the .proto -@@ -822,8 +1280,8 @@ type FileDescriptorProto struct { - // - // If `edition` is present, this value must be "editions". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -- // The edition of the proto file, which is an opaque string. -- Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+ // The edition of the proto file. -+ Edition *Edition `protobuf:"varint,14,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` - } - - func (x *FileDescriptorProto) Reset() { -@@ -942,11 +1400,11 @@ func (x *FileDescriptorProto) GetSyntax() string { - return "" - } - --func (x *FileDescriptorProto) GetEdition() string { -+func (x *FileDescriptorProto) GetEdition() Edition { - if x != nil && x.Edition != nil { - return *x.Edition - } -- return "" -+ return Edition_EDITION_UNKNOWN - } - - // Describes a message type. -@@ -1079,13 +1537,14 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -- // go/protobuf-stripping-extension-declarations -- // Like Metadata, but we use a repeated field to hold all extension -- // declarations. This should avoid the size increases of transforming a large -- // extension range into small ranges in generated binaries. -+ // For external users: DO NOT USE. We are in the process of open sourcing -+ // extension declaration and executing internal cleanups before it can be -+ // used externally. - Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The verification state of the range. -- // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // TODO: flip the default to DECLARATION once all empty ranges - // are marked as UNVERIFIED. - Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` - } -@@ -1141,6 +1600,13 @@ func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declar - return nil - } - -+func (x *ExtensionRangeOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { - if x != nil && x.Verification != nil { - return *x.Verification -@@ -1186,12 +1652,12 @@ type FieldDescriptorProto struct { - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // -- // When proto3_optional is true, this field must be belong to a oneof to -- // signal to old proto3 clients that presence is tracked for this field. This -- // oneof is known as a "synthetic" oneof, and this field must be its sole -- // member (each proto3 optional field gets its own synthetic oneof). Synthetic -- // oneofs exist in the descriptor only, and do not generate any API. Synthetic -- // oneofs must be ordered after all "real" oneofs. -+ // When proto3_optional is true, this field must belong to a oneof to signal -+ // to old proto3 clients that presence is tracked for this field. This oneof -+ // is known as a "synthetic" oneof, and this field must be its sole member -+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs -+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs -+ // must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still -@@ -1738,7 +2204,6 @@ type FileOptions struct { - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -- PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very -@@ -1772,6 +2237,8 @@ type FileOptions struct { - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -@@ -1785,7 +2252,6 @@ const ( - Default_FileOptions_CcGenericServices = bool(false) - Default_FileOptions_JavaGenericServices = bool(false) - Default_FileOptions_PyGenericServices = bool(false) -- Default_FileOptions_PhpGenericServices = bool(false) - Default_FileOptions_Deprecated = bool(false) - Default_FileOptions_CcEnableArenas = bool(true) - ) -@@ -1893,13 +2359,6 @@ func (x *FileOptions) GetPyGenericServices() bool { - return Default_FileOptions_PyGenericServices - } - --func (x *FileOptions) GetPhpGenericServices() bool { -- if x != nil && x.PhpGenericServices != nil { -- return *x.PhpGenericServices -- } -- return Default_FileOptions_PhpGenericServices --} -- - func (x *FileOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -1963,6 +2422,13 @@ func (x *FileOptions) GetRubyPackage() string { - return "" - } - -+func (x *FileOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2006,10 +2472,6 @@ type MessageOptions struct { - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -- // NOTE: Do not set the option in .proto files. Always use the maps syntax -- // instead. The option should only be implicitly set by the proto compiler -- // parser. -- // - // Whether the message is an automatically generated map entry type for the - // maps field. - // -@@ -2030,6 +2492,10 @@ type MessageOptions struct { - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. -+ // -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. -@@ -2039,11 +2505,13 @@ type MessageOptions struct { - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. - // -- // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // TODO This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,12,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2123,6 +2591,13 @@ func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *MessageOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2147,7 +2622,9 @@ type FieldOptions struct { - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to -- // false will avoid using packed encoding. -+ // false will avoid using packed encoding. This option is prohibited in -+ // Editions, but the `repeated_field_encoding` feature can be used to control -+ // the behavior. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types -@@ -2178,19 +2655,11 @@ type FieldOptions struct { - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // -- // Note that implementations may choose not to check required fields within -- // a lazy sub-message. That is, calling IsInitialized() on the outer message -- // may return true even if the inner message has missing required fields. -- // This is necessary because otherwise the inner message would have to be -- // parsed in order to perform the check, defeating the purpose of lazy -- // parsing. An implementation which chooses not to check required fields -- // must be consistent about it. That is, for any particular sub-message, the -- // implementation must either *always* check its required fields, or *never* -- // check its required fields, regardless of whether or not the message has -- // been parsed. -- // -- // As of May 2022, lazy verifies the contents of the byte stream during -- // parsing. An invalid byte stream will cause the overall parsing to fail. -+ // Note that lazy message fields are still eagerly verified to check -+ // ill-formed wireformat or missing required fields. Calling IsInitialized() -+ // on the outer message would fail if the inner message has missing required -+ // fields. Failed verification would result in parsing failure (except when -+ // uninitialized messages are acceptable). - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance -@@ -2205,11 +2674,12 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -- Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ EditionDefaults []*FieldOptions_EditionDefault `protobuf:"bytes,20,rep,name=edition_defaults,json=editionDefaults" json:"edition_defaults,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,21,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2320,17 +2790,23 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -- if x != nil && x.Target != nil { -- return *x.Target -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets - } -- return FieldOptions_TARGET_TYPE_UNKNOWN -+ return nil - } - --func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+func (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault { - if x != nil { -- return x.Targets -+ return x.EditionDefaults -+ } -+ return nil -+} -+ -+func (x *FieldOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features - } - return nil - } -@@ -2348,6 +2824,8 @@ type OneofOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,1,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2384,6 +2862,13 @@ func (*OneofOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} - } - -+func (x *OneofOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2409,11 +2894,13 @@ type EnumOptions struct { - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. -- // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // TODO Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,7,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2477,6 +2964,13 @@ func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *EnumOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2495,13 +2989,20 @@ type EnumValueOptions struct { - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+ // Indicate that fields annotated with this enum value should not be printed -+ // out when using debug formats, e.g. when the field contains sensitive -+ // credentials. -+ DebugRedact *bool `protobuf:"varint,3,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } - - // Default values for EnumValueOptions fields. - const ( -- Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_DebugRedact = bool(false) - ) - - func (x *EnumValueOptions) Reset() { -@@ -2543,6 +3044,20 @@ func (x *EnumValueOptions) GetDeprecated() bool { - return Default_EnumValueOptions_Deprecated - } - -+func (x *EnumValueOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ -+func (x *EnumValueOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_EnumValueOptions_DebugRedact -+} -+ - func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2556,6 +3071,8 @@ type ServiceOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,34,opt,name=features" json:"features,omitempty"` - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, -@@ -2602,6 +3119,13 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} - } - -+func (x *ServiceOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ServiceOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -2628,6 +3152,8 @@ type MethodOptions struct { - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,35,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2684,6 +3210,13 @@ func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { - return Default_MethodOptions_IdempotencyLevel - } - -+func (x *MethodOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2770,28 +3303,193 @@ func (x *UninterpretedOption) GetNegativeIntValue() int64 { - if x != nil && x.NegativeIntValue != nil { - return *x.NegativeIntValue - } -- return 0 -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// TODO Enums in C++ gencode (and potentially other languages) are -+// not well scoped. This means that each of the feature enums below can clash -+// with each other. The short names we've chosen maximize call-site -+// readability, but leave us very open to this scenario. A future feature will -+// be designed and implemented to handle this, hopefully before we ever hit a -+// conflict here. -+type FeatureSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"` -+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"` -+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"` -+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"` -+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"` -+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"` -+} -+ -+func (x *FeatureSet) Reset() { -+ *x = FeatureSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSet) ProtoMessage() {} -+ -+func (x *FeatureSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ 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 FeatureSet.ProtoReflect.Descriptor instead. -+func (*FeatureSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence { -+ if x != nil && x.FieldPresence != nil { -+ return *x.FieldPresence -+ } -+ return FeatureSet_FIELD_PRESENCE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetEnumType() FeatureSet_EnumType { -+ if x != nil && x.EnumType != nil { -+ return *x.EnumType -+ } -+ return FeatureSet_ENUM_TYPE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding { -+ if x != nil && x.RepeatedFieldEncoding != nil { -+ return *x.RepeatedFieldEncoding -+ } -+ return FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation { -+ if x != nil && x.Utf8Validation != nil { -+ return *x.Utf8Validation -+ } -+ return FeatureSet_UTF8_VALIDATION_UNKNOWN -+} -+ -+func (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding { -+ if x != nil && x.MessageEncoding != nil { -+ return *x.MessageEncoding -+ } -+ return FeatureSet_MESSAGE_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat { -+ if x != nil && x.JsonFormat != nil { -+ return *x.JsonFormat -+ } -+ return FeatureSet_JSON_FORMAT_UNKNOWN -+} -+ -+// A compiled specification for the defaults of a set of features. These -+// messages are generated from FeatureSet extensions and can be used to seed -+// feature resolution. The resolution with this object becomes a simple search -+// for the closest matching edition, followed by proto merges. -+type FeatureSetDefaults struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Defaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:"bytes,1,rep,name=defaults" json:"defaults,omitempty"` -+ // The minimum supported edition (inclusive) when this was constructed. -+ // Editions before this will not have defaults. -+ MinimumEdition *Edition `protobuf:"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition" json:"minimum_edition,omitempty"` -+ // The maximum known edition (inclusive) when this was constructed. Editions -+ // after this will not have reliable defaults. -+ MaximumEdition *Edition `protobuf:"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition" json:"maximum_edition,omitempty"` -+} -+ -+func (x *FeatureSetDefaults) Reset() { -+ *x = FeatureSetDefaults{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ 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) - } - --func (x *UninterpretedOption) GetDoubleValue() float64 { -- if x != nil && x.DoubleValue != nil { -- return *x.DoubleValue -- } -- return 0 -+// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} - } - --func (x *UninterpretedOption) GetStringValue() []byte { -+func (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault { - if x != nil { -- return x.StringValue -+ return x.Defaults - } - return nil - } - --func (x *UninterpretedOption) GetAggregateValue() string { -- if x != nil && x.AggregateValue != nil { -- return *x.AggregateValue -+func (x *FeatureSetDefaults) GetMinimumEdition() Edition { -+ if x != nil && x.MinimumEdition != nil { -+ return *x.MinimumEdition - } -- return "" -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults) GetMaximumEdition() Edition { -+ if x != nil && x.MaximumEdition != nil { -+ return *x.MaximumEdition -+ } -+ return Edition_EDITION_UNKNOWN - } - - // Encapsulates information about the original source file from which a -@@ -2855,7 +3553,7 @@ type SourceCodeInfo struct { - func (x *SourceCodeInfo) Reset() { - *x = SourceCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2868,7 +3566,7 @@ func (x *SourceCodeInfo) String() string { - func (*SourceCodeInfo) ProtoMessage() {} - - func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2881,7 +3579,7 @@ func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21} - } - - func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -@@ -2907,7 +3605,7 @@ type GeneratedCodeInfo struct { - func (x *GeneratedCodeInfo) Reset() { - *x = GeneratedCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2920,7 +3618,7 @@ func (x *GeneratedCodeInfo) String() string { - func (*GeneratedCodeInfo) ProtoMessage() {} - - func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2933,7 +3631,7 @@ func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22} - } - - func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -@@ -2956,7 +3654,7 @@ type DescriptorProto_ExtensionRange struct { - func (x *DescriptorProto_ExtensionRange) Reset() { - *x = DescriptorProto_ExtensionRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2969,7 +3667,7 @@ func (x *DescriptorProto_ExtensionRange) String() string { - func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - - func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3021,7 +3719,7 @@ type DescriptorProto_ReservedRange struct { - func (x *DescriptorProto_ReservedRange) Reset() { - *x = DescriptorProto_ReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3034,7 +3732,7 @@ func (x *DescriptorProto_ReservedRange) String() string { - func (*DescriptorProto_ReservedRange) ProtoMessage() {} - - func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3078,10 +3776,6 @@ type ExtensionRangeOptions_Declaration struct { - // Metadata.type, Declaration.type must have a leading dot for messages - // and enums. - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -- // Deprecated. Please use "repeated". -- // -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` - // If true, indicates that the number is reserved in the extension range, - // and any extension field with the number will fail to compile. Set this - // when a declared extension field is deleted. -@@ -3094,7 +3788,7 @@ type ExtensionRangeOptions_Declaration struct { - func (x *ExtensionRangeOptions_Declaration) Reset() { - *x = ExtensionRangeOptions_Declaration{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3107,7 +3801,7 @@ func (x *ExtensionRangeOptions_Declaration) String() string { - func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} - - func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3144,14 +3838,6 @@ func (x *ExtensionRangeOptions_Declaration) GetType() string { - return "" - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -- if x != nil && x.IsRepeated != nil { -- return *x.IsRepeated -- } -- return false --} -- - func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { - if x != nil && x.Reserved != nil { - return *x.Reserved -@@ -3184,7 +3870,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3197,7 +3883,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3227,6 +3913,61 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { - return 0 - } - -+type FieldOptions_EditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Textproto value. -+} -+ -+func (x *FieldOptions_EditionDefault) Reset() { -+ *x = FieldOptions_EditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions_EditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions_EditionDefault) ProtoMessage() {} -+ -+func (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ 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 FieldOptions_EditionDefault.ProtoReflect.Descriptor instead. -+func (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+func (x *FieldOptions_EditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FieldOptions_EditionDefault) GetValue() string { -+ if x != nil && x.Value != nil { -+ return *x.Value -+ } -+ return "" -+} -+ - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). -@@ -3244,7 +3985,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3257,7 +3998,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3287,6 +4028,65 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool { - return false - } - -+// A map from every known edition with a unique set of defaults to its -+// defaults. Not all editions may be contained here. For a given edition, -+// the defaults at the closest matching edition ordered at or before it should -+// be used. This field must be in strict ascending order by edition. -+type FeatureSetDefaults_FeatureSetEditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() { -+ *x = FeatureSetDefaults_FeatureSetEditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ 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 FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - type SourceCodeInfo_Location struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache -@@ -3296,7 +4096,7 @@ type SourceCodeInfo_Location struct { - // location. - // - // Each element is a field number or an index. They form a path from -- // the root FileDescriptorProto to the place where the definition occurs. -+ // the root FileDescriptorProto to the place where the definition appears. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] -@@ -3388,7 +4188,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3401,7 +4201,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3414,7 +4214,7 @@ func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0} - } - - func (x *SourceCodeInfo_Location) GetPath() []int32 { -@@ -3475,7 +4275,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3488,7 +4288,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3501,7 +4301,7 @@ func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0} - } - - func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -@@ -3550,7 +4350,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -@@ -3588,250 +4388,250 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -- 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -- 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -- 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -- 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -- 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -- 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -- 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, -+ 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, -+ 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, -+ 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -- 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -- 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -- 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, -+ 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, -+ 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, -+ 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, -+ 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, -+ 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, -+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, -+ 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, -+ 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, -+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, -+ 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, -+ 0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88, -+ 0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, -+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, -+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, -+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, -+ 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, -+ 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, -+ 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, -+ 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, -+ 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, -+ 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, -+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, -+ 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, -+ 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, -+ 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, -+ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, -+ 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, -+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14, -+ 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, -+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, -+ 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -- 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -- 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -- 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -- 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -- 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -- 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -- 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -- 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -- 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -- 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -- 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -- 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -- 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -- 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -- 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -- 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -- 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -- 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -- 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -- 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -- 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -- 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -- 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -- 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -- 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -- 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -- 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -- 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -- 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -- 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -- 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -- 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -- 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -- 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -- 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -- 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -- 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -- 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -- 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -- 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -- 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -- 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -- 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -- 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -- 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -- 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, -+ 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, -+ 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -- 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, -+ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, -+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -- 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -- 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -- 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -- 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -- 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -- 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -- 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -- 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -- 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -- 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -- 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -- 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -- 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -- 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -- 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -- 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -- 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -- 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, -+ 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, -+ 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, -+ 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x22, 0x97, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, -+ 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, -+ 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, -+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, -+ 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, -+ 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, -+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, -+ 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, -+ 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, -+ 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, -+ 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, -+ 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, -+ 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, -+ 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, -+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, -+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -@@ -3856,259 +4656,419 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -- 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -- 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -- 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -- 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -- 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -- 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -- 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -- 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -- 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -- 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -- 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -- 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -- 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -- 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -- 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -- 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -- 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -- 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -- 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -- 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -- 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -- 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, -+ 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, -+ 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, -+ 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, -+ 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, -+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xf4, 0x03, -+ 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, -+ 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, -+ 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, -+ 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, -+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, -+ 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -- 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -- 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -- 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -- 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -- 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -- 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -- 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -- 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -- 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -- 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -- 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -- 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -- 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -- 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -- 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -- 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -- 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -- 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -- 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -- 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -- 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -- 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -- 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -- 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -- 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -- 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -- 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, -+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, -+ 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, -+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, -+ 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, -+ 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, -+ 0x08, 0x09, 0x10, 0x0a, 0x22, 0xad, 0x0a, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, -+ 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, -+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, -+ 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, -+ 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, -+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, -+ 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, -+ 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, -+ 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, -+ 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, -+ 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, -+ 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, -+ 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, -+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, -+ 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, -+ 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, -+ 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -- 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -- 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -- 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -- 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -- 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -- 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -- 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -- 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -- 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -- 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -- 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -- 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -- 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -- 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -- 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x69, 0x6f, 0x6e, 0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, -+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, -+ 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, -+ 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, -+ 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, -+ 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, -+ 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, -+ 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, -+ 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, -+ 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, -+ 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, -+ 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, -+ 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, -+ 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, -+ 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, -+ 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, -+ 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, -+ 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, -+ 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -- 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -- 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -- 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -- 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -- 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -- 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -- 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -- 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -- 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -- 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -- 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -- 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -- 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -- 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -- 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -- 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -- 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -- 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -- 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -- 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -- 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -- 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, -+ 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, -+ 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, -+ 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, -+ 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, -+ 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x81, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, -+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, -+ 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, -+ 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, -+ 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, -+ 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, -+ 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, -+ 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, -+ 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, -+ 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, -+ 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, -+ 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, -+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, -+ 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, -+ 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, -+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, -+ 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, -+ 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, -+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, -+ 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, -+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, -+ 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x0a, -+ 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0e, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, -+ 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, -+ 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x65, 0x6e, 0x75, -+ 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x42, 0x23, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0b, -+ 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x09, 0x12, 0x04, -+ 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, -+ 0x65, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, -+ 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x27, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, -+ 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, -+ 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0x52, -+ 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x78, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, -+ 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x88, 0x01, 0x01, -+ 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, -+ 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, -+ 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x78, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, -+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, -+ 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x20, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, -+ 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, -+ 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7c, 0x0a, 0x0b, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, -+ 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x33, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, -+ 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, -+ 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, -+ 0x01, 0x0a, 0x12, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0x52, 0x0a, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x45, -+ 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, -+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, -+ 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, -+ 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, -+ 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, -+ 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, -+ 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x50, 0x45, -+ 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, -+ 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, -+ 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x43, 0x0a, 0x0e, 0x55, 0x74, 0x66, 0x38, 0x56, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x54, 0x46, -+ 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, -+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, -+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0f, -+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, -+ 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, -+ 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, -+ 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, -+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, -+ 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, -+ 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, -+ 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, -+ 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0x8b, 0x4e, 0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, -+ 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07, 0x10, 0xe8, 0x07, 0x22, 0xfe, 0x02, 0x0a, 0x12, -+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, -+ 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, -+ 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, -+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, -+ 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, -+ 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, -+ 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, -+ 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -- 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -- 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -- 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -- 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -- 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -- 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -- 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -- 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -- 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -- 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -- 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, -+ 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, -+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, -+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, -+ 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, -+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, -+ 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, -+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, -+ 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, -+ 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, -+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, -+ 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x07, 0x45, 0x64, -+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, -+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, -+ 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, -+ 0x33, 0x10, 0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, -+ 0x32, 0x30, 0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, -+ 0x4f, 0x4e, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, -+ 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, -+ 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, -+ 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, -+ 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, -+ 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, -+ 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, -+ 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, -+ 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - } - - var ( -@@ -4123,103 +5083,136 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 32) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -- (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 20: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -- (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation -+ (Edition)(0), // 0: google.protobuf.Edition -+ (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel -+ (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence -+ (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType -+ (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding -+ (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation -+ (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding -+ (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 17: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 18: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 19: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 20: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 21: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 22: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 23: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 24: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 25: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 26: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 27: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 28: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 29: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 30: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 31: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 32: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 33: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 34: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 35: google.protobuf.UninterpretedOption -+ (*FeatureSet)(nil), // 36: google.protobuf.FeatureSet -+ (*FeatureSetDefaults)(nil), // 37: google.protobuf.FeatureSetDefaults -+ (*SourceCodeInfo)(nil), // 38: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 39: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 40: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 41: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 42: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*FieldOptions_EditionDefault)(nil), // 44: google.protobuf.FieldOptions.EditionDefault -+ (*UninterpretedOption_NamePart)(nil), // 45: google.protobuf.UninterpretedOption.NamePart -+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 46: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ (*SourceCodeInfo_Location)(nil), // 47: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 48: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -- 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -- 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 49, // [49:49] is the sub-list for method output_type -- 49, // [49:49] is the sub-list for method input_type -- 49, // [49:49] is the sub-list for extension type_name -- 49, // [49:49] is the sub-list for extension extendee -- 0, // [0:49] is the sub-list for field type_name -+ 18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition -+ 21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet -+ 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault -+ 36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 42: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 43: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 44: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 45: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 46: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 47: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 48: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 49: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 50: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 9, // 51: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 36, // 52: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 53: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 45, // 54: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 10, // 55: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence -+ 11, // 56: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType -+ 12, // 57: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding -+ 13, // 58: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation -+ 14, // 59: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding -+ 15, // 60: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat -+ 46, // 61: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ 0, // 62: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition -+ 0, // 63: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition -+ 47, // 64: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 48, // 65: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 20, // 66: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 0, // 67: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition -+ 0, // 68: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition -+ 36, // 69: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features:type_name -> google.protobuf.FeatureSet -+ 16, // 70: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 71, // [71:71] is the sub-list for method output_type -+ 71, // [71:71] is the sub-list for method input_type -+ 71, // [71:71] is the sub-list for extension type_name -+ 71, // [71:71] is the sub-list for extension extendee -+ 0, // [0:71] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4475,19 +5468,21 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo); i { -+ switch v := v.(*FeatureSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields -+ case 3: -+ return &v.extensionFields - default: - return nil - } - } - file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*GeneratedCodeInfo); i { -+ switch v := v.(*FeatureSetDefaults); i { - case 0: - return &v.state - case 1: -@@ -4499,7 +5494,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ExtensionRange); i { -+ switch v := v.(*SourceCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4511,7 +5506,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ReservedRange); i { -+ switch v := v.(*GeneratedCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4523,7 +5518,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*ExtensionRangeOptions_Declaration); i { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { - case 0: - return &v.state - case 1: -@@ -4535,7 +5530,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*DescriptorProto_ReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4547,7 +5542,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4559,7 +5554,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4571,6 +5566,54 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions_EditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FeatureSetDefaults_FeatureSetEditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4588,8 +5631,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 10, -- NumMessages: 28, -+ NumEnums: 17, -+ NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -new file mode 100644 -index 00000000..25de5ae0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -@@ -0,0 +1,177 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: reflect/protodesc/proto/go_features.proto -+ -+package proto -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ descriptorpb "google.golang.org/protobuf/types/descriptorpb" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type GoFeatures struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -+} -+ -+func (x *GoFeatures) Reset() { -+ *x = GoFeatures{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GoFeatures) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GoFeatures) ProtoMessage() {} -+ -+func (x *GoFeatures) ProtoReflect() protoreflect.Message { -+ mi := &file_reflect_protodesc_proto_go_features_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 GoFeatures.ProtoReflect.Descriptor instead. -+func (*GoFeatures) Descriptor() ([]byte, []int) { -+ return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { -+ if x != nil && x.LegacyUnmarshalJsonEnum != nil { -+ return *x.LegacyUnmarshalJsonEnum -+ } -+ return false -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ -+ { -+ ExtendedType: (*descriptorpb.FeatureSet)(nil), -+ ExtensionType: (*GoFeatures)(nil), -+ Field: 1002, -+ Name: "google.protobuf.go", -+ Tag: "bytes,1002,opt,name=go", -+ Filename: "reflect/protodesc/proto/go_features.proto", -+ }, -+} -+ -+// Extension fields to descriptorpb.FeatureSet. -+var ( -+ // optional google.protobuf.GoFeatures go = 1002; -+ E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -+) -+ -+var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor -+ -+var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ -+ 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, -+ 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, -+ 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, -+ 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, -+ 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, -+ 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, -+ 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+} -+ -+var ( -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -+) -+ -+func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) -+ }) -+ return file_reflect_protodesc_proto_go_features_proto_rawDescData -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ -+ (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures -+ (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -+} -+var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ -+ 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet -+ 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures -+ 2, // [2:2] is the sub-list for method output_type -+ 2, // [2:2] is the sub-list for method input_type -+ 1, // [1:2] is the sub-list for extension type_name -+ 0, // [0:1] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_reflect_protodesc_proto_go_features_proto_init() } -+func file_reflect_protodesc_proto_go_features_proto_init() { -+ if File_reflect_protodesc_proto_go_features_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GoFeatures); 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_reflect_protodesc_proto_go_features_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 1, -+ NumServices: 0, -+ }, -+ GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, -+ DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, -+ MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, -+ ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, -+ }.Build() -+ File_reflect_protodesc_proto_go_features_proto = out.File -+ file_reflect_protodesc_proto_go_features_proto_rawDesc = nil -+ file_reflect_protodesc_proto_go_features_proto_goTypes = nil -+ file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -new file mode 100644 -index 00000000..d2465712 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -@@ -0,0 +1,28 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+syntax = "proto2"; -+ -+package google.protobuf; -+ -+import "google/protobuf/descriptor.proto"; -+ -+option go_package = "google.golang.org/protobuf/types/gofeaturespb"; -+ -+extend google.protobuf.FeatureSet { -+ optional GoFeatures go = 1002; -+} -+ -+message GoFeatures { -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ optional bool legacy_unmarshal_json_enum = 1 [ -+ retention = RETENTION_RUNTIME, -+ targets = TARGET_TYPE_ENUM, -+ edition_defaults = { edition: EDITION_PROTO2, value: "true" }, -+ edition_defaults = { edition: EDITION_PROTO3, value: "false" } -+ ]; -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index 580b232f..9de51be5 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -237,7 +237,8 @@ type Any struct { - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with -- // type.googleapis.com. -+ // type.googleapis.com. As of May 2023, there are no widely used type server -+ // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 987b5b1c..6636e54e 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -263,13 +263,14 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.31.0 --## explicit; go 1.11 -+# google.golang.org/protobuf v1.33.0 -+## explicit; go 1.17 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire - google.golang.org/protobuf/internal/descfmt - google.golang.org/protobuf/internal/descopts - google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/editiondefaults - google.golang.org/protobuf/internal/encoding/defval - google.golang.org/protobuf/internal/encoding/messageset - google.golang.org/protobuf/internal/encoding/tag -@@ -292,6 +293,7 @@ google.golang.org/protobuf/reflect/protoregistry - google.golang.org/protobuf/runtime/protoiface - google.golang.org/protobuf/runtime/protoimpl - google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/gofeaturespb - google.golang.org/protobuf/types/known/anypb - google.golang.org/protobuf/types/known/durationpb - google.golang.org/protobuf/types/known/timestamppb --- -2.40.1 - diff --git a/projects/containernetworking/plugins/1-30/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch b/projects/containernetworking/plugins/1-30/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch deleted file mode 100644 index 1a1c8490a3..0000000000 --- a/projects/containernetworking/plugins/1-30/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch +++ /dev/null @@ -1,2408 +0,0 @@ -From 8339edf51d004377876b9e4ee2daa0cbcbf5e760 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 9 May 2024 15:45:09 -0700 -Subject: [PATCH] Bump x/net to 0.23.0 to resolve CVE-2023-45288 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 12 +- - vendor/golang.org/x/net/context/go17.go | 1 - - vendor/golang.org/x/net/context/go19.go | 1 - - vendor/golang.org/x/net/context/pre_go17.go | 1 - - vendor/golang.org/x/net/context/pre_go19.go | 1 - - vendor/golang.org/x/net/html/token.go | 12 +- - .../x/net/internal/socket/cmsghdr.go | 1 - - .../x/net/internal/socket/cmsghdr_bsd.go | 1 - - .../internal/socket/cmsghdr_linux_32bit.go | 2 - - .../internal/socket/cmsghdr_linux_64bit.go | 2 - - .../internal/socket/cmsghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/cmsghdr_stub.go | 1 - - .../x/net/internal/socket/cmsghdr_unix.go | 1 - - .../net/internal/socket/complete_dontwait.go | 1 - - .../internal/socket/complete_nodontwait.go | 1 - - .../golang.org/x/net/internal/socket/empty.s | 1 - - .../x/net/internal/socket/error_unix.go | 1 - - .../x/net/internal/socket/iovec_32bit.go | 2 - - .../x/net/internal/socket/iovec_64bit.go | 2 - - .../internal/socket/iovec_solaris_64bit.go | 1 - - .../x/net/internal/socket/iovec_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_unix.go | 1 - - .../x/net/internal/socket/msghdr_bsd.go | 1 - - .../x/net/internal/socket/msghdr_bsdvar.go | 1 - - .../net/internal/socket/msghdr_linux_32bit.go | 2 - - .../net/internal/socket/msghdr_linux_64bit.go | 2 - - .../internal/socket/msghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/msghdr_stub.go | 1 - - .../x/net/internal/socket/msghdr_zos_s390x.go | 1 - - .../x/net/internal/socket/norace.go | 1 - - .../golang.org/x/net/internal/socket/race.go | 1 - - .../x/net/internal/socket/rawconn_mmsg.go | 1 - - .../x/net/internal/socket/rawconn_msg.go | 1 - - .../x/net/internal/socket/rawconn_nommsg.go | 1 - - .../x/net/internal/socket/rawconn_nomsg.go | 1 - - .../x/net/internal/socket/sys_bsd.go | 1 - - .../x/net/internal/socket/sys_const_unix.go | 1 - - .../x/net/internal/socket/sys_linux.go | 1 - - .../net/internal/socket/sys_linux_loong64.go | 1 - - .../net/internal/socket/sys_linux_riscv64.go | 1 - - .../x/net/internal/socket/sys_posix.go | 1 - - .../x/net/internal/socket/sys_stub.go | 1 - - .../x/net/internal/socket/sys_unix.go | 1 - - .../x/net/internal/socket/zsys_aix_ppc64.go | 1 - - .../net/internal/socket/zsys_linux_loong64.go | 1 - - .../net/internal/socket/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/net/ipv4/control_bsd.go | 1 - - .../golang.org/x/net/ipv4/control_pktinfo.go | 1 - - vendor/golang.org/x/net/ipv4/control_stub.go | 1 - - vendor/golang.org/x/net/ipv4/control_unix.go | 1 - - vendor/golang.org/x/net/ipv4/icmp_stub.go | 1 - - vendor/golang.org/x/net/ipv4/payload_cmsg.go | 1 - - .../golang.org/x/net/ipv4/payload_nocmsg.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_posix.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_aix.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreqn.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bsd.go | 1 - - vendor/golang.org/x/net/ipv4/sys_ssmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_stub.go | 1 - - .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 1 - - .../x/net/ipv4/zsys_linux_loong64.go | 1 - - .../x/net/ipv4/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/aliases.go | 2 +- - vendor/golang.org/x/sys/unix/mkerrors.sh | 39 ++-- - .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- - .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- - vendor/golang.org/x/sys/unix/syscall_linux.go | 99 ++++++++++ - vendor/golang.org/x/sys/unix/zerrors_linux.go | 90 ++++++++- - .../x/sys/unix/zerrors_linux_386.go | 3 + - .../x/sys/unix/zerrors_linux_amd64.go | 3 + - .../x/sys/unix/zerrors_linux_arm.go | 3 + - .../x/sys/unix/zerrors_linux_arm64.go | 3 + - .../x/sys/unix/zerrors_linux_loong64.go | 3 + - .../x/sys/unix/zerrors_linux_mips.go | 3 + - .../x/sys/unix/zerrors_linux_mips64.go | 3 + - .../x/sys/unix/zerrors_linux_mips64le.go | 3 + - .../x/sys/unix/zerrors_linux_mipsle.go | 3 + - .../x/sys/unix/zerrors_linux_ppc.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + - .../x/sys/unix/zerrors_linux_riscv64.go | 3 + - .../x/sys/unix/zerrors_linux_s390x.go | 3 + - .../x/sys/unix/zerrors_linux_sparc64.go | 3 + - .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + - .../x/sys/unix/zsyscall_openbsd_386.go | 2 - - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2 - - .../x/sys/unix/zsysnum_linux_386.go | 4 + - .../x/sys/unix/zsysnum_linux_amd64.go | 3 + - .../x/sys/unix/zsysnum_linux_arm.go | 4 + - .../x/sys/unix/zsysnum_linux_arm64.go | 4 + - .../x/sys/unix/zsysnum_linux_loong64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + - .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64le.go | 4 + - .../x/sys/unix/zsysnum_linux_riscv64.go | 4 + - .../x/sys/unix/zsysnum_linux_s390x.go | 4 + - .../x/sys/unix/zsysnum_linux_sparc64.go | 4 + - vendor/golang.org/x/sys/unix/ztypes_linux.go | 185 ++++++++++++------ - .../golang.org/x/sys/windows/env_windows.go | 17 +- - .../x/sys/windows/syscall_windows.go | 4 +- - .../x/sys/windows/zsyscall_windows.go | 9 + - vendor/modules.txt | 10 +- - 120 files changed, 501 insertions(+), 200 deletions(-) - -diff --git a/go.mod b/go.mod -index 47102692..f0b6e706 100644 ---- a/go.mod -+++ b/go.mod -@@ -20,7 +20,7 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.15.0 -+ golang.org/x/sys v0.18.0 - ) - - require ( -@@ -40,8 +40,8 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect -- golang.org/x/net v0.17.0 // indirect -- golang.org/x/text v0.13.0 // indirect -+ golang.org/x/net v0.23.0 // indirect -+ golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -diff --git a/go.sum b/go.sum -index e274380d..bf1e5961 100644 ---- a/go.sum -+++ b/go.sum -@@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= --golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - 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= -@@ -191,14 +191,14 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= --golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -+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/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= --golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+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/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= -diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go -index 2cb9c408..0c1b8679 100644 ---- a/vendor/golang.org/x/net/context/go17.go -+++ b/vendor/golang.org/x/net/context/go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.7 --// +build go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go -index 64d31ecc..e31e35a9 100644 ---- a/vendor/golang.org/x/net/context/go19.go -+++ b/vendor/golang.org/x/net/context/go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.9 --// +build go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go -index 7b6b6851..065ff3df 100644 ---- a/vendor/golang.org/x/net/context/pre_go17.go -+++ b/vendor/golang.org/x/net/context/pre_go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.7 --// +build !go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go -index 1f971534..ec5a6380 100644 ---- a/vendor/golang.org/x/net/context/pre_go19.go -+++ b/vendor/golang.org/x/net/context/pre_go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.9 --// +build !go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index de67f938..3c57880d 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { - return - } - switch c { -- case ' ', '\n', '\r', '\t', '\f', '/': -- z.pendingAttr[0].end = z.raw.end - 1 -- return - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { - continue - } - fallthrough -- case '>': -+ case ' ', '\n', '\r', '\t', '\f', '/', '>': -+ // WHATWG 13.2.5.33 Attribute name state -+ // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { - if z.err != nil { - return - } -+ if c == '/' { -+ // WHATWG 13.2.5.34 After attribute name state -+ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. -+ return -+ } - if c != '=' { - z.raw.end-- - return -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -index 4bdaaaf1..33a5bf59 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -index 0d30e0a0..68f438c8 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -index 4936e8a6..058ea8de 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -index f6877f98..3ca0d3a0 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -index d3dbe1b8..6d0e426c 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -index 1d9f2ed6..7ca9cb7e 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -index 19d46789..0211f225 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -index 5b1d50ae..2038f290 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -index be634095..70e6f448 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || windows || zos --// +build aix windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/empty.s b/vendor/golang.org/x/net/internal/socket/empty.s -index 90ab4ca3..49d79791 100644 ---- a/vendor/golang.org/x/net/internal/socket/empty.s -+++ b/vendor/golang.org/x/net/internal/socket/empty.s -@@ -3,6 +3,5 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && go1.12 --// +build darwin,go1.12 - - // This exists solely so we can linkname in symbols from syscall. -diff --git a/vendor/golang.org/x/net/internal/socket/error_unix.go b/vendor/golang.org/x/net/internal/socket/error_unix.go -index 78f41290..7a5cc5c4 100644 ---- a/vendor/golang.org/x/net/internal/socket/error_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/error_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -index 2b8fbb3f..340e53fb 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && (darwin || dragonfly || freebsd || linux || netbsd || openbsd) --// +build arm mips mipsle 386 ppc --// +build darwin dragonfly freebsd linux netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -index 2e94e96f..26470c19 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos) --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build aix darwin dragonfly freebsd linux netbsd openbsd zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -index f7da2bc4..8859ce10 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -index 14caf524..da886b03 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -index 113e773c..4825b21e 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !linux && !netbsd --// +build !aix,!linux,!netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -index 41883c53..311fd2c7 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || linux || netbsd --// +build aix linux netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -index 25f6847f..ebff4f6e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -index 5b8e00f1..62e6fe86 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd --// +build aix darwin dragonfly freebsd netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -index b4658fba..3dd07250 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -index 42411aff..5af9ddd6 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -index 3098f5d7..e212b50f 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -index eb79151f..e8767764 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -index 324e9ee7..529db68e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && zos --// +build s390x,zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go -index de0ad420..8af30ecf 100644 ---- a/vendor/golang.org/x/net/internal/socket/norace.go -+++ b/vendor/golang.org/x/net/internal/socket/norace.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !race --// +build !race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go -index f0a28a62..9afa9580 100644 ---- a/vendor/golang.org/x/net/internal/socket/race.go -+++ b/vendor/golang.org/x/net/internal/socket/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build race --// +build race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -index 8f79b38f..04313907 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -index f7d0b0d2..7c0d7410 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -index 02f32855..e363fb5a 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -index dd785877..ff7a8baf 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -index b258879d..e7664d48 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -index 5d99f237..d7627f87 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go -index 76f5b8ae..08d49107 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && !s390x && !386 --// +build linux,!s390x,!386 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -index af964e61..1d182470 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -index 5b128fbb..0e407d12 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go -index 42b8f234..58d86548 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_posix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go -index 7cfb349c..2e5b473c 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go -index de823932..93058db5 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -index 00691bd5..45bab004 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -index 6a94fec2..b6fc15a1 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -index c066272d..e67fc3cb 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go -index b7385dfd..c88da8cb 100644 ---- a/vendor/golang.org/x/net/ipv4/control_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -index 0e748dbd..14ae2dae 100644 ---- a/vendor/golang.org/x/net/ipv4/control_pktinfo.go -+++ b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || linux || solaris --// +build darwin linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/golang.org/x/net/ipv4/control_stub.go -index f27322c3..3ba66116 100644 ---- a/vendor/golang.org/x/net/ipv4/control_stub.go -+++ b/vendor/golang.org/x/net/ipv4/control_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/golang.org/x/net/ipv4/control_unix.go -index 2413e02f..2e765548 100644 ---- a/vendor/golang.org/x/net/ipv4/control_unix.go -+++ b/vendor/golang.org/x/net/ipv4/control_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/golang.org/x/net/ipv4/icmp_stub.go -index cd4ee6e1..c2c4ce7f 100644 ---- a/vendor/golang.org/x/net/ipv4/icmp_stub.go -+++ b/vendor/golang.org/x/net/ipv4/icmp_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -index 1bb370e2..91c685e8 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -index 53f0794e..2afd4b50 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -index eb07c1c0..82e2c378 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_posix.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -index cf036893..840108bf 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_aix.go b/vendor/golang.org/x/net/ipv4/sys_aix.go -index 02730cdf..9244a68a 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_aix.go -+++ b/vendor/golang.org/x/net/ipv4/sys_aix.go -@@ -4,7 +4,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -index 22322b38..645f254c 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris || windows --// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -index fde64014..48cfb6db 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !windows --// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -index 54eb9901..0b27b632 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux --// +build darwin freebsd linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -index dcb15f25..303a5e2e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux --// +build !darwin,!freebsd,!linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go -index fb11e324..1b4780df 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -index fc53a0d3..b1f779b4 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/golang.org/x/net/ipv4/sys_bsd.go -index e191b2f1..b7b032d2 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build netbsd || openbsd --// +build netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -index 6a4e7abf..a295e15e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux || solaris --// +build darwin freebsd linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -index 157159fd..74bd454e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux && !solaris --// +build !darwin,!freebsd,!linux,!solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/golang.org/x/net/ipv4/sys_stub.go -index d5508516..20af4074 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -index b7f2d6e5..dd454025 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -index e15c22c7..54f9e139 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -index e2edebdb..78374a52 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package ipv4 - -diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go -index e7d3df4b..b0e41985 100644 ---- a/vendor/golang.org/x/sys/unix/aliases.go -+++ b/vendor/golang.org/x/sys/unix/aliases.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 -+//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 6202638b..fdcaa974 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -248,6 +248,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -283,10 +284,6 @@ struct ltchars { - #include - #endif - --#ifndef MSG_FASTOPEN --#define MSG_FASTOPEN 0x20000000 --#endif -- - #ifndef PTRACE_GETREGS - #define PTRACE_GETREGS 0xc - #endif -@@ -295,14 +292,6 @@ struct ltchars { - #define PTRACE_SETREGS 0xd - #endif - --#ifndef SOL_NETLINK --#define SOL_NETLINK 270 --#endif -- --#ifndef SOL_SMC --#define SOL_SMC 286 --#endif -- - #ifdef SOL_BLUETOOTH - // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h - // but it is already in bluetooth_linux.go -@@ -319,10 +308,23 @@ struct ltchars { - #undef TIPC_WAIT_FOREVER - #define TIPC_WAIT_FOREVER 0xffffffff - --// Copied from linux/l2tp.h --// Including linux/l2tp.h here causes conflicts between linux/in.h --// and netinet/in.h included via net/route.h above. --#define IPPROTO_L2TP 115 -+// Copied from linux/netfilter/nf_nat.h -+// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -+// and netinet/in.h. -+#define NF_NAT_RANGE_MAP_IPS (1 << 0) -+#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -+#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -+#define NF_NAT_RANGE_PERSISTENT (1 << 3) -+#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -+#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -+#define NF_NAT_RANGE_NETMAP (1 << 6) -+#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ -+ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -+#define NF_NAT_RANGE_MASK \ -+ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ -+ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ -+ NF_NAT_RANGE_NETMAP) - - // Copied from linux/hid.h. - // Keep in sync with the size of the referenced fields. -@@ -582,7 +584,7 @@ ccflags="$@" - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || -- $2 ~ /^SECCOMP_MODE_/ || -+ $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || -@@ -603,6 +605,9 @@ ccflags="$@" - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || -+ $2 !~ /^NFT_META_IIFTYPE/ && -+ $2 ~ /^NFT_/ || -+ $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -index 16dc6993..2f0fa76e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build darwin && go1.12 -+//go:build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index 64d1bb4d..2b57e0f7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -13,6 +13,7 @@ - package unix - - import ( -+ "errors" - "sync" - "unsafe" - ) -@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) -- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { -+ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. -+ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) -- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) -- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) -- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) -- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index 0f85e29e..5682e262 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -1849,6 +1849,105 @@ func Dup2(oldfd, newfd int) error { - //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) - //sys Fsopen(fsName string, flags int) (fd int, err error) - //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -+ -+//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) -+ -+func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { -+ var keyp *byte -+ if keyp, err = BytePtrFromString(key); err != nil { -+ return -+ } -+ return fsconfig(fd, cmd, keyp, value, aux) -+} -+ -+// FsconfigSetFlag is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FLAG. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+func FsconfigSetFlag(fd int, key string) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -+} -+ -+// FsconfigSetString is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_STRING. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetString(fd int, key string, value string) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(value); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -+} -+ -+// FsconfigSetBinary is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_BINARY. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetBinary(fd int, key string, value []byte) (err error) { -+ if len(value) == 0 { -+ return EINVAL -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -+} -+ -+// FsconfigSetPath is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// path is a non-empty path for specified key. -+// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -+func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -+} -+ -+// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -+// FconfigSetPath but with AT_PATH_EMPTY implied. -+func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -+} -+ -+// FsconfigSetFd is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FD. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is a file descriptor to be assigned to specified key. -+func FsconfigSetFd(fd int, key string, value int) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -+} -+ -+// FsconfigCreate is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_CREATE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigCreate(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -+} -+ -+// FsconfigReconfigure is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_RECONFIGURE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigReconfigure(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -+} -+ - //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 - //sysnb Getpgid(pid int) (pgid int, err error) - -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index c73cfe2f..36bf8399 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -1785,6 +1785,8 @@ const ( - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 -+ LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 -+ LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef -@@ -2127,6 +2129,60 @@ const ( - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 -+ NFT_CHAIN_FLAGS = 0x7 -+ NFT_CHAIN_MAXNAMELEN = 0x100 -+ NFT_CT_MAX = 0x17 -+ NFT_DATA_RESERVED_MASK = 0xffffff00 -+ NFT_DATA_VALUE_MAXLEN = 0x40 -+ NFT_EXTHDR_OP_MAX = 0x4 -+ NFT_FIB_RESULT_MAX = 0x3 -+ NFT_INNER_MASK = 0xf -+ NFT_LOGLEVEL_MAX = 0x8 -+ NFT_NAME_MAXLEN = 0x100 -+ NFT_NG_MAX = 0x1 -+ NFT_OBJECT_CONNLIMIT = 0x5 -+ NFT_OBJECT_COUNTER = 0x1 -+ NFT_OBJECT_CT_EXPECT = 0x9 -+ NFT_OBJECT_CT_HELPER = 0x3 -+ NFT_OBJECT_CT_TIMEOUT = 0x7 -+ NFT_OBJECT_LIMIT = 0x4 -+ NFT_OBJECT_MAX = 0xa -+ NFT_OBJECT_QUOTA = 0x2 -+ NFT_OBJECT_SECMARK = 0x8 -+ NFT_OBJECT_SYNPROXY = 0xa -+ NFT_OBJECT_TUNNEL = 0x6 -+ NFT_OBJECT_UNSPEC = 0x0 -+ NFT_OBJ_MAXNAMELEN = 0x100 -+ NFT_OSF_MAXGENRELEN = 0x10 -+ NFT_QUEUE_FLAG_BYPASS = 0x1 -+ NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 -+ NFT_QUEUE_FLAG_MASK = 0x3 -+ NFT_REG32_COUNT = 0x10 -+ NFT_REG32_SIZE = 0x4 -+ NFT_REG_MAX = 0x4 -+ NFT_REG_SIZE = 0x10 -+ NFT_REJECT_ICMPX_MAX = 0x3 -+ NFT_RT_MAX = 0x4 -+ NFT_SECMARK_CTX_MAXLEN = 0x100 -+ NFT_SET_MAXNAMELEN = 0x100 -+ NFT_SOCKET_MAX = 0x3 -+ NFT_TABLE_F_MASK = 0x3 -+ NFT_TABLE_MAXNAMELEN = 0x100 -+ NFT_TRACETYPE_MAX = 0x3 -+ NFT_TUNNEL_F_MASK = 0x7 -+ NFT_TUNNEL_MAX = 0x1 -+ NFT_TUNNEL_MODE_MAX = 0x2 -+ NFT_USERDATA_MAXLEN = 0x100 -+ NFT_XFRM_KEY_MAX = 0x6 -+ NF_NAT_RANGE_MAP_IPS = 0x1 -+ NF_NAT_RANGE_MASK = 0x7f -+ NF_NAT_RANGE_NETMAP = 0x40 -+ NF_NAT_RANGE_PERSISTENT = 0x8 -+ NF_NAT_RANGE_PROTO_OFFSET = 0x20 -+ NF_NAT_RANGE_PROTO_RANDOM = 0x4 -+ NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 -+ NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 -@@ -2411,6 +2467,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b -@@ -2615,8 +2672,9 @@ const ( - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 -- RTAX_FEATURE_MASK = 0xf -+ RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 -+ RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb -@@ -2859,9 +2917,38 @@ const ( - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 -+ SECCOMP_ADDFD_FLAG_SEND = 0x2 -+ SECCOMP_ADDFD_FLAG_SETFD = 0x1 -+ SECCOMP_FILTER_FLAG_LOG = 0x2 -+ SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 -+ SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 -+ SECCOMP_FILTER_FLAG_TSYNC = 0x1 -+ SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 -+ SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 -+ SECCOMP_GET_ACTION_AVAIL = 0x2 -+ SECCOMP_GET_NOTIF_SIZES = 0x3 -+ SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 -+ SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 -+ SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 -+ SECCOMP_RET_ACTION = 0x7fff0000 -+ SECCOMP_RET_ACTION_FULL = 0xffff0000 -+ SECCOMP_RET_ALLOW = 0x7fff0000 -+ SECCOMP_RET_DATA = 0xffff -+ SECCOMP_RET_ERRNO = 0x50000 -+ SECCOMP_RET_KILL = 0x0 -+ SECCOMP_RET_KILL_PROCESS = 0x80000000 -+ SECCOMP_RET_KILL_THREAD = 0x0 -+ SECCOMP_RET_LOG = 0x7ffc0000 -+ SECCOMP_RET_TRACE = 0x7ff00000 -+ SECCOMP_RET_TRAP = 0x30000 -+ SECCOMP_RET_USER_NOTIF = 0x7fc00000 -+ SECCOMP_SET_MODE_FILTER = 0x1 -+ SECCOMP_SET_MODE_STRICT = 0x0 -+ SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 -+ SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 -@@ -3021,6 +3108,7 @@ const ( - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 -+ SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index 4920821c..42ff8c3c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index a0c1e411..dca43600 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -282,6 +282,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index c6398556..5cca668a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -288,6 +288,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 47cc62e2..d8cae6d1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -278,6 +278,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index 27ac4a09..28e39afd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -275,6 +275,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 54694642..cd66e92c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index 3adb81d7..c1595eba 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index 2dfe98f0..ee9456b0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index f5398f84..8cfca81e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index c54f152d..60b0deb3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -336,6 +336,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 76057dc7..f90aa728 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index e0c3725e..ba9e0150 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index 18f2813e..07cdfd6e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -272,6 +272,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 11619d4e..2f1dd214 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -344,6 +344,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index 396d994d..f40519d9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -335,6 +335,9 @@ const ( - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index 1488d271..87d8612a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -906,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { -+ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index a1d06159..9dc42410 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index 5b2a7409..0d3a0751 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index f6eda134..c39f7776 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index 55df20ae..57571d07 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index 8c1155cb..e62963e6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 7cc80c58..00831354 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 0688737f..79029ed5 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index fcf3ecbd..0cc3ce49 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -448,4 +448,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index f56dc250..856d92d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -371,4 +371,7 @@ const ( - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index 974bf246..8d467094 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -412,4 +412,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index 39a2739e..edc17324 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -315,4 +315,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index cf9c9d77..445eba20 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -309,4 +309,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 10b7362e..adba01bc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index cd4d8b4f..014c4e9c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index 2c0efca8..ccc97d74 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index a72e31d3..ec2b64a9 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index c7d1e374..21a839e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -439,4 +439,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index f4d4838c..c11121ec 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index b64f0e59..909b631f 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 95711195..e49bed16 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -316,4 +316,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index f94e943b..66017d2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -377,4 +377,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index ba0c2bc5..47bab18d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -390,4 +390,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index bbf8399f..eff6bcde 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -174,7 +174,8 @@ type FscryptPolicyV2 struct { - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 -- _ [4]uint8 -+ Log2_data_unit_size uint8 -+ _ [3]uint8 - Master_key_identifier [16]uint8 - } - -@@ -455,60 +456,63 @@ type Ucred struct { - } - - type TCPInfo struct { -- State uint8 -- Ca_state uint8 -- Retransmits uint8 -- Probes uint8 -- Backoff uint8 -- Options uint8 -- Rto uint32 -- Ato uint32 -- Snd_mss uint32 -- Rcv_mss uint32 -- Unacked uint32 -- Sacked uint32 -- Lost uint32 -- Retrans uint32 -- Fackets uint32 -- Last_data_sent uint32 -- Last_ack_sent uint32 -- Last_data_recv uint32 -- Last_ack_recv uint32 -- Pmtu uint32 -- Rcv_ssthresh uint32 -- Rtt uint32 -- Rttvar uint32 -- Snd_ssthresh uint32 -- Snd_cwnd uint32 -- Advmss uint32 -- Reordering uint32 -- Rcv_rtt uint32 -- Rcv_space uint32 -- Total_retrans uint32 -- Pacing_rate uint64 -- Max_pacing_rate uint64 -- Bytes_acked uint64 -- Bytes_received uint64 -- Segs_out uint32 -- Segs_in uint32 -- Notsent_bytes uint32 -- Min_rtt uint32 -- Data_segs_in uint32 -- Data_segs_out uint32 -- Delivery_rate uint64 -- Busy_time uint64 -- Rwnd_limited uint64 -- Sndbuf_limited uint64 -- Delivered uint32 -- Delivered_ce uint32 -- Bytes_sent uint64 -- Bytes_retrans uint64 -- Dsack_dups uint32 -- Reord_seen uint32 -- Rcv_ooopack uint32 -- Snd_wnd uint32 -- Rcv_wnd uint32 -- Rehash uint32 -+ State uint8 -+ Ca_state uint8 -+ Retransmits uint8 -+ Probes uint8 -+ Backoff uint8 -+ Options uint8 -+ Rto uint32 -+ Ato uint32 -+ Snd_mss uint32 -+ Rcv_mss uint32 -+ Unacked uint32 -+ Sacked uint32 -+ Lost uint32 -+ Retrans uint32 -+ Fackets uint32 -+ Last_data_sent uint32 -+ Last_ack_sent uint32 -+ Last_data_recv uint32 -+ Last_ack_recv uint32 -+ Pmtu uint32 -+ Rcv_ssthresh uint32 -+ Rtt uint32 -+ Rttvar uint32 -+ Snd_ssthresh uint32 -+ Snd_cwnd uint32 -+ Advmss uint32 -+ Reordering uint32 -+ Rcv_rtt uint32 -+ Rcv_space uint32 -+ Total_retrans uint32 -+ Pacing_rate uint64 -+ Max_pacing_rate uint64 -+ Bytes_acked uint64 -+ Bytes_received uint64 -+ Segs_out uint32 -+ Segs_in uint32 -+ Notsent_bytes uint32 -+ Min_rtt uint32 -+ Data_segs_in uint32 -+ Data_segs_out uint32 -+ Delivery_rate uint64 -+ Busy_time uint64 -+ Rwnd_limited uint64 -+ Sndbuf_limited uint64 -+ Delivered uint32 -+ Delivered_ce uint32 -+ Bytes_sent uint64 -+ Bytes_retrans uint64 -+ Dsack_dups uint32 -+ Reord_seen uint32 -+ Rcv_ooopack uint32 -+ Snd_wnd uint32 -+ Rcv_wnd uint32 -+ Rehash uint32 -+ Total_rto uint16 -+ Total_rto_recoveries uint16 -+ Total_rto_time uint32 - } - - type CanFilter struct { -@@ -551,7 +555,7 @@ const ( - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc -- SizeofTCPInfo = 0xf0 -+ SizeofTCPInfo = 0xf8 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 - ) -@@ -832,6 +836,15 @@ const ( - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -+ -+ FSCONFIG_SET_FLAG = 0x0 -+ FSCONFIG_SET_STRING = 0x1 -+ FSCONFIG_SET_BINARY = 0x2 -+ FSCONFIG_SET_PATH = 0x3 -+ FSCONFIG_SET_PATH_EMPTY = 0x4 -+ FSCONFIG_SET_FD = 0x5 -+ FSCONFIG_CMD_CREATE = 0x6 -+ FSCONFIG_CMD_RECONFIGURE = 0x7 - ) - - type OpenHow struct { -@@ -1546,6 +1559,7 @@ const ( - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 -+ IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1561,6 +1575,7 @@ const ( - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 -+ IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 -@@ -1608,6 +1623,9 @@ const ( - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e -+ IFLA_BR_MCAST_QUERIER_STATE = 0x2f -+ IFLA_BR_FDB_N_LEARNED = 0x30 -+ IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 -@@ -1645,6 +1663,14 @@ const ( - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 -+ IFLA_BRPORT_LOCKED = 0x27 -+ IFLA_BRPORT_MAB = 0x28 -+ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 -+ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a -+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b -+ IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 -@@ -1666,6 +1692,9 @@ const ( - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 -+ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 -+ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 -+ IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 -@@ -1689,9 +1718,22 @@ const ( - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 -+ IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 -+ NETKIT_NEXT = -0x1 -+ NETKIT_PASS = 0x0 -+ NETKIT_DROP = 0x2 -+ NETKIT_REDIRECT = 0x7 -+ NETKIT_L2 = 0x0 -+ NETKIT_L3 = 0x1 -+ IFLA_NETKIT_UNSPEC = 0x0 -+ IFLA_NETKIT_PEER_INFO = 0x1 -+ IFLA_NETKIT_PRIMARY = 0x2 -+ IFLA_NETKIT_POLICY = 0x3 -+ IFLA_NETKIT_PEER_POLICY = 0x4 -+ IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 -@@ -1722,6 +1764,8 @@ const ( - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d -+ IFLA_VXLAN_VNIFILTER = 0x1e -+ IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 -@@ -1736,6 +1780,7 @@ const ( - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd -+ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 -@@ -1748,6 +1793,8 @@ const ( - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 -+ IFLA_GTP_CREATE_SOCKETS = 0x5 -+ IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 -@@ -1777,6 +1824,9 @@ const ( - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c -+ IFLA_BOND_AD_LACP_ACTIVE = 0x1d -+ IFLA_BOND_MISSED_MAX = 0x1e -+ IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 -@@ -1792,6 +1842,7 @@ const ( - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 -+ IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 -@@ -1850,8 +1901,16 @@ const ( - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 -+ IFLA_STATS_GETSET_UNSPEC = 0x0 -+ IFLA_STATS_GET_FILTERS = 0x1 -+ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 -+ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 -@@ -1881,6 +1940,11 @@ const ( - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -+ IFLA_MCTP_UNSPEC = 0x0 -+ IFLA_MCTP_NET = 0x1 -+ IFLA_DSA_UNSPEC = 0x0 -+ IFLA_DSA_CONDUIT = 0x1 -+ IFLA_DSA_MASTER = 0x1 - ) - - const ( -@@ -3399,7 +3463,7 @@ const ( - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 -- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -+ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 - ) - - type FsverityDigest struct { -@@ -4183,7 +4247,8 @@ const ( - ) - - type LandlockRulesetAttr struct { -- Access_fs uint64 -+ Access_fs uint64 -+ Access_net uint64 - } - - type LandlockPathBeneathAttr struct { -@@ -5134,7 +5199,7 @@ const ( - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf -- NL80211_FREQUENCY_ATTR_MAX = 0x1b -+ NL80211_FREQUENCY_ATTR_MAX = 0x1c - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc -@@ -5547,7 +5612,7 @@ const ( - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 -- NL80211_REG_RULE_ATTR_MAX = 0x7 -+ NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index b8ad1925..d4577a42 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := unsafe.Pointer(block) -- for { -- entry := UTF16PtrToString((*uint16)(blockp)) -- if len(entry) == 0 { -- break -+ size := unsafe.Sizeof(*block) -+ for *block != 0 { -+ // find NUL terminator -+ end := unsafe.Pointer(block) -+ for *(*uint16)(end) != 0 { -+ end = unsafe.Add(end, size) - } -- env = append(env, entry) -- blockp = unsafe.Add(blockp, 2*(len(entry)+1)) -+ -+ entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) -+ env = append(env, UTF16ToString(entry)) -+ block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 47dc5796..6395a031 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string { - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } -- -- return string(utf16.Decode(unsafe.Slice(p, n))) -+ return UTF16ToString(unsafe.Slice(p, n)) - } - - func Getpagesize() int { return 4096 } -@@ -194,6 +193,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW - //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW - //sys SetEndOfFile(handle Handle) (err error) -+//sys SetFileValidData(handle Handle, validDataLength int64) (err error) - //sys GetSystemTimeAsFileTime(time *Filetime) - //sys GetSystemTimePreciseAsFileTime(time *Filetime) - //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 146a1f01..e8791c82 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -342,6 +342,7 @@ var ( - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") -+ procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") -@@ -2988,6 +2989,14 @@ func SetEndOfFile(handle Handle) (err error) { - return - } - -+func SetFileValidData(handle Handle, validDataLength int64) (err error) { -+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 6636e54e..aca1c689 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -191,8 +191,8 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.13.0 - ## explicit; go 1.18 - golang.org/x/mod/semver --# golang.org/x/net v0.17.0 --## explicit; go 1.17 -+# golang.org/x/net v0.23.0 -+## explicit; go 1.18 - golang.org/x/net/bpf - golang.org/x/net/context - golang.org/x/net/html -@@ -201,14 +201,14 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.15.0 -+# golang.org/x/sys v0.18.0 - ## explicit; go 1.18 - golang.org/x/sys/execabs - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.13.0 --## explicit; go 1.17 -+# golang.org/x/text v0.14.0 -+## explicit; go 1.18 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap - golang.org/x/text/encoding/htmlindex --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-31/GOLANG_VERSION b/projects/containernetworking/plugins/1-31/GOLANG_VERSION index d2ab029d32..71f7f51df9 100644 --- a/projects/containernetworking/plugins/1-31/GOLANG_VERSION +++ b/projects/containernetworking/plugins/1-31/GOLANG_VERSION @@ -1 +1 @@ -1.21 +1.22 diff --git a/projects/containernetworking/plugins/1-31/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch b/projects/containernetworking/plugins/1-31/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch deleted file mode 100644 index f859b72213..0000000000 --- a/projects/containernetworking/plugins/1-31/patches/0001-Bump-containerd-verison-to-v1.7.11-to-fix-GHSA-7ww5-.patch +++ /dev/null @@ -1,3157 +0,0 @@ -From f1e82f30296d45c942b5a45e2a922a38740366e6 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 4 Jan 2024 13:54:52 -0800 -Subject: [PATCH] Bump containerd verison to v1.7.11 to fix GHSA-7ww5-4wqc-m92c - -Signed-off-by: Sajia Zafreen ---- - go.mod | 10 +- - go.sum | 22 +- - vendor/github.com/sirupsen/logrus/README.md | 8 +- - vendor/github.com/sirupsen/logrus/writer.go | 34 +- - .../genproto/{ => googleapis/rpc}/LICENSE | 0 - .../grpc/attributes/attributes.go | 59 +- - .../grpc/grpclog/component.go | 40 +- - .../google.golang.org/grpc/grpclog/grpclog.go | 30 +- - .../google.golang.org/grpc/grpclog/logger.go | 30 +- - .../grpc/grpclog/loggerv2.go | 56 +- - .../grpc/internal/credentials/credentials.go | 8 +- - .../grpc/internal/grpclog/grpclog.go | 40 +- - .../grpc/internal/grpclog/prefixLogger.go | 8 +- - .../grpc/internal/internal.go | 45 +- - .../grpc/internal/status/status.go | 8 +- - vendor/google.golang.org/grpc/resolver/map.go | 10 +- - .../grpc/resolver/resolver.go | 84 +- - .../google.golang.org/grpc/status/status.go | 14 +- - .../protobuf/encoding/prototext/encode.go | 14 +- - .../protobuf/internal/encoding/text/encode.go | 10 +- - .../protobuf/internal/genid/descriptor_gen.go | 48 + - .../protobuf/internal/genid/type_gen.go | 6 + - .../protobuf/internal/order/order.go | 2 +- - .../protobuf/internal/version/version.go | 2 +- - .../google.golang.org/protobuf/proto/size.go | 10 +- - .../reflect/protoreflect/source_gen.go | 27 + - .../types/descriptorpb/descriptor.pb.go | 1011 +++++++++++------ - .../protobuf/types/known/anypb/any.pb.go | 70 +- - .../types/known/timestamppb/timestamp.pb.go | 2 +- - vendor/modules.txt | 14 +- - 30 files changed, 1057 insertions(+), 665 deletions(-) - rename vendor/google.golang.org/genproto/{ => googleapis/rpc}/LICENSE (100%) - -diff --git a/go.mod b/go.mod -index 11944478..5be57166 100644 ---- a/go.mod -+++ b/go.mod -@@ -26,7 +26,7 @@ require ( - require ( - github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/containerd/cgroups v1.1.0 // indirect -- github.com/containerd/containerd v1.6.23 // indirect -+ github.com/containerd/containerd v1.7.11 // indirect - github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4 // indirect - github.com/go-logr/logr v1.3.0 // indirect - github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect -@@ -36,15 +36,15 @@ require ( - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/pprof v0.0.0-20230323073829-e72429f035bd // indirect - github.com/pkg/errors v0.9.1 // indirect -- github.com/sirupsen/logrus v1.9.0 // indirect -+ github.com/sirupsen/logrus v1.9.3 // indirect - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.14.0 // indirect -- google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect -- google.golang.org/grpc v1.56.3 // indirect -- google.golang.org/protobuf v1.30.0 // indirect -+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect -+ google.golang.org/grpc v1.58.3 // indirect -+ google.golang.org/protobuf v1.31.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index d67f299c..128e5c25 100644 ---- a/go.sum -+++ b/go.sum -@@ -16,8 +16,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk - github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= - github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= - github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= --github.com/containerd/containerd v1.6.23 h1:KYJd6UJhKHzwMhiD70iTtSmU+k4565ac22GOTI3AuTA= --github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= -+github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= -+github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= - github.com/containernetworking/cni v1.1.2 h1:wtRGZVv7olUHMOqouPpn3cXJWpJgM6+EUl31EQbXALQ= - github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= - github.com/coreos/go-iptables v0.7.0 h1:XWM3V+MPRr5/q51NuWSgU0fqMad64Zyxs8ZUoMsamr8= -@@ -113,8 +113,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN - github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= - github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= - github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= --github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= --github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= - 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= -@@ -124,8 +124,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ - github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= - 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 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= - github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= - github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= - github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= - github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -@@ -220,15 +220,15 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 - 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-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= --google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -+google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= - 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.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= --google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= -+google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -+google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= - 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= -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= --google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/github.com/sirupsen/logrus/README.md b/vendor/github.com/sirupsen/logrus/README.md -index b042c896..d1d4a85f 100644 ---- a/vendor/github.com/sirupsen/logrus/README.md -+++ b/vendor/github.com/sirupsen/logrus/README.md -@@ -9,7 +9,7 @@ the last thing you want from your Logging library (again...). - - This does not mean Logrus is dead. Logrus will continue to be maintained for - security, (backwards compatible) bug fixes, and performance (where we are --limited by the interface). -+limited by the interface). - - I believe Logrus' biggest contribution is to have played a part in today's - widespread use of structured logging in Golang. There doesn't seem to be a -@@ -43,7 +43,7 @@ plain text): - With `log.SetFormatter(&log.JSONFormatter{})`, for easy parsing by logstash - or Splunk: - --```json -+```text - {"animal":"walrus","level":"info","msg":"A group of walrus emerges from the - ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"} - -@@ -99,7 +99,7 @@ time="2015-03-26T01:27:38-04:00" level=fatal method=github.com/sirupsen/arcticcr - ``` - Note that this does add measurable overhead - the cost will depend on the version of Go, but is - between 20 and 40% in recent tests with 1.6 and 1.7. You can validate this in your --environment via benchmarks: -+environment via benchmarks: - ``` - go test -bench=.*CallerTracing - ``` -@@ -317,6 +317,8 @@ log.SetLevel(log.InfoLevel) - It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose - environment if your application has that. - -+Note: If you want different log levels for global (`log.SetLevel(...)`) and syslog logging, please check the [syslog hook README](hooks/syslog/README.md#different-log-levels-for-local-and-remote-logging). -+ - #### Entries - - Besides the fields added with `WithField` or `WithFields` some fields are -diff --git a/vendor/github.com/sirupsen/logrus/writer.go b/vendor/github.com/sirupsen/logrus/writer.go -index 72e8e3a1..074fd4b8 100644 ---- a/vendor/github.com/sirupsen/logrus/writer.go -+++ b/vendor/github.com/sirupsen/logrus/writer.go -@@ -4,6 +4,7 @@ import ( - "bufio" - "io" - "runtime" -+ "strings" - ) - - // Writer at INFO level. See WriterLevel for details. -@@ -20,15 +21,18 @@ func (logger *Logger) WriterLevel(level Level) *io.PipeWriter { - return NewEntry(logger).WriterLevel(level) - } - -+// Writer returns an io.Writer that writes to the logger at the info log level - func (entry *Entry) Writer() *io.PipeWriter { - return entry.WriterLevel(InfoLevel) - } - -+// WriterLevel returns an io.Writer that writes to the logger at the given log level - func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - reader, writer := io.Pipe() - - var printFunc func(args ...interface{}) - -+ // Determine which log function to use based on the specified log level - switch level { - case TraceLevel: - printFunc = entry.Trace -@@ -48,23 +52,51 @@ func (entry *Entry) WriterLevel(level Level) *io.PipeWriter { - printFunc = entry.Print - } - -+ // Start a new goroutine to scan the input and write it to the logger using the specified print function. -+ // It splits the input into chunks of up to 64KB to avoid buffer overflows. - go entry.writerScanner(reader, printFunc) -+ -+ // Set a finalizer function to close the writer when it is garbage collected - runtime.SetFinalizer(writer, writerFinalizer) - - return writer - } - -+// writerScanner scans the input from the reader and writes it to the logger - func (entry *Entry) writerScanner(reader *io.PipeReader, printFunc func(args ...interface{})) { - scanner := bufio.NewScanner(reader) -+ -+ // Set the buffer size to the maximum token size to avoid buffer overflows -+ scanner.Buffer(make([]byte, bufio.MaxScanTokenSize), bufio.MaxScanTokenSize) -+ -+ // Define a split function to split the input into chunks of up to 64KB -+ chunkSize := bufio.MaxScanTokenSize // 64KB -+ splitFunc := func(data []byte, atEOF bool) (int, []byte, error) { -+ if len(data) >= chunkSize { -+ return chunkSize, data[:chunkSize], nil -+ } -+ -+ return bufio.ScanLines(data, atEOF) -+ } -+ -+ // Use the custom split function to split the input -+ scanner.Split(splitFunc) -+ -+ // Scan the input and write it to the logger using the specified print function - for scanner.Scan() { -- printFunc(scanner.Text()) -+ printFunc(strings.TrimRight(scanner.Text(), "\r\n")) - } -+ -+ // If there was an error while scanning the input, log an error - if err := scanner.Err(); err != nil { - entry.Errorf("Error while reading from Writer: %s", err) - } -+ -+ // Close the reader when we are done - reader.Close() - } - -+// WriterFinalizer is a finalizer function that closes then given writer when it is garbage collected - func writerFinalizer(writer *io.PipeWriter) { - writer.Close() - } -diff --git a/vendor/google.golang.org/genproto/LICENSE b/vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -similarity index 100% -rename from vendor/google.golang.org/genproto/LICENSE -rename to vendor/google.golang.org/genproto/googleapis/rpc/LICENSE -diff --git a/vendor/google.golang.org/grpc/attributes/attributes.go b/vendor/google.golang.org/grpc/attributes/attributes.go -index 3efca459..712fef4d 100644 ---- a/vendor/google.golang.org/grpc/attributes/attributes.go -+++ b/vendor/google.golang.org/grpc/attributes/attributes.go -@@ -34,26 +34,26 @@ import ( - // key/value pairs. Keys must be hashable, and users should define their own - // types for keys. Values should not be modified after they are added to an - // Attributes or if they were received from one. If values implement 'Equal(o --// interface{}) bool', it will be called by (*Attributes).Equal to determine --// whether two values with the same key should be considered equal. -+// any) bool', it will be called by (*Attributes).Equal to determine whether -+// two values with the same key should be considered equal. - type Attributes struct { -- m map[interface{}]interface{} -+ m map[any]any - } - - // New returns a new Attributes containing the key/value pair. --func New(key, value interface{}) *Attributes { -- return &Attributes{m: map[interface{}]interface{}{key: value}} -+func New(key, value any) *Attributes { -+ return &Attributes{m: map[any]any{key: value}} - } - - // WithValue returns a new Attributes containing the previous keys and values - // and the new key/value pair. If the same key appears multiple times, the - // last value overwrites all previous values for that key. To remove an - // existing key, use a nil value. value should not be modified later. --func (a *Attributes) WithValue(key, value interface{}) *Attributes { -+func (a *Attributes) WithValue(key, value any) *Attributes { - if a == nil { - return New(key, value) - } -- n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} -+ n := &Attributes{m: make(map[any]any, len(a.m)+1)} - for k, v := range a.m { - n.m[k] = v - } -@@ -63,20 +63,19 @@ func (a *Attributes) WithValue(key, value interface{}) *Attributes { - - // Value returns the value associated with these attributes for key, or nil if - // no value is associated with key. The returned value should not be modified. --func (a *Attributes) Value(key interface{}) interface{} { -+func (a *Attributes) Value(key any) any { - if a == nil { - return nil - } - return a.m[key] - } - --// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) --// bool' is implemented for a value in the attributes, it is called to --// determine if the value matches the one stored in the other attributes. If --// Equal is not implemented, standard equality is used to determine if the two --// values are equal. Note that some types (e.g. maps) aren't comparable by --// default, so they must be wrapped in a struct, or in an alias type, with Equal --// defined. -+// Equal returns whether a and o are equivalent. If 'Equal(o any) bool' is -+// implemented for a value in the attributes, it is called to determine if the -+// value matches the one stored in the other attributes. If Equal is not -+// implemented, standard equality is used to determine if the two values are -+// equal. Note that some types (e.g. maps) aren't comparable by default, so -+// they must be wrapped in a struct, or in an alias type, with Equal defined. - func (a *Attributes) Equal(o *Attributes) bool { - if a == nil && o == nil { - return true -@@ -93,7 +92,7 @@ func (a *Attributes) Equal(o *Attributes) bool { - // o missing element of a - return false - } -- if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { -+ if eq, ok := v.(interface{ Equal(o any) bool }); ok { - if !eq.Equal(ov) { - return false - } -@@ -112,19 +111,31 @@ func (a *Attributes) String() string { - sb.WriteString("{") - first := true - for k, v := range a.m { -- var key, val string -- if str, ok := k.(interface{ String() string }); ok { -- key = str.String() -- } -- if str, ok := v.(interface{ String() string }); ok { -- val = str.String() -- } - if !first { - sb.WriteString(", ") - } -- sb.WriteString(fmt.Sprintf("%q: %q, ", key, val)) -+ sb.WriteString(fmt.Sprintf("%q: %q ", str(k), str(v))) - first = false - } - sb.WriteString("}") - return sb.String() - } -+ -+func str(x any) string { -+ if v, ok := x.(fmt.Stringer); ok { -+ return v.String() -+ } else if v, ok := x.(string); ok { -+ return v -+ } -+ return fmt.Sprintf("<%p>", x) -+} -+ -+// MarshalJSON helps implement the json.Marshaler interface, thereby rendering -+// the Attributes correctly when printing (via pretty.JSON) structs containing -+// Attributes as fields. -+// -+// Is it impossible to unmarshal attributes from a JSON representation and this -+// method is meant only for debugging purposes. -+func (a *Attributes) MarshalJSON() ([]byte, error) { -+ return []byte(a.String()), nil -+} -diff --git a/vendor/google.golang.org/grpc/grpclog/component.go b/vendor/google.golang.org/grpc/grpclog/component.go -index 8358dd6e..ac73c9ce 100644 ---- a/vendor/google.golang.org/grpc/grpclog/component.go -+++ b/vendor/google.golang.org/grpc/grpclog/component.go -@@ -31,71 +31,71 @@ type componentData struct { - - var cache = map[string]*componentData{} - --func (c *componentData) InfoDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) InfoDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.InfoDepth(depth+1, args...) - } - --func (c *componentData) WarningDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) WarningDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.WarningDepth(depth+1, args...) - } - --func (c *componentData) ErrorDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) ErrorDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.ErrorDepth(depth+1, args...) - } - --func (c *componentData) FatalDepth(depth int, args ...interface{}) { -- args = append([]interface{}{"[" + string(c.name) + "]"}, args...) -+func (c *componentData) FatalDepth(depth int, args ...any) { -+ args = append([]any{"[" + string(c.name) + "]"}, args...) - grpclog.FatalDepth(depth+1, args...) - } - --func (c *componentData) Info(args ...interface{}) { -+func (c *componentData) Info(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warning(args ...interface{}) { -+func (c *componentData) Warning(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Error(args ...interface{}) { -+func (c *componentData) Error(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatal(args ...interface{}) { -+func (c *componentData) Fatal(args ...any) { - c.FatalDepth(1, args...) - } - --func (c *componentData) Infof(format string, args ...interface{}) { -+func (c *componentData) Infof(format string, args ...any) { - c.InfoDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Warningf(format string, args ...interface{}) { -+func (c *componentData) Warningf(format string, args ...any) { - c.WarningDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Errorf(format string, args ...interface{}) { -+func (c *componentData) Errorf(format string, args ...any) { - c.ErrorDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Fatalf(format string, args ...interface{}) { -+func (c *componentData) Fatalf(format string, args ...any) { - c.FatalDepth(1, fmt.Sprintf(format, args...)) - } - --func (c *componentData) Infoln(args ...interface{}) { -+func (c *componentData) Infoln(args ...any) { - c.InfoDepth(1, args...) - } - --func (c *componentData) Warningln(args ...interface{}) { -+func (c *componentData) Warningln(args ...any) { - c.WarningDepth(1, args...) - } - --func (c *componentData) Errorln(args ...interface{}) { -+func (c *componentData) Errorln(args ...any) { - c.ErrorDepth(1, args...) - } - --func (c *componentData) Fatalln(args ...interface{}) { -+func (c *componentData) Fatalln(args ...any) { - c.FatalDepth(1, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/grpclog.go b/vendor/google.golang.org/grpc/grpclog/grpclog.go -index c8bb2be3..16928c9c 100644 ---- a/vendor/google.golang.org/grpc/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/grpclog/grpclog.go -@@ -42,53 +42,53 @@ func V(l int) bool { - } - - // Info logs to the INFO log. --func Info(args ...interface{}) { -+func Info(args ...any) { - grpclog.Logger.Info(args...) - } - - // Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. --func Infof(format string, args ...interface{}) { -+func Infof(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. --func Infoln(args ...interface{}) { -+func Infoln(args ...any) { - grpclog.Logger.Infoln(args...) - } - - // Warning logs to the WARNING log. --func Warning(args ...interface{}) { -+func Warning(args ...any) { - grpclog.Logger.Warning(args...) - } - - // Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. --func Warningf(format string, args ...interface{}) { -+func Warningf(format string, args ...any) { - grpclog.Logger.Warningf(format, args...) - } - - // Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. --func Warningln(args ...interface{}) { -+func Warningln(args ...any) { - grpclog.Logger.Warningln(args...) - } - - // Error logs to the ERROR log. --func Error(args ...interface{}) { -+func Error(args ...any) { - grpclog.Logger.Error(args...) - } - - // Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. --func Errorf(format string, args ...interface{}) { -+func Errorf(format string, args ...any) { - grpclog.Logger.Errorf(format, args...) - } - - // Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. --func Errorln(args ...interface{}) { -+func Errorln(args ...any) { - grpclog.Logger.Errorln(args...) - } - - // Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. - // It calls os.Exit() with exit code 1. --func Fatal(args ...interface{}) { -+func Fatal(args ...any) { - grpclog.Logger.Fatal(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -96,7 +96,7 @@ func Fatal(args ...interface{}) { - - // Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. - // It calls os.Exit() with exit code 1. --func Fatalf(format string, args ...interface{}) { -+func Fatalf(format string, args ...any) { - grpclog.Logger.Fatalf(format, args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -104,7 +104,7 @@ func Fatalf(format string, args ...interface{}) { - - // Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. - // It calle os.Exit()) with exit code 1. --func Fatalln(args ...interface{}) { -+func Fatalln(args ...any) { - grpclog.Logger.Fatalln(args...) - // Make sure fatal logs will exit. - os.Exit(1) -@@ -113,20 +113,20 @@ func Fatalln(args ...interface{}) { - // Print prints to the logger. Arguments are handled in the manner of fmt.Print. - // - // Deprecated: use Info. --func Print(args ...interface{}) { -+func Print(args ...any) { - grpclog.Logger.Info(args...) - } - - // Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. - // - // Deprecated: use Infof. --func Printf(format string, args ...interface{}) { -+func Printf(format string, args ...any) { - grpclog.Logger.Infof(format, args...) - } - - // Println prints to the logger. Arguments are handled in the manner of fmt.Println. - // - // Deprecated: use Infoln. --func Println(args ...interface{}) { -+func Println(args ...any) { - grpclog.Logger.Infoln(args...) - } -diff --git a/vendor/google.golang.org/grpc/grpclog/logger.go b/vendor/google.golang.org/grpc/grpclog/logger.go -index ef06a482..b1674d82 100644 ---- a/vendor/google.golang.org/grpc/grpclog/logger.go -+++ b/vendor/google.golang.org/grpc/grpclog/logger.go -@@ -24,12 +24,12 @@ import "google.golang.org/grpc/internal/grpclog" - // - // Deprecated: use LoggerV2. - type Logger interface { -- Fatal(args ...interface{}) -- Fatalf(format string, args ...interface{}) -- Fatalln(args ...interface{}) -- Print(args ...interface{}) -- Printf(format string, args ...interface{}) -- Println(args ...interface{}) -+ Fatal(args ...any) -+ Fatalf(format string, args ...any) -+ Fatalln(args ...any) -+ Print(args ...any) -+ Printf(format string, args ...any) -+ Println(args ...any) - } - - // SetLogger sets the logger that is used in grpc. Call only from -@@ -45,39 +45,39 @@ type loggerWrapper struct { - Logger - } - --func (g *loggerWrapper) Info(args ...interface{}) { -+func (g *loggerWrapper) Info(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Infoln(args ...interface{}) { -+func (g *loggerWrapper) Infoln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Infof(format string, args ...interface{}) { -+func (g *loggerWrapper) Infof(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Warning(args ...interface{}) { -+func (g *loggerWrapper) Warning(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Warningln(args ...interface{}) { -+func (g *loggerWrapper) Warningln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Warningf(format string, args ...interface{}) { -+func (g *loggerWrapper) Warningf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - --func (g *loggerWrapper) Error(args ...interface{}) { -+func (g *loggerWrapper) Error(args ...any) { - g.Logger.Print(args...) - } - --func (g *loggerWrapper) Errorln(args ...interface{}) { -+func (g *loggerWrapper) Errorln(args ...any) { - g.Logger.Println(args...) - } - --func (g *loggerWrapper) Errorf(format string, args ...interface{}) { -+func (g *loggerWrapper) Errorf(format string, args ...any) { - g.Logger.Printf(format, args...) - } - -diff --git a/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -index 5de66e40..ecfd36d7 100644 ---- a/vendor/google.golang.org/grpc/grpclog/loggerv2.go -+++ b/vendor/google.golang.org/grpc/grpclog/loggerv2.go -@@ -33,35 +33,35 @@ import ( - // LoggerV2 does underlying logging work for grpclog. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -182,53 +182,53 @@ func (g *loggerT) output(severity int, s string) { - g.m[severity].Output(2, string(b)) - } - --func (g *loggerT) Info(args ...interface{}) { -+func (g *loggerT) Info(args ...any) { - g.output(infoLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Infoln(args ...interface{}) { -+func (g *loggerT) Infoln(args ...any) { - g.output(infoLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Infof(format string, args ...interface{}) { -+func (g *loggerT) Infof(format string, args ...any) { - g.output(infoLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Warning(args ...interface{}) { -+func (g *loggerT) Warning(args ...any) { - g.output(warningLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Warningln(args ...interface{}) { -+func (g *loggerT) Warningln(args ...any) { - g.output(warningLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Warningf(format string, args ...interface{}) { -+func (g *loggerT) Warningf(format string, args ...any) { - g.output(warningLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Error(args ...interface{}) { -+func (g *loggerT) Error(args ...any) { - g.output(errorLog, fmt.Sprint(args...)) - } - --func (g *loggerT) Errorln(args ...interface{}) { -+func (g *loggerT) Errorln(args ...any) { - g.output(errorLog, fmt.Sprintln(args...)) - } - --func (g *loggerT) Errorf(format string, args ...interface{}) { -+func (g *loggerT) Errorf(format string, args ...any) { - g.output(errorLog, fmt.Sprintf(format, args...)) - } - --func (g *loggerT) Fatal(args ...interface{}) { -+func (g *loggerT) Fatal(args ...any) { - g.output(fatalLog, fmt.Sprint(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalln(args ...interface{}) { -+func (g *loggerT) Fatalln(args ...any) { - g.output(fatalLog, fmt.Sprintln(args...)) - os.Exit(1) - } - --func (g *loggerT) Fatalf(format string, args ...interface{}) { -+func (g *loggerT) Fatalf(format string, args ...any) { - g.output(fatalLog, fmt.Sprintf(format, args...)) - os.Exit(1) - } -@@ -248,11 +248,11 @@ func (g *loggerT) V(l int) bool { - type DepthLoggerV2 interface { - LoggerV2 - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -index 32c9b590..9deee7f6 100644 ---- a/vendor/google.golang.org/grpc/internal/credentials/credentials.go -+++ b/vendor/google.golang.org/grpc/internal/credentials/credentials.go -@@ -25,12 +25,12 @@ import ( - type requestInfoKey struct{} - - // NewRequestInfoContext creates a context with ri. --func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { -+func NewRequestInfoContext(ctx context.Context, ri any) context.Context { - return context.WithValue(ctx, requestInfoKey{}, ri) - } - - // RequestInfoFromContext extracts the RequestInfo from ctx. --func RequestInfoFromContext(ctx context.Context) interface{} { -+func RequestInfoFromContext(ctx context.Context) any { - return ctx.Value(requestInfoKey{}) - } - -@@ -39,11 +39,11 @@ func RequestInfoFromContext(ctx context.Context) interface{} { - type clientHandshakeInfoKey struct{} - - // ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. --func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { -+func ClientHandshakeInfoFromContext(ctx context.Context) any { - return ctx.Value(clientHandshakeInfoKey{}) - } - - // NewClientHandshakeInfoContext creates a context with chi. --func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { -+func NewClientHandshakeInfoContext(ctx context.Context, chi any) context.Context { - return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -index b68e26a3..bfc45102 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go -@@ -30,7 +30,7 @@ var Logger LoggerV2 - var DepthLogger DepthLoggerV2 - - // InfoDepth logs to the INFO log at the specified depth. --func InfoDepth(depth int, args ...interface{}) { -+func InfoDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.InfoDepth(depth, args...) - } else { -@@ -39,7 +39,7 @@ func InfoDepth(depth int, args ...interface{}) { - } - - // WarningDepth logs to the WARNING log at the specified depth. --func WarningDepth(depth int, args ...interface{}) { -+func WarningDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.WarningDepth(depth, args...) - } else { -@@ -48,7 +48,7 @@ func WarningDepth(depth int, args ...interface{}) { - } - - // ErrorDepth logs to the ERROR log at the specified depth. --func ErrorDepth(depth int, args ...interface{}) { -+func ErrorDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.ErrorDepth(depth, args...) - } else { -@@ -57,7 +57,7 @@ func ErrorDepth(depth int, args ...interface{}) { - } - - // FatalDepth logs to the FATAL log at the specified depth. --func FatalDepth(depth int, args ...interface{}) { -+func FatalDepth(depth int, args ...any) { - if DepthLogger != nil { - DepthLogger.FatalDepth(depth, args...) - } else { -@@ -71,35 +71,35 @@ func FatalDepth(depth int, args ...interface{}) { - // is defined here to avoid a circular dependency. - type LoggerV2 interface { - // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. -- Info(args ...interface{}) -+ Info(args ...any) - // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. -- Infoln(args ...interface{}) -+ Infoln(args ...any) - // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. -- Infof(format string, args ...interface{}) -+ Infof(format string, args ...any) - // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. -- Warning(args ...interface{}) -+ Warning(args ...any) - // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. -- Warningln(args ...interface{}) -+ Warningln(args ...any) - // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. -- Warningf(format string, args ...interface{}) -+ Warningf(format string, args ...any) - // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. -- Error(args ...interface{}) -+ Error(args ...any) - // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. -- Errorln(args ...interface{}) -+ Errorln(args ...any) - // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. -- Errorf(format string, args ...interface{}) -+ Errorf(format string, args ...any) - // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatal(args ...interface{}) -+ Fatal(args ...any) - // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalln(args ...interface{}) -+ Fatalln(args ...any) - // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. - // gRPC ensures that all Fatal logs will exit with os.Exit(1). - // Implementations may also call os.Exit() with a non-zero exit code. -- Fatalf(format string, args ...interface{}) -+ Fatalf(format string, args ...any) - // V reports whether verbosity level l is at least the requested verbose level. - V(l int) bool - } -@@ -116,11 +116,11 @@ type LoggerV2 interface { - // later release. - type DepthLoggerV2 interface { - // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. -- InfoDepth(depth int, args ...interface{}) -+ InfoDepth(depth int, args ...any) - // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. -- WarningDepth(depth int, args ...interface{}) -+ WarningDepth(depth int, args ...any) - // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. -- ErrorDepth(depth int, args ...interface{}) -+ ErrorDepth(depth int, args ...any) - // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. -- FatalDepth(depth int, args ...interface{}) -+ FatalDepth(depth int, args ...any) - } -diff --git a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -index 02224b42..faa998de 100644 ---- a/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -+++ b/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go -@@ -31,7 +31,7 @@ type PrefixLogger struct { - } - - // Infof does info logging. --func (pl *PrefixLogger) Infof(format string, args ...interface{}) { -+func (pl *PrefixLogger) Infof(format string, args ...any) { - if pl != nil { - // Handle nil, so the tests can pass in a nil logger. - format = pl.prefix + format -@@ -42,7 +42,7 @@ func (pl *PrefixLogger) Infof(format string, args ...interface{}) { - } - - // Warningf does warning logging. --func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Warningf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) -@@ -52,7 +52,7 @@ func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { - } - - // Errorf does error logging. --func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Errorf(format string, args ...any) { - if pl != nil { - format = pl.prefix + format - pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) -@@ -62,7 +62,7 @@ func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { - } - - // Debugf does info logging at verbose level 2. --func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { -+func (pl *PrefixLogger) Debugf(format string, args ...any) { - // TODO(6044): Refactor interfaces LoggerV2 and DepthLogger, and maybe - // rewrite PrefixLogger a little to ensure that we don't use the global - // `Logger` here, and instead use the `logger` field. -diff --git a/vendor/google.golang.org/grpc/internal/internal.go b/vendor/google.golang.org/grpc/internal/internal.go -index 42ff39c8..c8a8c76d 100644 ---- a/vendor/google.golang.org/grpc/internal/internal.go -+++ b/vendor/google.golang.org/grpc/internal/internal.go -@@ -30,7 +30,7 @@ import ( - - var ( - // WithHealthCheckFunc is set by dialoptions.go -- WithHealthCheckFunc interface{} // func (HealthChecker) DialOption -+ WithHealthCheckFunc any // func (HealthChecker) DialOption - // HealthCheckFunc is used to provide client-side LB channel health checking - HealthCheckFunc HealthChecker - // BalancerUnregister is exported by package balancer to unregister a balancer. -@@ -38,8 +38,12 @@ var ( - // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by - // default, but tests may wish to set it lower for convenience. - KeepaliveMinPingTime = 10 * time.Second -+ // KeepaliveMinServerPingTime is the minimum ping interval for servers. -+ // This must be 1s by default, but tests may wish to set it lower for -+ // convenience. -+ KeepaliveMinServerPingTime = time.Second - // ParseServiceConfig parses a JSON representation of the service config. -- ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult -+ ParseServiceConfig any // func(string) *serviceconfig.ParseResult - // EqualServiceConfigForTesting is for testing service config generation and - // parsing. Both a and b should be returned by ParseServiceConfig. - // This function compares the config without rawJSON stripped, in case the -@@ -49,33 +53,33 @@ var ( - // given name. This is set by package certprovider for use from xDS - // bootstrap code while parsing certificate provider configs in the - // bootstrap file. -- GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder -+ GetCertificateProviderBuilder any // func(string) certprovider.Builder - // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo - // stored in the passed in attributes. This is set by - // credentials/xds/xds.go. -- GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo -+ GetXDSHandshakeInfoForTesting any // func (*attributes.Attributes) *xds.HandshakeInfo - // GetServerCredentials returns the transport credentials configured on a - // gRPC server. An xDS-enabled server needs to know what type of credentials - // is configured on the underlying gRPC server. This is set by server.go. -- GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials -+ GetServerCredentials any // func (*grpc.Server) credentials.TransportCredentials - // CanonicalString returns the canonical string of the code defined here: - // https://github.com/grpc/grpc/blob/master/doc/statuscodes.md. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- CanonicalString interface{} // func (codes.Code) string -+ CanonicalString any // func (codes.Code) string - // DrainServerTransports initiates a graceful close of existing connections - // on a gRPC server accepted on the provided listener address. An - // xDS-enabled server invokes this method on a grpc.Server when a particular - // listener moves to "not-serving" mode. -- DrainServerTransports interface{} // func(*grpc.Server, string) -+ DrainServerTransports any // func(*grpc.Server, string) - // AddGlobalServerOptions adds an array of ServerOption that will be - // effective globally for newly created servers. The priority will be: 1. - // user-provided; 2. this method; 3. default values. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalServerOptions interface{} // func(opt ...ServerOption) -+ AddGlobalServerOptions any // func(opt ...ServerOption) - // ClearGlobalServerOptions clears the array of extra ServerOption. This - // method is useful in testing and benchmarking. - // -@@ -88,14 +92,14 @@ var ( - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- AddGlobalDialOptions interface{} // func(opt ...DialOption) -+ AddGlobalDialOptions any // func(opt ...DialOption) - // DisableGlobalDialOptions returns a DialOption that prevents the - // ClientConn from applying the global DialOptions (set via - // AddGlobalDialOptions). - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- DisableGlobalDialOptions interface{} // func() grpc.DialOption -+ DisableGlobalDialOptions any // func() grpc.DialOption - // ClearGlobalDialOptions clears the array of extra DialOption. This - // method is useful in testing and benchmarking. - // -@@ -104,23 +108,26 @@ var ( - ClearGlobalDialOptions func() - // JoinDialOptions combines the dial options passed as arguments into a - // single dial option. -- JoinDialOptions interface{} // func(...grpc.DialOption) grpc.DialOption -+ JoinDialOptions any // func(...grpc.DialOption) grpc.DialOption - // JoinServerOptions combines the server options passed as arguments into a - // single server option. -- JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption -+ JoinServerOptions any // func(...grpc.ServerOption) grpc.ServerOption - - // WithBinaryLogger returns a DialOption that specifies the binary logger - // for a ClientConn. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption -+ WithBinaryLogger any // func(binarylog.Logger) grpc.DialOption - // BinaryLogger returns a ServerOption that can set the binary logger for a - // server. - // - // This is used in the 1.0 release of gcp/observability, and thus must not be - // deleted or changed. -- BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption -+ BinaryLogger any // func(binarylog.Logger) grpc.ServerOption -+ -+ // SubscribeToConnectivityStateChanges adds a grpcsync.Subscriber to a provided grpc.ClientConn -+ SubscribeToConnectivityStateChanges any // func(*grpc.ClientConn, grpcsync.Subscriber) - - // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using - // the provided xds bootstrap config instead of the global configuration from -@@ -131,7 +138,7 @@ var ( - // - // This function should ONLY be used for testing and may not work with some - // other features, including the CSDS service. -- NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) -+ NewXDSResolverWithConfigForTesting any // func([]byte) (resolver.Builder, error) - - // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster - // Specifier Plugin for testing purposes, regardless of the XDSRLS environment -@@ -163,7 +170,11 @@ var ( - UnregisterRBACHTTPFilterForTesting func() - - // ORCAAllowAnyMinReportingInterval is for examples/orca use ONLY. -- ORCAAllowAnyMinReportingInterval interface{} // func(so *orca.ServiceOptions) -+ ORCAAllowAnyMinReportingInterval any // func(so *orca.ServiceOptions) -+ -+ // GRPCResolverSchemeExtraMetadata determines when gRPC will add extra -+ // metadata to RPCs. -+ GRPCResolverSchemeExtraMetadata string = "xds" - ) - - // HealthChecker defines the signature of the client-side LB channel health checking function. -@@ -174,7 +185,7 @@ var ( - // - // The health checking protocol is defined at: - // https://github.com/grpc/grpc/blob/master/doc/health-checking.md --type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error -+type HealthChecker func(ctx context.Context, newStream func(string) (any, error), setConnectivityState func(connectivity.State, error), serviceName string) error - - const ( - // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. -diff --git a/vendor/google.golang.org/grpc/internal/status/status.go b/vendor/google.golang.org/grpc/internal/status/status.go -index b0ead4f5..4cf85cad 100644 ---- a/vendor/google.golang.org/grpc/internal/status/status.go -+++ b/vendor/google.golang.org/grpc/internal/status/status.go -@@ -49,7 +49,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -64,7 +64,7 @@ func Err(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Err(c, fmt.Sprintf(format, a...)) - } - -@@ -120,11 +120,11 @@ func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { - - // Details returns a slice of details messages attached to the status. - // If a detail cannot be decoded, the error is returned in place of the detail. --func (s *Status) Details() []interface{} { -+func (s *Status) Details() []any { - if s == nil || s.s == nil { - return nil - } -- details := make([]interface{}, 0, len(s.s.Details)) -+ details := make([]any, 0, len(s.s.Details)) - for _, any := range s.s.Details { - detail := &ptypes.DynamicAny{} - if err := ptypes.UnmarshalAny(any, detail); err != nil { -diff --git a/vendor/google.golang.org/grpc/resolver/map.go b/vendor/google.golang.org/grpc/resolver/map.go -index efcb7f3e..804be887 100644 ---- a/vendor/google.golang.org/grpc/resolver/map.go -+++ b/vendor/google.golang.org/grpc/resolver/map.go -@@ -20,7 +20,7 @@ package resolver - - type addressMapEntry struct { - addr Address -- value interface{} -+ value any - } - - // AddressMap is a map of addresses to arbitrary values taking into account -@@ -69,7 +69,7 @@ func (l addressMapEntryList) find(addr Address) int { - } - - // Get returns the value for the address in the map, if present. --func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { -+func (a *AddressMap) Get(addr Address) (value any, ok bool) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -79,7 +79,7 @@ func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { - } - - // Set updates or adds the value to the address in the map. --func (a *AddressMap) Set(addr Address, value interface{}) { -+func (a *AddressMap) Set(addr Address, value any) { - addrKey := toMapKey(&addr) - entryList := a.m[addrKey] - if entry := entryList.find(addr); entry != -1 { -@@ -127,8 +127,8 @@ func (a *AddressMap) Keys() []Address { - } - - // Values returns a slice of all current map values. --func (a *AddressMap) Values() []interface{} { -- ret := make([]interface{}, 0, a.Len()) -+func (a *AddressMap) Values() []any { -+ ret := make([]any, 0, a.Len()) - for _, entryList := range a.m { - for _, entry := range entryList { - ret = append(ret, entry.value) -diff --git a/vendor/google.golang.org/grpc/resolver/resolver.go b/vendor/google.golang.org/grpc/resolver/resolver.go -index 353c10b6..11384e22 100644 ---- a/vendor/google.golang.org/grpc/resolver/resolver.go -+++ b/vendor/google.golang.org/grpc/resolver/resolver.go -@@ -77,25 +77,6 @@ func GetDefaultScheme() string { - return defaultScheme - } - --// AddressType indicates the address type returned by name resolution. --// --// Deprecated: use Attributes in Address instead. --type AddressType uint8 -- --const ( -- // Backend indicates the address is for a backend server. -- // -- // Deprecated: use Attributes in Address instead. -- Backend AddressType = iota -- // GRPCLB indicates the address is for a grpclb load balancer. -- // -- // Deprecated: to select the GRPCLB load balancing policy, use a service -- // config with a corresponding loadBalancingConfig. To supply balancer -- // addresses to the GRPCLB load balancing policy, set State.Attributes -- // using balancer/grpclb/state.Set. -- GRPCLB --) -- - // Address represents a server the client connects to. - // - // # Experimental -@@ -111,9 +92,6 @@ type Address struct { - // the address, instead of the hostname from the Dial target string. In most cases, - // this should not be set. - // -- // If Type is GRPCLB, ServerName should be the name of the remote load -- // balancer, not the name of the backend. -- // - // WARNING: ServerName must only be populated with trusted values. It - // is insecure to populate it with data from untrusted inputs since untrusted - // values could be used to bypass the authority checks performed by TLS. -@@ -126,27 +104,29 @@ type Address struct { - // BalancerAttributes contains arbitrary data about this address intended - // for consumption by the LB policy. These attributes do not affect SubConn - // creation, connection establishment, handshaking, etc. -- BalancerAttributes *attributes.Attributes -- -- // Type is the type of this address. - // -- // Deprecated: use Attributes instead. -- Type AddressType -+ // Deprecated: when an Address is inside an Endpoint, this field should not -+ // be used, and it will eventually be removed entirely. -+ BalancerAttributes *attributes.Attributes - - // Metadata is the information associated with Addr, which may be used - // to make load balancing decision. - // - // Deprecated: use Attributes instead. -- Metadata interface{} -+ Metadata any - } - - // Equal returns whether a and o are identical. Metadata is compared directly, - // not with any recursive introspection. -+// -+// This method compares all fields of the address. When used to tell apart -+// addresses during subchannel creation or connection establishment, it might be -+// more appropriate for the caller to implement custom equality logic. - func (a Address) Equal(o Address) bool { - return a.Addr == o.Addr && a.ServerName == o.ServerName && - a.Attributes.Equal(o.Attributes) && - a.BalancerAttributes.Equal(o.BalancerAttributes) && -- a.Type == o.Type && a.Metadata == o.Metadata -+ a.Metadata == o.Metadata - } - - // String returns JSON formatted string representation of the address. -@@ -190,11 +170,37 @@ type BuildOptions struct { - Dialer func(context.Context, string) (net.Conn, error) - } - -+// An Endpoint is one network endpoint, or server, which may have multiple -+// addresses with which it can be accessed. -+type Endpoint struct { -+ // Addresses contains a list of addresses used to access this endpoint. -+ Addresses []Address -+ -+ // Attributes contains arbitrary data about this endpoint intended for -+ // consumption by the LB policy. -+ Attributes *attributes.Attributes -+} -+ - // State contains the current Resolver state relevant to the ClientConn. - type State struct { - // Addresses is the latest set of resolved addresses for the target. -+ // -+ // If a resolver sets Addresses but does not set Endpoints, one Endpoint -+ // will be created for each Address before the State is passed to the LB -+ // policy. The BalancerAttributes of each entry in Addresses will be set -+ // in Endpoints.Attributes, and be cleared in the Endpoint's Address's -+ // BalancerAttributes. -+ // -+ // Soon, Addresses will be deprecated and replaced fully by Endpoints. - Addresses []Address - -+ // Endpoints is the latest set of resolved endpoints for the target. -+ // -+ // If a resolver produces a State containing Endpoints but not Addresses, -+ // it must take care to ensure the LB policies it selects will support -+ // Endpoints. -+ Endpoints []Endpoint -+ - // ServiceConfig contains the result from parsing the latest service - // config. If it is nil, it indicates no service config is present or the - // resolver does not provide service configs. -@@ -254,20 +260,7 @@ type ClientConn interface { - // target does not contain a scheme or if the parsed scheme is not registered - // (i.e. no corresponding resolver available to resolve the endpoint), we will - // apply the default scheme, and will attempt to reparse it. --// --// Examples: --// --// - "dns://some_authority/foo.bar" --// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} --// - "foo.bar" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} --// - "unknown_scheme://authority/endpoint" --// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} - type Target struct { -- // Deprecated: use URL.Scheme instead. -- Scheme string -- // Deprecated: use URL.Host instead. -- Authority string - // URL contains the parsed dial target with an optional default scheme added - // to it if the original dial target contained no scheme or contained an - // unregistered scheme. Any query params specified in the original dial -@@ -321,10 +314,3 @@ type Resolver interface { - // Close closes the resolver. - Close() - } -- --// UnregisterForTesting removes the resolver builder with the given scheme from the --// resolver map. --// This function is for testing only. --func UnregisterForTesting(scheme string) { -- delete(m, scheme) --} -diff --git a/vendor/google.golang.org/grpc/status/status.go b/vendor/google.golang.org/grpc/status/status.go -index bcf2e4d8..a93360ef 100644 ---- a/vendor/google.golang.org/grpc/status/status.go -+++ b/vendor/google.golang.org/grpc/status/status.go -@@ -50,7 +50,7 @@ func New(c codes.Code, msg string) *Status { - } - - // Newf returns New(c, fmt.Sprintf(format, a...)). --func Newf(c codes.Code, format string, a ...interface{}) *Status { -+func Newf(c codes.Code, format string, a ...any) *Status { - return New(c, fmt.Sprintf(format, a...)) - } - -@@ -60,7 +60,7 @@ func Error(c codes.Code, msg string) error { - } - - // Errorf returns Error(c, fmt.Sprintf(format, a...)). --func Errorf(c codes.Code, format string, a ...interface{}) error { -+func Errorf(c codes.Code, format string, a ...any) error { - return Error(c, fmt.Sprintf(format, a...)) - } - -@@ -99,25 +99,27 @@ func FromError(err error) (s *Status, ok bool) { - } - type grpcstatus interface{ GRPCStatus() *Status } - if gs, ok := err.(grpcstatus); ok { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error has status nil, which maps to codes.OK. There - // is no sensible behavior for this, so we turn it into - // an error with codes.Unknown and discard the existing - // status. - return New(codes.Unknown, err.Error()), false - } -- return gs.GRPCStatus(), true -+ return grpcStatus, true - } - var gs grpcstatus - if errors.As(err, &gs) { -- if gs.GRPCStatus() == nil { -+ grpcStatus := gs.GRPCStatus() -+ if grpcStatus == nil { - // Error wraps an error that has status nil, which maps - // to codes.OK. There is no sensible behavior for this, - // so we turn it into an error with codes.Unknown and - // discard the existing status. - return New(codes.Unknown, err.Error()), false - } -- p := gs.GRPCStatus().Proto() -+ p := grpcStatus.Proto() - p.Message = err.Error() - return status.FromProto(p), true - } -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index ebf6c652..722a7b41 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -101,13 +101,19 @@ func (o MarshalOptions) Format(m proto.Message) string { - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -- return o.marshal(m) -+ return o.marshal(nil, m) -+} -+ -+// MarshalAppend appends the textproto format encoding of m to b, -+// returning the result. -+func (o MarshalOptions) MarshalAppend(b []byte, m proto.Message) ([]byte, error) { -+ return o.marshal(b, m) - } - - // marshal is a centralized function that all marshal operations go through. - // For profiling purposes, avoid changing the name of this function or - // introducing other code paths for marshal that do not go through this. --func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { -+func (o MarshalOptions) marshal(b []byte, m proto.Message) ([]byte, error) { - var delims = [2]byte{'{', '}'} - - if o.Multiline && o.Indent == "" { -@@ -117,7 +123,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - o.Resolver = protoregistry.GlobalTypes - } - -- internalEnc, err := text.NewEncoder(o.Indent, delims, o.EmitASCII) -+ internalEnc, err := text.NewEncoder(b, o.Indent, delims, o.EmitASCII) - if err != nil { - return nil, err - } -@@ -125,7 +131,7 @@ func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { - // Treat nil message interface as an empty message, - // in which case there is nothing to output. - if m == nil { -- return []byte{}, nil -+ return b, nil - } - - enc := encoder{internalEnc, o} -diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -index da289ccc..cf7aed77 100644 ---- a/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go -@@ -53,8 +53,10 @@ type encoderState struct { - // If outputASCII is true, strings will be serialized in such a way that - // multi-byte UTF-8 sequences are escaped. This property ensures that the - // overall output is ASCII (as opposed to UTF-8). --func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -- e := &Encoder{} -+func NewEncoder(buf []byte, indent string, delims [2]byte, outputASCII bool) (*Encoder, error) { -+ e := &Encoder{ -+ encoderState: encoderState{out: buf}, -+ } - if len(indent) > 0 { - if strings.Trim(indent, " \t") != "" { - return nil, errors.New("indent may only be composed of space and tab characters") -@@ -195,13 +197,13 @@ func appendFloat(out []byte, n float64, bitSize int) []byte { - // WriteInt writes out the given signed integer value. - func (e *Encoder) WriteInt(n int64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatInt(n, 10)...) -+ e.out = strconv.AppendInt(e.out, n, 10) - } - - // WriteUint writes out the given unsigned integer value. - func (e *Encoder) WriteUint(n uint64) { - e.prepareNext(scalar) -- e.out = append(e.out, strconv.FormatUint(n, 10)...) -+ e.out = strconv.AppendUint(e.out, n, 10) - } - - // WriteLiteral writes out the given string as a literal value without quotes. -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 5c0e8f73..136f1b21 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -183,13 +183,58 @@ const ( - // Field names for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" -+ ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions. - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 -+ ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 -+) -+ -+// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" -+ ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" -+) -+ -+// Names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -+ ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" -+) -+ -+// Field names for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+) -+ -+// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. -+const ( -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -540,6 +585,7 @@ const ( - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" -+ FieldOptions_Targets_field_name protoreflect.Name = "targets" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -552,6 +598,7 @@ const ( - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" -+ FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -567,6 +614,7 @@ const ( - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 -+ FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index 3bc71013..e0f75fea 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -32,6 +32,7 @@ const ( - Type_Options_field_name protoreflect.Name = "options" - Type_SourceContext_field_name protoreflect.Name = "source_context" - Type_Syntax_field_name protoreflect.Name = "syntax" -+ Type_Edition_field_name protoreflect.Name = "edition" - - Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" - Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" -@@ -39,6 +40,7 @@ const ( - Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" - Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" - Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" -+ Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" - ) - - // Field numbers for google.protobuf.Type. -@@ -49,6 +51,7 @@ const ( - Type_Options_field_number protoreflect.FieldNumber = 4 - Type_SourceContext_field_number protoreflect.FieldNumber = 5 - Type_Syntax_field_number protoreflect.FieldNumber = 6 -+ Type_Edition_field_number protoreflect.FieldNumber = 7 - ) - - // Names for google.protobuf.Field. -@@ -121,12 +124,14 @@ const ( - Enum_Options_field_name protoreflect.Name = "options" - Enum_SourceContext_field_name protoreflect.Name = "source_context" - Enum_Syntax_field_name protoreflect.Name = "syntax" -+ Enum_Edition_field_name protoreflect.Name = "edition" - - Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" - Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" - Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" - Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" - Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" -+ Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" - ) - - // Field numbers for google.protobuf.Enum. -@@ -136,6 +141,7 @@ const ( - Enum_Options_field_number protoreflect.FieldNumber = 3 - Enum_SourceContext_field_number protoreflect.FieldNumber = 4 - Enum_Syntax_field_number protoreflect.FieldNumber = 5 -+ Enum_Edition_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.EnumValue. -diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go -index 33745ed0..dea522e1 100644 ---- a/vendor/google.golang.org/protobuf/internal/order/order.go -+++ b/vendor/google.golang.org/protobuf/internal/order/order.go -@@ -33,7 +33,7 @@ var ( - return !inOneof(ox) && inOneof(oy) - } - // Fields in disjoint oneof sets are sorted by declaration index. -- if ox != nil && oy != nil && ox != oy { -+ if inOneof(ox) && inOneof(oy) && ox != oy { - return ox.Index() < oy.Index() - } - // Fields sorted by field number. -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index f7014cd5..0999f29d 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 30 -+ Minor = 31 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go -index 554b9c6c..f1692b49 100644 ---- a/vendor/google.golang.org/protobuf/proto/size.go -+++ b/vendor/google.golang.org/protobuf/proto/size.go -@@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore - } - - func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - if fd.IsPacked() && list.Len() > 0 { - content := 0 - for i, llen := 0, list.Len(); i < llen; i++ { - content += o.sizeSingular(num, fd.Kind(), list.Get(i)) - } -- return protowire.SizeTag(num) + protowire.SizeBytes(content) -+ return sizeTag + protowire.SizeBytes(content) - } - - for i, llen := 0, list.Len(); i < llen; i++ { -- size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) -+ size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) - } - return size - } - - func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { -+ sizeTag := protowire.SizeTag(num) -+ - mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { -- size += protowire.SizeTag(num) -+ size += sizeTag - size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) - return true - }) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 54ce326d..717b106f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) -+ case 19: -+ b = p.appendRepeatedField(b, "targets", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - switch (*p)[0] { - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) -+ case 2: -+ b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 3: -+ b = p.appendSingularField(b, "verification", nil) - } - return b - } -@@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - } - return b - } -+ -+func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "number", nil) -+ case 2: -+ b = p.appendSingularField(b, "full_name", nil) -+ case 3: -+ b = p.appendSingularField(b, "type", nil) -+ case 4: -+ b = p.appendSingularField(b, "is_repeated", nil) -+ case 5: -+ b = p.appendSingularField(b, "reserved", nil) -+ case 6: -+ b = p.appendSingularField(b, "repeated", nil) -+ } -+ return b -+} -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index dac5671d..04c00f73 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,64 @@ import ( - sync "sync" - ) - -+// The verification state of the extension range. -+type ExtensionRangeOptions_VerificationState int32 -+ -+const ( -+ // All the extensions of the range must be declared. -+ ExtensionRangeOptions_DECLARATION ExtensionRangeOptions_VerificationState = 0 -+ ExtensionRangeOptions_UNVERIFIED ExtensionRangeOptions_VerificationState = 1 -+) -+ -+// Enum value maps for ExtensionRangeOptions_VerificationState. -+var ( -+ ExtensionRangeOptions_VerificationState_name = map[int32]string{ -+ 0: "DECLARATION", -+ 1: "UNVERIFIED", -+ } -+ ExtensionRangeOptions_VerificationState_value = map[string]int32{ -+ "DECLARATION": 0, -+ "UNVERIFIED": 1, -+ } -+) -+ -+func (x ExtensionRangeOptions_VerificationState) Enum() *ExtensionRangeOptions_VerificationState { -+ p := new(ExtensionRangeOptions_VerificationState) -+ *p = x -+ return p -+} -+ -+func (x ExtensionRangeOptions_VerificationState) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *ExtensionRangeOptions_VerificationState) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = ExtensionRangeOptions_VerificationState(num) -+ return nil -+} -+ -+// Deprecated: Use ExtensionRangeOptions_VerificationState.Descriptor instead. -+func (ExtensionRangeOptions_VerificationState) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ - type FieldDescriptorProto_Type int32 - - const ( -@@ -137,11 +195,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -197,11 +255,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -258,11 +316,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -288,7 +346,13 @@ type FieldOptions_CType int32 - - const ( - // Default mode. -- FieldOptions_STRING FieldOptions_CType = 0 -+ FieldOptions_STRING FieldOptions_CType = 0 -+ // The option [ctype=CORD] may be applied to a non-repeated field of type -+ // "bytes". It indicates that in C++, the data should be stored in a Cord -+ // instead of a string. For very large strings, this may reduce memory -+ // fragmentation. It may also allow better performance when parsing from a -+ // Cord, or when parsing with aliasing enabled, as the parsed Cord may then -+ // alias the original buffer. - FieldOptions_CORD FieldOptions_CType = 1 - FieldOptions_STRING_PIECE FieldOptions_CType = 2 - ) -@@ -318,11 +382,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -380,11 +444,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -442,11 +506,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -526,11 +590,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -588,11 +652,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -652,11 +716,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -1015,7 +1079,21 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` --} -+ // go/protobuf-stripping-extension-declarations -+ // Like Metadata, but we use a repeated field to hold all extension -+ // declarations. This should avoid the size increases of transforming a large -+ // extension range into small ranges in generated binaries. -+ Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // The verification state of the range. -+ // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // are marked as UNVERIFIED. -+ Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` -+} -+ -+// Default values for ExtensionRangeOptions fields. -+const ( -+ Default_ExtensionRangeOptions_Verification = ExtensionRangeOptions_UNVERIFIED -+) - - func (x *ExtensionRangeOptions) Reset() { - *x = ExtensionRangeOptions{} -@@ -1056,6 +1134,20 @@ func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption - return nil - } - -+func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declaration { -+ if x != nil { -+ return x.Declaration -+ } -+ return nil -+} -+ -+func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { -+ if x != nil && x.Verification != nil { -+ return *x.Verification -+ } -+ return Default_ExtensionRangeOptions_Verification -+} -+ - // Describes a field within a message. - type FieldDescriptorProto struct { - state protoimpl.MessageState -@@ -2046,8 +2138,10 @@ type FieldOptions struct { - - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific -- // options below. This option is not yet implemented in the open source -- // release -- sorry, we'll try to include it in a future version! -+ // options below. This option is only implemented to support use of -+ // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of -+ // type "bytes" in the open source release -- sorry, we'll try to include -+ // other types in a future version! - Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly -@@ -2111,9 +2205,11 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2224,6 +2320,7 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target -@@ -2231,6 +2328,13 @@ func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - return FieldOptions_TARGET_TYPE_UNKNOWN - } - -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets -+ } -+ return nil -+} -+ - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2960,6 +3064,108 @@ func (x *DescriptorProto_ReservedRange) GetEnd() int32 { - return 0 - } - -+type ExtensionRangeOptions_Declaration struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // The extension number declared within the extension range. -+ Number *int32 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"` -+ // The fully-qualified name of the extension field. There must be a leading -+ // dot in front of the full name. -+ FullName *string `protobuf:"bytes,2,opt,name=full_name,json=fullName" json:"full_name,omitempty"` -+ // The fully-qualified type name of the extension field. Unlike -+ // Metadata.type, Declaration.type must have a leading dot for messages -+ // and enums. -+ Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -+ // Deprecated. Please use "repeated". -+ // -+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+ IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` -+ // If true, indicates that the number is reserved in the extension range, -+ // and any extension field with the number will fail to compile. Set this -+ // when a declared extension field is deleted. -+ Reserved *bool `protobuf:"varint,5,opt,name=reserved" json:"reserved,omitempty"` -+ // If true, indicates that the extension must be defined as repeated. -+ // Otherwise the extension must be defined as optional. -+ Repeated *bool `protobuf:"varint,6,opt,name=repeated" json:"repeated,omitempty"` -+} -+ -+func (x *ExtensionRangeOptions_Declaration) Reset() { -+ *x = ExtensionRangeOptions_Declaration{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *ExtensionRangeOptions_Declaration) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} -+ -+func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ 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 ExtensionRangeOptions_Declaration.ProtoReflect.Descriptor instead. -+func (*ExtensionRangeOptions_Declaration) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3, 0} -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetNumber() int32 { -+ if x != nil && x.Number != nil { -+ return *x.Number -+ } -+ return 0 -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetFullName() string { -+ if x != nil && x.FullName != nil { -+ return *x.FullName -+ } -+ return "" -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetType() string { -+ if x != nil && x.Type != nil { -+ return *x.Type -+ } -+ return "" -+} -+ -+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -+func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -+ if x != nil && x.IsRepeated != nil { -+ return *x.IsRepeated -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { -+ if x != nil && x.Reserved != nil { -+ return *x.Reserved -+ } -+ return false -+} -+ -+func (x *ExtensionRangeOptions_Declaration) GetRepeated() bool { -+ if x != nil && x.Repeated != nil { -+ return *x.Repeated -+ } -+ return false -+} -+ - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // -@@ -2978,7 +3184,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2991,7 +3197,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3038,7 +3244,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3051,7 +3257,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3182,7 +3388,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3195,7 +3401,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3269,7 +3475,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3282,7 +3488,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3436,264 +3642,296 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -- 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, -- 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, -- 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, -- 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -+ 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -+ 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -+ 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -+ 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -+ 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -+ 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -+ 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -+ 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -+ 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -+ 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -+ 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -+ 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -+ 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -+ 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, -- 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, -- 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, -- 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, -- 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, -- 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, -- 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, -- 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, -- 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, -- 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, -- 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -- 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, -- 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, -- 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, -- 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, -- 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, -- 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, -- 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, -- 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, -- 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, -- 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, -- 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, -- 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, -- 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, -- 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, -- 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, -- 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -+ 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -+ 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -+ 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -+ 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -+ 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -+ 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -+ 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -+ 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -+ 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -+ 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -+ 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -+ 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -+ 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -+ 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -+ 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -+ 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -+ 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -+ 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -+ 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -+ 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -+ 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -+ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -+ 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -+ 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -+ 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -+ 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -+ 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -+ 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -+ 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -+ 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -+ 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -+ 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -+ 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -+ 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -+ 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -+ 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -+ 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -+ 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -+ 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -+ 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -+ 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -+ 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -+ 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -+ 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -+ 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -+ 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -+ 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -+ 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -+ 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -+ 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -+ 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, -- 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, -- 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, -- 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, -- 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, -- 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, -- 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, -- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, -- 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, -- 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, -- 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, -- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, -- 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, -- 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, -- 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -- 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, -- 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, -- 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, -- 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, -- 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, -- 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, -- 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, -- 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, -- 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, -- 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, -- 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, -- 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, -- 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -- 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, -- 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, -- 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, -- 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, -- 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, -- 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, -- 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, -- 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, -- 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, -- 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, -- 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, -- 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, -- 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, -- 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, -- 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, -- 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, -- 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, -- 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -- 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, -- 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, -- 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, -- 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, -- 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, -- 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, -- 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, -- 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, -- 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, -- 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, -- 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, -- 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, -- 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, -- 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, -- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, -- 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, -- 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, -- 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, -- 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, -- 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, -- 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -- 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, -- 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, -- 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, -- 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, -- 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, -- 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -- 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, -- 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, -- 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, -- 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -- 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, -- 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, -- 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, -- 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -+ 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -+ 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -+ 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -+ 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -+ 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -+ 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -+ 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -+ 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, -+ 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, -+ 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, -+ 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, -+ 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, -+ 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, -+ 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, -+ 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, -+ 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, -+ 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, -+ 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, -+ 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, -+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, -+ 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, -+ 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, -- 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, -- 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, -- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, -- 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, -- 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, -- 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, -- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, -- 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, -- 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, -- 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, -- 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -- 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, -- 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -- 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, -+ 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -+ 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -+ 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -+ 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -+ 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -+ 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -+ 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -+ 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -+ 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -+ 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -+ 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -+ 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -+ 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -+ 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -+ 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -+ 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -+ 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -+ 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -+ 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -+ 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -+ 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -+ 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -+ 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -+ 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -+ 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -+ 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -+ 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -+ 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -+ 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -+ 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -+ 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -+ 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -@@ -3885,98 +4123,103 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 19: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation -+ (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 20: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -+ (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -+ (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 46, // [46:46] is the sub-list for method output_type -- 46, // [46:46] is the sub-list for method input_type -- 46, // [46:46] is the sub-list for extension type_name -- 46, // [46:46] is the sub-list for extension extendee -- 0, // [0:46] is the sub-list for field type_name -+ 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 49, // [49:49] is the sub-list for method output_type -+ 49, // [49:49] is the sub-list for method input_type -+ 49, // [49:49] is the sub-list for extension type_name -+ 49, // [49:49] is the sub-list for extension extendee -+ 0, // [0:49] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4280,7 +4523,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4292,7 +4535,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4304,7 +4547,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*UninterpretedOption_NamePart); i { - case 0: - return &v.state - case 1: -@@ -4316,6 +4559,18 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4333,8 +4588,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 9, -- NumMessages: 27, -+ NumEnums: 10, -+ NumMessages: 28, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index a6c7a33f..580b232f 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -142,39 +142,39 @@ import ( - // - // Example 2: Pack and unpack a message in Java. - // --// Foo foo = ...; --// Any any = Any.pack(foo); --// ... --// if (any.is(Foo.class)) { --// foo = any.unpack(Foo.class); --// } --// // or ... --// if (any.isSameTypeAs(Foo.getDefaultInstance())) { --// foo = any.unpack(Foo.getDefaultInstance()); --// } --// --// Example 3: Pack and unpack a message in Python. --// --// foo = Foo(...) --// any = Any() --// any.Pack(foo) --// ... --// if any.Is(Foo.DESCRIPTOR): --// any.Unpack(foo) --// ... --// --// Example 4: Pack and unpack a message in Go --// --// foo := &pb.Foo{...} --// any, err := anypb.New(foo) --// if err != nil { --// ... --// } --// ... --// foo := &pb.Foo{} --// if err := any.UnmarshalTo(foo); err != nil { --// ... --// } -+// Foo foo = ...; -+// Any any = Any.pack(foo); -+// ... -+// if (any.is(Foo.class)) { -+// foo = any.unpack(Foo.class); -+// } -+// // or ... -+// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -+// foo = any.unpack(Foo.getDefaultInstance()); -+// } -+// -+// Example 3: Pack and unpack a message in Python. -+// -+// foo = Foo(...) -+// any = Any() -+// any.Pack(foo) -+// ... -+// if any.Is(Foo.DESCRIPTOR): -+// any.Unpack(foo) -+// ... -+// -+// Example 4: Pack and unpack a message in Go -+// -+// foo := &pb.Foo{...} -+// any, err := anypb.New(foo) -+// if err != nil { -+// ... -+// } -+// ... -+// foo := &pb.Foo{} -+// if err := any.UnmarshalTo(foo); err != nil { -+// ... -+// } - // - // The pack methods provided by protobuf library will by default use - // 'type.googleapis.com/full.type.name' as the type URL and the unpack -@@ -182,8 +182,8 @@ import ( - // in the type URL, for example "foo.bar.com/x/y.z" will yield type - // name "y.z". - // --// # JSON --// -+// JSON -+// ==== - // The JSON representation of an `Any` value uses the regular - // representation of the deserialized, embedded message, with an - // additional field `@type` which contains the type URL. Example: -diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -index 61f69fc1..81511a33 100644 ---- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go -@@ -167,7 +167,7 @@ import ( - // [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with - // the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use - // the Joda Time's [`ISODateTimeFormat.dateTime()`]( --// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D -+// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime() - // ) to obtain a formatter capable of generating timestamps in this format. - type Timestamp struct { - state protoimpl.MessageState -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 09b061d6..987b5b1c 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -46,8 +46,8 @@ github.com/buger/jsonparser - # github.com/containerd/cgroups v1.1.0 - ## explicit; go 1.17 - github.com/containerd/cgroups/stats/v1 --# github.com/containerd/containerd v1.6.23 --## explicit; go 1.18 -+# github.com/containerd/containerd v1.7.11 -+## explicit; go 1.19 - github.com/containerd/containerd/errdefs - # github.com/containernetworking/cni v1.1.2 - ## explicit; go 1.14 -@@ -171,7 +171,7 @@ github.com/pkg/errors - # github.com/safchain/ethtool v0.3.0 - ## explicit; go 1.16 - github.com/safchain/ethtool --# github.com/sirupsen/logrus v1.9.0 -+# github.com/sirupsen/logrus v1.9.3 - ## explicit; go 1.13 - github.com/sirupsen/logrus - # github.com/vishvananda/netlink v1.2.1-beta.2 -@@ -246,11 +246,11 @@ golang.org/x/tools/internal/pkgbits - golang.org/x/tools/internal/tokeninternal - golang.org/x/tools/internal/typeparams - golang.org/x/tools/internal/typesinternal --# google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 -+# google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 - ## explicit; go 1.19 - google.golang.org/genproto/googleapis/rpc/status --# google.golang.org/grpc v1.56.3 --## explicit; go 1.17 -+# google.golang.org/grpc v1.58.3 -+## explicit; go 1.19 - google.golang.org/grpc/attributes - google.golang.org/grpc/codes - google.golang.org/grpc/connectivity -@@ -263,7 +263,7 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.30.0 -+# google.golang.org/protobuf v1.31.0 - ## explicit; go 1.11 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire --- -2.39.1 - diff --git a/projects/containernetworking/plugins/1-31/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch b/projects/containernetworking/plugins/1-31/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch deleted file mode 100644 index a69520b061..0000000000 --- a/projects/containernetworking/plugins/1-31/patches/0002-Bump-protobuf-to-1.33.0-to-resolve-CVE-2024-24786.patch +++ /dev/null @@ -1,7533 +0,0 @@ -From 3af5aa8e661a642da31295a18e637f975a4706a5 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Fri, 22 Mar 2024 19:12:56 +0000 -Subject: [PATCH] Bump protobuf to 1.33.0 to resolve CVE-2024-24786 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 2 +- - go.sum | 4 +- - .../protobuf/encoding/prototext/decode.go | 8 +- - .../protobuf/encoding/prototext/encode.go | 4 +- - .../protobuf/encoding/protowire/wire.go | 28 +- - .../protobuf/internal/descfmt/stringer.go | 183 +- - .../internal/editiondefaults/defaults.go | 12 + - .../editiondefaults/editions_defaults.binpb | 4 + - .../protobuf/internal/filedesc/desc.go | 102 +- - .../protobuf/internal/filedesc/desc_init.go | 52 + - .../protobuf/internal/filedesc/desc_lazy.go | 28 + - .../protobuf/internal/filedesc/editions.go | 142 + - .../protobuf/internal/genid/descriptor_gen.go | 364 ++- - .../internal/genid/go_features_gen.go | 31 + - .../protobuf/internal/genid/struct_gen.go | 5 + - .../protobuf/internal/genid/type_gen.go | 38 + - .../protobuf/internal/impl/codec_extension.go | 22 +- - .../protobuf/internal/impl/codec_gen.go | 113 +- - .../protobuf/internal/impl/codec_tables.go | 2 +- - .../protobuf/internal/impl/legacy_message.go | 19 +- - .../protobuf/internal/impl/message.go | 17 +- - .../internal/impl/message_reflect_field.go | 2 +- - .../protobuf/internal/impl/pointer_reflect.go | 36 + - .../protobuf/internal/impl/pointer_unsafe.go | 40 + - .../protobuf/internal/strs/strings.go | 2 +- - ...ings_unsafe.go => strings_unsafe_go120.go} | 4 +- - .../internal/strs/strings_unsafe_go121.go | 74 + - .../protobuf/internal/version/version.go | 2 +- - .../protobuf/proto/decode.go | 2 +- - .../google.golang.org/protobuf/proto/doc.go | 58 +- - .../protobuf/proto/encode.go | 2 +- - .../protobuf/proto/extension.go | 2 +- - .../google.golang.org/protobuf/proto/merge.go | 2 +- - .../google.golang.org/protobuf/proto/proto.go | 18 +- - .../protobuf/reflect/protodesc/desc.go | 29 +- - .../protobuf/reflect/protodesc/desc_init.go | 56 + - .../reflect/protodesc/desc_resolve.go | 4 +- - .../reflect/protodesc/desc_validate.go | 6 +- - .../protobuf/reflect/protodesc/editions.go | 148 + - .../protobuf/reflect/protodesc/proto.go | 18 +- - .../protobuf/reflect/protoreflect/proto.go | 85 +- - .../reflect/protoreflect/source_gen.go | 64 +- - .../protobuf/reflect/protoreflect/type.go | 44 +- - .../protobuf/reflect/protoreflect/value.go | 24 +- - .../reflect/protoreflect/value_equal.go | 8 +- - .../reflect/protoreflect/value_union.go | 44 +- - ...{value_unsafe.go => value_unsafe_go120.go} | 4 +- - .../protoreflect/value_unsafe_go121.go | 87 + - .../reflect/protoregistry/registry.go | 24 +- - .../types/descriptorpb/descriptor.pb.go | 2475 ++++++++++++----- - .../types/gofeaturespb/go_features.pb.go | 177 ++ - .../types/gofeaturespb/go_features.proto | 28 + - .../protobuf/types/known/anypb/any.pb.go | 3 +- - vendor/modules.txt | 6 +- - 54 files changed, 3699 insertions(+), 1059 deletions(-) - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go - create mode 100644 vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb - create mode 100644 vendor/google.golang.org/protobuf/internal/filedesc/editions.go - create mode 100644 vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go - rename vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe.go => strings_unsafe_go120.go} (96%) - create mode 100644 vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/reflect/protodesc/editions.go - rename vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe.go => value_unsafe_go120.go} (97%) - create mode 100644 vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go - create mode 100644 vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto - -diff --git a/go.mod b/go.mod -index 5be57166..47102692 100644 ---- a/go.mod -+++ b/go.mod -@@ -45,6 +45,6 @@ require ( - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -- google.golang.org/protobuf v1.31.0 // indirect -+ google.golang.org/protobuf v1.33.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - ) -diff --git a/go.sum b/go.sum -index 128e5c25..e274380d 100644 ---- a/go.sum -+++ b/go.sum -@@ -240,8 +240,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD - 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 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= --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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -index 4921b2d4..a45f112b 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/decode.go -@@ -21,7 +21,7 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - --// Unmarshal reads the given []byte into the given proto.Message. -+// Unmarshal reads the given []byte into the given [proto.Message]. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func Unmarshal(b []byte, m proto.Message) error { - return UnmarshalOptions{}.Unmarshal(b, m) -@@ -51,7 +51,7 @@ type UnmarshalOptions struct { - } - } - --// Unmarshal reads the given []byte and populates the given proto.Message -+// Unmarshal reads the given []byte and populates the given [proto.Message] - // using options in the UnmarshalOptions object. - // The provided message must be mutable (e.g., a non-nil pointer to a message). - func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { -@@ -739,7 +739,9 @@ func (d decoder) skipValue() error { - case text.ListClose: - return nil - case text.MessageOpen: -- return d.skipMessageValue() -+ if err := d.skipMessageValue(); err != nil { -+ return err -+ } - default: - // Skip items. This will not validate whether skipped values are - // of the same type or not, same behavior as C++ -diff --git a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -index 722a7b41..95967e81 100644 ---- a/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -+++ b/vendor/google.golang.org/protobuf/encoding/prototext/encode.go -@@ -33,7 +33,7 @@ func Format(m proto.Message) string { - return MarshalOptions{Multiline: true}.Format(m) - } - --// Marshal writes the given proto.Message in textproto format using default -+// Marshal writes the given [proto.Message] in textproto format using default - // options. Do not depend on the output being stable. It may change over time - // across different versions of the program. - func Marshal(m proto.Message) ([]byte, error) { -@@ -97,7 +97,7 @@ func (o MarshalOptions) Format(m proto.Message) string { - return string(b) - } - --// Marshal writes the given proto.Message in textproto format using options in -+// Marshal writes the given [proto.Message] in textproto format using options in - // MarshalOptions object. Do not depend on the output being stable. It may - // change over time across different versions of the program. - func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { -diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -index f4b4686c..e942bc98 100644 ---- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go -@@ -6,7 +6,7 @@ - // See https://protobuf.dev/programming-guides/encoding. - // - // For marshaling and unmarshaling entire protobuf messages, --// use the "google.golang.org/protobuf/proto" package instead. -+// use the [google.golang.org/protobuf/proto] package instead. - package protowire - - import ( -@@ -87,7 +87,7 @@ func ParseError(n int) error { - - // ConsumeField parses an entire field record (both tag and value) and returns - // the field number, the wire type, and the total length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - // - // The total length includes the tag header and the end group marker (if the - // field is a group). -@@ -104,8 +104,8 @@ func ConsumeField(b []byte) (Number, Type, int) { - } - - // ConsumeFieldValue parses a field value and returns its length. --// This assumes that the field Number and wire Type have already been parsed. --// This returns a negative length upon an error (see ParseError). -+// This assumes that the field [Number] and wire [Type] have already been parsed. -+// This returns a negative length upon an error (see [ParseError]). - // - // When parsing a group, the length includes the end group marker and - // the end group is verified to match the starting field number. -@@ -164,7 +164,7 @@ func AppendTag(b []byte, num Number, typ Type) []byte { - } - - // ConsumeTag parses b as a varint-encoded tag, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeTag(b []byte) (Number, Type, int) { - v, n := ConsumeVarint(b) - if n < 0 { -@@ -263,7 +263,7 @@ func AppendVarint(b []byte, v uint64) []byte { - } - - // ConsumeVarint parses b as a varint-encoded uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeVarint(b []byte) (v uint64, n int) { - var y uint64 - if len(b) <= 0 { -@@ -384,7 +384,7 @@ func AppendFixed32(b []byte, v uint32) []byte { - } - - // ConsumeFixed32 parses b as a little-endian uint32, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed32(b []byte) (v uint32, n int) { - if len(b) < 4 { - return 0, errCodeTruncated -@@ -412,7 +412,7 @@ func AppendFixed64(b []byte, v uint64) []byte { - } - - // ConsumeFixed64 parses b as a little-endian uint64, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeFixed64(b []byte) (v uint64, n int) { - if len(b) < 8 { - return 0, errCodeTruncated -@@ -432,7 +432,7 @@ func AppendBytes(b []byte, v []byte) []byte { - } - - // ConsumeBytes parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeBytes(b []byte) (v []byte, n int) { - m, n := ConsumeVarint(b) - if n < 0 { -@@ -456,7 +456,7 @@ func AppendString(b []byte, v string) []byte { - } - - // ConsumeString parses b as a length-prefixed bytes value, reporting its length. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeString(b []byte) (v string, n int) { - bb, n := ConsumeBytes(b) - return string(bb), n -@@ -471,7 +471,7 @@ func AppendGroup(b []byte, num Number, v []byte) []byte { - // ConsumeGroup parses b as a group value until the trailing end group marker, - // and verifies that the end marker matches the provided num. The value v - // does not contain the end marker, while the length does contain the end marker. --// This returns a negative length upon an error (see ParseError). -+// This returns a negative length upon an error (see [ParseError]). - func ConsumeGroup(num Number, b []byte) (v []byte, n int) { - n = ConsumeFieldValue(num, StartGroupType, b) - if n < 0 { -@@ -495,8 +495,8 @@ func SizeGroup(num Number, n int) int { - return n + SizeTag(num) - } - --// DecodeTag decodes the field Number and wire Type from its unified form. --// The Number is -1 if the decoded field number overflows int32. -+// DecodeTag decodes the field [Number] and wire [Type] from its unified form. -+// The [Number] is -1 if the decoded field number overflows int32. - // Other than overflow, this does not check for field number validity. - func DecodeTag(x uint64) (Number, Type) { - // NOTE: MessageSet allows for larger field numbers than normal. -@@ -506,7 +506,7 @@ func DecodeTag(x uint64) (Number, Type) { - return Number(x >> 3), Type(x & 7) - } - --// EncodeTag encodes the field Number and wire Type into its unified form. -+// EncodeTag encodes the field [Number] and wire [Type] into its unified form. - func EncodeTag(num Number, typ Type) uint64 { - return uint64(num)<<3 | uint64(typ&7) - } -diff --git a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -index db5248e1..a45625c8 100644 ---- a/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -+++ b/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go -@@ -83,7 +83,13 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - case protoreflect.FileImports: - for i := 0; i < vs.Len(); i++ { - var rs records -- rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") -+ rv := reflect.ValueOf(vs.Get(i)) -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPublic"), "IsPublic"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ }...) - ss = append(ss, "{"+rs.Join()+"}") - } - return start + joinStrings(ss, allowMulti) + end -@@ -92,34 +98,26 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { - for i := 0; i < vs.Len(); i++ { - m := reflect.ValueOf(vs).MethodByName("Get") - v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() -- ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) -+ ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue, nil)) - } - return start + joinStrings(ss, allowMulti && isEnumValue) + end - } - } - --// descriptorAccessors is a list of accessors to print for each descriptor. --// --// Do not print all accessors since some contain redundant information, --// while others are pointers that we do not want to follow since the descriptor --// is actually a cyclic graph. --// --// Using a list allows us to print the accessors in a sensible order. --var descriptorAccessors = map[reflect.Type][]string{ -- reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, -- reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, -- reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, -- reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt -- reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, -- reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, -- reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, -- reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, -+type methodAndName struct { -+ method reflect.Value -+ name string - } - - func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { -- io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) -+ io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')), nil)) - } --func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { -+ -+func InternalFormatDescOptForTesting(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { -+ return formatDescOpt(t, isRoot, allowMulti, record) -+} -+ -+func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool, record func(string)) string { - rv := reflect.ValueOf(t) - rt := rv.MethodByName("ProtoType").Type().In(0) - -@@ -129,26 +127,60 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - } - - _, isFile := t.(protoreflect.FileDescriptor) -- rs := records{allowMulti: allowMulti} -+ rs := records{ -+ allowMulti: allowMulti, -+ record: record, -+ } - if t.IsPlaceholder() { - if isFile { -- rs.Append(rv, "Path", "Package", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } else { -- rs.Append(rv, "FullName", "IsPlaceholder") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("FullName"), "FullName"}, -+ {rv.MethodByName("IsPlaceholder"), "IsPlaceholder"}, -+ }...) - } - } else { - switch { - case isFile: -- rs.Append(rv, "Syntax") -+ rs.Append(rv, methodAndName{rv.MethodByName("Syntax"), "Syntax"}) - case isRoot: -- rs.Append(rv, "Syntax", "FullName") -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Syntax"), "Syntax"}, -+ {rv.MethodByName("FullName"), "FullName"}, -+ }...) - default: -- rs.Append(rv, "Name") -+ rs.Append(rv, methodAndName{rv.MethodByName("Name"), "Name"}) - } - switch t := t.(type) { - case protoreflect.FieldDescriptor: -- for _, s := range descriptorAccessors[rt] { -- switch s { -+ accessors := []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ {rv.MethodByName("Cardinality"), "Cardinality"}, -+ {rv.MethodByName("Kind"), "Kind"}, -+ {rv.MethodByName("HasJSONName"), "HasJSONName"}, -+ {rv.MethodByName("JSONName"), "JSONName"}, -+ {rv.MethodByName("HasPresence"), "HasPresence"}, -+ {rv.MethodByName("IsExtension"), "IsExtension"}, -+ {rv.MethodByName("IsPacked"), "IsPacked"}, -+ {rv.MethodByName("IsWeak"), "IsWeak"}, -+ {rv.MethodByName("IsList"), "IsList"}, -+ {rv.MethodByName("IsMap"), "IsMap"}, -+ {rv.MethodByName("MapKey"), "MapKey"}, -+ {rv.MethodByName("MapValue"), "MapValue"}, -+ {rv.MethodByName("HasDefault"), "HasDefault"}, -+ {rv.MethodByName("Default"), "Default"}, -+ {rv.MethodByName("ContainingOneof"), "ContainingOneof"}, -+ {rv.MethodByName("ContainingMessage"), "ContainingMessage"}, -+ {rv.MethodByName("Message"), "Message"}, -+ {rv.MethodByName("Enum"), "Enum"}, -+ } -+ for _, s := range accessors { -+ switch s.name { - case "MapKey": - if k := t.MapKey(); k != nil { - rs.recs = append(rs.recs, [2]string{"MapKey", k.Kind().String()}) -@@ -157,20 +189,20 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - if v := t.MapValue(); v != nil { - switch v.Kind() { - case protoreflect.EnumKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Enum().FullName())}) - case protoreflect.MessageKind, protoreflect.GroupKind: -- rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", string(v.Message().FullName())}) - default: -- rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) -+ rs.AppendRecs("MapValue", [2]string{"MapValue", v.Kind().String()}) - } - } - case "ContainingOneof": - if od := t.ContainingOneof(); od != nil { -- rs.recs = append(rs.recs, [2]string{"Oneof", string(od.Name())}) -+ rs.AppendRecs("ContainingOneof", [2]string{"Oneof", string(od.Name())}) - } - case "ContainingMessage": - if t.IsExtension() { -- rs.recs = append(rs.recs, [2]string{"Extendee", string(t.ContainingMessage().FullName())}) -+ rs.AppendRecs("ContainingMessage", [2]string{"Extendee", string(t.ContainingMessage().FullName())}) - } - case "Message": - if !t.IsMap() { -@@ -187,13 +219,61 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - ss = append(ss, string(fs.Get(i).Name())) - } - if len(ss) > 0 { -- rs.recs = append(rs.recs, [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) -+ rs.AppendRecs("Fields", [2]string{"Fields", "[" + joinStrings(ss, false) + "]"}) - } -- default: -- rs.Append(rv, descriptorAccessors[rt]...) -+ -+ case protoreflect.FileDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Path"), "Path"}, -+ {rv.MethodByName("Package"), "Package"}, -+ {rv.MethodByName("Imports"), "Imports"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ {rv.MethodByName("Services"), "Services"}, -+ }...) -+ -+ case protoreflect.MessageDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("IsMapEntry"), "IsMapEntry"}, -+ {rv.MethodByName("Fields"), "Fields"}, -+ {rv.MethodByName("Oneofs"), "Oneofs"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ {rv.MethodByName("RequiredNumbers"), "RequiredNumbers"}, -+ {rv.MethodByName("ExtensionRanges"), "ExtensionRanges"}, -+ {rv.MethodByName("Messages"), "Messages"}, -+ {rv.MethodByName("Enums"), "Enums"}, -+ {rv.MethodByName("Extensions"), "Extensions"}, -+ }...) -+ -+ case protoreflect.EnumDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Values"), "Values"}, -+ {rv.MethodByName("ReservedNames"), "ReservedNames"}, -+ {rv.MethodByName("ReservedRanges"), "ReservedRanges"}, -+ }...) -+ -+ case protoreflect.EnumValueDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Number"), "Number"}, -+ }...) -+ -+ case protoreflect.ServiceDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Methods"), "Methods"}, -+ }...) -+ -+ case protoreflect.MethodDescriptor: -+ rs.Append(rv, []methodAndName{ -+ {rv.MethodByName("Input"), "Input"}, -+ {rv.MethodByName("Output"), "Output"}, -+ {rv.MethodByName("IsStreamingClient"), "IsStreamingClient"}, -+ {rv.MethodByName("IsStreamingServer"), "IsStreamingServer"}, -+ }...) - } -- if rv.MethodByName("GoType").IsValid() { -- rs.Append(rv, "GoType") -+ if m := rv.MethodByName("GoType"); m.IsValid() { -+ rs.Append(rv, methodAndName{m, "GoType"}) - } - } - return start + rs.Join() + end -@@ -202,19 +282,34 @@ func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { - type records struct { - recs [][2]string - allowMulti bool -+ -+ // record is a function that will be called for every Append() or -+ // AppendRecs() call, to be used for testing with the -+ // InternalFormatDescOptForTesting function. -+ record func(string) - } - --func (rs *records) Append(v reflect.Value, accessors ...string) { -+func (rs *records) AppendRecs(fieldName string, newRecs [2]string) { -+ if rs.record != nil { -+ rs.record(fieldName) -+ } -+ rs.recs = append(rs.recs, newRecs) -+} -+ -+func (rs *records) Append(v reflect.Value, accessors ...methodAndName) { - for _, a := range accessors { -+ if rs.record != nil { -+ rs.record(a.name) -+ } - var rv reflect.Value -- if m := v.MethodByName(a); m.IsValid() { -- rv = m.Call(nil)[0] -+ if a.method.IsValid() { -+ rv = a.method.Call(nil)[0] - } - if v.Kind() == reflect.Struct && !rv.IsValid() { -- rv = v.FieldByName(a) -+ rv = v.FieldByName(a.name) - } - if !rv.IsValid() { -- panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) -+ panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a.name)) - } - if _, ok := rv.Interface().(protoreflect.Value); ok { - rv = rv.MethodByName("Interface").Call(nil)[0] -@@ -261,7 +356,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { - default: - s = fmt.Sprint(v) - } -- rs.recs = append(rs.recs, [2]string{a, s}) -+ rs.recs = append(rs.recs, [2]string{a.name, s}) - } - } - -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -new file mode 100644 -index 00000000..14656b65 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/defaults.go -@@ -0,0 +1,12 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Package editiondefaults contains the binary representation of the editions -+// defaults. -+package editiondefaults -+ -+import _ "embed" -+ -+//go:embed editions_defaults.binpb -+var Defaults []byte -diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -new file mode 100644 -index 00000000..18f07568 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb -@@ -0,0 +1,4 @@ -+ -+  (0æ -+  (0ç -+  (0è æ(è -\ No newline at end of file -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -index 7c3689ba..8826bcf4 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go -@@ -21,11 +21,26 @@ import ( - "google.golang.org/protobuf/reflect/protoregistry" - ) - -+// Edition is an Enum for proto2.Edition -+type Edition int32 -+ -+// These values align with the value of Enum in descriptor.proto which allows -+// direct conversion between the proto enum and this enum. -+const ( -+ EditionUnknown Edition = 0 -+ EditionProto2 Edition = 998 -+ EditionProto3 Edition = 999 -+ Edition2023 Edition = 1000 -+ EditionUnsupported Edition = 100000 -+) -+ - // The types in this file may have a suffix: - // • L0: Contains fields common to all descriptors (except File) and - // must be initialized up front. - // • L1: Contains fields specific to a descriptor and --// must be initialized up front. -+// must be initialized up front. If the associated proto uses Editions, the -+// Editions features must always be resolved. If not explicitly set, the -+// appropriate default must be resolved and set. - // • L2: Contains fields that are lazily initialized when constructing - // from the raw file descriptor. When constructing as a literal, the L2 - // fields must be initialized up front. -@@ -44,6 +59,7 @@ type ( - } - FileL1 struct { - Syntax protoreflect.Syntax -+ Edition Edition // Only used if Syntax == Editions - Path string - Package protoreflect.FullName - -@@ -51,12 +67,41 @@ type ( - Messages Messages - Extensions Extensions - Services Services -+ -+ EditionFeatures EditionFeatures - } - FileL2 struct { - Options func() protoreflect.ProtoMessage - Imports FileImports - Locations SourceLocations - } -+ -+ EditionFeatures struct { -+ // IsFieldPresence is true if field_presence is EXPLICIT -+ // https://protobuf.dev/editions/features/#field_presence -+ IsFieldPresence bool -+ // IsFieldPresence is true if field_presence is LEGACY_REQUIRED -+ // https://protobuf.dev/editions/features/#field_presence -+ IsLegacyRequired bool -+ // IsOpenEnum is true if enum_type is OPEN -+ // https://protobuf.dev/editions/features/#enum_type -+ IsOpenEnum bool -+ // IsPacked is true if repeated_field_encoding is PACKED -+ // https://protobuf.dev/editions/features/#repeated_field_encoding -+ IsPacked bool -+ // IsUTF8Validated is true if utf_validation is VERIFY -+ // https://protobuf.dev/editions/features/#utf8_validation -+ IsUTF8Validated bool -+ // IsDelimitedEncoded is true if message_encoding is DELIMITED -+ // https://protobuf.dev/editions/features/#message_encoding -+ IsDelimitedEncoded bool -+ // IsJSONCompliant is true if json_format is ALLOW -+ // https://protobuf.dev/editions/features/#json_format -+ IsJSONCompliant bool -+ // GenerateLegacyUnmarshalJSON determines if the plugin generates the -+ // UnmarshalJSON([]byte) error method for enums. -+ GenerateLegacyUnmarshalJSON bool -+ } - ) - - func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } -@@ -117,6 +162,8 @@ type ( - } - EnumL1 struct { - eagerValues bool // controls whether EnumL2.Values is already populated -+ -+ EditionFeatures EditionFeatures - } - EnumL2 struct { - Options func() protoreflect.ProtoMessage -@@ -178,6 +225,8 @@ type ( - Extensions Extensions - IsMapEntry bool // promoted from google.protobuf.MessageOptions - IsMessageSet bool // promoted from google.protobuf.MessageOptions -+ -+ EditionFeatures EditionFeatures - } - MessageL2 struct { - Options func() protoreflect.ProtoMessage -@@ -210,6 +259,8 @@ type ( - ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum protoreflect.EnumDescriptor - Message protoreflect.MessageDescriptor -+ -+ EditionFeatures EditionFeatures - } - - Oneof struct { -@@ -219,6 +270,8 @@ type ( - OneofL1 struct { - Options func() protoreflect.ProtoMessage - Fields OneofFields // must be consistent with Message.Fields.ContainingOneof -+ -+ EditionFeatures EditionFeatures - } - ) - -@@ -268,23 +321,36 @@ func (fd *Field) Options() protoreflect.ProtoMessage { - } - func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } - func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } --func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } --func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } --func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } --func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } -+func (fd *Field) Kind() protoreflect.Kind { -+ return fd.L1.Kind -+} -+func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } -+func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } -+func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } - func (fd *Field) HasPresence() bool { -- return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) -+ if fd.L1.Cardinality == protoreflect.Repeated { -+ return false -+ } -+ explicitFieldPresence := fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsFieldPresence -+ return fd.Syntax() == protoreflect.Proto2 || explicitFieldPresence || fd.L1.Message != nil || fd.L1.ContainingOneof != nil - } - func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional - } - func (fd *Field) IsPacked() bool { -- if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { -- switch fd.L1.Kind { -- case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -- default: -- return true -- } -+ if fd.L1.Cardinality != protoreflect.Repeated { -+ return false -+ } -+ switch fd.L1.Kind { -+ case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: -+ return false -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsPacked -+ } -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 { -+ // proto3 repeated fields are packed by default. -+ return !fd.L1.HasPacked || fd.L1.IsPacked - } - return fd.L1.IsPacked - } -@@ -333,6 +399,9 @@ func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} - // WARNING: This method is exempt from the compatibility promise and may be - // removed in the future without warning. - func (fd *Field) EnforceUTF8() bool { -+ if fd.L0.ParentFile.L1.Syntax == protoreflect.Editions { -+ return fd.L1.EditionFeatures.IsUTF8Validated -+ } - if fd.L1.HasEnforceUTF8 { - return fd.L1.EnforceUTF8 - } -@@ -359,10 +428,11 @@ type ( - L2 *ExtensionL2 // protected by fileDesc.once - } - ExtensionL1 struct { -- Number protoreflect.FieldNumber -- Extendee protoreflect.MessageDescriptor -- Cardinality protoreflect.Cardinality -- Kind protoreflect.Kind -+ Number protoreflect.FieldNumber -+ Extendee protoreflect.MessageDescriptor -+ Cardinality protoreflect.Cardinality -+ Kind protoreflect.Kind -+ EditionFeatures EditionFeatures - } - ExtensionL2 struct { - Options func() protoreflect.ProtoMessage -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -index 4a1584c9..237e64fd 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go -@@ -5,6 +5,7 @@ - package filedesc - - import ( -+ "fmt" - "sync" - - "google.golang.org/protobuf/encoding/protowire" -@@ -98,6 +99,7 @@ func (fd *File) unmarshalSeed(b []byte) { - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions, numServices int - var posEnums, posMessages, posExtensions, posServices int -+ var options []byte - b0 := b - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -113,6 +115,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - case "proto3": - fd.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ fd.L1.Syntax = protoreflect.Editions - default: - panic("invalid syntax") - } -@@ -120,6 +124,8 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Path = sb.MakeString(v) - case genid.FileDescriptorProto_Package_field_number: - fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) -+ case genid.FileDescriptorProto_Options_field_number: -+ options = v - case genid.FileDescriptorProto_EnumType_field_number: - if prevField != genid.FileDescriptorProto_EnumType_field_number { - if numEnums > 0 { -@@ -154,6 +160,13 @@ func (fd *File) unmarshalSeed(b []byte) { - numServices++ - } - prevField = num -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FileDescriptorProto_Edition_field_number: -+ fd.L1.Edition = Edition(v) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -166,6 +179,15 @@ func (fd *File) unmarshalSeed(b []byte) { - fd.L1.Syntax = protoreflect.Proto2 - } - -+ if fd.L1.Syntax == protoreflect.Editions { -+ fd.L1.EditionFeatures = getFeaturesFor(fd.L1.Edition) -+ } -+ -+ // Parse editions features from options if any -+ if options != nil { -+ fd.unmarshalSeedOptions(options) -+ } -+ - // Must allocate all declarations before parsing each descriptor type - // to ensure we handled all descriptors in "flattened ordering". - if numEnums > 0 { -@@ -219,6 +241,28 @@ func (fd *File) unmarshalSeed(b []byte) { - } - } - -+func (fd *File) unmarshalSeedOptions(b []byte) { -+ for b := b; len(b) > 0; { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FileOptions_Features_field_number: -+ if fd.Syntax() != protoreflect.Editions { -+ panic(fmt.Sprintf("invalid descriptor: using edition features in a proto with syntax %s", fd.Syntax())) -+ } -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } -+ default: -+ m := protowire.ConsumeFieldValue(num, typ, b) -+ b = b[m:] -+ } -+ } -+} -+ - func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { - ed.L0.ParentFile = pf - ed.L0.Parent = pd -@@ -275,6 +319,7 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor - md.L0.ParentFile = pf - md.L0.Parent = pd - md.L0.Index = i -+ md.L1.EditionFeatures = featuresFromParentDesc(md.Parent()) - - var prevField protoreflect.FieldNumber - var numEnums, numMessages, numExtensions int -@@ -380,6 +425,13 @@ func (md *Message) unmarshalSeedOptions(b []byte) { - case genid.MessageOptions_MessageSetWireFormat_field_number: - md.L1.IsMessageSet = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.MessageOptions_Features_field_number: -+ md.L1.EditionFeatures = unmarshalFeatureSet(v, md.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -index 736a19a7..482a61cc 100644 ---- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go -@@ -414,6 +414,7 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - fd.L0.ParentFile = pf - fd.L0.Parent = pd - fd.L0.Index = i -+ fd.L1.EditionFeatures = featuresFromParentDesc(fd.Parent()) - - var rawTypeName []byte - var rawOptions []byte -@@ -465,6 +466,12 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - b = b[m:] - } - } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.Kind == protoreflect.MessageKind && fd.L1.EditionFeatures.IsDelimitedEncoded { -+ fd.L1.Kind = protoreflect.GroupKind -+ } -+ if fd.Syntax() == protoreflect.Editions && fd.L1.EditionFeatures.IsLegacyRequired { -+ fd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch fd.L1.Kind { -@@ -497,6 +504,13 @@ func (fd *Field) unmarshalOptions(b []byte) { - fd.L1.HasEnforceUTF8 = true - fd.L1.EnforceUTF8 = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ fd.L1.EditionFeatures = unmarshalFeatureSet(v, fd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -@@ -534,6 +548,7 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoref - func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - var rawTypeName []byte - var rawOptions []byte -+ xd.L1.EditionFeatures = featuresFromParentDesc(xd.L1.Extendee) - xd.L2 = new(ExtensionL2) - for len(b) > 0 { - num, typ, n := protowire.ConsumeTag(b) -@@ -565,6 +580,12 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { - b = b[m:] - } - } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.Kind == protoreflect.MessageKind && xd.L1.EditionFeatures.IsDelimitedEncoded { -+ xd.L1.Kind = protoreflect.GroupKind -+ } -+ if xd.Syntax() == protoreflect.Editions && xd.L1.EditionFeatures.IsLegacyRequired { -+ xd.L1.Cardinality = protoreflect.Required -+ } - if rawTypeName != nil { - name := makeFullName(sb, rawTypeName) - switch xd.L1.Kind { -@@ -589,6 +610,13 @@ func (xd *Extension) unmarshalOptions(b []byte) { - case genid.FieldOptions_Packed_field_number: - xd.L2.IsPacked = protowire.DecodeBool(v) - } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FieldOptions_Features_field_number: -+ xd.L1.EditionFeatures = unmarshalFeatureSet(v, xd.L1.EditionFeatures) -+ } - default: - m := protowire.ConsumeFieldValue(num, typ, b) - b = b[m:] -diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -new file mode 100644 -index 00000000..0375a49d ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go -@@ -0,0 +1,142 @@ -+// Copyright 2024 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package filedesc -+ -+import ( -+ "fmt" -+ -+ "google.golang.org/protobuf/encoding/protowire" -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/genid" -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+var defaultsCache = make(map[Edition]EditionFeatures) -+ -+func init() { -+ unmarshalEditionDefaults(editiondefaults.Defaults) -+} -+ -+func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ parent.GenerateLegacyUnmarshalJSON = protowire.DecodeBool(v) -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num)) -+ } -+ } -+ return parent -+} -+ -+func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures { -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSet_FieldPresence_field_number: -+ parent.IsFieldPresence = v == genid.FeatureSet_EXPLICIT_enum_value || v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ parent.IsLegacyRequired = v == genid.FeatureSet_LEGACY_REQUIRED_enum_value -+ case genid.FeatureSet_EnumType_field_number: -+ parent.IsOpenEnum = v == genid.FeatureSet_OPEN_enum_value -+ case genid.FeatureSet_RepeatedFieldEncoding_field_number: -+ parent.IsPacked = v == genid.FeatureSet_PACKED_enum_value -+ case genid.FeatureSet_Utf8Validation_field_number: -+ parent.IsUTF8Validated = v == genid.FeatureSet_VERIFY_enum_value -+ case genid.FeatureSet_MessageEncoding_field_number: -+ parent.IsDelimitedEncoded = v == genid.FeatureSet_DELIMITED_enum_value -+ case genid.FeatureSet_JsonFormat_field_number: -+ parent.IsJSONCompliant = v == genid.FeatureSet_ALLOW_enum_value -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num)) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.GoFeatures_LegacyUnmarshalJsonEnum_field_number: -+ parent = unmarshalGoFeature(v, parent) -+ } -+ } -+ } -+ -+ return parent -+} -+ -+func featuresFromParentDesc(parentDesc protoreflect.Descriptor) EditionFeatures { -+ var parentFS EditionFeatures -+ switch p := parentDesc.(type) { -+ case *File: -+ parentFS = p.L1.EditionFeatures -+ case *Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ return parentFS -+} -+ -+func unmarshalEditionDefault(b []byte) { -+ var ed Edition -+ var fs EditionFeatures -+ for len(b) > 0 { -+ num, typ, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch typ { -+ case protowire.VarintType: -+ v, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number: -+ ed = Edition(v) -+ } -+ case protowire.BytesType: -+ v, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ switch num { -+ case genid.FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number: -+ fs = unmarshalFeatureSet(v, fs) -+ } -+ } -+ } -+ defaultsCache[ed] = fs -+} -+ -+func unmarshalEditionDefaults(b []byte) { -+ for len(b) > 0 { -+ num, _, n := protowire.ConsumeTag(b) -+ b = b[n:] -+ switch num { -+ case genid.FeatureSetDefaults_Defaults_field_number: -+ def, m := protowire.ConsumeBytes(b) -+ b = b[m:] -+ unmarshalEditionDefault(def) -+ case genid.FeatureSetDefaults_MinimumEdition_field_number, -+ genid.FeatureSetDefaults_MaximumEdition_field_number: -+ // We don't care about the minimum and maximum editions. If the -+ // edition we are looking for later on is not in the cache we know -+ // it is outside of the range between minimum and maximum edition. -+ _, m := protowire.ConsumeVarint(b) -+ b = b[m:] -+ default: -+ panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num)) -+ } -+ } -+} -+ -+func getFeaturesFor(ed Edition) EditionFeatures { -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ panic(fmt.Sprintf("unsupported edition: %v", ed)) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -index 136f1b21..40272c89 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go -@@ -12,6 +12,27 @@ import ( - - const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" - -+// Full and short names for google.protobuf.Edition. -+const ( -+ Edition_enum_fullname = "google.protobuf.Edition" -+ Edition_enum_name = "Edition" -+) -+ -+// Enum values for google.protobuf.Edition. -+const ( -+ Edition_EDITION_UNKNOWN_enum_value = 0 -+ Edition_EDITION_PROTO2_enum_value = 998 -+ Edition_EDITION_PROTO3_enum_value = 999 -+ Edition_EDITION_2023_enum_value = 1000 -+ Edition_EDITION_2024_enum_value = 1001 -+ Edition_EDITION_1_TEST_ONLY_enum_value = 1 -+ Edition_EDITION_2_TEST_ONLY_enum_value = 2 -+ Edition_EDITION_99997_TEST_ONLY_enum_value = 99997 -+ Edition_EDITION_99998_TEST_ONLY_enum_value = 99998 -+ Edition_EDITION_99999_TEST_ONLY_enum_value = 99999 -+ Edition_EDITION_MAX_enum_value = 2147483647 -+) -+ - // Names for google.protobuf.FileDescriptorSet. - const ( - FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" -@@ -81,7 +102,7 @@ const ( - FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 - FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 - FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 -- FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 -+ FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 14 - ) - - // Names for google.protobuf.DescriptorProto. -@@ -184,10 +205,12 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" -+ ExtensionRangeOptions_Features_field_name protoreflect.Name = "features" - ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" - - ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" - ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" -+ ExtensionRangeOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.features" - ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" - ) - -@@ -195,6 +218,7 @@ const ( - const ( - ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Features_field_number protoreflect.FieldNumber = 50 - ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 - ) - -@@ -204,6 +228,12 @@ const ( - ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" - ) - -+// Enum values for google.protobuf.ExtensionRangeOptions.VerificationState. -+const ( -+ ExtensionRangeOptions_DECLARATION_enum_value = 0 -+ ExtensionRangeOptions_UNVERIFIED_enum_value = 1 -+) -+ - // Names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( - ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" -@@ -212,29 +242,26 @@ const ( - - // Field names for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -- ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -- ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" -+ ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" -+ ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" -+ ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" -+ ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" - -- ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -- ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -- ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -- ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" -- ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -- ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" -+ ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" -+ ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" -+ ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" -+ ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" -+ ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" - ) - - // Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. - const ( -- ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -- ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -- ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -- ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 -- ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -- ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 -+ ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 -+ ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 -+ ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 -+ ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 -+ ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 - ) - - // Names for google.protobuf.FieldDescriptorProto. -@@ -291,12 +318,41 @@ const ( - FieldDescriptorProto_Type_enum_name = "Type" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Type. -+const ( -+ FieldDescriptorProto_TYPE_DOUBLE_enum_value = 1 -+ FieldDescriptorProto_TYPE_FLOAT_enum_value = 2 -+ FieldDescriptorProto_TYPE_INT64_enum_value = 3 -+ FieldDescriptorProto_TYPE_UINT64_enum_value = 4 -+ FieldDescriptorProto_TYPE_INT32_enum_value = 5 -+ FieldDescriptorProto_TYPE_FIXED64_enum_value = 6 -+ FieldDescriptorProto_TYPE_FIXED32_enum_value = 7 -+ FieldDescriptorProto_TYPE_BOOL_enum_value = 8 -+ FieldDescriptorProto_TYPE_STRING_enum_value = 9 -+ FieldDescriptorProto_TYPE_GROUP_enum_value = 10 -+ FieldDescriptorProto_TYPE_MESSAGE_enum_value = 11 -+ FieldDescriptorProto_TYPE_BYTES_enum_value = 12 -+ FieldDescriptorProto_TYPE_UINT32_enum_value = 13 -+ FieldDescriptorProto_TYPE_ENUM_enum_value = 14 -+ FieldDescriptorProto_TYPE_SFIXED32_enum_value = 15 -+ FieldDescriptorProto_TYPE_SFIXED64_enum_value = 16 -+ FieldDescriptorProto_TYPE_SINT32_enum_value = 17 -+ FieldDescriptorProto_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.FieldDescriptorProto.Label. - const ( - FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" - FieldDescriptorProto_Label_enum_name = "Label" - ) - -+// Enum values for google.protobuf.FieldDescriptorProto.Label. -+const ( -+ FieldDescriptorProto_LABEL_OPTIONAL_enum_value = 1 -+ FieldDescriptorProto_LABEL_REPEATED_enum_value = 3 -+ FieldDescriptorProto_LABEL_REQUIRED_enum_value = 2 -+) -+ - // Names for google.protobuf.OneofDescriptorProto. - const ( - OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" -@@ -468,7 +524,6 @@ const ( - FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" - FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" - FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" -- FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" - FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" - FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" -@@ -478,6 +533,7 @@ const ( - FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" - FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" - FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" -+ FileOptions_Features_field_name protoreflect.Name = "features" - FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" -@@ -490,7 +546,6 @@ const ( - FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" - FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" - FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" -- FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" - FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" - FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" - FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" -@@ -500,6 +555,7 @@ const ( - FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" - FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" - FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" -+ FileOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.features" - FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" - ) - -@@ -515,7 +571,6 @@ const ( - FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 - FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 - FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 -- FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 - FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 - FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 - FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 -@@ -525,6 +580,7 @@ const ( - FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 - FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 - FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 -+ FileOptions_Features_field_number protoreflect.FieldNumber = 50 - FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -534,6 +590,13 @@ const ( - FileOptions_OptimizeMode_enum_name = "OptimizeMode" - ) - -+// Enum values for google.protobuf.FileOptions.OptimizeMode. -+const ( -+ FileOptions_SPEED_enum_value = 1 -+ FileOptions_CODE_SIZE_enum_value = 2 -+ FileOptions_LITE_RUNTIME_enum_value = 3 -+) -+ - // Names for google.protobuf.MessageOptions. - const ( - MessageOptions_message_name protoreflect.Name = "MessageOptions" -@@ -547,6 +610,7 @@ const ( - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_name protoreflect.Name = "features" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" -@@ -554,6 +618,7 @@ const ( - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" -+ MessageOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.features" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" - ) - -@@ -564,6 +629,7 @@ const ( - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 -+ MessageOptions_Features_field_number protoreflect.FieldNumber = 12 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -584,8 +650,9 @@ const ( - FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" -- FieldOptions_Target_field_name protoreflect.Name = "target" - FieldOptions_Targets_field_name protoreflect.Name = "targets" -+ FieldOptions_EditionDefaults_field_name protoreflect.Name = "edition_defaults" -+ FieldOptions_Features_field_name protoreflect.Name = "features" - FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" -@@ -597,8 +664,9 @@ const ( - FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" -- FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" - FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" -+ FieldOptions_EditionDefaults_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.edition_defaults" -+ FieldOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.features" - FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" - ) - -@@ -613,8 +681,9 @@ const ( - FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 -- FieldOptions_Target_field_number protoreflect.FieldNumber = 18 - FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 -+ FieldOptions_EditionDefaults_field_number protoreflect.FieldNumber = 20 -+ FieldOptions_Features_field_number protoreflect.FieldNumber = 21 - FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -624,24 +693,80 @@ const ( - FieldOptions_CType_enum_name = "CType" - ) - -+// Enum values for google.protobuf.FieldOptions.CType. -+const ( -+ FieldOptions_STRING_enum_value = 0 -+ FieldOptions_CORD_enum_value = 1 -+ FieldOptions_STRING_PIECE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.JSType. - const ( - FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" - FieldOptions_JSType_enum_name = "JSType" - ) - -+// Enum values for google.protobuf.FieldOptions.JSType. -+const ( -+ FieldOptions_JS_NORMAL_enum_value = 0 -+ FieldOptions_JS_STRING_enum_value = 1 -+ FieldOptions_JS_NUMBER_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionRetention. - const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionRetention. -+const ( -+ FieldOptions_RETENTION_UNKNOWN_enum_value = 0 -+ FieldOptions_RETENTION_RUNTIME_enum_value = 1 -+ FieldOptions_RETENTION_SOURCE_enum_value = 2 -+) -+ - // Full and short names for google.protobuf.FieldOptions.OptionTargetType. - const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" - ) - -+// Enum values for google.protobuf.FieldOptions.OptionTargetType. -+const ( -+ FieldOptions_TARGET_TYPE_UNKNOWN_enum_value = 0 -+ FieldOptions_TARGET_TYPE_FILE_enum_value = 1 -+ FieldOptions_TARGET_TYPE_EXTENSION_RANGE_enum_value = 2 -+ FieldOptions_TARGET_TYPE_MESSAGE_enum_value = 3 -+ FieldOptions_TARGET_TYPE_FIELD_enum_value = 4 -+ FieldOptions_TARGET_TYPE_ONEOF_enum_value = 5 -+ FieldOptions_TARGET_TYPE_ENUM_enum_value = 6 -+ FieldOptions_TARGET_TYPE_ENUM_ENTRY_enum_value = 7 -+ FieldOptions_TARGET_TYPE_SERVICE_enum_value = 8 -+ FieldOptions_TARGET_TYPE_METHOD_enum_value = 9 -+) -+ -+// Names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_message_name protoreflect.Name = "EditionDefault" -+ FieldOptions_EditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault" -+) -+ -+// Field names for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FieldOptions_EditionDefault_Value_field_name protoreflect.Name = "value" -+ -+ FieldOptions_EditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.edition" -+ FieldOptions_EditionDefault_Value_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.EditionDefault.value" -+) -+ -+// Field numbers for google.protobuf.FieldOptions.EditionDefault. -+const ( -+ FieldOptions_EditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FieldOptions_EditionDefault_Value_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.OneofOptions. - const ( - OneofOptions_message_name protoreflect.Name = "OneofOptions" -@@ -650,13 +775,16 @@ const ( - - // Field names for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_name protoreflect.Name = "features" - OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ OneofOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.features" - OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.OneofOptions. - const ( -+ OneofOptions_Features_field_number protoreflect.FieldNumber = 1 - OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -671,11 +799,13 @@ const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_name protoreflect.Name = "features" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" -+ EnumOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.features" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" - ) - -@@ -684,6 +814,7 @@ const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 -+ EnumOptions_Features_field_number protoreflect.FieldNumber = 7 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -696,15 +827,21 @@ const ( - // Field names for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" -+ EnumValueOptions_Features_field_name protoreflect.Name = "features" -+ EnumValueOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" -+ EnumValueOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.features" -+ EnumValueOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.debug_redact" - EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.EnumValueOptions. - const ( - EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 -+ EnumValueOptions_Features_field_number protoreflect.FieldNumber = 2 -+ EnumValueOptions_DebugRedact_field_number protoreflect.FieldNumber = 3 - EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -716,15 +853,18 @@ const ( - - // Field names for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_name protoreflect.Name = "features" - ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" - ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - -+ ServiceOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.features" - ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" - ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" - ) - - // Field numbers for google.protobuf.ServiceOptions. - const ( -+ ServiceOptions_Features_field_number protoreflect.FieldNumber = 34 - ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) -@@ -739,10 +879,12 @@ const ( - const ( - MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" -+ MethodOptions_Features_field_name protoreflect.Name = "features" - MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - - MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" - MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" -+ MethodOptions_Features_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.features" - MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" - ) - -@@ -750,6 +892,7 @@ const ( - const ( - MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 - MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 -+ MethodOptions_Features_field_number protoreflect.FieldNumber = 35 - MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 - ) - -@@ -759,6 +902,13 @@ const ( - MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" - ) - -+// Enum values for google.protobuf.MethodOptions.IdempotencyLevel. -+const ( -+ MethodOptions_IDEMPOTENCY_UNKNOWN_enum_value = 0 -+ MethodOptions_NO_SIDE_EFFECTS_enum_value = 1 -+ MethodOptions_IDEMPOTENT_enum_value = 2 -+) -+ - // Names for google.protobuf.UninterpretedOption. - const ( - UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" -@@ -816,6 +966,163 @@ const ( - UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 - ) - -+// Names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_message_name protoreflect.Name = "FeatureSet" -+ FeatureSet_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet" -+) -+ -+// Field names for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence" -+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation" -+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding" -+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format" -+ -+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence" -+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type" -+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding" -+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation" -+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding" -+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format" -+) -+ -+// Field numbers for google.protobuf.FeatureSet. -+const ( -+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1 -+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2 -+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3 -+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4 -+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5 -+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FieldPresence_enum_fullname = "google.protobuf.FeatureSet.FieldPresence" -+ FeatureSet_FieldPresence_enum_name = "FieldPresence" -+) -+ -+// Enum values for google.protobuf.FeatureSet.FieldPresence. -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN_enum_value = 0 -+ FeatureSet_EXPLICIT_enum_value = 1 -+ FeatureSet_IMPLICIT_enum_value = 2 -+ FeatureSet_LEGACY_REQUIRED_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_EnumType_enum_fullname = "google.protobuf.FeatureSet.EnumType" -+ FeatureSet_EnumType_enum_name = "EnumType" -+) -+ -+// Enum values for google.protobuf.FeatureSet.EnumType. -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN_enum_value = 0 -+ FeatureSet_OPEN_enum_value = 1 -+ FeatureSet_CLOSED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_RepeatedFieldEncoding_enum_fullname = "google.protobuf.FeatureSet.RepeatedFieldEncoding" -+ FeatureSet_RepeatedFieldEncoding_enum_name = "RepeatedFieldEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.RepeatedFieldEncoding. -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_PACKED_enum_value = 1 -+ FeatureSet_EXPANDED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_Utf8Validation_enum_fullname = "google.protobuf.FeatureSet.Utf8Validation" -+ FeatureSet_Utf8Validation_enum_name = "Utf8Validation" -+) -+ -+// Enum values for google.protobuf.FeatureSet.Utf8Validation. -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN_enum_value = 0 -+ FeatureSet_VERIFY_enum_value = 2 -+ FeatureSet_NONE_enum_value = 3 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MessageEncoding_enum_fullname = "google.protobuf.FeatureSet.MessageEncoding" -+ FeatureSet_MessageEncoding_enum_name = "MessageEncoding" -+) -+ -+// Enum values for google.protobuf.FeatureSet.MessageEncoding. -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN_enum_value = 0 -+ FeatureSet_LENGTH_PREFIXED_enum_value = 1 -+ FeatureSet_DELIMITED_enum_value = 2 -+) -+ -+// Full and short names for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JsonFormat_enum_fullname = "google.protobuf.FeatureSet.JsonFormat" -+ FeatureSet_JsonFormat_enum_name = "JsonFormat" -+) -+ -+// Enum values for google.protobuf.FeatureSet.JsonFormat. -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN_enum_value = 0 -+ FeatureSet_ALLOW_enum_value = 1 -+ FeatureSet_LEGACY_BEST_EFFORT_enum_value = 2 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults" -+ FeatureSetDefaults_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_name protoreflect.Name = "defaults" -+ FeatureSetDefaults_MinimumEdition_field_name protoreflect.Name = "minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_name protoreflect.Name = "maximum_edition" -+ -+ FeatureSetDefaults_Defaults_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.defaults" -+ FeatureSetDefaults_MinimumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.minimum_edition" -+ FeatureSetDefaults_MaximumEdition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.maximum_edition" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults. -+const ( -+ FeatureSetDefaults_Defaults_field_number protoreflect.FieldNumber = 1 -+ FeatureSetDefaults_MinimumEdition_field_number protoreflect.FieldNumber = 4 -+ FeatureSetDefaults_MaximumEdition_field_number protoreflect.FieldNumber = 5 -+) -+ -+// Names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_message_name protoreflect.Name = "FeatureSetEditionDefault" -+ FeatureSetDefaults_FeatureSetEditionDefault_message_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault" -+) -+ -+// Field names for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_name protoreflect.Name = "edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_name protoreflect.Name = "features" -+ -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition" -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_fullname protoreflect.FullName = "google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features" -+) -+ -+// Field numbers for google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault. -+const ( -+ FeatureSetDefaults_FeatureSetEditionDefault_Edition_field_number protoreflect.FieldNumber = 3 -+ FeatureSetDefaults_FeatureSetEditionDefault_Features_field_number protoreflect.FieldNumber = 2 -+) -+ - // Names for google.protobuf.SourceCodeInfo. - const ( - SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" -@@ -917,3 +1224,10 @@ const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" - ) -+ -+// Enum values for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -+const ( -+ GeneratedCodeInfo_Annotation_NONE_enum_value = 0 -+ GeneratedCodeInfo_Annotation_SET_enum_value = 1 -+ GeneratedCodeInfo_Annotation_ALIAS_enum_value = 2 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -new file mode 100644 -index 00000000..fd9015e8 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/genid/go_features_gen.go -@@ -0,0 +1,31 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+// Code generated by generate-protos. DO NOT EDIT. -+ -+package genid -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+const File_reflect_protodesc_proto_go_features_proto = "reflect/protodesc/proto/go_features.proto" -+ -+// Names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_message_name protoreflect.Name = "GoFeatures" -+ GoFeatures_message_fullname protoreflect.FullName = "google.protobuf.GoFeatures" -+) -+ -+// Field names for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_name protoreflect.Name = "legacy_unmarshal_json_enum" -+ -+ GoFeatures_LegacyUnmarshalJsonEnum_field_fullname protoreflect.FullName = "google.protobuf.GoFeatures.legacy_unmarshal_json_enum" -+) -+ -+// Field numbers for google.protobuf.GoFeatures. -+const ( -+ GoFeatures_LegacyUnmarshalJsonEnum_field_number protoreflect.FieldNumber = 1 -+) -diff --git a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -index 1a38944b..ad6f80c4 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go -@@ -18,6 +18,11 @@ const ( - NullValue_enum_name = "NullValue" - ) - -+// Enum values for google.protobuf.NullValue. -+const ( -+ NullValue_NULL_VALUE_enum_value = 0 -+) -+ - // Names for google.protobuf.Struct. - const ( - Struct_message_name protoreflect.Name = "Struct" -diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -index e0f75fea..49bc73e2 100644 ---- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go -@@ -18,6 +18,13 @@ const ( - Syntax_enum_name = "Syntax" - ) - -+// Enum values for google.protobuf.Syntax. -+const ( -+ Syntax_SYNTAX_PROTO2_enum_value = 0 -+ Syntax_SYNTAX_PROTO3_enum_value = 1 -+ Syntax_SYNTAX_EDITIONS_enum_value = 2 -+) -+ - // Names for google.protobuf.Type. - const ( - Type_message_name protoreflect.Name = "Type" -@@ -105,12 +112,43 @@ const ( - Field_Kind_enum_name = "Kind" - ) - -+// Enum values for google.protobuf.Field.Kind. -+const ( -+ Field_TYPE_UNKNOWN_enum_value = 0 -+ Field_TYPE_DOUBLE_enum_value = 1 -+ Field_TYPE_FLOAT_enum_value = 2 -+ Field_TYPE_INT64_enum_value = 3 -+ Field_TYPE_UINT64_enum_value = 4 -+ Field_TYPE_INT32_enum_value = 5 -+ Field_TYPE_FIXED64_enum_value = 6 -+ Field_TYPE_FIXED32_enum_value = 7 -+ Field_TYPE_BOOL_enum_value = 8 -+ Field_TYPE_STRING_enum_value = 9 -+ Field_TYPE_GROUP_enum_value = 10 -+ Field_TYPE_MESSAGE_enum_value = 11 -+ Field_TYPE_BYTES_enum_value = 12 -+ Field_TYPE_UINT32_enum_value = 13 -+ Field_TYPE_ENUM_enum_value = 14 -+ Field_TYPE_SFIXED32_enum_value = 15 -+ Field_TYPE_SFIXED64_enum_value = 16 -+ Field_TYPE_SINT32_enum_value = 17 -+ Field_TYPE_SINT64_enum_value = 18 -+) -+ - // Full and short names for google.protobuf.Field.Cardinality. - const ( - Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" - Field_Cardinality_enum_name = "Cardinality" - ) - -+// Enum values for google.protobuf.Field.Cardinality. -+const ( -+ Field_CARDINALITY_UNKNOWN_enum_value = 0 -+ Field_CARDINALITY_OPTIONAL_enum_value = 1 -+ Field_CARDINALITY_REQUIRED_enum_value = 2 -+ Field_CARDINALITY_REPEATED_enum_value = 3 -+) -+ - // Names for google.protobuf.Enum. - const ( - Enum_message_name protoreflect.Name = "Enum" -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -index e74cefdc..2b8f122c 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go -@@ -21,26 +21,18 @@ type extensionFieldInfo struct { - validation validationInfo - } - --var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -- - func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { - if xi, ok := xt.(*ExtensionInfo); ok { - xi.lazyInit() - return xi.info - } -- return legacyLoadExtensionFieldInfo(xt) --} -- --// legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. --func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { -- if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { -- return xi.(*extensionFieldInfo) -- } -- e := makeExtensionFieldInfo(xt.TypeDescriptor()) -- if e, ok := legacyMessageTypeCache.LoadOrStore(xt, e); ok { -- return e.(*extensionFieldInfo) -- } -- return e -+ // Ideally we'd cache the resulting *extensionFieldInfo so we don't have to -+ // recompute this metadata repeatedly. But without support for something like -+ // weak references, such a cache would pin temporary values (like dynamic -+ // extension types, constructed for the duration of a user request) to the -+ // heap forever, causing memory usage of the cache to grow unbounded. -+ // See discussion in https://github.com/golang/protobuf/issues/1521. -+ return makeExtensionFieldInfo(xt.TypeDescriptor()) - } - - func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -index 1a509b63..f55dc01e 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go -@@ -162,11 +162,20 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions - func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BoolSlice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growBoolSlice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -732,11 +741,20 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1138,11 +1156,20 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1544,11 +1571,20 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -1950,11 +1986,20 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2356,11 +2401,20 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -2762,11 +2816,20 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := 0 -+ for _, v := range b { -+ if v < 0x80 { -+ count++ -+ } -+ } -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - var v uint64 - var n int -@@ -3145,11 +3208,15 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growInt32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3461,11 +3528,15 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growUint32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -3777,11 +3848,15 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOption - func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float32Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed32() -+ if count > 0 { -+ p.growFloat32Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed32(b) - if n < 0 { -@@ -4093,11 +4168,15 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpt - func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Int64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growInt64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4409,11 +4488,15 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOpti - func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Uint64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growUint64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -@@ -4725,11 +4808,15 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptio - func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.Float64Slice() - if wtyp == protowire.BytesType { -- s := *sp - b, n := protowire.ConsumeBytes(b) - if n < 0 { - return out, errDecode - } -+ count := len(b) / protowire.SizeFixed64() -+ if count > 0 { -+ p.growFloat64Slice(count) -+ } -+ s := *sp - for len(b) > 0 { - v, n := protowire.ConsumeFixed64(b) - if n < 0 { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -index 576dcf3a..13077751 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go -@@ -197,7 +197,7 @@ func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, - return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == protoreflect.GroupKind: - return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) -- case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: -+ case !fd.HasPresence() && fd.ContainingOneof() == nil: - // Populated oneof fields always encode even if set to the zero value, - // which normally are not encoded in proto3. - switch fd.Kind() { -diff --git a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -index 61c483fa..2ab2c629 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go -@@ -206,13 +206,18 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName - - // Obtain a list of oneof wrapper types. - var oneofWrappers []reflect.Type -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := t.MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- for _, v := range vs { -- oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := t.MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := t.MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ for _, v := range vs { -+ oneofWrappers = append(oneofWrappers, reflect.TypeOf(v)) - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message.go b/vendor/google.golang.org/protobuf/internal/impl/message.go -index 4f5fb67a..629bacdc 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message.go -@@ -192,12 +192,17 @@ fieldLoop: - - // Derive a mapping of oneof wrappers to fields. - oneofWrappers := mi.OneofWrappers -- for _, method := range []string{"XXX_OneofFuncs", "XXX_OneofWrappers"} { -- if fn, ok := reflect.PtrTo(t).MethodByName(method); ok { -- for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -- if vs, ok := v.Interface().([]interface{}); ok { -- oneofWrappers = vs -- } -+ methods := make([]reflect.Method, 0, 2) -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofFuncs"); ok { -+ methods = append(methods, m) -+ } -+ if m, ok := reflect.PtrTo(t).MethodByName("XXX_OneofWrappers"); ok { -+ methods = append(methods, m) -+ } -+ for _, fn := range methods { -+ for _, v := range fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))}) { -+ if vs, ok := v.Interface().([]interface{}); ok { -+ oneofWrappers = vs - } - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -index 5e736c60..986322b1 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go -@@ -538,6 +538,6 @@ func isZero(v reflect.Value) bool { - } - return true - default: -- panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) -+ panic(&reflect.ValueError{Method: "reflect.Value.IsZero", Kind: v.Kind()}) - } - } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -index 4c491bdf..517e9443 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go -@@ -159,6 +159,42 @@ func (p pointer) SetPointer(v pointer) { - p.v.Elem().Set(v.v) - } - -+func growSlice(p pointer, addCap int) { -+ // TODO: Once we only support Go 1.20 and newer, use reflect.Grow. -+ in := p.v.Elem() -+ out := reflect.MakeSlice(in.Type(), in.Len(), in.Len()+addCap) -+ reflect.Copy(out, in) -+ p.v.Elem().Set(out) -+} -+ -+func (p pointer) growBoolSlice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ growSlice(p, addCap) -+} -+ - func (Export) MessageStateOf(p Pointer) *messageState { panic("not supported") } - func (ms *messageState) pointer() pointer { panic("not supported") } - func (ms *messageState) messageInfo() *MessageInfo { panic("not supported") } -diff --git a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -index ee0e0573..4b020e31 100644 ---- a/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go -@@ -138,6 +138,46 @@ func (p pointer) SetPointer(v pointer) { - *(*unsafe.Pointer)(p.p) = (unsafe.Pointer)(v.p) - } - -+func (p pointer) growBoolSlice(addCap int) { -+ sp := p.BoolSlice() -+ s := make([]bool, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growInt32Slice(addCap int) { -+ sp := p.Int32Slice() -+ s := make([]int32, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growFloat32Slice(addCap int) { -+ p.growInt32Slice(addCap) -+} -+ -+func (p pointer) growInt64Slice(addCap int) { -+ sp := p.Int64Slice() -+ s := make([]int64, 0, addCap+len(*sp)) -+ s = s[:len(*sp)] -+ copy(s, *sp) -+ *sp = s -+} -+ -+func (p pointer) growUint64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ -+func (p pointer) growFloat64Slice(addCap int) { -+ p.growInt64Slice(addCap) -+} -+ - // Static check that MessageState does not exceed the size of a pointer. - const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{})) - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings.go b/vendor/google.golang.org/protobuf/internal/strs/strings.go -index 0b74e765..a6e7df24 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings.go -@@ -17,7 +17,7 @@ import ( - - // EnforceUTF8 reports whether to enforce strict UTF-8 validation. - func EnforceUTF8(fd protoreflect.FieldDescriptor) bool { -- if flags.ProtoLegacy { -+ if flags.ProtoLegacy || fd.Syntax() == protoreflect.Editions { - if fd, ok := fd.(interface{ EnforceUTF8() bool }); ok { - return fd.EnforceUTF8() - } -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -similarity index 96% -rename from vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -rename to vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -index 61a84d34..a008acd0 100644 ---- a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package strs - -diff --git a/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -new file mode 100644 -index 00000000..60166f2b ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go121.go -@@ -0,0 +1,74 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package strs -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/reflect/protoreflect" -+) -+ -+// UnsafeString returns an unsafe string reference of b. -+// The caller must treat the input slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user -+// unless the input slice is provably immutable. -+func UnsafeString(b []byte) string { -+ return unsafe.String(unsafe.SliceData(b), len(b)) -+} -+ -+// UnsafeBytes returns an unsafe bytes slice reference of s. -+// The caller must treat returned slice as immutable. -+// -+// WARNING: Use carefully. The returned result must not leak to the end user. -+func UnsafeBytes(s string) []byte { -+ return unsafe.Slice(unsafe.StringData(s), len(s)) -+} -+ -+// Builder builds a set of strings with shared lifetime. -+// This differs from strings.Builder, which is for building a single string. -+type Builder struct { -+ buf []byte -+} -+ -+// AppendFullName is equivalent to protoreflect.FullName.Append, -+// but optimized for large batches where each name has a shared lifetime. -+func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { -+ n := len(prefix) + len(".") + len(name) -+ if len(prefix) == 0 { -+ n -= len(".") -+ } -+ sb.grow(n) -+ sb.buf = append(sb.buf, prefix...) -+ sb.buf = append(sb.buf, '.') -+ sb.buf = append(sb.buf, name...) -+ return protoreflect.FullName(sb.last(n)) -+} -+ -+// MakeString is equivalent to string(b), but optimized for large batches -+// with a shared lifetime. -+func (sb *Builder) MakeString(b []byte) string { -+ sb.grow(len(b)) -+ sb.buf = append(sb.buf, b...) -+ return sb.last(len(b)) -+} -+ -+func (sb *Builder) grow(n int) { -+ if cap(sb.buf)-len(sb.buf) >= n { -+ return -+ } -+ -+ // Unlike strings.Builder, we do not need to copy over the contents -+ // of the old buffer since our builder provides no API for -+ // retrieving previously created strings. -+ sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) -+} -+ -+func (sb *Builder) last(n int) string { -+ return UnsafeString(sb.buf[len(sb.buf)-n:]) -+} -diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go -index 0999f29d..a50fcfb4 100644 ---- a/vendor/google.golang.org/protobuf/internal/version/version.go -+++ b/vendor/google.golang.org/protobuf/internal/version/version.go -@@ -51,7 +51,7 @@ import ( - // 10. Send out the CL for review and submit it. - const ( - Major = 1 -- Minor = 31 -+ Minor = 33 - Patch = 0 - PreRelease = "" - ) -diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go -index 48d47946..e5b03b56 100644 ---- a/vendor/google.golang.org/protobuf/proto/decode.go -+++ b/vendor/google.golang.org/protobuf/proto/decode.go -@@ -69,7 +69,7 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { - // UnmarshalState parses a wire-format message and places the result in m. - // - // This method permits fine-grained control over the unmarshaler. --// Most users should use Unmarshal instead. -+// Most users should use [Unmarshal] instead. - func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - if o.RecursionLimit == 0 { - o.RecursionLimit = protowire.DefaultRecursionLimit -diff --git a/vendor/google.golang.org/protobuf/proto/doc.go b/vendor/google.golang.org/protobuf/proto/doc.go -index ec71e717..80ed16a0 100644 ---- a/vendor/google.golang.org/protobuf/proto/doc.go -+++ b/vendor/google.golang.org/protobuf/proto/doc.go -@@ -18,27 +18,27 @@ - // This package contains functions to convert to and from the wire format, - // an efficient binary serialization of protocol buffers. - // --// • Size reports the size of a message in the wire format. -+// - [Size] reports the size of a message in the wire format. - // --// • Marshal converts a message to the wire format. --// The MarshalOptions type provides more control over wire marshaling. -+// - [Marshal] converts a message to the wire format. -+// The [MarshalOptions] type provides more control over wire marshaling. - // --// • Unmarshal converts a message from the wire format. --// The UnmarshalOptions type provides more control over wire unmarshaling. -+// - [Unmarshal] converts a message from the wire format. -+// The [UnmarshalOptions] type provides more control over wire unmarshaling. - // - // # Basic message operations - // --// • Clone makes a deep copy of a message. -+// - [Clone] makes a deep copy of a message. - // --// • Merge merges the content of a message into another. -+// - [Merge] merges the content of a message into another. - // --// • Equal compares two messages. For more control over comparisons --// and detailed reporting of differences, see package --// "google.golang.org/protobuf/testing/protocmp". -+// - [Equal] compares two messages. For more control over comparisons -+// and detailed reporting of differences, see package -+// [google.golang.org/protobuf/testing/protocmp]. - // --// • Reset clears the content of a message. -+// - [Reset] clears the content of a message. - // --// • CheckInitialized reports whether all required fields in a message are set. -+// - [CheckInitialized] reports whether all required fields in a message are set. - // - // # Optional scalar constructors - // -@@ -46,9 +46,9 @@ - // as pointers to a value. For example, an optional string field has the - // Go type *string. - // --// • Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, and String --// take a value and return a pointer to a new instance of it, --// to simplify construction of optional field values. -+// - [Bool], [Int32], [Int64], [Uint32], [Uint64], [Float32], [Float64], and [String] -+// take a value and return a pointer to a new instance of it, -+// to simplify construction of optional field values. - // - // Generated enum types usually have an Enum method which performs the - // same operation. -@@ -57,29 +57,29 @@ - // - // # Extension accessors - // --// • HasExtension, GetExtension, SetExtension, and ClearExtension --// access extension field values in a protocol buffer message. -+// - [HasExtension], [GetExtension], [SetExtension], and [ClearExtension] -+// access extension field values in a protocol buffer message. - // - // Extension fields are only supported in proto2. - // - // # Related packages - // --// • Package "google.golang.org/protobuf/encoding/protojson" converts messages to --// and from JSON. -+// - Package [google.golang.org/protobuf/encoding/protojson] converts messages to -+// and from JSON. - // --// • Package "google.golang.org/protobuf/encoding/prototext" converts messages to --// and from the text format. -+// - Package [google.golang.org/protobuf/encoding/prototext] converts messages to -+// and from the text format. - // --// • Package "google.golang.org/protobuf/reflect/protoreflect" provides a --// reflection interface for protocol buffer data types. -+// - Package [google.golang.org/protobuf/reflect/protoreflect] provides a -+// reflection interface for protocol buffer data types. - // --// • Package "google.golang.org/protobuf/testing/protocmp" provides features --// to compare protocol buffer messages with the "github.com/google/go-cmp/cmp" --// package. -+// - Package [google.golang.org/protobuf/testing/protocmp] provides features -+// to compare protocol buffer messages with the [github.com/google/go-cmp/cmp] -+// package. - // --// • Package "google.golang.org/protobuf/types/dynamicpb" provides a dynamic --// message type, suitable for working with messages where the protocol buffer --// type is only known at runtime. -+// - Package [google.golang.org/protobuf/types/dynamicpb] provides a dynamic -+// message type, suitable for working with messages where the protocol buffer -+// type is only known at runtime. - // - // This module contains additional packages for more specialized use cases. - // Consult the individual package documentation for details. -diff --git a/vendor/google.golang.org/protobuf/proto/encode.go b/vendor/google.golang.org/protobuf/proto/encode.go -index bf7f816d..4fed202f 100644 ---- a/vendor/google.golang.org/protobuf/proto/encode.go -+++ b/vendor/google.golang.org/protobuf/proto/encode.go -@@ -129,7 +129,7 @@ func (o MarshalOptions) MarshalAppend(b []byte, m Message) ([]byte, error) { - // MarshalState returns the wire-format encoding of a message. - // - // This method permits fine-grained control over the marshaler. --// Most users should use Marshal instead. -+// Most users should use [Marshal] instead. - func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - return o.marshal(in.Buf, in.Message) - } -diff --git a/vendor/google.golang.org/protobuf/proto/extension.go b/vendor/google.golang.org/protobuf/proto/extension.go -index 5f293cda..17899a3a 100644 ---- a/vendor/google.golang.org/protobuf/proto/extension.go -+++ b/vendor/google.golang.org/protobuf/proto/extension.go -@@ -26,7 +26,7 @@ func HasExtension(m Message, xt protoreflect.ExtensionType) bool { - } - - // ClearExtension clears an extension field such that subsequent --// HasExtension calls return false. -+// [HasExtension] calls return false. - // It panics if m is invalid or if xt does not extend m. - func ClearExtension(m Message, xt protoreflect.ExtensionType) { - m.ProtoReflect().Clear(xt.TypeDescriptor()) -diff --git a/vendor/google.golang.org/protobuf/proto/merge.go b/vendor/google.golang.org/protobuf/proto/merge.go -index d761ab33..3c6fe578 100644 ---- a/vendor/google.golang.org/protobuf/proto/merge.go -+++ b/vendor/google.golang.org/protobuf/proto/merge.go -@@ -21,7 +21,7 @@ import ( - // The unknown fields of src are appended to the unknown fields of dst. - // - // It is semantically equivalent to unmarshaling the encoded form of src --// into dst with the UnmarshalOptions.Merge option specified. -+// into dst with the [UnmarshalOptions.Merge] option specified. - func Merge(dst, src Message) { - // TODO: Should nil src be treated as semantically equivalent to a - // untyped, read-only, empty message? What about a nil dst? -diff --git a/vendor/google.golang.org/protobuf/proto/proto.go b/vendor/google.golang.org/protobuf/proto/proto.go -index 1f0d183b..7543ee6b 100644 ---- a/vendor/google.golang.org/protobuf/proto/proto.go -+++ b/vendor/google.golang.org/protobuf/proto/proto.go -@@ -15,18 +15,20 @@ import ( - // protobuf module that accept a Message, except where otherwise specified. - // - // This is the v2 interface definition for protobuf messages. --// The v1 interface definition is "github.com/golang/protobuf/proto".Message. -+// The v1 interface definition is [github.com/golang/protobuf/proto.Message]. - // --// To convert a v1 message to a v2 message, --// use "github.com/golang/protobuf/proto".MessageV2. --// To convert a v2 message to a v1 message, --// use "github.com/golang/protobuf/proto".MessageV1. -+// - To convert a v1 message to a v2 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV2Of]. -+// - To convert a v2 message to a v1 message, -+// use [google.golang.org/protobuf/protoadapt.MessageV1Of]. - type Message = protoreflect.ProtoMessage - --// Error matches all errors produced by packages in the protobuf module. -+// Error matches all errors produced by packages in the protobuf module -+// according to [errors.Is]. - // --// That is, errors.Is(err, Error) reports whether an error is produced --// by this module. -+// Example usage: -+// -+// if errors.Is(err, proto.Error) { ... } - var Error error - - func init() { -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -index e4dfb120..baa0cc62 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go -@@ -3,11 +3,11 @@ - // license that can be found in the LICENSE file. - - // Package protodesc provides functionality for converting --// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. -+// FileDescriptorProto messages to/from [protoreflect.FileDescriptor] values. - // - // The google.protobuf.FileDescriptorProto is a protobuf message that describes - // the type information for a .proto file in a form that is easily serializable. --// The protoreflect.FileDescriptor is a more structured representation of -+// The [protoreflect.FileDescriptor] is a more structured representation of - // the FileDescriptorProto message where references and remote dependencies - // can be directly followed. - package protodesc -@@ -24,11 +24,11 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// Resolver is the resolver used by NewFile to resolve dependencies. -+// Resolver is the resolver used by [NewFile] to resolve dependencies. - // The enums and messages provided must belong to some parent file, - // which is also registered. - // --// It is implemented by protoregistry.Files. -+// It is implemented by [protoregistry.Files]. - type Resolver interface { - FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) -@@ -61,19 +61,19 @@ type FileOptions struct { - AllowUnresolvable bool - } - --// NewFile creates a new protoreflect.FileDescriptor from the provided --// file descriptor message. See FileOptions.New for more information. -+// NewFile creates a new [protoreflect.FileDescriptor] from the provided -+// file descriptor message. See [FileOptions.New] for more information. - func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { - return FileOptions{}.New(fd, r) - } - --// NewFiles creates a new protoregistry.Files from the provided --// FileDescriptorSet message. See FileOptions.NewFiles for more information. -+// NewFiles creates a new [protoregistry.Files] from the provided -+// FileDescriptorSet message. See [FileOptions.NewFiles] for more information. - func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { - return FileOptions{}.NewFiles(fd) - } - --// New creates a new protoreflect.FileDescriptor from the provided -+// New creates a new [protoreflect.FileDescriptor] from the provided - // file descriptor message. The file must represent a valid proto file according - // to protobuf semantics. The returned descriptor is a deep copy of the input. - // -@@ -93,9 +93,15 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - f.L1.Syntax = protoreflect.Proto2 - case "proto3": - f.L1.Syntax = protoreflect.Proto3 -+ case "editions": -+ f.L1.Syntax = protoreflect.Editions -+ f.L1.Edition = fromEditionProto(fd.GetEdition()) - default: - return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) - } -+ if f.L1.Syntax == protoreflect.Editions && (fd.GetEdition() < SupportedEditionsMinimum || fd.GetEdition() > SupportedEditionsMaximum) { -+ return nil, errors.New("use of edition %v not yet supported by the Go Protobuf runtime", fd.GetEdition()) -+ } - f.L1.Path = fd.GetName() - if f.L1.Path == "" { - return nil, errors.New("file path must be populated") -@@ -108,6 +114,9 @@ func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (prot - opts = proto.Clone(opts).(*descriptorpb.FileOptions) - f.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ if f.L1.Syntax == protoreflect.Editions { -+ initFileDescFromFeatureSet(f, fd.GetOptions().GetFeatures()) -+ } - - f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) - for _, i := range fd.GetPublicDependency() { -@@ -231,7 +240,7 @@ func (is importSet) importPublic(imps protoreflect.FileImports) { - } - } - --// NewFiles creates a new protoregistry.Files from the provided -+// NewFiles creates a new [protoregistry.Files] from the provided - // FileDescriptorSet message. The descriptor set must include only - // valid files according to protobuf semantics. The returned descriptors - // are a deep copy of the input. -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -index 37efda1a..b3278163 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go -@@ -28,6 +28,7 @@ func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProt - opts = proto.Clone(opts).(*descriptorpb.EnumOptions) - e.L2.Options = func() protoreflect.ProtoMessage { return opts } - } -+ e.L1.EditionFeatures = mergeEditionFeatures(parent, ed.GetOptions().GetFeatures()) - for _, s := range ed.GetReservedName() { - e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) - } -@@ -68,6 +69,9 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { - return nil, err - } -+ if m.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ m.L1.EditionFeatures = mergeEditionFeatures(parent, md.GetOptions().GetFeatures()) -+ } - if opts := md.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.MessageOptions) - m.L2.Options = func() protoreflect.ProtoMessage { return opts } -@@ -114,6 +118,27 @@ func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProt - return ms, nil - } - -+// canBePacked returns whether the field can use packed encoding: -+// https://protobuf.dev/programming-guides/encoding/#packed -+func canBePacked(fd *descriptorpb.FieldDescriptorProto) bool { -+ if fd.GetLabel() != descriptorpb.FieldDescriptorProto_LABEL_REPEATED { -+ return false // not a repeated field -+ } -+ -+ switch protoreflect.Kind(fd.GetType()) { -+ case protoreflect.MessageKind, protoreflect.GroupKind: -+ return false // not a scalar type field -+ -+ case protoreflect.StringKind, protoreflect.BytesKind: -+ // string and bytes can explicitly not be declared as packed, -+ // see https://protobuf.dev/programming-guides/encoding/#packed -+ return false -+ -+ default: -+ return true -+ } -+} -+ - func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { - fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers - for i, fd := range fds { -@@ -137,6 +162,34 @@ func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDesc - if fd.JsonName != nil { - f.L1.StringName.InitJSON(fd.GetJsonName()) - } -+ -+ if f.Base.L0.ParentFile.Syntax() == protoreflect.Editions { -+ f.L1.EditionFeatures = mergeEditionFeatures(parent, fd.GetOptions().GetFeatures()) -+ -+ if f.L1.EditionFeatures.IsLegacyRequired { -+ f.L1.Cardinality = protoreflect.Required -+ } -+ // We reuse the existing field because the old option `[packed = -+ // true]` is mutually exclusive with the editions feature. -+ if canBePacked(fd) { -+ f.L1.HasPacked = true -+ f.L1.IsPacked = f.L1.EditionFeatures.IsPacked -+ } -+ -+ // We pretend this option is always explicitly set because the only -+ // use of HasEnforceUTF8 is to determine whether to use EnforceUTF8 -+ // or to return the appropriate default. -+ // When using editions we either parse the option or resolve the -+ // appropriate default here (instead of later when this option is -+ // requested from the descriptor). -+ // In proto2/proto3 syntax HasEnforceUTF8 might be false. -+ f.L1.HasEnforceUTF8 = true -+ f.L1.EnforceUTF8 = f.L1.EditionFeatures.IsUTF8Validated -+ -+ if f.L1.Kind == protoreflect.MessageKind && f.L1.EditionFeatures.IsDelimitedEncoded { -+ f.L1.Kind = protoreflect.GroupKind -+ } -+ } - } - return fs, nil - } -@@ -151,6 +204,9 @@ func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDesc - if opts := od.GetOptions(); opts != nil { - opts = proto.Clone(opts).(*descriptorpb.OneofOptions) - o.L1.Options = func() protoreflect.ProtoMessage { return opts } -+ if parent.Syntax() == protoreflect.Editions { -+ o.L1.EditionFeatures = mergeEditionFeatures(parent, opts.GetFeatures()) -+ } - } - } - return os, nil -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -index 27d7e350..254ca585 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go -@@ -276,8 +276,8 @@ func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvab - } else if err != nil { - return v, ev, err - } -- if fd.Syntax() == protoreflect.Proto3 { -- return v, ev, errors.New("cannot be specified under proto3 semantics") -+ if !fd.HasPresence() { -+ return v, ev, errors.New("cannot be specified with implicit field presence") - } - if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { - return v, ev, errors.New("cannot be specified on composite types") -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -index 9af1d564..e4dcaf87 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go -@@ -107,7 +107,7 @@ func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.Desc - if isMessageSet && !flags.ProtoLegacy { - return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) - } -- if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { -+ if isMessageSet && (m.Syntax() == protoreflect.Proto3 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { - return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) - } - if m.Syntax() == protoreflect.Proto3 { -@@ -314,8 +314,8 @@ func checkValidGroup(fd protoreflect.FieldDescriptor) error { - switch { - case fd.Kind() != protoreflect.GroupKind: - return nil -- case fd.Syntax() != protoreflect.Proto2: -- return errors.New("invalid under proto2 semantics") -+ case fd.Syntax() == protoreflect.Proto3: -+ return errors.New("invalid under proto3 semantics") - case md == nil || md.IsPlaceholder(): - return errors.New("message must be resolvable") - case fd.FullName().Parent() != md.FullName().Parent(): -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -new file mode 100644 -index 00000000..2a6b29d1 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/editions.go -@@ -0,0 +1,148 @@ -+// Copyright 2019 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+package protodesc -+ -+import ( -+ "fmt" -+ "os" -+ "sync" -+ -+ "google.golang.org/protobuf/internal/editiondefaults" -+ "google.golang.org/protobuf/internal/filedesc" -+ "google.golang.org/protobuf/proto" -+ "google.golang.org/protobuf/reflect/protoreflect" -+ "google.golang.org/protobuf/types/descriptorpb" -+ gofeaturespb "google.golang.org/protobuf/types/gofeaturespb" -+) -+ -+const ( -+ SupportedEditionsMinimum = descriptorpb.Edition_EDITION_PROTO2 -+ SupportedEditionsMaximum = descriptorpb.Edition_EDITION_2023 -+) -+ -+var defaults = &descriptorpb.FeatureSetDefaults{} -+var defaultsCacheMu sync.Mutex -+var defaultsCache = make(map[filedesc.Edition]*descriptorpb.FeatureSet) -+ -+func init() { -+ err := proto.Unmarshal(editiondefaults.Defaults, defaults) -+ if err != nil { -+ fmt.Fprintf(os.Stderr, "unmarshal editions defaults: %v\n", err) -+ os.Exit(1) -+ } -+} -+ -+func fromEditionProto(epb descriptorpb.Edition) filedesc.Edition { -+ return filedesc.Edition(epb) -+} -+ -+func toEditionProto(ed filedesc.Edition) descriptorpb.Edition { -+ switch ed { -+ case filedesc.EditionUnknown: -+ return descriptorpb.Edition_EDITION_UNKNOWN -+ case filedesc.EditionProto2: -+ return descriptorpb.Edition_EDITION_PROTO2 -+ case filedesc.EditionProto3: -+ return descriptorpb.Edition_EDITION_PROTO3 -+ case filedesc.Edition2023: -+ return descriptorpb.Edition_EDITION_2023 -+ default: -+ panic(fmt.Sprintf("unknown value for edition: %v", ed)) -+ } -+} -+ -+func getFeatureSetFor(ed filedesc.Edition) *descriptorpb.FeatureSet { -+ defaultsCacheMu.Lock() -+ defer defaultsCacheMu.Unlock() -+ if def, ok := defaultsCache[ed]; ok { -+ return def -+ } -+ edpb := toEditionProto(ed) -+ if defaults.GetMinimumEdition() > edpb || defaults.GetMaximumEdition() < edpb { -+ // This should never happen protodesc.(FileOptions).New would fail when -+ // initializing the file descriptor. -+ // This most likely means the embedded defaults were not updated. -+ fmt.Fprintf(os.Stderr, "internal error: unsupported edition %v (did you forget to update the embedded defaults (i.e. the bootstrap descriptor proto)?)\n", edpb) -+ os.Exit(1) -+ } -+ fs := defaults.GetDefaults()[0].GetFeatures() -+ // Using a linear search for now. -+ // Editions are guaranteed to be sorted and thus we could use a binary search. -+ // Given that there are only a handful of editions (with one more per year) -+ // there is not much reason to use a binary search. -+ for _, def := range defaults.GetDefaults() { -+ if def.GetEdition() <= edpb { -+ fs = def.GetFeatures() -+ } else { -+ break -+ } -+ } -+ defaultsCache[ed] = fs -+ return fs -+} -+ -+// mergeEditionFeatures merges the parent and child feature sets. This function -+// should be used when initializing Go descriptors from descriptor protos which -+// is why the parent is a filedesc.EditionsFeatures (Go representation) while -+// the child is a descriptorproto.FeatureSet (protoc representation). -+// Any feature set by the child overwrites what is set by the parent. -+func mergeEditionFeatures(parentDesc protoreflect.Descriptor, child *descriptorpb.FeatureSet) filedesc.EditionFeatures { -+ var parentFS filedesc.EditionFeatures -+ switch p := parentDesc.(type) { -+ case *filedesc.File: -+ parentFS = p.L1.EditionFeatures -+ case *filedesc.Message: -+ parentFS = p.L1.EditionFeatures -+ default: -+ panic(fmt.Sprintf("unknown parent type %T", parentDesc)) -+ } -+ if child == nil { -+ return parentFS -+ } -+ if fp := child.FieldPresence; fp != nil { -+ parentFS.IsFieldPresence = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED || -+ *fp == descriptorpb.FeatureSet_EXPLICIT -+ parentFS.IsLegacyRequired = *fp == descriptorpb.FeatureSet_LEGACY_REQUIRED -+ } -+ if et := child.EnumType; et != nil { -+ parentFS.IsOpenEnum = *et == descriptorpb.FeatureSet_OPEN -+ } -+ -+ if rfe := child.RepeatedFieldEncoding; rfe != nil { -+ parentFS.IsPacked = *rfe == descriptorpb.FeatureSet_PACKED -+ } -+ -+ if utf8val := child.Utf8Validation; utf8val != nil { -+ parentFS.IsUTF8Validated = *utf8val == descriptorpb.FeatureSet_VERIFY -+ } -+ -+ if me := child.MessageEncoding; me != nil { -+ parentFS.IsDelimitedEncoded = *me == descriptorpb.FeatureSet_DELIMITED -+ } -+ -+ if jf := child.JsonFormat; jf != nil { -+ parentFS.IsJSONCompliant = *jf == descriptorpb.FeatureSet_ALLOW -+ } -+ -+ if goFeatures, ok := proto.GetExtension(child, gofeaturespb.E_Go).(*gofeaturespb.GoFeatures); ok && goFeatures != nil { -+ if luje := goFeatures.LegacyUnmarshalJsonEnum; luje != nil { -+ parentFS.GenerateLegacyUnmarshalJSON = *luje -+ } -+ } -+ -+ return parentFS -+} -+ -+// initFileDescFromFeatureSet initializes editions related fields in fd based -+// on fs. If fs is nil it is assumed to be an empty featureset and all fields -+// will be initialized with the appropriate default. fd.L1.Edition must be set -+// before calling this function. -+func initFileDescFromFeatureSet(fd *filedesc.File, fs *descriptorpb.FeatureSet) { -+ dfs := getFeatureSetFor(fd.L1.Edition) -+ // initialize the featureset with the defaults -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, dfs) -+ // overwrite any options explicitly specified -+ fd.L1.EditionFeatures = mergeEditionFeatures(fd, fs) -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -index a7c5ceff..9d6e0542 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go -@@ -16,7 +16,7 @@ import ( - "google.golang.org/protobuf/types/descriptorpb" - ) - --// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a -+// ToFileDescriptorProto copies a [protoreflect.FileDescriptor] into a - // google.protobuf.FileDescriptorProto message. - func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { - p := &descriptorpb.FileDescriptorProto{ -@@ -70,13 +70,13 @@ func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileD - for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { - p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) - } -- if syntax := file.Syntax(); syntax != protoreflect.Proto2 { -+ if syntax := file.Syntax(); syntax != protoreflect.Proto2 && syntax.IsValid() { - p.Syntax = proto.String(file.Syntax().String()) - } - return p - } - --// ToDescriptorProto copies a protoreflect.MessageDescriptor into a -+// ToDescriptorProto copies a [protoreflect.MessageDescriptor] into a - // google.protobuf.DescriptorProto message. - func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { - p := &descriptorpb.DescriptorProto{ -@@ -119,7 +119,7 @@ func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.Des - return p - } - --// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a -+// ToFieldDescriptorProto copies a [protoreflect.FieldDescriptor] into a - // google.protobuf.FieldDescriptorProto message. - func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { - p := &descriptorpb.FieldDescriptorProto{ -@@ -168,7 +168,7 @@ func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.Fi - return p - } - --// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a -+// ToOneofDescriptorProto copies a [protoreflect.OneofDescriptor] into a - // google.protobuf.OneofDescriptorProto message. - func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { - return &descriptorpb.OneofDescriptorProto{ -@@ -177,7 +177,7 @@ func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.On - } - } - --// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a -+// ToEnumDescriptorProto copies a [protoreflect.EnumDescriptor] into a - // google.protobuf.EnumDescriptorProto message. - func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { - p := &descriptorpb.EnumDescriptorProto{ -@@ -200,7 +200,7 @@ func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumD - return p - } - --// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a -+// ToEnumValueDescriptorProto copies a [protoreflect.EnumValueDescriptor] into a - // google.protobuf.EnumValueDescriptorProto message. - func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { - return &descriptorpb.EnumValueDescriptorProto{ -@@ -210,7 +210,7 @@ func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descrip - } - } - --// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a -+// ToServiceDescriptorProto copies a [protoreflect.ServiceDescriptor] into a - // google.protobuf.ServiceDescriptorProto message. - func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { - p := &descriptorpb.ServiceDescriptorProto{ -@@ -223,7 +223,7 @@ func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descripto - return p - } - --// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a -+// ToMethodDescriptorProto copies a [protoreflect.MethodDescriptor] into a - // google.protobuf.MethodDescriptorProto message. - func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { - p := &descriptorpb.MethodDescriptorProto{ -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -index 55aa1492..00b01fbd 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go -@@ -10,46 +10,46 @@ - // - // # Protocol Buffer Descriptors - // --// Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) -+// Protobuf descriptors (e.g., [EnumDescriptor] or [MessageDescriptor]) - // are immutable objects that represent protobuf type information. - // They are wrappers around the messages declared in descriptor.proto. - // Protobuf descriptors alone lack any information regarding Go types. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Descriptor and ProtoReflect.Descriptor accessors respectively - // return the protobuf descriptor for the values. - // - // The protobuf descriptor interfaces are not meant to be implemented by - // user code since they might need to be extended in the future to support - // additions to the protobuf language. --// The "google.golang.org/protobuf/reflect/protodesc" package converts between -+// The [google.golang.org/protobuf/reflect/protodesc] package converts between - // google.protobuf.DescriptorProto messages and protobuf descriptors. - // - // # Go Type Descriptors - // --// A type descriptor (e.g., EnumType or MessageType) is a constructor for -+// A type descriptor (e.g., [EnumType] or [MessageType]) is a constructor for - // a concrete Go type that represents the associated protobuf descriptor. - // There is commonly a one-to-one relationship between protobuf descriptors and - // Go type descriptors, but it can potentially be a one-to-many relationship. - // --// Enums and messages generated by this module implement Enum and ProtoMessage, -+// Enums and messages generated by this module implement [Enum] and [ProtoMessage], - // where the Type and ProtoReflect.Type accessors respectively - // return the protobuf descriptor for the values. - // --// The "google.golang.org/protobuf/types/dynamicpb" package can be used to -+// The [google.golang.org/protobuf/types/dynamicpb] package can be used to - // create Go type descriptors from protobuf descriptors. - // - // # Value Interfaces - // --// The Enum and Message interfaces provide a reflective view over an -+// The [Enum] and [Message] interfaces provide a reflective view over an - // enum or message instance. For enums, it provides the ability to retrieve - // the enum value number for any concrete enum type. For messages, it provides - // the ability to access or manipulate fields of the message. - // --// To convert a proto.Message to a protoreflect.Message, use the -+// To convert a [google.golang.org/protobuf/proto.Message] to a [protoreflect.Message], use the - // former's ProtoReflect method. Since the ProtoReflect method is new to the - // v2 message interface, it may not be present on older message implementations. --// The "github.com/golang/protobuf/proto".MessageReflect function can be used -+// The [github.com/golang/protobuf/proto.MessageReflect] function can be used - // to obtain a reflective view on older messages. - // - // # Relationships -@@ -71,12 +71,12 @@ - // │ │ - // └────────────────── Type() ───────┘ - // --// • An EnumType describes a concrete Go enum type. -+// • An [EnumType] describes a concrete Go enum type. - // It has an EnumDescriptor and can construct an Enum instance. - // --// • An EnumDescriptor describes an abstract protobuf enum type. -+// • An [EnumDescriptor] describes an abstract protobuf enum type. - // --// • An Enum is a concrete enum instance. Generated enums implement Enum. -+// • An [Enum] is a concrete enum instance. Generated enums implement Enum. - // - // ┌──────────────── New() ─────────────────┠- // │ │ -@@ -90,24 +90,26 @@ - // │ │ - // └─────────────────── Type() ─────────┘ - // --// • A MessageType describes a concrete Go message type. --// It has a MessageDescriptor and can construct a Message instance. --// Just as how Go's reflect.Type is a reflective description of a Go type, --// a MessageType is a reflective description of a Go type for a protobuf message. -+// • A [MessageType] describes a concrete Go message type. -+// It has a [MessageDescriptor] and can construct a [Message] instance. -+// Just as how Go's [reflect.Type] is a reflective description of a Go type, -+// a [MessageType] is a reflective description of a Go type for a protobuf message. - // --// • A MessageDescriptor describes an abstract protobuf message type. --// It has no understanding of Go types. In order to construct a MessageType --// from just a MessageDescriptor, you can consider looking up the message type --// in the global registry using protoregistry.GlobalTypes.FindMessageByName --// or constructing a dynamic MessageType using dynamicpb.NewMessageType. -+// • A [MessageDescriptor] describes an abstract protobuf message type. -+// It has no understanding of Go types. In order to construct a [MessageType] -+// from just a [MessageDescriptor], you can consider looking up the message type -+// in the global registry using the FindMessageByName method on -+// [google.golang.org/protobuf/reflect/protoregistry.GlobalTypes] -+// or constructing a dynamic [MessageType] using -+// [google.golang.org/protobuf/types/dynamicpb.NewMessageType]. - // --// • A Message is a reflective view over a concrete message instance. --// Generated messages implement ProtoMessage, which can convert to a Message. --// Just as how Go's reflect.Value is a reflective view over a Go value, --// a Message is a reflective view over a concrete protobuf message instance. --// Using Go reflection as an analogy, the ProtoReflect method is similar to --// calling reflect.ValueOf, and the Message.Interface method is similar to --// calling reflect.Value.Interface. -+// • A [Message] is a reflective view over a concrete message instance. -+// Generated messages implement [ProtoMessage], which can convert to a [Message]. -+// Just as how Go's [reflect.Value] is a reflective view over a Go value, -+// a [Message] is a reflective view over a concrete protobuf message instance. -+// Using Go reflection as an analogy, the [ProtoMessage.ProtoReflect] method is similar to -+// calling [reflect.ValueOf], and the [Message.Interface] method is similar to -+// calling [reflect.Value.Interface]. - // - // ┌── TypeDescriptor() ──┠┌───── Descriptor() ─────┠- // │ V │ V -@@ -119,15 +121,15 @@ - // │ │ - // └────── implements ────────┘ - // --// • An ExtensionType describes a concrete Go implementation of an extension. --// It has an ExtensionTypeDescriptor and can convert to/from --// abstract Values and Go values. -+// • An [ExtensionType] describes a concrete Go implementation of an extension. -+// It has an [ExtensionTypeDescriptor] and can convert to/from -+// an abstract [Value] and a Go value. - // --// • An ExtensionTypeDescriptor is an ExtensionDescriptor --// which also has an ExtensionType. -+// • An [ExtensionTypeDescriptor] is an [ExtensionDescriptor] -+// which also has an [ExtensionType]. - // --// • An ExtensionDescriptor describes an abstract protobuf extension field and --// may not always be an ExtensionTypeDescriptor. -+// • An [ExtensionDescriptor] describes an abstract protobuf extension field and -+// may not always be an [ExtensionTypeDescriptor]. - package protoreflect - - import ( -@@ -142,7 +144,7 @@ type doNotImplement pragma.DoNotImplement - - // ProtoMessage is the top-level interface that all proto messages implement. - // This is declared in the protoreflect package to avoid a cyclic dependency; --// use the proto.Message type instead, which aliases this type. -+// use the [google.golang.org/protobuf/proto.Message] type instead, which aliases this type. - type ProtoMessage interface{ ProtoReflect() Message } - - // Syntax is the language version of the proto file. -@@ -151,8 +153,9 @@ type Syntax syntax - type syntax int8 // keep exact type opaque as the int type may change - - const ( -- Proto2 Syntax = 2 -- Proto3 Syntax = 3 -+ Proto2 Syntax = 2 -+ Proto3 Syntax = 3 -+ Editions Syntax = 4 - ) - - // IsValid reports whether the syntax is valid. -@@ -172,6 +175,8 @@ func (s Syntax) String() string { - return "proto2" - case Proto3: - return "proto3" -+ case Editions: -+ return "editions" - default: - return fmt.Sprintf("", s) - } -@@ -436,7 +441,7 @@ type Names interface { - // FullName is a qualified name that uniquely identifies a proto declaration. - // A qualified name is the concatenation of the proto package along with the - // fully-declared name (i.e., name of parent preceding the name of the child), --// with a '.' delimiter placed between each Name. -+// with a '.' delimiter placed between each [Name]. - // - // This should not have any leading or trailing dots. - type FullName string // e.g., "google.protobuf.Field.Kind" -@@ -480,7 +485,7 @@ func isLetterDigit(c byte) bool { - } - - // Name returns the short name, which is the last identifier segment. --// A single segment FullName is the Name itself. -+// A single segment FullName is the [Name] itself. - func (n FullName) Name() Name { - if i := strings.LastIndexByte(string(n), '.'); i >= 0 { - return Name(n[i+1:]) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -index 717b106f..7dcc2ff0 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go -@@ -35,7 +35,7 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { - b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) - case 12: - b = p.appendSingularField(b, "syntax", nil) -- case 13: -+ case 14: - b = p.appendSingularField(b, "edition", nil) - } - return b -@@ -160,8 +160,6 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "java_generic_services", nil) - case 18: - b = p.appendSingularField(b, "py_generic_services", nil) -- case 42: -- b = p.appendSingularField(b, "php_generic_services", nil) - case 23: - b = p.appendSingularField(b, "deprecated", nil) - case 31: -@@ -180,6 +178,8 @@ func (p *SourcePath) appendFileOptions(b []byte) []byte { - b = p.appendSingularField(b, "php_metadata_namespace", nil) - case 45: - b = p.appendSingularField(b, "ruby_package", nil) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -240,6 +240,8 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { - b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 12: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -285,6 +287,8 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) -+ case 7: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -330,6 +334,8 @@ func (p *SourcePath) appendServiceOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 34: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 33: - b = p.appendSingularField(b, "deprecated", nil) - case 999: -@@ -361,16 +367,39 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) -- case 18: -- b = p.appendSingularField(b, "target", nil) - case 19: - b = p.appendRepeatedField(b, "targets", nil) -+ case 20: -+ b = p.appendRepeatedField(b, "edition_defaults", (*SourcePath).appendFieldOptions_EditionDefault) -+ case 21: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFeatureSet(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "field_presence", nil) -+ case 2: -+ b = p.appendSingularField(b, "enum_type", nil) -+ case 3: -+ b = p.appendSingularField(b, "repeated_field_encoding", nil) -+ case 4: -+ b = p.appendSingularField(b, "utf8_validation", nil) -+ case 5: -+ b = p.appendSingularField(b, "message_encoding", nil) -+ case 6: -+ b = p.appendSingularField(b, "json_format", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -422,6 +451,8 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - case 2: - b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) -+ case 50: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 3: - b = p.appendSingularField(b, "verification", nil) - } -@@ -433,6 +464,8 @@ func (p *SourcePath) appendOneofOptions(b []byte) []byte { - return b - } - switch (*p)[0] { -+ case 1: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -446,6 +479,10 @@ func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { - switch (*p)[0] { - case 1: - b = p.appendSingularField(b, "deprecated", nil) -+ case 2: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) -+ case 3: -+ b = p.appendSingularField(b, "debug_redact", nil) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } -@@ -461,12 +498,27 @@ func (p *SourcePath) appendMethodOptions(b []byte) []byte { - b = p.appendSingularField(b, "deprecated", nil) - case 34: - b = p.appendSingularField(b, "idempotency_level", nil) -+ case 35: -+ b = p.appendSingularField(b, "features", (*SourcePath).appendFeatureSet) - case 999: - b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) - } - return b - } - -+func (p *SourcePath) appendFieldOptions_EditionDefault(b []byte) []byte { -+ if len(*p) == 0 { -+ return b -+ } -+ switch (*p)[0] { -+ case 3: -+ b = p.appendSingularField(b, "edition", nil) -+ case 2: -+ b = p.appendSingularField(b, "value", nil) -+ } -+ return b -+} -+ - func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { - if len(*p) == 0 { - return b -@@ -491,8 +543,6 @@ func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { - b = p.appendSingularField(b, "full_name", nil) - case 3: - b = p.appendSingularField(b, "type", nil) -- case 4: -- b = p.appendSingularField(b, "is_repeated", nil) - case 5: - b = p.appendSingularField(b, "reserved", nil) - case 6: -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -index 3867470d..60ff62b4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go -@@ -12,7 +12,7 @@ package protoreflect - // exactly identical. However, it is possible for the same semantically - // identical proto type to be represented by multiple type descriptors. - // --// For example, suppose we have t1 and t2 which are both MessageDescriptors. -+// For example, suppose we have t1 and t2 which are both an [MessageDescriptor]. - // If t1 == t2, then the types are definitely equal and all accessors return - // the same information. However, if t1 != t2, then it is still possible that - // they still represent the same proto type (e.g., t1.FullName == t2.FullName). -@@ -115,7 +115,7 @@ type Descriptor interface { - // corresponds with the google.protobuf.FileDescriptorProto message. - // - // Top-level declarations: --// EnumDescriptor, MessageDescriptor, FieldDescriptor, and/or ServiceDescriptor. -+// [EnumDescriptor], [MessageDescriptor], [FieldDescriptor], and/or [ServiceDescriptor]. - type FileDescriptor interface { - Descriptor // Descriptor.FullName is identical to Package - -@@ -180,8 +180,8 @@ type FileImport struct { - // corresponds with the google.protobuf.DescriptorProto message. - // - // Nested declarations: --// FieldDescriptor, OneofDescriptor, FieldDescriptor, EnumDescriptor, --// and/or MessageDescriptor. -+// [FieldDescriptor], [OneofDescriptor], [FieldDescriptor], [EnumDescriptor], -+// and/or [MessageDescriptor]. - type MessageDescriptor interface { - Descriptor - -@@ -214,7 +214,7 @@ type MessageDescriptor interface { - ExtensionRanges() FieldRanges - // ExtensionRangeOptions returns the ith extension range options. - // -- // To avoid a dependency cycle, this method returns a proto.Message value, -+ // To avoid a dependency cycle, this method returns a proto.Message] value, - // which always contains a google.protobuf.ExtensionRangeOptions message. - // This method returns a typed nil-pointer if no options are present. - // The caller must import the descriptorpb package to use this. -@@ -231,9 +231,9 @@ type MessageDescriptor interface { - } - type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } - --// MessageType encapsulates a MessageDescriptor with a concrete Go implementation. -+// MessageType encapsulates a [MessageDescriptor] with a concrete Go implementation. - // It is recommended that implementations of this interface also implement the --// MessageFieldTypes interface. -+// [MessageFieldTypes] interface. - type MessageType interface { - // New returns a newly allocated empty message. - // It may return nil for synthetic messages representing a map entry. -@@ -249,19 +249,19 @@ type MessageType interface { - Descriptor() MessageDescriptor - } - --// MessageFieldTypes extends a MessageType by providing type information -+// MessageFieldTypes extends a [MessageType] by providing type information - // regarding enums and messages referenced by the message fields. - type MessageFieldTypes interface { - MessageType - -- // Enum returns the EnumType for the ith field in Descriptor.Fields. -+ // Enum returns the EnumType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not an enum kind. - // It panics if out of bounds. - // - // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() - Enum(i int) EnumType - -- // Message returns the MessageType for the ith field in Descriptor.Fields. -+ // Message returns the MessageType for the ith field in MessageDescriptor.Fields. - // It returns nil if the ith field is not a message or group kind. - // It panics if out of bounds. - // -@@ -286,8 +286,8 @@ type MessageDescriptors interface { - // corresponds with the google.protobuf.FieldDescriptorProto message. - // - // It is used for both normal fields defined within the parent message --// (e.g., MessageDescriptor.Fields) and fields that extend some remote message --// (e.g., FileDescriptor.Extensions or MessageDescriptor.Extensions). -+// (e.g., [MessageDescriptor.Fields]) and fields that extend some remote message -+// (e.g., [FileDescriptor.Extensions] or [MessageDescriptor.Extensions]). - type FieldDescriptor interface { - Descriptor - -@@ -344,7 +344,7 @@ type FieldDescriptor interface { - // IsMap reports whether this field represents a map, - // where the value type for the associated field is a Map. - // It is equivalent to checking whether Cardinality is Repeated, -- // that the Kind is MessageKind, and that Message.IsMapEntry reports true. -+ // that the Kind is MessageKind, and that MessageDescriptor.IsMapEntry reports true. - IsMap() bool - - // MapKey returns the field descriptor for the key in the map entry. -@@ -419,7 +419,7 @@ type OneofDescriptor interface { - - // IsSynthetic reports whether this is a synthetic oneof created to support - // proto3 optional semantics. If true, Fields contains exactly one field -- // with HasOptionalKeyword specified. -+ // with FieldDescriptor.HasOptionalKeyword specified. - IsSynthetic() bool - - // Fields is a list of fields belonging to this oneof. -@@ -442,10 +442,10 @@ type OneofDescriptors interface { - doNotImplement - } - --// ExtensionDescriptor is an alias of FieldDescriptor for documentation. -+// ExtensionDescriptor is an alias of [FieldDescriptor] for documentation. - type ExtensionDescriptor = FieldDescriptor - --// ExtensionTypeDescriptor is an ExtensionDescriptor with an associated ExtensionType. -+// ExtensionTypeDescriptor is an [ExtensionDescriptor] with an associated [ExtensionType]. - type ExtensionTypeDescriptor interface { - ExtensionDescriptor - -@@ -470,12 +470,12 @@ type ExtensionDescriptors interface { - doNotImplement - } - --// ExtensionType encapsulates an ExtensionDescriptor with a concrete -+// ExtensionType encapsulates an [ExtensionDescriptor] with a concrete - // Go implementation. The nested field descriptor must be for a extension field. - // - // While a normal field is a member of the parent message that it is declared --// within (see Descriptor.Parent), an extension field is a member of some other --// target message (see ExtensionDescriptor.Extendee) and may have no -+// within (see [Descriptor.Parent]), an extension field is a member of some other -+// target message (see [FieldDescriptor.ContainingMessage]) and may have no - // relationship with the parent. However, the full name of an extension field is - // relative to the parent that it is declared within. - // -@@ -532,7 +532,7 @@ type ExtensionType interface { - // corresponds with the google.protobuf.EnumDescriptorProto message. - // - // Nested declarations: --// EnumValueDescriptor. -+// [EnumValueDescriptor]. - type EnumDescriptor interface { - Descriptor - -@@ -548,7 +548,7 @@ type EnumDescriptor interface { - } - type isEnumDescriptor interface{ ProtoType(EnumDescriptor) } - --// EnumType encapsulates an EnumDescriptor with a concrete Go implementation. -+// EnumType encapsulates an [EnumDescriptor] with a concrete Go implementation. - type EnumType interface { - // New returns an instance of this enum type with its value set to n. - New(n EnumNumber) Enum -@@ -610,7 +610,7 @@ type EnumValueDescriptors interface { - // ServiceDescriptor describes a service and - // corresponds with the google.protobuf.ServiceDescriptorProto message. - // --// Nested declarations: MethodDescriptor. -+// Nested declarations: [MethodDescriptor]. - type ServiceDescriptor interface { - Descriptor - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -index 37601b78..a7b0d06f 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go -@@ -27,16 +27,16 @@ type Enum interface { - // Message is a reflective interface for a concrete message value, - // encapsulating both type and value information for the message. - // --// Accessor/mutators for individual fields are keyed by FieldDescriptor. -+// Accessor/mutators for individual fields are keyed by [FieldDescriptor]. - // For non-extension fields, the descriptor must exactly match the - // field known by the parent message. --// For extension fields, the descriptor must implement ExtensionTypeDescriptor, --// extend the parent message (i.e., have the same message FullName), and -+// For extension fields, the descriptor must implement [ExtensionTypeDescriptor], -+// extend the parent message (i.e., have the same message [FullName]), and - // be within the parent's extension range. - // --// Each field Value can be a scalar or a composite type (Message, List, or Map). --// See Value for the Go types associated with a FieldDescriptor. --// Providing a Value that is invalid or of an incorrect type panics. -+// Each field [Value] can be a scalar or a composite type ([Message], [List], or [Map]). -+// See [Value] for the Go types associated with a [FieldDescriptor]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type Message interface { - // Descriptor returns message descriptor, which contains only the protobuf - // type information for the message. -@@ -152,7 +152,7 @@ type Message interface { - // This method may return nil. - // - // The returned methods type is identical to -- // "google.golang.org/protobuf/runtime/protoiface".Methods. -+ // google.golang.org/protobuf/runtime/protoiface.Methods. - // Consult the protoiface package documentation for details. - ProtoMethods() *methods - } -@@ -175,8 +175,8 @@ func (b RawFields) IsValid() bool { - } - - // List is a zero-indexed, ordered list. --// The element Value type is determined by FieldDescriptor.Kind. --// Providing a Value that is invalid or of an incorrect type panics. -+// The element [Value] type is determined by [FieldDescriptor.Kind]. -+// Providing a [Value] that is invalid or of an incorrect type panics. - type List interface { - // Len reports the number of entries in the List. - // Get, Set, and Truncate panic with out of bound indexes. -@@ -226,9 +226,9 @@ type List interface { - } - - // Map is an unordered, associative map. --// The entry MapKey type is determined by FieldDescriptor.MapKey.Kind. --// The entry Value type is determined by FieldDescriptor.MapValue.Kind. --// Providing a MapKey or Value that is invalid or of an incorrect type panics. -+// The entry [MapKey] type is determined by [FieldDescriptor.MapKey].Kind. -+// The entry [Value] type is determined by [FieldDescriptor.MapValue].Kind. -+// Providing a [MapKey] or [Value] that is invalid or of an incorrect type panics. - type Map interface { - // Len reports the number of elements in the map. - Len() int -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -index 59165254..654599d4 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go -@@ -24,19 +24,19 @@ import ( - // Unlike the == operator, a NaN is equal to another NaN. - // - // - Enums are equal if they contain the same number. --// Since Value does not contain an enum descriptor, -+// Since [Value] does not contain an enum descriptor, - // enum values do not consider the type of the enum. - // - // - Other scalar values are equal if they contain the same value. - // --// - Message values are equal if they belong to the same message descriptor, -+// - [Message] values are equal if they belong to the same message descriptor, - // have the same set of populated known and extension field values, - // and the same set of unknown fields values. - // --// - Lists are equal if they are the same length and -+// - [List] values are equal if they are the same length and - // each corresponding element is equal. - // --// - Maps are equal if they have the same set of keys and -+// - [Map] values are equal if they have the same set of keys and - // the corresponding value for each key is equal. - func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -index 08e5ef73..16030973 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go -@@ -11,7 +11,7 @@ import ( - - // Value is a union where only one Go type may be set at a time. - // The Value is used to represent all possible values a field may take. --// The following shows which Go type is used to represent each proto Kind: -+// The following shows which Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -31,22 +31,22 @@ import ( - // - // Multiple protobuf Kinds may be represented by a single Go type if the type - // can losslessly represent the information for the proto kind. For example, --// Int64Kind, Sint64Kind, and Sfixed64Kind are all represented by int64, -+// [Int64Kind], [Sint64Kind], and [Sfixed64Kind] are all represented by int64, - // but use different integer encoding methods. - // --// The List or Map types are used if the field cardinality is repeated. --// A field is a List if FieldDescriptor.IsList reports true. --// A field is a Map if FieldDescriptor.IsMap reports true. -+// The [List] or [Map] types are used if the field cardinality is repeated. -+// A field is a [List] if [FieldDescriptor.IsList] reports true. -+// A field is a [Map] if [FieldDescriptor.IsMap] reports true. - // - // Converting to/from a Value and a concrete Go value panics on type mismatch. --// For example, ValueOf("hello").Int() panics because this attempts to -+// For example, [ValueOf]("hello").Int() panics because this attempts to - // retrieve an int64 from a string. - // --// List, Map, and Message Values are called "composite" values. -+// [List], [Map], and [Message] Values are called "composite" values. - // - // A composite Value may alias (reference) memory at some location, - // such that changes to the Value updates the that location. --// A composite value acquired with a Mutable method, such as Message.Mutable, -+// A composite value acquired with a Mutable method, such as [Message.Mutable], - // always references the source object. - // - // For example: -@@ -65,7 +65,7 @@ import ( - // // appending to the List here may or may not modify the message. - // list.Append(protoreflect.ValueOfInt32(0)) - // --// Some operations, such as Message.Get, may return an "empty, read-only" -+// Some operations, such as [Message.Get], may return an "empty, read-only" - // composite Value. Modifying an empty, read-only value panics. - type Value value - -@@ -306,7 +306,7 @@ func (v Value) Float() float64 { - } - } - --// String returns v as a string. Since this method implements fmt.Stringer, -+// String returns v as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (v Value) String() string { - switch v.typ { -@@ -327,7 +327,7 @@ func (v Value) Bytes() []byte { - } - } - --// Enum returns v as a EnumNumber and panics if the type is not a EnumNumber. -+// Enum returns v as a [EnumNumber] and panics if the type is not a [EnumNumber]. - func (v Value) Enum() EnumNumber { - switch v.typ { - case enumType: -@@ -337,7 +337,7 @@ func (v Value) Enum() EnumNumber { - } - } - --// Message returns v as a Message and panics if the type is not a Message. -+// Message returns v as a [Message] and panics if the type is not a [Message]. - func (v Value) Message() Message { - switch vi := v.getIface().(type) { - case Message: -@@ -347,7 +347,7 @@ func (v Value) Message() Message { - } - } - --// List returns v as a List and panics if the type is not a List. -+// List returns v as a [List] and panics if the type is not a [List]. - func (v Value) List() List { - switch vi := v.getIface().(type) { - case List: -@@ -357,7 +357,7 @@ func (v Value) List() List { - } - } - --// Map returns v as a Map and panics if the type is not a Map. -+// Map returns v as a [Map] and panics if the type is not a [Map]. - func (v Value) Map() Map { - switch vi := v.getIface().(type) { - case Map: -@@ -367,7 +367,7 @@ func (v Value) Map() Map { - } - } - --// MapKey returns v as a MapKey and panics for invalid MapKey types. -+// MapKey returns v as a [MapKey] and panics for invalid [MapKey] types. - func (v Value) MapKey() MapKey { - switch v.typ { - case boolType, int32Type, int64Type, uint32Type, uint64Type, stringType: -@@ -378,8 +378,8 @@ func (v Value) MapKey() MapKey { - } - - // MapKey is used to index maps, where the Go type of the MapKey must match --// the specified key Kind (see MessageDescriptor.IsMapEntry). --// The following shows what Go type is used to represent each proto Kind: -+// the specified key [Kind] (see [MessageDescriptor.IsMapEntry]). -+// The following shows what Go type is used to represent each proto [Kind]: - // - // â•”â•â•â•â•â•â•â•â•â•â•¤â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•— - // â•‘ Go type │ Protobuf kind â•‘ -@@ -392,13 +392,13 @@ func (v Value) MapKey() MapKey { - // â•‘ string │ StringKind â•‘ - // â•šâ•â•â•â•â•â•â•â•â•â•§â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• - // --// A MapKey is constructed and accessed through a Value: -+// A MapKey is constructed and accessed through a [Value]: - // - // k := ValueOf("hash").MapKey() // convert string to MapKey - // s := k.String() // convert MapKey to string - // --// The MapKey is a strict subset of valid types used in Value; --// converting a Value to a MapKey with an invalid type panics. -+// The MapKey is a strict subset of valid types used in [Value]; -+// converting a [Value] to a MapKey with an invalid type panics. - type MapKey value - - // IsValid reports whether k is populated with a value. -@@ -426,13 +426,13 @@ func (k MapKey) Uint() uint64 { - return Value(k).Uint() - } - --// String returns k as a string. Since this method implements fmt.Stringer, -+// String returns k as a string. Since this method implements [fmt.Stringer], - // this returns the formatted string value for any non-string type. - func (k MapKey) String() string { - return Value(k).String() - } - --// Value returns k as a Value. -+// Value returns k as a [Value]. - func (k MapKey) Value() Value { - return Value(k) - } -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -similarity index 97% -rename from vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -rename to vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -index 702ddf22..b1fdbe3e 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go -@@ -2,8 +2,8 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build !purego && !appengine --// +build !purego,!appengine -+//go:build !purego && !appengine && !go1.21 -+// +build !purego,!appengine,!go1.21 - - package protoreflect - -diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -new file mode 100644 -index 00000000..43547011 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go121.go -@@ -0,0 +1,87 @@ -+// Copyright 2018 The Go Authors. All rights reserved. -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file. -+ -+//go:build !purego && !appengine && go1.21 -+// +build !purego,!appengine,go1.21 -+ -+package protoreflect -+ -+import ( -+ "unsafe" -+ -+ "google.golang.org/protobuf/internal/pragma" -+) -+ -+type ( -+ ifaceHeader struct { -+ _ [0]interface{} // if interfaces have greater alignment than unsafe.Pointer, this will enforce it. -+ Type unsafe.Pointer -+ Data unsafe.Pointer -+ } -+) -+ -+var ( -+ nilType = typeOf(nil) -+ boolType = typeOf(*new(bool)) -+ int32Type = typeOf(*new(int32)) -+ int64Type = typeOf(*new(int64)) -+ uint32Type = typeOf(*new(uint32)) -+ uint64Type = typeOf(*new(uint64)) -+ float32Type = typeOf(*new(float32)) -+ float64Type = typeOf(*new(float64)) -+ stringType = typeOf(*new(string)) -+ bytesType = typeOf(*new([]byte)) -+ enumType = typeOf(*new(EnumNumber)) -+) -+ -+// typeOf returns a pointer to the Go type information. -+// The pointer is comparable and equal if and only if the types are identical. -+func typeOf(t interface{}) unsafe.Pointer { -+ return (*ifaceHeader)(unsafe.Pointer(&t)).Type -+} -+ -+// value is a union where only one type can be represented at a time. -+// The struct is 24B large on 64-bit systems and requires the minimum storage -+// necessary to represent each possible type. -+// -+// The Go GC needs to be able to scan variables containing pointers. -+// As such, pointers and non-pointers cannot be intermixed. -+type value struct { -+ pragma.DoNotCompare // 0B -+ -+ // typ stores the type of the value as a pointer to the Go type. -+ typ unsafe.Pointer // 8B -+ -+ // ptr stores the data pointer for a String, Bytes, or interface value. -+ ptr unsafe.Pointer // 8B -+ -+ // num stores a Bool, Int32, Int64, Uint32, Uint64, Float32, Float64, or -+ // Enum value as a raw uint64. -+ // -+ // It is also used to store the length of a String or Bytes value; -+ // the capacity is ignored. -+ num uint64 // 8B -+} -+ -+func valueOfString(v string) Value { -+ return Value{typ: stringType, ptr: unsafe.Pointer(unsafe.StringData(v)), num: uint64(len(v))} -+} -+func valueOfBytes(v []byte) Value { -+ return Value{typ: bytesType, ptr: unsafe.Pointer(unsafe.SliceData(v)), num: uint64(len(v))} -+} -+func valueOfIface(v interface{}) Value { -+ p := (*ifaceHeader)(unsafe.Pointer(&v)) -+ return Value{typ: p.Type, ptr: p.Data} -+} -+ -+func (v Value) getString() string { -+ return unsafe.String((*byte)(v.ptr), v.num) -+} -+func (v Value) getBytes() []byte { -+ return unsafe.Slice((*byte)(v.ptr), v.num) -+} -+func (v Value) getIface() (x interface{}) { -+ *(*ifaceHeader)(unsafe.Pointer(&x)) = ifaceHeader{Type: v.typ, Data: v.ptr} -+ return x -+} -diff --git a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -index aeb55977..6267dc52 100644 ---- a/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -+++ b/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go -@@ -5,12 +5,12 @@ - // Package protoregistry provides data structures to register and lookup - // protobuf descriptor types. - // --// The Files registry contains file descriptors and provides the ability -+// The [Files] registry contains file descriptors and provides the ability - // to iterate over the files or lookup a specific descriptor within the files. --// Files only contains protobuf descriptors and has no understanding of Go -+// [Files] only contains protobuf descriptors and has no understanding of Go - // type information that may be associated with each descriptor. - // --// The Types registry contains descriptor types for which there is a known -+// The [Types] registry contains descriptor types for which there is a known - // Go type associated with that descriptor. It provides the ability to iterate - // over the registered types or lookup a type by name. - package protoregistry -@@ -218,7 +218,7 @@ func (r *Files) checkGenProtoConflict(path string) { - - // FindDescriptorByName looks up a descriptor by the full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Files) FindDescriptorByName(name protoreflect.FullName) (protoreflect.Descriptor, error) { - if r == nil { - return nil, NotFound -@@ -310,7 +310,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { - - // FindFileByPath looks up a file by the path. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - // This returns an error if multiple files have the same path. - func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { - if r == nil { -@@ -431,7 +431,7 @@ func rangeTopLevelDescriptors(fd protoreflect.FileDescriptor, f func(protoreflec - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type MessageTypeResolver interface { - // FindMessageByName looks up a message by its full name. - // E.g., "google.protobuf.Any" -@@ -451,7 +451,7 @@ type MessageTypeResolver interface { - // A compliant implementation must deterministically return the same type - // if no error is encountered. - // --// The Types type implements this interface. -+// The [Types] type implements this interface. - type ExtensionTypeResolver interface { - // FindExtensionByName looks up a extension field by the field's full name. - // Note that this is the full name of the field as determined by -@@ -590,7 +590,7 @@ func (r *Types) register(kind string, desc protoreflect.Descriptor, typ interfac - // FindEnumByName looks up an enum by its full name. - // E.g., "google.protobuf.Field.Kind". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumType, error) { - if r == nil { - return nil, NotFound -@@ -611,7 +611,7 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp - // FindMessageByName looks up a message by its full name, - // e.g. "google.protobuf.Any". - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - if r == nil { - return nil, NotFound -@@ -632,7 +632,7 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M - // FindMessageByURL looks up a message by a URL identifier. - // See documentation on google.protobuf.Any.type_url for the URL format. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // This function is similar to FindMessageByName but - // truncates anything before and including '/' in the URL. -@@ -662,7 +662,7 @@ func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { - // where the extension is declared and is unrelated to the full name of the - // message being extended. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -@@ -703,7 +703,7 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E - // FindExtensionByNumber looks up a extension field by the field number - // within some parent message, identified by full name. - // --// This returns (nil, NotFound) if not found. -+// This returns (nil, [NotFound]) if not found. - func (r *Types) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { - if r == nil { - return nil, NotFound -diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -index 04c00f73..78624cf6 100644 ---- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go -@@ -48,6 +48,103 @@ import ( - sync "sync" - ) - -+// The full set of known editions. -+type Edition int32 -+ -+const ( -+ // A placeholder for an unknown edition value. -+ Edition_EDITION_UNKNOWN Edition = 0 -+ // Legacy syntax "editions". These pre-date editions, but behave much like -+ // distinct editions. These can't be used to specify the edition of proto -+ // files, but feature definitions must supply proto2/proto3 defaults for -+ // backwards compatibility. -+ Edition_EDITION_PROTO2 Edition = 998 -+ Edition_EDITION_PROTO3 Edition = 999 -+ // Editions that have been released. The specific values are arbitrary and -+ // should not be depended on, but they will always be time-ordered for easy -+ // comparison. -+ Edition_EDITION_2023 Edition = 1000 -+ Edition_EDITION_2024 Edition = 1001 -+ // Placeholder editions for testing feature resolution. These should not be -+ // used or relyed on outside of tests. -+ Edition_EDITION_1_TEST_ONLY Edition = 1 -+ Edition_EDITION_2_TEST_ONLY Edition = 2 -+ Edition_EDITION_99997_TEST_ONLY Edition = 99997 -+ Edition_EDITION_99998_TEST_ONLY Edition = 99998 -+ Edition_EDITION_99999_TEST_ONLY Edition = 99999 -+ // Placeholder for specifying unbounded edition support. This should only -+ // ever be used by plugins that can expect to never require any changes to -+ // support a new edition. -+ Edition_EDITION_MAX Edition = 2147483647 -+) -+ -+// Enum value maps for Edition. -+var ( -+ Edition_name = map[int32]string{ -+ 0: "EDITION_UNKNOWN", -+ 998: "EDITION_PROTO2", -+ 999: "EDITION_PROTO3", -+ 1000: "EDITION_2023", -+ 1001: "EDITION_2024", -+ 1: "EDITION_1_TEST_ONLY", -+ 2: "EDITION_2_TEST_ONLY", -+ 99997: "EDITION_99997_TEST_ONLY", -+ 99998: "EDITION_99998_TEST_ONLY", -+ 99999: "EDITION_99999_TEST_ONLY", -+ 2147483647: "EDITION_MAX", -+ } -+ Edition_value = map[string]int32{ -+ "EDITION_UNKNOWN": 0, -+ "EDITION_PROTO2": 998, -+ "EDITION_PROTO3": 999, -+ "EDITION_2023": 1000, -+ "EDITION_2024": 1001, -+ "EDITION_1_TEST_ONLY": 1, -+ "EDITION_2_TEST_ONLY": 2, -+ "EDITION_99997_TEST_ONLY": 99997, -+ "EDITION_99998_TEST_ONLY": 99998, -+ "EDITION_99999_TEST_ONLY": 99999, -+ "EDITION_MAX": 2147483647, -+ } -+) -+ -+func (x Edition) Enum() *Edition { -+ p := new(Edition) -+ *p = x -+ return p -+} -+ -+func (x Edition) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (Edition) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+} -+ -+func (Edition) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[0] -+} -+ -+func (x Edition) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *Edition) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = Edition(num) -+ return nil -+} -+ -+// Deprecated: Use Edition.Descriptor instead. -+func (Edition) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} -+} -+ - // The verification state of the extension range. - type ExtensionRangeOptions_VerificationState int32 - -@@ -80,11 +177,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string { - } - - func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() - } - - func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[0] -+ return &file_google_protobuf_descriptor_proto_enumTypes[1] - } - - func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber { -@@ -125,9 +222,10 @@ const ( - FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 - FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 - // Tag-delimited aggregate. -- // Group type is deprecated and not supported in proto3. However, Proto3 -+ // Group type is deprecated and not supported after google.protobuf. However, Proto3 - // implementations should still be able to parse the group wire format and -- // treat group fields as unknown fields. -+ // treat group fields as unknown fields. In Editions, the group wire format -+ // can be enabled via the `message_encoding` feature. - FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 - FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. - // New in version 2. -@@ -195,11 +293,11 @@ func (x FieldDescriptorProto_Type) String() string { - } - - func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() - } - - func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[1] -+ return &file_google_protobuf_descriptor_proto_enumTypes[2] - } - - func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { -@@ -226,21 +324,24 @@ type FieldDescriptorProto_Label int32 - const ( - // 0 is reserved for errors - FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 -- FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 -+ // The required label is only allowed in google.protobuf. In proto3 and Editions -+ // it's explicitly prohibited. In Editions, the `field_presence` feature -+ // can be used to get this behavior. -+ FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 - ) - - // Enum value maps for FieldDescriptorProto_Label. - var ( - FieldDescriptorProto_Label_name = map[int32]string{ - 1: "LABEL_OPTIONAL", -- 2: "LABEL_REQUIRED", - 3: "LABEL_REPEATED", -+ 2: "LABEL_REQUIRED", - } - FieldDescriptorProto_Label_value = map[string]int32{ - "LABEL_OPTIONAL": 1, -- "LABEL_REQUIRED": 2, - "LABEL_REPEATED": 3, -+ "LABEL_REQUIRED": 2, - } - ) - -@@ -255,11 +356,11 @@ func (x FieldDescriptorProto_Label) String() string { - } - - func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() - } - - func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[2] -+ return &file_google_protobuf_descriptor_proto_enumTypes[3] - } - - func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { -@@ -316,11 +417,11 @@ func (x FileOptions_OptimizeMode) String() string { - } - - func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() - } - - func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[3] -+ return &file_google_protobuf_descriptor_proto_enumTypes[4] - } - - func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { -@@ -382,11 +483,11 @@ func (x FieldOptions_CType) String() string { - } - - func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() - } - - func (FieldOptions_CType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[4] -+ return &file_google_protobuf_descriptor_proto_enumTypes[5] - } - - func (x FieldOptions_CType) Number() protoreflect.EnumNumber { -@@ -444,11 +545,11 @@ func (x FieldOptions_JSType) String() string { - } - - func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() - } - - func (FieldOptions_JSType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[5] -+ return &file_google_protobuf_descriptor_proto_enumTypes[6] - } - - func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { -@@ -506,11 +607,11 @@ func (x FieldOptions_OptionRetention) String() string { - } - - func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() - } - - func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[6] -+ return &file_google_protobuf_descriptor_proto_enumTypes[7] - } - - func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { -@@ -590,11 +691,11 @@ func (x FieldOptions_OptionTargetType) String() string { - } - - func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() - } - - func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[7] -+ return &file_google_protobuf_descriptor_proto_enumTypes[8] - } - - func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { -@@ -652,11 +753,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { - } - - func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() - } - - func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[8] -+ return &file_google_protobuf_descriptor_proto_enumTypes[9] - } - - func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { -@@ -678,6 +779,363 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} - } - -+type FeatureSet_FieldPresence int32 -+ -+const ( -+ FeatureSet_FIELD_PRESENCE_UNKNOWN FeatureSet_FieldPresence = 0 -+ FeatureSet_EXPLICIT FeatureSet_FieldPresence = 1 -+ FeatureSet_IMPLICIT FeatureSet_FieldPresence = 2 -+ FeatureSet_LEGACY_REQUIRED FeatureSet_FieldPresence = 3 -+) -+ -+// Enum value maps for FeatureSet_FieldPresence. -+var ( -+ FeatureSet_FieldPresence_name = map[int32]string{ -+ 0: "FIELD_PRESENCE_UNKNOWN", -+ 1: "EXPLICIT", -+ 2: "IMPLICIT", -+ 3: "LEGACY_REQUIRED", -+ } -+ FeatureSet_FieldPresence_value = map[string]int32{ -+ "FIELD_PRESENCE_UNKNOWN": 0, -+ "EXPLICIT": 1, -+ "IMPLICIT": 2, -+ "LEGACY_REQUIRED": 3, -+ } -+) -+ -+func (x FeatureSet_FieldPresence) Enum() *FeatureSet_FieldPresence { -+ p := new(FeatureSet_FieldPresence) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_FieldPresence) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor() -+} -+ -+func (FeatureSet_FieldPresence) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[10] -+} -+ -+func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_FieldPresence) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_FieldPresence(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_FieldPresence.Descriptor instead. -+func (FeatureSet_FieldPresence) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+} -+ -+type FeatureSet_EnumType int32 -+ -+const ( -+ FeatureSet_ENUM_TYPE_UNKNOWN FeatureSet_EnumType = 0 -+ FeatureSet_OPEN FeatureSet_EnumType = 1 -+ FeatureSet_CLOSED FeatureSet_EnumType = 2 -+) -+ -+// Enum value maps for FeatureSet_EnumType. -+var ( -+ FeatureSet_EnumType_name = map[int32]string{ -+ 0: "ENUM_TYPE_UNKNOWN", -+ 1: "OPEN", -+ 2: "CLOSED", -+ } -+ FeatureSet_EnumType_value = map[string]int32{ -+ "ENUM_TYPE_UNKNOWN": 0, -+ "OPEN": 1, -+ "CLOSED": 2, -+ } -+) -+ -+func (x FeatureSet_EnumType) Enum() *FeatureSet_EnumType { -+ p := new(FeatureSet_EnumType) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_EnumType) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor() -+} -+ -+func (FeatureSet_EnumType) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[11] -+} -+ -+func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_EnumType) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_EnumType(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_EnumType.Descriptor instead. -+func (FeatureSet_EnumType) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 1} -+} -+ -+type FeatureSet_RepeatedFieldEncoding int32 -+ -+const ( -+ FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN FeatureSet_RepeatedFieldEncoding = 0 -+ FeatureSet_PACKED FeatureSet_RepeatedFieldEncoding = 1 -+ FeatureSet_EXPANDED FeatureSet_RepeatedFieldEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_RepeatedFieldEncoding. -+var ( -+ FeatureSet_RepeatedFieldEncoding_name = map[int32]string{ -+ 0: "REPEATED_FIELD_ENCODING_UNKNOWN", -+ 1: "PACKED", -+ 2: "EXPANDED", -+ } -+ FeatureSet_RepeatedFieldEncoding_value = map[string]int32{ -+ "REPEATED_FIELD_ENCODING_UNKNOWN": 0, -+ "PACKED": 1, -+ "EXPANDED": 2, -+ } -+) -+ -+func (x FeatureSet_RepeatedFieldEncoding) Enum() *FeatureSet_RepeatedFieldEncoding { -+ p := new(FeatureSet_RepeatedFieldEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor() -+} -+ -+func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[12] -+} -+ -+func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_RepeatedFieldEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_RepeatedFieldEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_RepeatedFieldEncoding.Descriptor instead. -+func (FeatureSet_RepeatedFieldEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 2} -+} -+ -+type FeatureSet_Utf8Validation int32 -+ -+const ( -+ FeatureSet_UTF8_VALIDATION_UNKNOWN FeatureSet_Utf8Validation = 0 -+ FeatureSet_VERIFY FeatureSet_Utf8Validation = 2 -+ FeatureSet_NONE FeatureSet_Utf8Validation = 3 -+) -+ -+// Enum value maps for FeatureSet_Utf8Validation. -+var ( -+ FeatureSet_Utf8Validation_name = map[int32]string{ -+ 0: "UTF8_VALIDATION_UNKNOWN", -+ 2: "VERIFY", -+ 3: "NONE", -+ } -+ FeatureSet_Utf8Validation_value = map[string]int32{ -+ "UTF8_VALIDATION_UNKNOWN": 0, -+ "VERIFY": 2, -+ "NONE": 3, -+ } -+) -+ -+func (x FeatureSet_Utf8Validation) Enum() *FeatureSet_Utf8Validation { -+ p := new(FeatureSet_Utf8Validation) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_Utf8Validation) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor() -+} -+ -+func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[13] -+} -+ -+func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_Utf8Validation) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_Utf8Validation(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_Utf8Validation.Descriptor instead. -+func (FeatureSet_Utf8Validation) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 3} -+} -+ -+type FeatureSet_MessageEncoding int32 -+ -+const ( -+ FeatureSet_MESSAGE_ENCODING_UNKNOWN FeatureSet_MessageEncoding = 0 -+ FeatureSet_LENGTH_PREFIXED FeatureSet_MessageEncoding = 1 -+ FeatureSet_DELIMITED FeatureSet_MessageEncoding = 2 -+) -+ -+// Enum value maps for FeatureSet_MessageEncoding. -+var ( -+ FeatureSet_MessageEncoding_name = map[int32]string{ -+ 0: "MESSAGE_ENCODING_UNKNOWN", -+ 1: "LENGTH_PREFIXED", -+ 2: "DELIMITED", -+ } -+ FeatureSet_MessageEncoding_value = map[string]int32{ -+ "MESSAGE_ENCODING_UNKNOWN": 0, -+ "LENGTH_PREFIXED": 1, -+ "DELIMITED": 2, -+ } -+) -+ -+func (x FeatureSet_MessageEncoding) Enum() *FeatureSet_MessageEncoding { -+ p := new(FeatureSet_MessageEncoding) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_MessageEncoding) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor() -+} -+ -+func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[14] -+} -+ -+func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_MessageEncoding) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_MessageEncoding(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_MessageEncoding.Descriptor instead. -+func (FeatureSet_MessageEncoding) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 4} -+} -+ -+type FeatureSet_JsonFormat int32 -+ -+const ( -+ FeatureSet_JSON_FORMAT_UNKNOWN FeatureSet_JsonFormat = 0 -+ FeatureSet_ALLOW FeatureSet_JsonFormat = 1 -+ FeatureSet_LEGACY_BEST_EFFORT FeatureSet_JsonFormat = 2 -+) -+ -+// Enum value maps for FeatureSet_JsonFormat. -+var ( -+ FeatureSet_JsonFormat_name = map[int32]string{ -+ 0: "JSON_FORMAT_UNKNOWN", -+ 1: "ALLOW", -+ 2: "LEGACY_BEST_EFFORT", -+ } -+ FeatureSet_JsonFormat_value = map[string]int32{ -+ "JSON_FORMAT_UNKNOWN": 0, -+ "ALLOW": 1, -+ "LEGACY_BEST_EFFORT": 2, -+ } -+) -+ -+func (x FeatureSet_JsonFormat) Enum() *FeatureSet_JsonFormat { -+ p := new(FeatureSet_JsonFormat) -+ *p = x -+ return p -+} -+ -+func (x FeatureSet_JsonFormat) String() string { -+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -+} -+ -+func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor { -+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor() -+} -+ -+func (FeatureSet_JsonFormat) Type() protoreflect.EnumType { -+ return &file_google_protobuf_descriptor_proto_enumTypes[15] -+} -+ -+func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber { -+ return protoreflect.EnumNumber(x) -+} -+ -+// Deprecated: Do not use. -+func (x *FeatureSet_JsonFormat) UnmarshalJSON(b []byte) error { -+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) -+ if err != nil { -+ return err -+ } -+ *x = FeatureSet_JsonFormat(num) -+ return nil -+} -+ -+// Deprecated: Use FeatureSet_JsonFormat.Descriptor instead. -+func (FeatureSet_JsonFormat) EnumDescriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 5} -+} -+ - // Represents the identified object's effect on the element in the original - // .proto file. - type GeneratedCodeInfo_Annotation_Semantic int32 -@@ -716,11 +1174,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - } - - func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { -- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor() -+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor() - } - - func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { -- return &file_google_protobuf_descriptor_proto_enumTypes[9] -+ return &file_google_protobuf_descriptor_proto_enumTypes[16] - } - - func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { -@@ -739,7 +1197,7 @@ func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - - // Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. - func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0, 0} - } - - // The protocol compiler can output a FileDescriptorSet containing the .proto -@@ -822,8 +1280,8 @@ type FileDescriptorProto struct { - // - // If `edition` is present, this value must be "editions". - Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` -- // The edition of the proto file, which is an opaque string. -- Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` -+ // The edition of the proto file. -+ Edition *Edition `protobuf:"varint,14,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` - } - - func (x *FileDescriptorProto) Reset() { -@@ -942,11 +1400,11 @@ func (x *FileDescriptorProto) GetSyntax() string { - return "" - } - --func (x *FileDescriptorProto) GetEdition() string { -+func (x *FileDescriptorProto) GetEdition() Edition { - if x != nil && x.Edition != nil { - return *x.Edition - } -- return "" -+ return Edition_EDITION_UNKNOWN - } - - // Describes a message type. -@@ -1079,13 +1537,14 @@ type ExtensionRangeOptions struct { - - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -- // go/protobuf-stripping-extension-declarations -- // Like Metadata, but we use a repeated field to hold all extension -- // declarations. This should avoid the size increases of transforming a large -- // extension range into small ranges in generated binaries. -+ // For external users: DO NOT USE. We are in the process of open sourcing -+ // extension declaration and executing internal cleanups before it can be -+ // used externally. - Declaration []*ExtensionRangeOptions_Declaration `protobuf:"bytes,2,rep,name=declaration" json:"declaration,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The verification state of the range. -- // TODO(b/278783756): flip the default to DECLARATION once all empty ranges -+ // TODO: flip the default to DECLARATION once all empty ranges - // are marked as UNVERIFIED. - Verification *ExtensionRangeOptions_VerificationState `protobuf:"varint,3,opt,name=verification,enum=google.protobuf.ExtensionRangeOptions_VerificationState,def=1" json:"verification,omitempty"` - } -@@ -1141,6 +1600,13 @@ func (x *ExtensionRangeOptions) GetDeclaration() []*ExtensionRangeOptions_Declar - return nil - } - -+func (x *ExtensionRangeOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ExtensionRangeOptions) GetVerification() ExtensionRangeOptions_VerificationState { - if x != nil && x.Verification != nil { - return *x.Verification -@@ -1186,12 +1652,12 @@ type FieldDescriptorProto struct { - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // -- // When proto3_optional is true, this field must be belong to a oneof to -- // signal to old proto3 clients that presence is tracked for this field. This -- // oneof is known as a "synthetic" oneof, and this field must be its sole -- // member (each proto3 optional field gets its own synthetic oneof). Synthetic -- // oneofs exist in the descriptor only, and do not generate any API. Synthetic -- // oneofs must be ordered after all "real" oneofs. -+ // When proto3_optional is true, this field must belong to a oneof to signal -+ // to old proto3 clients that presence is tracked for this field. This oneof -+ // is known as a "synthetic" oneof, and this field must be its sole member -+ // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs -+ // exist in the descriptor only, and do not generate any API. Synthetic oneofs -+ // must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still -@@ -1738,7 +2204,6 @@ type FileOptions struct { - CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` - JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` - PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` -- PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very -@@ -1772,6 +2237,8 @@ type FileOptions struct { - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,50,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` -@@ -1785,7 +2252,6 @@ const ( - Default_FileOptions_CcGenericServices = bool(false) - Default_FileOptions_JavaGenericServices = bool(false) - Default_FileOptions_PyGenericServices = bool(false) -- Default_FileOptions_PhpGenericServices = bool(false) - Default_FileOptions_Deprecated = bool(false) - Default_FileOptions_CcEnableArenas = bool(true) - ) -@@ -1893,13 +2359,6 @@ func (x *FileOptions) GetPyGenericServices() bool { - return Default_FileOptions_PyGenericServices - } - --func (x *FileOptions) GetPhpGenericServices() bool { -- if x != nil && x.PhpGenericServices != nil { -- return *x.PhpGenericServices -- } -- return Default_FileOptions_PhpGenericServices --} -- - func (x *FileOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -1963,6 +2422,13 @@ func (x *FileOptions) GetRubyPackage() string { - return "" - } - -+func (x *FileOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2006,10 +2472,6 @@ type MessageOptions struct { - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -- // NOTE: Do not set the option in .proto files. Always use the maps syntax -- // instead. The option should only be implicitly set by the proto compiler -- // parser. -- // - // Whether the message is an automatically generated map entry type for the - // maps field. - // -@@ -2030,6 +2492,10 @@ type MessageOptions struct { - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. -+ // -+ // NOTE: Do not set the option in .proto files. Always use the maps syntax -+ // instead. The option should only be implicitly set by the proto compiler -+ // parser. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. -@@ -2039,11 +2505,13 @@ type MessageOptions struct { - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. - // -- // TODO(b/261750190) This is legacy behavior we plan to remove once downstream -+ // TODO This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,12,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2123,6 +2591,13 @@ func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *MessageOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2147,7 +2622,9 @@ type FieldOptions struct { - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to -- // false will avoid using packed encoding. -+ // false will avoid using packed encoding. This option is prohibited in -+ // Editions, but the `repeated_field_encoding` feature can be used to control -+ // the behavior. - Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types -@@ -2178,19 +2655,11 @@ type FieldOptions struct { - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // -- // Note that implementations may choose not to check required fields within -- // a lazy sub-message. That is, calling IsInitialized() on the outer message -- // may return true even if the inner message has missing required fields. -- // This is necessary because otherwise the inner message would have to be -- // parsed in order to perform the check, defeating the purpose of lazy -- // parsing. An implementation which chooses not to check required fields -- // must be consistent about it. That is, for any particular sub-message, the -- // implementation must either *always* check its required fields, or *never* -- // check its required fields, regardless of whether or not the message has -- // been parsed. -- // -- // As of May 2022, lazy verifies the contents of the byte stream during -- // parsing. An invalid byte stream will cause the overall parsing to fail. -+ // Note that lazy message fields are still eagerly verified to check -+ // ill-formed wireformat or missing required fields. Calling IsInitialized() -+ // on the outer message would fail if the inner message has missing required -+ // fields. Failed verification would result in parsing failure (except when -+ // uninitialized messages are acceptable). - Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance -@@ -2205,11 +2674,12 @@ type FieldOptions struct { - Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. -- DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -- Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` -- Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` -+ Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` -+ Targets []FieldOptions_OptionTargetType `protobuf:"varint,19,rep,name=targets,enum=google.protobuf.FieldOptions_OptionTargetType" json:"targets,omitempty"` -+ EditionDefaults []*FieldOptions_EditionDefault `protobuf:"bytes,20,rep,name=edition_defaults,json=editionDefaults" json:"edition_defaults,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,21,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2320,17 +2790,23 @@ func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - return FieldOptions_RETENTION_UNKNOWN - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { -- if x != nil && x.Target != nil { -- return *x.Target -+func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+ if x != nil { -+ return x.Targets - } -- return FieldOptions_TARGET_TYPE_UNKNOWN -+ return nil - } - --func (x *FieldOptions) GetTargets() []FieldOptions_OptionTargetType { -+func (x *FieldOptions) GetEditionDefaults() []*FieldOptions_EditionDefault { - if x != nil { -- return x.Targets -+ return x.EditionDefaults -+ } -+ return nil -+} -+ -+func (x *FieldOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features - } - return nil - } -@@ -2348,6 +2824,8 @@ type OneofOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,1,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2384,6 +2862,13 @@ func (*OneofOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} - } - -+func (x *OneofOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2409,11 +2894,13 @@ type EnumOptions struct { - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. -- // TODO(b/261750190) Remove this legacy behavior once downstream teams have -+ // TODO Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,7,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2477,6 +2964,13 @@ func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - return false - } - -+func (x *EnumOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2495,13 +2989,20 @@ type EnumValueOptions struct { - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+ // Indicate that fields annotated with this enum value should not be printed -+ // out when using debug formats, e.g. when the field contains sensitive -+ // credentials. -+ DebugRedact *bool `protobuf:"varint,3,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } - - // Default values for EnumValueOptions fields. - const ( -- Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_Deprecated = bool(false) -+ Default_EnumValueOptions_DebugRedact = bool(false) - ) - - func (x *EnumValueOptions) Reset() { -@@ -2543,6 +3044,20 @@ func (x *EnumValueOptions) GetDeprecated() bool { - return Default_EnumValueOptions_Deprecated - } - -+func (x *EnumValueOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ -+func (x *EnumValueOptions) GetDebugRedact() bool { -+ if x != nil && x.DebugRedact != nil { -+ return *x.DebugRedact -+ } -+ return Default_EnumValueOptions_DebugRedact -+} -+ - func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2556,6 +3071,8 @@ type ServiceOptions struct { - unknownFields protoimpl.UnknownFields - extensionFields protoimpl.ExtensionFields - -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,34,opt,name=features" json:"features,omitempty"` - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, -@@ -2602,6 +3119,13 @@ func (*ServiceOptions) Descriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} - } - -+func (x *ServiceOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *ServiceOptions) GetDeprecated() bool { - if x != nil && x.Deprecated != nil { - return *x.Deprecated -@@ -2628,6 +3152,8 @@ type MethodOptions struct { - // this is a formalization for deprecating methods. - Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` -+ // Any features defined in the specific edition. -+ Features *FeatureSet `protobuf:"bytes,35,opt,name=features" json:"features,omitempty"` - // The parser stores options it doesn't recognize here. See above. - UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` - } -@@ -2684,6 +3210,13 @@ func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { - return Default_MethodOptions_IdempotencyLevel - } - -+func (x *MethodOptions) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { - if x != nil { - return x.UninterpretedOption -@@ -2770,28 +3303,193 @@ func (x *UninterpretedOption) GetNegativeIntValue() int64 { - if x != nil && x.NegativeIntValue != nil { - return *x.NegativeIntValue - } -- return 0 -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetDoubleValue() float64 { -+ if x != nil && x.DoubleValue != nil { -+ return *x.DoubleValue -+ } -+ return 0 -+} -+ -+func (x *UninterpretedOption) GetStringValue() []byte { -+ if x != nil { -+ return x.StringValue -+ } -+ return nil -+} -+ -+func (x *UninterpretedOption) GetAggregateValue() string { -+ if x != nil && x.AggregateValue != nil { -+ return *x.AggregateValue -+ } -+ return "" -+} -+ -+// TODO Enums in C++ gencode (and potentially other languages) are -+// not well scoped. This means that each of the feature enums below can clash -+// with each other. The short names we've chosen maximize call-site -+// readability, but leave us very open to this scenario. A future feature will -+// be designed and implemented to handle this, hopefully before we ever hit a -+// conflict here. -+type FeatureSet struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ extensionFields protoimpl.ExtensionFields -+ -+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"` -+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"` -+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"` -+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"` -+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"` -+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"` -+} -+ -+func (x *FeatureSet) Reset() { -+ *x = FeatureSet{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSet) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSet) ProtoMessage() {} -+ -+func (x *FeatureSet) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ 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 FeatureSet.ProtoReflect.Descriptor instead. -+func (*FeatureSet) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+} -+ -+func (x *FeatureSet) GetFieldPresence() FeatureSet_FieldPresence { -+ if x != nil && x.FieldPresence != nil { -+ return *x.FieldPresence -+ } -+ return FeatureSet_FIELD_PRESENCE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetEnumType() FeatureSet_EnumType { -+ if x != nil && x.EnumType != nil { -+ return *x.EnumType -+ } -+ return FeatureSet_ENUM_TYPE_UNKNOWN -+} -+ -+func (x *FeatureSet) GetRepeatedFieldEncoding() FeatureSet_RepeatedFieldEncoding { -+ if x != nil && x.RepeatedFieldEncoding != nil { -+ return *x.RepeatedFieldEncoding -+ } -+ return FeatureSet_REPEATED_FIELD_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetUtf8Validation() FeatureSet_Utf8Validation { -+ if x != nil && x.Utf8Validation != nil { -+ return *x.Utf8Validation -+ } -+ return FeatureSet_UTF8_VALIDATION_UNKNOWN -+} -+ -+func (x *FeatureSet) GetMessageEncoding() FeatureSet_MessageEncoding { -+ if x != nil && x.MessageEncoding != nil { -+ return *x.MessageEncoding -+ } -+ return FeatureSet_MESSAGE_ENCODING_UNKNOWN -+} -+ -+func (x *FeatureSet) GetJsonFormat() FeatureSet_JsonFormat { -+ if x != nil && x.JsonFormat != nil { -+ return *x.JsonFormat -+ } -+ return FeatureSet_JSON_FORMAT_UNKNOWN -+} -+ -+// A compiled specification for the defaults of a set of features. These -+// messages are generated from FeatureSet extensions and can be used to seed -+// feature resolution. The resolution with this object becomes a simple search -+// for the closest matching edition, followed by proto merges. -+type FeatureSetDefaults struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Defaults []*FeatureSetDefaults_FeatureSetEditionDefault `protobuf:"bytes,1,rep,name=defaults" json:"defaults,omitempty"` -+ // The minimum supported edition (inclusive) when this was constructed. -+ // Editions before this will not have defaults. -+ MinimumEdition *Edition `protobuf:"varint,4,opt,name=minimum_edition,json=minimumEdition,enum=google.protobuf.Edition" json:"minimum_edition,omitempty"` -+ // The maximum known edition (inclusive) when this was constructed. Editions -+ // after this will not have reliable defaults. -+ MaximumEdition *Edition `protobuf:"varint,5,opt,name=maximum_edition,json=maximumEdition,enum=google.protobuf.Edition" json:"maximum_edition,omitempty"` -+} -+ -+func (x *FeatureSetDefaults) Reset() { -+ *x = FeatureSetDefaults{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ 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) - } - --func (x *UninterpretedOption) GetDoubleValue() float64 { -- if x != nil && x.DoubleValue != nil { -- return *x.DoubleValue -- } -- return 0 -+// Deprecated: Use FeatureSetDefaults.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} - } - --func (x *UninterpretedOption) GetStringValue() []byte { -+func (x *FeatureSetDefaults) GetDefaults() []*FeatureSetDefaults_FeatureSetEditionDefault { - if x != nil { -- return x.StringValue -+ return x.Defaults - } - return nil - } - --func (x *UninterpretedOption) GetAggregateValue() string { -- if x != nil && x.AggregateValue != nil { -- return *x.AggregateValue -+func (x *FeatureSetDefaults) GetMinimumEdition() Edition { -+ if x != nil && x.MinimumEdition != nil { -+ return *x.MinimumEdition - } -- return "" -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults) GetMaximumEdition() Edition { -+ if x != nil && x.MaximumEdition != nil { -+ return *x.MaximumEdition -+ } -+ return Edition_EDITION_UNKNOWN - } - - // Encapsulates information about the original source file from which a -@@ -2855,7 +3553,7 @@ type SourceCodeInfo struct { - func (x *SourceCodeInfo) Reset() { - *x = SourceCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2868,7 +3566,7 @@ func (x *SourceCodeInfo) String() string { - func (*SourceCodeInfo) ProtoMessage() {} - - func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[19] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2881,7 +3579,7 @@ func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21} - } - - func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { -@@ -2907,7 +3605,7 @@ type GeneratedCodeInfo struct { - func (x *GeneratedCodeInfo) Reset() { - *x = GeneratedCodeInfo{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2920,7 +3618,7 @@ func (x *GeneratedCodeInfo) String() string { - func (*GeneratedCodeInfo) ProtoMessage() {} - - func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[20] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -2933,7 +3631,7 @@ func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22} - } - - func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { -@@ -2956,7 +3654,7 @@ type DescriptorProto_ExtensionRange struct { - func (x *DescriptorProto_ExtensionRange) Reset() { - *x = DescriptorProto_ExtensionRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -2969,7 +3667,7 @@ func (x *DescriptorProto_ExtensionRange) String() string { - func (*DescriptorProto_ExtensionRange) ProtoMessage() {} - - func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[21] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3021,7 +3719,7 @@ type DescriptorProto_ReservedRange struct { - func (x *DescriptorProto_ReservedRange) Reset() { - *x = DescriptorProto_ReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3034,7 +3732,7 @@ func (x *DescriptorProto_ReservedRange) String() string { - func (*DescriptorProto_ReservedRange) ProtoMessage() {} - - func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[22] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3078,10 +3776,6 @@ type ExtensionRangeOptions_Declaration struct { - // Metadata.type, Declaration.type must have a leading dot for messages - // and enums. - Type *string `protobuf:"bytes,3,opt,name=type" json:"type,omitempty"` -- // Deprecated. Please use "repeated". -- // -- // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -- IsRepeated *bool `protobuf:"varint,4,opt,name=is_repeated,json=isRepeated" json:"is_repeated,omitempty"` - // If true, indicates that the number is reserved in the extension range, - // and any extension field with the number will fail to compile. Set this - // when a declared extension field is deleted. -@@ -3094,7 +3788,7 @@ type ExtensionRangeOptions_Declaration struct { - func (x *ExtensionRangeOptions_Declaration) Reset() { - *x = ExtensionRangeOptions_Declaration{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3107,7 +3801,7 @@ func (x *ExtensionRangeOptions_Declaration) String() string { - func (*ExtensionRangeOptions_Declaration) ProtoMessage() {} - - func (x *ExtensionRangeOptions_Declaration) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[23] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3144,14 +3838,6 @@ func (x *ExtensionRangeOptions_Declaration) GetType() string { - return "" - } - --// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. --func (x *ExtensionRangeOptions_Declaration) GetIsRepeated() bool { -- if x != nil && x.IsRepeated != nil { -- return *x.IsRepeated -- } -- return false --} -- - func (x *ExtensionRangeOptions_Declaration) GetReserved() bool { - if x != nil && x.Reserved != nil { - return *x.Reserved -@@ -3184,7 +3870,7 @@ type EnumDescriptorProto_EnumReservedRange struct { - func (x *EnumDescriptorProto_EnumReservedRange) Reset() { - *x = EnumDescriptorProto_EnumReservedRange{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3197,7 +3883,7 @@ func (x *EnumDescriptorProto_EnumReservedRange) String() string { - func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} - - func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[24] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3227,6 +3913,61 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { - return 0 - } - -+type FieldOptions_EditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Value *string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` // Textproto value. -+} -+ -+func (x *FieldOptions_EditionDefault) Reset() { -+ *x = FieldOptions_EditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FieldOptions_EditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FieldOptions_EditionDefault) ProtoMessage() {} -+ -+func (x *FieldOptions_EditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ 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 FieldOptions_EditionDefault.ProtoReflect.Descriptor instead. -+func (*FieldOptions_EditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} -+} -+ -+func (x *FieldOptions_EditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FieldOptions_EditionDefault) GetValue() string { -+ if x != nil && x.Value != nil { -+ return *x.Value -+ } -+ return "" -+} -+ - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). -@@ -3244,7 +3985,7 @@ type UninterpretedOption_NamePart struct { - func (x *UninterpretedOption_NamePart) Reset() { - *x = UninterpretedOption_NamePart{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3257,7 +3998,7 @@ func (x *UninterpretedOption_NamePart) String() string { - func (*UninterpretedOption_NamePart) ProtoMessage() {} - - func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[25] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3287,6 +4028,65 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool { - return false - } - -+// A map from every known edition with a unique set of defaults to its -+// defaults. Not all editions may be contained here. For a given edition, -+// the defaults at the closest matching edition ordered at or before it should -+// be used. This field must be in strict ascending order by edition. -+type FeatureSetDefaults_FeatureSetEditionDefault struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ Edition *Edition `protobuf:"varint,3,opt,name=edition,enum=google.protobuf.Edition" json:"edition,omitempty"` -+ Features *FeatureSet `protobuf:"bytes,2,opt,name=features" json:"features,omitempty"` -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() { -+ *x = FeatureSetDefaults_FeatureSetEditionDefault{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message { -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[29] -+ 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 FeatureSetDefaults_FeatureSetEditionDefault.ProtoReflect.Descriptor instead. -+func (*FeatureSetDefaults_FeatureSetEditionDefault) Descriptor() ([]byte, []int) { -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetEdition() Edition { -+ if x != nil && x.Edition != nil { -+ return *x.Edition -+ } -+ return Edition_EDITION_UNKNOWN -+} -+ -+func (x *FeatureSetDefaults_FeatureSetEditionDefault) GetFeatures() *FeatureSet { -+ if x != nil { -+ return x.Features -+ } -+ return nil -+} -+ - type SourceCodeInfo_Location struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache -@@ -3296,7 +4096,7 @@ type SourceCodeInfo_Location struct { - // location. - // - // Each element is a field number or an index. They form a path from -- // the root FileDescriptorProto to the place where the definition occurs. -+ // the root FileDescriptorProto to the place where the definition appears. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] -@@ -3388,7 +4188,7 @@ type SourceCodeInfo_Location struct { - func (x *SourceCodeInfo_Location) Reset() { - *x = SourceCodeInfo_Location{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3401,7 +4201,7 @@ func (x *SourceCodeInfo_Location) String() string { - func (*SourceCodeInfo_Location) ProtoMessage() {} - - func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[26] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3414,7 +4214,7 @@ func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { - - // Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. - func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{21, 0} - } - - func (x *SourceCodeInfo_Location) GetPath() []int32 { -@@ -3475,7 +4275,7 @@ type GeneratedCodeInfo_Annotation struct { - func (x *GeneratedCodeInfo_Annotation) Reset() { - *x = GeneratedCodeInfo_Annotation{} - if protoimpl.UnsafeEnabled { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -@@ -3488,7 +4288,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string { - func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} - - func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { -- mi := &file_google_protobuf_descriptor_proto_msgTypes[27] -+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { -@@ -3501,7 +4301,7 @@ func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { - - // Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. - func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { -- return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} -+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{22, 0} - } - - func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { -@@ -3550,7 +4350,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, -- 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, -+ 0x6c, 0x65, 0x22, 0x98, 0x05, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -@@ -3588,250 +4388,250 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, -- 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -- 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -- 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, -- 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, -- 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -- 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, -- 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -- 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, -- 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, -- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -- 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, -- 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, -+ 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, -+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, -+ 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, -+ 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, -+ 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -+ 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, -+ 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, -- 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, -- 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, -- 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -- 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, -- 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, -- 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -- 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, -+ 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, -+ 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, -+ 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, -+ 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -+ 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, -+ 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, -+ 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, -+ 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -+ 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, -+ 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, -+ 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, -+ 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, -+ 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -+ 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -+ 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, -+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, -+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xcc, 0x04, 0x0a, 0x15, 0x45, 0x78, -+ 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, -+ 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, -+ 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, -+ 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, -+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, -+ 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x6d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -+ 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, -+ 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, -+ 0x65, 0x3a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x42, 0x03, 0x88, -+ 0x01, 0x02, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x1a, 0x94, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, -+ 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, -+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, -+ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, -+ 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, -+ 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x34, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, -+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, -+ 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, -+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, -+ 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, -+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, -+ 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, -+ 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, -+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, -+ 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, -+ 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, -+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, -+ 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, -+ 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, -+ 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, -+ 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, -+ 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, -+ 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, -+ 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, -+ 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, -+ 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, -+ 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, -+ 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, -+ 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, -+ 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, -+ 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -+ 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, -+ 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, -+ 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, -+ 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, -+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x63, 0x0a, 0x14, -+ 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, -+ 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, -+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, -+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, -+ 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, -+ 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, -+ 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, -+ 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -+ 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -- 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, -- 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, -- 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, -- 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, -- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, -- 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, -- 0xad, 0x04, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, -- 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0x88, 0x01, -- 0x02, 0x52, 0x0b, 0x64, 0x65, 0x63, 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, -- 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, -- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, -- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0a, -- 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, -- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xb3, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x63, -- 0x6c, 0x61, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -- 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -- 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, -- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, -- 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x23, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, -- 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, -- 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, -- 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x22, 0x34, -- 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, -- 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, -- 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, -- 0x45, 0x44, 0x10, 0x01, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -- 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -- 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, -- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, -- 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, -- 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, -- 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, -- 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, -- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, -- 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, -- 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, -- 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, -- 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, -- 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, -- 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, -- 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -- 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, -- 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, -- 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, -- 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, -- 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, -- 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, -- 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, -- 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, -- 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, -- 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, -- 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, -- 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, -- 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, -- 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, -- 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, -- 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, -- 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, -- 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, -- 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, -- 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, -- 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, -- 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, -- 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, -- 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -- 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, -- 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, -- 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, -- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, -- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, -- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, -- 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, -- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, -- 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, -- 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, -- 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, -- 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, -- 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, -- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, -- 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, -- 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, -- 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, -- 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, -- 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, -- 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, -- 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, -- 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, -- 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, -- 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, -+ 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, -+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, -+ 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, -+ 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, -+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, -+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, -+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, -+ 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, -+ 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, -- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, -- 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, -- 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, -- 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, -+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, -+ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, -+ 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, -+ 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -- 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, -- 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, -- 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, -- 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, -- 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, -- 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, -- 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, -- 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, -- 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, -- 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, -- 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, -- 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, -- 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, -- 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, -- 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, -- 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, -- 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, -- 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, -- 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, -- 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, -- 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, -- 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, -- 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, -- 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, -- 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, -- 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -- 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, -- 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, -- 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, -- 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, -- 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -- 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, -- 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, -- 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, -- 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, -+ 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, -+ 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, -+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, -+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, -+ 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, -+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, -+ 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, -+ 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, -+ 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, -+ 0x69, 0x6e, 0x67, 0x22, 0x97, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, -+ 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, -+ 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, -+ 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, -+ 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, -+ 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, -+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, -+ 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, -+ 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -+ 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, -+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, -+ 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, -+ 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, -+ 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, -+ 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, -+ 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, -+ 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, -+ 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, -+ 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, -+ 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, -+ 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, -+ 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, -+ 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, -+ 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, -+ 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, -+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, -+ 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, -+ 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, - 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -@@ -3856,259 +4656,419 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ - 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, -- 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, -- 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, -- 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, -- 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, -- 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, -- 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, -- 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, -- 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, -- 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, -- 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, -- 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, -- 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -- 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, -- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -- 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, -- 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, -- 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, -- 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, -- 0x79, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, -- 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, -- 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x85, 0x09, 0x0a, -- 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, -- 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, -- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -- 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, -- 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, -- 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, -- 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, -- 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, -- 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, -- 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, -- 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, -- 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, -- 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, -- 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, -+ 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, -+ 0x72, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, -+ 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -+ 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -+ 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, -+ 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, -+ 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, -+ 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, -+ 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x2a, 0x10, 0x2b, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xf4, 0x03, -+ 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, -+ 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, -+ 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, -+ 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, -+ 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, -+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, -+ 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -+ 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -- 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, -- 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, -- 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, -- 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, -- 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, -- 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, -- 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, -- 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, -- 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, -- 0x74, 0x12, 0x48, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, -- 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, -- 0x70, 0x65, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, -- 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, -- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -- 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, -- 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, -- 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, -- 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, -- 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, -- 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, -- 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, -- 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, -- 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, -- 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, -- 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, -- 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, -- 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, -- 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, -- 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, -- 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, -- 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, -- 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, -- 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -- 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, -- 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, -- 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -- 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, -- 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, -- 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -- 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, -- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, -- 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, -- 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, -- 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, -- 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, -- 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, -- 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, -- 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, -- 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, -- 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, -- 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, -- 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, -- 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, -+ 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, -+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, -+ 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, -+ 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, -+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -+ 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, -+ 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, -+ 0x75, 0x72, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, -+ 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, -+ 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, -+ 0x08, 0x09, 0x10, 0x0a, 0x22, 0xad, 0x0a, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, -+ 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, -+ 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, -+ 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, -+ 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, -+ 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, -+ 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, -+ 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, -+ 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -+ 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, -+ 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, -+ 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, -+ 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -+ 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, -+ 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, -+ 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, -+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -+ 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, -+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x57, 0x0a, 0x10, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, -+ 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, -+ 0x0f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, -+ 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, -+ 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, -+ 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, -- 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, -- 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, -- 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, -- 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, -- 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, -- 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, -- 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, -- 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, -- 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, -- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, -- 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, -- 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, -- 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, -- 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, -- 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, -- 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, -- 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, -- 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, -- 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, -- 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, -- 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, -- 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, -- 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -- 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, -- 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -- 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, -- 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, -- 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, -- 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, -- 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, -- 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, -- 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, -- 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, -- 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, -- 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, -- 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, -+ 0x69, 0x6f, 0x6e, 0x1a, 0x5a, 0x0a, 0x0e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, -+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, -+ 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, -+ 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, -+ 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, -+ 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, -+ 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, -+ 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, -+ 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, -+ 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, -+ 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, -+ 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, -+ 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, -+ 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, -+ 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, -+ 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, -+ 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, -+ 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, -+ 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, -+ 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, -+ 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, -+ 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, -+ 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, -+ 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, -+ 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, -+ 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, -+ 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, -+ 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, -+ 0x08, 0x12, 0x10, 0x13, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -- 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, -- 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -- 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, -- 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, -- 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, -- 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, -- 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, -- 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, -- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, -- 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, -- 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, -- 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, -- 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, -- 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, -- 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, -- 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, -- 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, -- 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, -- 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, -- 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, -- 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, -- 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, -- 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, -- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, -- 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, -- 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -- 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, -- 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, -- 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, -- 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, -- 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, -- 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -- 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, -- 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, -- 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, -- 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -- 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -- 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, -- 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, -- 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, -- 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0xd1, 0x02, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, -+ 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, -+ 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, -+ 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, -+ 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, -+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, -+ 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, -+ 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, -+ 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, -+ 0x63, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, -+ 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, -+ 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, -+ 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, -+ 0x02, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x81, 0x02, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, -+ 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0c, -+ 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, -+ 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, -+ 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, -+ 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xd5, 0x01, 0x0a, 0x0e, -+ 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, -+ 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, -+ 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, 0x66, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, -+ 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, -+ 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, -+ 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, -+ 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, -+ 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, -+ 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, -+ 0x80, 0x80, 0x02, 0x22, 0x99, 0x03, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, -+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, -+ 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, -+ 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, -+ 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, -+ 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, -+ 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, -+ 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, -+ 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, -+ 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, -+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x52, 0x08, -+ 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, -+ 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, -+ 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, -+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, -+ 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, -+ 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, -+ 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, -+ 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, -+ 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, -+ 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, -+ 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, -+ 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, -+ 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, -+ 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, -+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, -+ 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, -+ 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, -+ 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, -+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, -+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, -+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, -+ 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, -+ 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, -+ 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, -+ 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, -+ 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, -+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, -+ 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, -+ 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, -+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, -+ 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, -+ 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, -+ 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, -+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, -+ 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, -+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, -+ 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x0a, 0x0a, -+ 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x0e, -+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, -+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x42, -+ 0x39, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x49, -+ 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe7, 0x07, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, -+ 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x18, 0xe8, 0x07, 0x52, 0x0d, 0x66, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x65, 0x6e, 0x75, -+ 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, -+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, -+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x42, 0x23, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x0b, -+ 0x12, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x09, 0x12, 0x04, -+ 0x4f, 0x50, 0x45, 0x4e, 0x18, 0xe7, 0x07, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, -+ 0x65, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, -+ 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, -+ 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, -+ 0x2e, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x27, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, 0x01, -+ 0x01, 0xa2, 0x01, 0x0d, 0x12, 0x08, 0x45, 0x58, 0x50, 0x41, 0x4e, 0x44, 0x45, 0x44, 0x18, 0xe6, -+ 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x18, 0xe7, 0x07, 0x52, -+ 0x15, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, -+ 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x78, 0x0a, 0x0f, 0x75, 0x74, 0x66, 0x38, 0x5f, 0x76, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x55, 0x74, 0x66, -+ 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0x88, 0x01, 0x01, -+ 0x98, 0x01, 0x04, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x18, -+ 0xe6, 0x07, 0xa2, 0x01, 0x0b, 0x12, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x18, 0xe7, 0x07, -+ 0x52, 0x0e, 0x75, 0x74, 0x66, 0x38, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, -+ 0x12, 0x78, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, -+ 0x64, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, -+ 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x20, 0x88, 0x01, 0x01, 0x98, 0x01, 0x04, 0x98, -+ 0x01, 0x01, 0xa2, 0x01, 0x14, 0x12, 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, -+ 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, 0x18, 0xe6, 0x07, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, -+ 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x7c, 0x0a, 0x0b, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, -+ 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, -+ 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x4a, 0x73, 0x6f, -+ 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x33, 0x88, 0x01, 0x01, 0x98, 0x01, 0x03, 0x98, -+ 0x01, 0x06, 0x98, 0x01, 0x01, 0xa2, 0x01, 0x17, 0x12, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, -+ 0x5f, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x18, 0xe6, 0x07, 0xa2, -+ 0x01, 0x0a, 0x12, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x18, 0xe7, 0x07, 0x52, 0x0a, 0x6a, 0x73, -+ 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x5c, 0x0a, 0x0d, 0x46, 0x69, 0x65, 0x6c, -+ 0x64, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x46, 0x49, 0x45, -+ 0x4c, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, -+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x4c, 0x49, 0x43, 0x49, -+ 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x4c, 0x49, 0x43, 0x49, 0x54, 0x10, -+ 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, -+ 0x49, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x37, 0x0a, 0x08, 0x45, 0x6e, 0x75, 0x6d, 0x54, 0x79, -+ 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, -+ 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x45, -+ 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x02, 0x22, -+ 0x56, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, -+ 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x50, 0x45, -+ 0x41, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, -+ 0x06, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, -+ 0x41, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x22, 0x43, 0x0a, 0x0e, 0x55, 0x74, 0x66, 0x38, 0x56, -+ 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x54, 0x46, -+ 0x38, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, -+ 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, -+ 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0f, -+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, -+ 0x1c, 0x0a, 0x18, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x4f, 0x44, -+ 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, -+ 0x0f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x45, 0x44, -+ 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x45, 0x44, 0x10, -+ 0x02, 0x22, 0x48, 0x0a, 0x0a, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, -+ 0x17, 0x0a, 0x13, 0x4a, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, -+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, -+ 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x42, 0x45, -+ 0x53, 0x54, 0x5f, 0x45, 0x46, 0x46, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x2a, 0x06, 0x08, 0xe8, 0x07, -+ 0x10, 0xe9, 0x07, 0x2a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x2a, 0x06, 0x08, 0xea, 0x07, -+ 0x10, 0xeb, 0x07, 0x2a, 0x06, 0x08, 0x8b, 0x4e, 0x10, 0x90, 0x4e, 0x2a, 0x06, 0x08, 0x90, 0x4e, -+ 0x10, 0x91, 0x4e, 0x4a, 0x06, 0x08, 0xe7, 0x07, 0x10, 0xe8, 0x07, 0x22, 0xfe, 0x02, 0x0a, 0x12, -+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, -+ 0x74, 0x73, 0x12, 0x58, 0x0a, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, -+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, -+ 0x65, 0x53, 0x65, 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, -+ 0x6c, 0x74, 0x52, 0x08, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0f, -+ 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, -+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0e, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, -+ 0x41, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x45, 0x64, 0x69, 0x74, 0x69, -+ 0x6f, 0x6e, 0x1a, 0x87, 0x01, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, -+ 0x74, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, -+ 0x32, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, -+ 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, -+ 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 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, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, -+ 0x65, 0x74, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xa7, 0x02, 0x0a, -+ 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, -+ 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, -+ 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, -+ 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, -+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, -- 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, -- 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, -- 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, -- 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, -- 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, -- 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, -- 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, -- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, -- 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, -- 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, -- 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, -- 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, -- 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, -- 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, -- 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, -- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, -- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, -- 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, -- 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, -- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, -- 0x6e, -+ 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, -+ 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, -+ 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, -+ 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, -+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, -+ 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, -+ 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, -+ 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, -+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, -+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, -+ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, -+ 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, -+ 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, -+ 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, -+ 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, -+ 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, -+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, -+ 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, -+ 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, -+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, -+ 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, -+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, -+ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, -+ 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, -+ 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, -+ 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, -+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, -+ 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, 0x02, 0x2a, 0x92, 0x02, 0x0a, 0x07, 0x45, 0x64, -+ 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, -+ 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x32, 0x10, 0xe6, 0x07, 0x12, -+ 0x13, 0x0a, 0x0e, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, -+ 0x33, 0x10, 0xe7, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, -+ 0x32, 0x30, 0x32, 0x33, 0x10, 0xe8, 0x07, 0x12, 0x11, 0x0a, 0x0c, 0x45, 0x44, 0x49, 0x54, 0x49, -+ 0x4f, 0x4e, 0x5f, 0x32, 0x30, 0x32, 0x34, 0x10, 0xe9, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x31, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, -+ 0x59, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x32, -+ 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x17, -+ 0x45, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x37, 0x5f, 0x54, 0x45, -+ 0x53, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9d, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, -+ 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x38, 0x5f, 0x54, 0x45, 0x53, -+ 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9e, 0x8d, 0x06, 0x12, 0x1d, 0x0a, 0x17, 0x45, 0x44, -+ 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x39, 0x39, 0x39, 0x39, 0x39, 0x5f, 0x54, 0x45, 0x53, 0x54, -+ 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x9f, 0x8d, 0x06, 0x12, 0x13, 0x0a, 0x0b, 0x45, 0x44, 0x49, -+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xff, 0xff, 0xff, 0x07, 0x42, 0x7e, -+ 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, -+ 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, -+ 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, -+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x65, 0x73, 0x63, -+ 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, -+ 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - } - - var ( -@@ -4123,103 +5083,136 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { - return file_google_protobuf_descriptor_proto_rawDescData - } - --var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 10) --var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 28) -+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 17) -+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 32) - var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ -- (ExtensionRangeOptions_VerificationState)(0), // 0: google.protobuf.ExtensionRangeOptions.VerificationState -- (FieldDescriptorProto_Type)(0), // 1: google.protobuf.FieldDescriptorProto.Type -- (FieldDescriptorProto_Label)(0), // 2: google.protobuf.FieldDescriptorProto.Label -- (FileOptions_OptimizeMode)(0), // 3: google.protobuf.FileOptions.OptimizeMode -- (FieldOptions_CType)(0), // 4: google.protobuf.FieldOptions.CType -- (FieldOptions_JSType)(0), // 5: google.protobuf.FieldOptions.JSType -- (FieldOptions_OptionRetention)(0), // 6: google.protobuf.FieldOptions.OptionRetention -- (FieldOptions_OptionTargetType)(0), // 7: google.protobuf.FieldOptions.OptionTargetType -- (MethodOptions_IdempotencyLevel)(0), // 8: google.protobuf.MethodOptions.IdempotencyLevel -- (GeneratedCodeInfo_Annotation_Semantic)(0), // 9: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- (*FileDescriptorSet)(nil), // 10: google.protobuf.FileDescriptorSet -- (*FileDescriptorProto)(nil), // 11: google.protobuf.FileDescriptorProto -- (*DescriptorProto)(nil), // 12: google.protobuf.DescriptorProto -- (*ExtensionRangeOptions)(nil), // 13: google.protobuf.ExtensionRangeOptions -- (*FieldDescriptorProto)(nil), // 14: google.protobuf.FieldDescriptorProto -- (*OneofDescriptorProto)(nil), // 15: google.protobuf.OneofDescriptorProto -- (*EnumDescriptorProto)(nil), // 16: google.protobuf.EnumDescriptorProto -- (*EnumValueDescriptorProto)(nil), // 17: google.protobuf.EnumValueDescriptorProto -- (*ServiceDescriptorProto)(nil), // 18: google.protobuf.ServiceDescriptorProto -- (*MethodDescriptorProto)(nil), // 19: google.protobuf.MethodDescriptorProto -- (*FileOptions)(nil), // 20: google.protobuf.FileOptions -- (*MessageOptions)(nil), // 21: google.protobuf.MessageOptions -- (*FieldOptions)(nil), // 22: google.protobuf.FieldOptions -- (*OneofOptions)(nil), // 23: google.protobuf.OneofOptions -- (*EnumOptions)(nil), // 24: google.protobuf.EnumOptions -- (*EnumValueOptions)(nil), // 25: google.protobuf.EnumValueOptions -- (*ServiceOptions)(nil), // 26: google.protobuf.ServiceOptions -- (*MethodOptions)(nil), // 27: google.protobuf.MethodOptions -- (*UninterpretedOption)(nil), // 28: google.protobuf.UninterpretedOption -- (*SourceCodeInfo)(nil), // 29: google.protobuf.SourceCodeInfo -- (*GeneratedCodeInfo)(nil), // 30: google.protobuf.GeneratedCodeInfo -- (*DescriptorProto_ExtensionRange)(nil), // 31: google.protobuf.DescriptorProto.ExtensionRange -- (*DescriptorProto_ReservedRange)(nil), // 32: google.protobuf.DescriptorProto.ReservedRange -- (*ExtensionRangeOptions_Declaration)(nil), // 33: google.protobuf.ExtensionRangeOptions.Declaration -- (*EnumDescriptorProto_EnumReservedRange)(nil), // 34: google.protobuf.EnumDescriptorProto.EnumReservedRange -- (*UninterpretedOption_NamePart)(nil), // 35: google.protobuf.UninterpretedOption.NamePart -- (*SourceCodeInfo_Location)(nil), // 36: google.protobuf.SourceCodeInfo.Location -- (*GeneratedCodeInfo_Annotation)(nil), // 37: google.protobuf.GeneratedCodeInfo.Annotation -+ (Edition)(0), // 0: google.protobuf.Edition -+ (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState -+ (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type -+ (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label -+ (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode -+ (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType -+ (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType -+ (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention -+ (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType -+ (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel -+ (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence -+ (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType -+ (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding -+ (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation -+ (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding -+ (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat -+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 16: google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ (*FileDescriptorSet)(nil), // 17: google.protobuf.FileDescriptorSet -+ (*FileDescriptorProto)(nil), // 18: google.protobuf.FileDescriptorProto -+ (*DescriptorProto)(nil), // 19: google.protobuf.DescriptorProto -+ (*ExtensionRangeOptions)(nil), // 20: google.protobuf.ExtensionRangeOptions -+ (*FieldDescriptorProto)(nil), // 21: google.protobuf.FieldDescriptorProto -+ (*OneofDescriptorProto)(nil), // 22: google.protobuf.OneofDescriptorProto -+ (*EnumDescriptorProto)(nil), // 23: google.protobuf.EnumDescriptorProto -+ (*EnumValueDescriptorProto)(nil), // 24: google.protobuf.EnumValueDescriptorProto -+ (*ServiceDescriptorProto)(nil), // 25: google.protobuf.ServiceDescriptorProto -+ (*MethodDescriptorProto)(nil), // 26: google.protobuf.MethodDescriptorProto -+ (*FileOptions)(nil), // 27: google.protobuf.FileOptions -+ (*MessageOptions)(nil), // 28: google.protobuf.MessageOptions -+ (*FieldOptions)(nil), // 29: google.protobuf.FieldOptions -+ (*OneofOptions)(nil), // 30: google.protobuf.OneofOptions -+ (*EnumOptions)(nil), // 31: google.protobuf.EnumOptions -+ (*EnumValueOptions)(nil), // 32: google.protobuf.EnumValueOptions -+ (*ServiceOptions)(nil), // 33: google.protobuf.ServiceOptions -+ (*MethodOptions)(nil), // 34: google.protobuf.MethodOptions -+ (*UninterpretedOption)(nil), // 35: google.protobuf.UninterpretedOption -+ (*FeatureSet)(nil), // 36: google.protobuf.FeatureSet -+ (*FeatureSetDefaults)(nil), // 37: google.protobuf.FeatureSetDefaults -+ (*SourceCodeInfo)(nil), // 38: google.protobuf.SourceCodeInfo -+ (*GeneratedCodeInfo)(nil), // 39: google.protobuf.GeneratedCodeInfo -+ (*DescriptorProto_ExtensionRange)(nil), // 40: google.protobuf.DescriptorProto.ExtensionRange -+ (*DescriptorProto_ReservedRange)(nil), // 41: google.protobuf.DescriptorProto.ReservedRange -+ (*ExtensionRangeOptions_Declaration)(nil), // 42: google.protobuf.ExtensionRangeOptions.Declaration -+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 43: google.protobuf.EnumDescriptorProto.EnumReservedRange -+ (*FieldOptions_EditionDefault)(nil), // 44: google.protobuf.FieldOptions.EditionDefault -+ (*UninterpretedOption_NamePart)(nil), // 45: google.protobuf.UninterpretedOption.NamePart -+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 46: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ (*SourceCodeInfo_Location)(nil), // 47: google.protobuf.SourceCodeInfo.Location -+ (*GeneratedCodeInfo_Annotation)(nil), // 48: google.protobuf.GeneratedCodeInfo.Annotation - } - var file_google_protobuf_descriptor_proto_depIdxs = []int32{ -- 11, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -- 12, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -- 16, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 18, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -- 14, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 20, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -- 29, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -- 14, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -- 14, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -- 12, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -- 16, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -- 31, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -- 15, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -- 21, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -- 32, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -- 28, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 33, // 16: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -- 0, // 17: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -- 2, // 18: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -- 1, // 19: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -- 22, // 20: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -- 23, // 21: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -- 17, // 22: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -- 24, // 23: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -- 34, // 24: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -- 25, // 25: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -- 19, // 26: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -- 26, // 27: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -- 27, // 28: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -- 3, // 29: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -- 28, // 30: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 31: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 4, // 32: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -- 5, // 33: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -- 6, // 34: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -- 7, // 35: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 7, // 36: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -- 28, // 37: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 38: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 39: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 40: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 28, // 41: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 8, // 42: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -- 28, // 43: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -- 35, // 44: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -- 36, // 45: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -- 37, // 46: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -- 13, // 47: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -- 9, // 48: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -- 49, // [49:49] is the sub-list for method output_type -- 49, // [49:49] is the sub-list for method input_type -- 49, // [49:49] is the sub-list for extension type_name -- 49, // [49:49] is the sub-list for extension extendee -- 0, // [0:49] is the sub-list for field type_name -+ 18, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto -+ 19, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 25, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto -+ 21, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 27, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions -+ 38, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo -+ 0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition -+ 21, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto -+ 21, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto -+ 19, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto -+ 23, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto -+ 40, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange -+ 22, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto -+ 28, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions -+ 41, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange -+ 35, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 42, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration -+ 36, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet -+ 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState -+ 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label -+ 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type -+ 29, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions -+ 30, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions -+ 24, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto -+ 31, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions -+ 43, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange -+ 32, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions -+ 26, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto -+ 33, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions -+ 34, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions -+ 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode -+ 36, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType -+ 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType -+ 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention -+ 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType -+ 44, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault -+ 36, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 42: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 43: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 44: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 45: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 46: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 47: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 48: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 36, // 49: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 50: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 9, // 51: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel -+ 36, // 52: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet -+ 35, // 53: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption -+ 45, // 54: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart -+ 10, // 55: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence -+ 11, // 56: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType -+ 12, // 57: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding -+ 13, // 58: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation -+ 14, // 59: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding -+ 15, // 60: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat -+ 46, // 61: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault -+ 0, // 62: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition -+ 0, // 63: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition -+ 47, // 64: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location -+ 48, // 65: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation -+ 20, // 66: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions -+ 0, // 67: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition -+ 0, // 68: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition -+ 36, // 69: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.features:type_name -> google.protobuf.FeatureSet -+ 16, // 70: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic -+ 71, // [71:71] is the sub-list for method output_type -+ 71, // [71:71] is the sub-list for method input_type -+ 71, // [71:71] is the sub-list for extension type_name -+ 71, // [71:71] is the sub-list for extension extendee -+ 0, // [0:71] is the sub-list for field type_name - } - - func init() { file_google_protobuf_descriptor_proto_init() } -@@ -4475,19 +5468,21 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo); i { -+ switch v := v.(*FeatureSet); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields -+ case 3: -+ return &v.extensionFields - default: - return nil - } - } - file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*GeneratedCodeInfo); i { -+ switch v := v.(*FeatureSetDefaults); i { - case 0: - return &v.state - case 1: -@@ -4499,7 +5494,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ExtensionRange); i { -+ switch v := v.(*SourceCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4511,7 +5506,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*DescriptorProto_ReservedRange); i { -+ switch v := v.(*GeneratedCodeInfo); i { - case 0: - return &v.state - case 1: -@@ -4523,7 +5518,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*ExtensionRangeOptions_Declaration); i { -+ switch v := v.(*DescriptorProto_ExtensionRange); i { - case 0: - return &v.state - case 1: -@@ -4535,7 +5530,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { -+ switch v := v.(*DescriptorProto_ReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4547,7 +5542,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*UninterpretedOption_NamePart); i { -+ switch v := v.(*ExtensionRangeOptions_Declaration); i { - case 0: - return &v.state - case 1: -@@ -4559,7 +5554,7 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { -- switch v := v.(*SourceCodeInfo_Location); i { -+ switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { - case 0: - return &v.state - case 1: -@@ -4571,6 +5566,54 @@ func file_google_protobuf_descriptor_proto_init() { - } - } - file_google_protobuf_descriptor_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FieldOptions_EditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*UninterpretedOption_NamePart); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*FeatureSetDefaults_FeatureSetEditionDefault); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*SourceCodeInfo_Location); i { -+ case 0: -+ return &v.state -+ case 1: -+ return &v.sizeCache -+ case 2: -+ return &v.unknownFields -+ default: -+ return nil -+ } -+ } -+ file_google_protobuf_descriptor_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GeneratedCodeInfo_Annotation); i { - case 0: - return &v.state -@@ -4588,8 +5631,8 @@ func file_google_protobuf_descriptor_proto_init() { - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, -- NumEnums: 10, -- NumMessages: 28, -+ NumEnums: 17, -+ NumMessages: 32, - NumExtensions: 0, - NumServices: 0, - }, -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -new file mode 100644 -index 00000000..25de5ae0 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.pb.go -@@ -0,0 +1,177 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+// Code generated by protoc-gen-go. DO NOT EDIT. -+// source: reflect/protodesc/proto/go_features.proto -+ -+package proto -+ -+import ( -+ protoreflect "google.golang.org/protobuf/reflect/protoreflect" -+ protoimpl "google.golang.org/protobuf/runtime/protoimpl" -+ descriptorpb "google.golang.org/protobuf/types/descriptorpb" -+ reflect "reflect" -+ sync "sync" -+) -+ -+type GoFeatures struct { -+ state protoimpl.MessageState -+ sizeCache protoimpl.SizeCache -+ unknownFields protoimpl.UnknownFields -+ -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ LegacyUnmarshalJsonEnum *bool `protobuf:"varint,1,opt,name=legacy_unmarshal_json_enum,json=legacyUnmarshalJsonEnum" json:"legacy_unmarshal_json_enum,omitempty"` -+} -+ -+func (x *GoFeatures) Reset() { -+ *x = GoFeatures{} -+ if protoimpl.UnsafeEnabled { -+ mi := &file_reflect_protodesc_proto_go_features_proto_msgTypes[0] -+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) -+ ms.StoreMessageInfo(mi) -+ } -+} -+ -+func (x *GoFeatures) String() string { -+ return protoimpl.X.MessageStringOf(x) -+} -+ -+func (*GoFeatures) ProtoMessage() {} -+ -+func (x *GoFeatures) ProtoReflect() protoreflect.Message { -+ mi := &file_reflect_protodesc_proto_go_features_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 GoFeatures.ProtoReflect.Descriptor instead. -+func (*GoFeatures) Descriptor() ([]byte, []int) { -+ return file_reflect_protodesc_proto_go_features_proto_rawDescGZIP(), []int{0} -+} -+ -+func (x *GoFeatures) GetLegacyUnmarshalJsonEnum() bool { -+ if x != nil && x.LegacyUnmarshalJsonEnum != nil { -+ return *x.LegacyUnmarshalJsonEnum -+ } -+ return false -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_extTypes = []protoimpl.ExtensionInfo{ -+ { -+ ExtendedType: (*descriptorpb.FeatureSet)(nil), -+ ExtensionType: (*GoFeatures)(nil), -+ Field: 1002, -+ Name: "google.protobuf.go", -+ Tag: "bytes,1002,opt,name=go", -+ Filename: "reflect/protodesc/proto/go_features.proto", -+ }, -+} -+ -+// Extension fields to descriptorpb.FeatureSet. -+var ( -+ // optional google.protobuf.GoFeatures go = 1002; -+ E_Go = &file_reflect_protodesc_proto_go_features_proto_extTypes[0] -+) -+ -+var File_reflect_protodesc_proto_go_features_proto protoreflect.FileDescriptor -+ -+var file_reflect_protodesc_proto_go_features_proto_rawDesc = []byte{ -+ 0x0a, 0x29, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x64, -+ 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x5f, 0x66, 0x65, 0x61, -+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, -+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, -+ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, -+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6a, -+ 0x0a, 0x0a, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x1a, -+ 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x75, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, 0x61, 0x6c, -+ 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, -+ 0x42, 0x1f, 0x88, 0x01, 0x01, 0x98, 0x01, 0x06, 0xa2, 0x01, 0x09, 0x12, 0x04, 0x74, 0x72, 0x75, -+ 0x65, 0x18, 0xe6, 0x07, 0xa2, 0x01, 0x0a, 0x12, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x18, 0xe7, -+ 0x07, 0x52, 0x17, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x55, 0x6e, 0x6d, 0x61, 0x72, 0x73, 0x68, -+ 0x61, 0x6c, 0x4a, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x49, 0x0a, 0x02, 0x67, 0x6f, -+ 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, -+ 0x75, 0x66, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x18, 0xea, 0x07, -+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, -+ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, -+ 0x73, 0x52, 0x02, 0x67, 0x6f, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, -+ 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+ 0x62, 0x75, 0x66, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, -+ 0x6f, 0x64, 0x65, 0x73, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, -+} -+ -+var ( -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce sync.Once -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = file_reflect_protodesc_proto_go_features_proto_rawDesc -+) -+ -+func file_reflect_protodesc_proto_go_features_proto_rawDescGZIP() []byte { -+ file_reflect_protodesc_proto_go_features_proto_rawDescOnce.Do(func() { -+ file_reflect_protodesc_proto_go_features_proto_rawDescData = protoimpl.X.CompressGZIP(file_reflect_protodesc_proto_go_features_proto_rawDescData) -+ }) -+ return file_reflect_protodesc_proto_go_features_proto_rawDescData -+} -+ -+var file_reflect_protodesc_proto_go_features_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -+var file_reflect_protodesc_proto_go_features_proto_goTypes = []interface{}{ -+ (*GoFeatures)(nil), // 0: google.protobuf.GoFeatures -+ (*descriptorpb.FeatureSet)(nil), // 1: google.protobuf.FeatureSet -+} -+var file_reflect_protodesc_proto_go_features_proto_depIdxs = []int32{ -+ 1, // 0: google.protobuf.go:extendee -> google.protobuf.FeatureSet -+ 0, // 1: google.protobuf.go:type_name -> google.protobuf.GoFeatures -+ 2, // [2:2] is the sub-list for method output_type -+ 2, // [2:2] is the sub-list for method input_type -+ 1, // [1:2] is the sub-list for extension type_name -+ 0, // [0:1] is the sub-list for extension extendee -+ 0, // [0:0] is the sub-list for field type_name -+} -+ -+func init() { file_reflect_protodesc_proto_go_features_proto_init() } -+func file_reflect_protodesc_proto_go_features_proto_init() { -+ if File_reflect_protodesc_proto_go_features_proto != nil { -+ return -+ } -+ if !protoimpl.UnsafeEnabled { -+ file_reflect_protodesc_proto_go_features_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { -+ switch v := v.(*GoFeatures); 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_reflect_protodesc_proto_go_features_proto_rawDesc, -+ NumEnums: 0, -+ NumMessages: 1, -+ NumExtensions: 1, -+ NumServices: 0, -+ }, -+ GoTypes: file_reflect_protodesc_proto_go_features_proto_goTypes, -+ DependencyIndexes: file_reflect_protodesc_proto_go_features_proto_depIdxs, -+ MessageInfos: file_reflect_protodesc_proto_go_features_proto_msgTypes, -+ ExtensionInfos: file_reflect_protodesc_proto_go_features_proto_extTypes, -+ }.Build() -+ File_reflect_protodesc_proto_go_features_proto = out.File -+ file_reflect_protodesc_proto_go_features_proto_rawDesc = nil -+ file_reflect_protodesc_proto_go_features_proto_goTypes = nil -+ file_reflect_protodesc_proto_go_features_proto_depIdxs = nil -+} -diff --git a/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -new file mode 100644 -index 00000000..d2465712 ---- /dev/null -+++ b/vendor/google.golang.org/protobuf/types/gofeaturespb/go_features.proto -@@ -0,0 +1,28 @@ -+// Protocol Buffers - Google's data interchange format -+// Copyright 2023 Google Inc. All rights reserved. -+// -+// Use of this source code is governed by a BSD-style -+// license that can be found in the LICENSE file or at -+// https://developers.google.com/open-source/licenses/bsd -+ -+syntax = "proto2"; -+ -+package google.protobuf; -+ -+import "google/protobuf/descriptor.proto"; -+ -+option go_package = "google.golang.org/protobuf/types/gofeaturespb"; -+ -+extend google.protobuf.FeatureSet { -+ optional GoFeatures go = 1002; -+} -+ -+message GoFeatures { -+ // Whether or not to generate the deprecated UnmarshalJSON method for enums. -+ optional bool legacy_unmarshal_json_enum = 1 [ -+ retention = RETENTION_RUNTIME, -+ targets = TARGET_TYPE_ENUM, -+ edition_defaults = { edition: EDITION_PROTO2, value: "true" }, -+ edition_defaults = { edition: EDITION_PROTO3, value: "false" } -+ ]; -+} -diff --git a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -index 580b232f..9de51be5 100644 ---- a/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -+++ b/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go -@@ -237,7 +237,8 @@ type Any struct { - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with -- // type.googleapis.com. -+ // type.googleapis.com. As of May 2023, there are no widely used type server -+ // implementations and no plans to implement one. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 987b5b1c..6636e54e 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -263,13 +263,14 @@ google.golang.org/grpc/internal/status - google.golang.org/grpc/resolver - google.golang.org/grpc/serviceconfig - google.golang.org/grpc/status --# google.golang.org/protobuf v1.31.0 --## explicit; go 1.11 -+# google.golang.org/protobuf v1.33.0 -+## explicit; go 1.17 - google.golang.org/protobuf/encoding/prototext - google.golang.org/protobuf/encoding/protowire - google.golang.org/protobuf/internal/descfmt - google.golang.org/protobuf/internal/descopts - google.golang.org/protobuf/internal/detrand -+google.golang.org/protobuf/internal/editiondefaults - google.golang.org/protobuf/internal/encoding/defval - google.golang.org/protobuf/internal/encoding/messageset - google.golang.org/protobuf/internal/encoding/tag -@@ -292,6 +293,7 @@ google.golang.org/protobuf/reflect/protoregistry - google.golang.org/protobuf/runtime/protoiface - google.golang.org/protobuf/runtime/protoimpl - google.golang.org/protobuf/types/descriptorpb -+google.golang.org/protobuf/types/gofeaturespb - google.golang.org/protobuf/types/known/anypb - google.golang.org/protobuf/types/known/durationpb - google.golang.org/protobuf/types/known/timestamppb --- -2.40.1 - diff --git a/projects/containernetworking/plugins/1-31/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch b/projects/containernetworking/plugins/1-31/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch deleted file mode 100644 index 1a1c8490a3..0000000000 --- a/projects/containernetworking/plugins/1-31/patches/0003-Bump-x-net-to-0.23.0-to-resolve-CVE-2023-45288.patch +++ /dev/null @@ -1,2408 +0,0 @@ -From 8339edf51d004377876b9e4ee2daa0cbcbf5e760 Mon Sep 17 00:00:00 2001 -From: Sajia Zafreen -Date: Thu, 9 May 2024 15:45:09 -0700 -Subject: [PATCH] Bump x/net to 0.23.0 to resolve CVE-2023-45288 - -Signed-off-by: Sajia Zafreen ---- - go.mod | 6 +- - go.sum | 12 +- - vendor/golang.org/x/net/context/go17.go | 1 - - vendor/golang.org/x/net/context/go19.go | 1 - - vendor/golang.org/x/net/context/pre_go17.go | 1 - - vendor/golang.org/x/net/context/pre_go19.go | 1 - - vendor/golang.org/x/net/html/token.go | 12 +- - .../x/net/internal/socket/cmsghdr.go | 1 - - .../x/net/internal/socket/cmsghdr_bsd.go | 1 - - .../internal/socket/cmsghdr_linux_32bit.go | 2 - - .../internal/socket/cmsghdr_linux_64bit.go | 2 - - .../internal/socket/cmsghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/cmsghdr_stub.go | 1 - - .../x/net/internal/socket/cmsghdr_unix.go | 1 - - .../net/internal/socket/complete_dontwait.go | 1 - - .../internal/socket/complete_nodontwait.go | 1 - - .../golang.org/x/net/internal/socket/empty.s | 1 - - .../x/net/internal/socket/error_unix.go | 1 - - .../x/net/internal/socket/iovec_32bit.go | 2 - - .../x/net/internal/socket/iovec_64bit.go | 2 - - .../internal/socket/iovec_solaris_64bit.go | 1 - - .../x/net/internal/socket/iovec_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_stub.go | 1 - - .../x/net/internal/socket/mmsghdr_unix.go | 1 - - .../x/net/internal/socket/msghdr_bsd.go | 1 - - .../x/net/internal/socket/msghdr_bsdvar.go | 1 - - .../net/internal/socket/msghdr_linux_32bit.go | 2 - - .../net/internal/socket/msghdr_linux_64bit.go | 2 - - .../internal/socket/msghdr_solaris_64bit.go | 1 - - .../x/net/internal/socket/msghdr_stub.go | 1 - - .../x/net/internal/socket/msghdr_zos_s390x.go | 1 - - .../x/net/internal/socket/norace.go | 1 - - .../golang.org/x/net/internal/socket/race.go | 1 - - .../x/net/internal/socket/rawconn_mmsg.go | 1 - - .../x/net/internal/socket/rawconn_msg.go | 1 - - .../x/net/internal/socket/rawconn_nommsg.go | 1 - - .../x/net/internal/socket/rawconn_nomsg.go | 1 - - .../x/net/internal/socket/sys_bsd.go | 1 - - .../x/net/internal/socket/sys_const_unix.go | 1 - - .../x/net/internal/socket/sys_linux.go | 1 - - .../net/internal/socket/sys_linux_loong64.go | 1 - - .../net/internal/socket/sys_linux_riscv64.go | 1 - - .../x/net/internal/socket/sys_posix.go | 1 - - .../x/net/internal/socket/sys_stub.go | 1 - - .../x/net/internal/socket/sys_unix.go | 1 - - .../x/net/internal/socket/zsys_aix_ppc64.go | 1 - - .../net/internal/socket/zsys_linux_loong64.go | 1 - - .../net/internal/socket/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/net/ipv4/control_bsd.go | 1 - - .../golang.org/x/net/ipv4/control_pktinfo.go | 1 - - vendor/golang.org/x/net/ipv4/control_stub.go | 1 - - vendor/golang.org/x/net/ipv4/control_unix.go | 1 - - vendor/golang.org/x/net/ipv4/icmp_stub.go | 1 - - vendor/golang.org/x/net/ipv4/payload_cmsg.go | 1 - - .../golang.org/x/net/ipv4/payload_nocmsg.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_posix.go | 1 - - vendor/golang.org/x/net/ipv4/sockopt_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_aix.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_asmreqn.go | 1 - - .../golang.org/x/net/ipv4/sys_asmreqn_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bpf_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_bsd.go | 1 - - vendor/golang.org/x/net/ipv4/sys_ssmreq.go | 1 - - .../golang.org/x/net/ipv4/sys_ssmreq_stub.go | 1 - - vendor/golang.org/x/net/ipv4/sys_stub.go | 1 - - .../golang.org/x/net/ipv4/zsys_aix_ppc64.go | 1 - - .../x/net/ipv4/zsys_linux_loong64.go | 1 - - .../x/net/ipv4/zsys_linux_riscv64.go | 1 - - vendor/golang.org/x/sys/unix/aliases.go | 2 +- - vendor/golang.org/x/sys/unix/mkerrors.sh | 39 ++-- - .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- - .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- - vendor/golang.org/x/sys/unix/syscall_linux.go | 99 ++++++++++ - vendor/golang.org/x/sys/unix/zerrors_linux.go | 90 ++++++++- - .../x/sys/unix/zerrors_linux_386.go | 3 + - .../x/sys/unix/zerrors_linux_amd64.go | 3 + - .../x/sys/unix/zerrors_linux_arm.go | 3 + - .../x/sys/unix/zerrors_linux_arm64.go | 3 + - .../x/sys/unix/zerrors_linux_loong64.go | 3 + - .../x/sys/unix/zerrors_linux_mips.go | 3 + - .../x/sys/unix/zerrors_linux_mips64.go | 3 + - .../x/sys/unix/zerrors_linux_mips64le.go | 3 + - .../x/sys/unix/zerrors_linux_mipsle.go | 3 + - .../x/sys/unix/zerrors_linux_ppc.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64.go | 3 + - .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + - .../x/sys/unix/zerrors_linux_riscv64.go | 3 + - .../x/sys/unix/zerrors_linux_s390x.go | 3 + - .../x/sys/unix/zerrors_linux_sparc64.go | 3 + - .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + - .../x/sys/unix/zsyscall_openbsd_386.go | 2 - - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm.go | 2 - - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2 - - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2 - - .../x/sys/unix/zsysnum_linux_386.go | 4 + - .../x/sys/unix/zsysnum_linux_amd64.go | 3 + - .../x/sys/unix/zsysnum_linux_arm.go | 4 + - .../x/sys/unix/zsysnum_linux_arm64.go | 4 + - .../x/sys/unix/zsysnum_linux_loong64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64.go | 4 + - .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + - .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64.go | 4 + - .../x/sys/unix/zsysnum_linux_ppc64le.go | 4 + - .../x/sys/unix/zsysnum_linux_riscv64.go | 4 + - .../x/sys/unix/zsysnum_linux_s390x.go | 4 + - .../x/sys/unix/zsysnum_linux_sparc64.go | 4 + - vendor/golang.org/x/sys/unix/ztypes_linux.go | 185 ++++++++++++------ - .../golang.org/x/sys/windows/env_windows.go | 17 +- - .../x/sys/windows/syscall_windows.go | 4 +- - .../x/sys/windows/zsyscall_windows.go | 9 + - vendor/modules.txt | 10 +- - 120 files changed, 501 insertions(+), 200 deletions(-) - -diff --git a/go.mod b/go.mod -index 47102692..f0b6e706 100644 ---- a/go.mod -+++ b/go.mod -@@ -20,7 +20,7 @@ require ( - github.com/opencontainers/selinux v1.11.0 - github.com/safchain/ethtool v0.3.0 - github.com/vishvananda/netlink v1.2.1-beta.2 -- golang.org/x/sys v0.15.0 -+ golang.org/x/sys v0.18.0 - ) - - require ( -@@ -40,8 +40,8 @@ require ( - github.com/vishvananda/netns v0.0.4 // indirect - go.opencensus.io v0.24.0 // indirect - golang.org/x/mod v0.13.0 // indirect -- golang.org/x/net v0.17.0 // indirect -- golang.org/x/text v0.13.0 // indirect -+ golang.org/x/net v0.23.0 // indirect -+ golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect -diff --git a/go.sum b/go.sum -index e274380d..bf1e5961 100644 ---- a/go.sum -+++ b/go.sum -@@ -161,8 +161,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY - golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= --golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= --golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -+golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -+golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - 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= -@@ -191,14 +191,14 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc - golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= --golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -+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/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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= --golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -+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/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= -diff --git a/vendor/golang.org/x/net/context/go17.go b/vendor/golang.org/x/net/context/go17.go -index 2cb9c408..0c1b8679 100644 ---- a/vendor/golang.org/x/net/context/go17.go -+++ b/vendor/golang.org/x/net/context/go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.7 --// +build go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/go19.go b/vendor/golang.org/x/net/context/go19.go -index 64d31ecc..e31e35a9 100644 ---- a/vendor/golang.org/x/net/context/go19.go -+++ b/vendor/golang.org/x/net/context/go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build go1.9 --// +build go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go17.go b/vendor/golang.org/x/net/context/pre_go17.go -index 7b6b6851..065ff3df 100644 ---- a/vendor/golang.org/x/net/context/pre_go17.go -+++ b/vendor/golang.org/x/net/context/pre_go17.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.7 --// +build !go1.7 - - package context - -diff --git a/vendor/golang.org/x/net/context/pre_go19.go b/vendor/golang.org/x/net/context/pre_go19.go -index 1f971534..ec5a6380 100644 ---- a/vendor/golang.org/x/net/context/pre_go19.go -+++ b/vendor/golang.org/x/net/context/pre_go19.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !go1.9 --// +build !go1.9 - - package context - -diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go -index de67f938..3c57880d 100644 ---- a/vendor/golang.org/x/net/html/token.go -+++ b/vendor/golang.org/x/net/html/token.go -@@ -910,9 +910,6 @@ func (z *Tokenizer) readTagAttrKey() { - return - } - switch c { -- case ' ', '\n', '\r', '\t', '\f', '/': -- z.pendingAttr[0].end = z.raw.end - 1 -- return - case '=': - if z.pendingAttr[0].start+1 == z.raw.end { - // WHATWG 13.2.5.32, if we see an equals sign before the attribute name -@@ -920,7 +917,9 @@ func (z *Tokenizer) readTagAttrKey() { - continue - } - fallthrough -- case '>': -+ case ' ', '\n', '\r', '\t', '\f', '/', '>': -+ // WHATWG 13.2.5.33 Attribute name state -+ // We need to reconsume the char in the after attribute name state to support the / character - z.raw.end-- - z.pendingAttr[0].end = z.raw.end - return -@@ -939,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { - if z.err != nil { - return - } -+ if c == '/' { -+ // WHATWG 13.2.5.34 After attribute name state -+ // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. -+ return -+ } - if c != '=' { - z.raw.end-- - return -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr.go b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -index 4bdaaaf1..33a5bf59 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -index 0d30e0a0..68f438c8 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -index 4936e8a6..058ea8de 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -index f6877f98..3ca0d3a0 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -index d3dbe1b8..6d0e426c 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -index 1d9f2ed6..7ca9cb7e 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -index 19d46789..0211f225 100644 ---- a/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/cmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -index 5b1d50ae..2038f290 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_dontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -index be634095..70e6f448 100644 ---- a/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -+++ b/vendor/golang.org/x/net/internal/socket/complete_nodontwait.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || windows || zos --// +build aix windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/empty.s b/vendor/golang.org/x/net/internal/socket/empty.s -index 90ab4ca3..49d79791 100644 ---- a/vendor/golang.org/x/net/internal/socket/empty.s -+++ b/vendor/golang.org/x/net/internal/socket/empty.s -@@ -3,6 +3,5 @@ - // license that can be found in the LICENSE file. - - //go:build darwin && go1.12 --// +build darwin,go1.12 - - // This exists solely so we can linkname in symbols from syscall. -diff --git a/vendor/golang.org/x/net/internal/socket/error_unix.go b/vendor/golang.org/x/net/internal/socket/error_unix.go -index 78f41290..7a5cc5c4 100644 ---- a/vendor/golang.org/x/net/internal/socket/error_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/error_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -index 2b8fbb3f..340e53fb 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && (darwin || dragonfly || freebsd || linux || netbsd || openbsd) --// +build arm mips mipsle 386 ppc --// +build darwin dragonfly freebsd linux netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -index 2e94e96f..26470c19 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || zos) --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build aix darwin dragonfly freebsd linux netbsd openbsd zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -index f7da2bc4..8859ce10 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/iovec_stub.go b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -index 14caf524..da886b03 100644 ---- a/vendor/golang.org/x/net/internal/socket/iovec_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/iovec_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -index 113e773c..4825b21e 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !linux && !netbsd --// +build !aix,!linux,!netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -index 41883c53..311fd2c7 100644 ---- a/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/mmsghdr_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || linux || netbsd --// +build aix linux netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -index 25f6847f..ebff4f6e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -index 5b8e00f1..62e6fe86 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_bsdvar.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd --// +build aix darwin dragonfly freebsd netbsd - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -index b4658fba..3dd07250 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_32bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm || mips || mipsle || 386 || ppc) && linux --// +build arm mips mipsle 386 ppc --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -index 42411aff..5af9ddd6 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_linux_64bit.go -@@ -3,8 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build (arm64 || amd64 || loong64 || ppc64 || ppc64le || mips64 || mips64le || riscv64 || s390x) && linux --// +build arm64 amd64 loong64 ppc64 ppc64le mips64 mips64le riscv64 s390x --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -index 3098f5d7..e212b50f 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_solaris_64bit.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build amd64 && solaris --// +build amd64,solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -index eb79151f..e8767764 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -index 324e9ee7..529db68e 100644 ---- a/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -+++ b/vendor/golang.org/x/net/internal/socket/msghdr_zos_s390x.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build s390x && zos --// +build s390x,zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/norace.go b/vendor/golang.org/x/net/internal/socket/norace.go -index de0ad420..8af30ecf 100644 ---- a/vendor/golang.org/x/net/internal/socket/norace.go -+++ b/vendor/golang.org/x/net/internal/socket/norace.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !race --// +build !race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/race.go b/vendor/golang.org/x/net/internal/socket/race.go -index f0a28a62..9afa9580 100644 ---- a/vendor/golang.org/x/net/internal/socket/race.go -+++ b/vendor/golang.org/x/net/internal/socket/race.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build race --// +build race - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -index 8f79b38f..04313907 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_mmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -index f7d0b0d2..7c0d7410 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_msg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -index 02f32855..e363fb5a 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nommsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -index dd785877..ff7a8baf 100644 ---- a/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -+++ b/vendor/golang.org/x/net/internal/socket/rawconn_nomsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_bsd.go b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -index b258879d..e7664d48 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_bsd.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || openbsd || solaris --// +build aix darwin dragonfly freebsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -index 5d99f237..d7627f87 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_const_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux.go b/vendor/golang.org/x/net/internal/socket/sys_linux.go -index 76f5b8ae..08d49107 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux && !s390x && !386 --// +build linux,!s390x,!386 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -index af964e61..1d182470 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_loong64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -index 5b128fbb..0e407d12 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_linux_riscv64.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_posix.go b/vendor/golang.org/x/net/internal/socket/sys_posix.go -index 42b8f234..58d86548 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_posix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_stub.go b/vendor/golang.org/x/net/internal/socket/sys_stub.go -index 7cfb349c..2e5b473c 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_stub.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/sys_unix.go b/vendor/golang.org/x/net/internal/socket/sys_unix.go -index de823932..93058db5 100644 ---- a/vendor/golang.org/x/net/internal/socket/sys_unix.go -+++ b/vendor/golang.org/x/net/internal/socket/sys_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -index 00691bd5..45bab004 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -index 6a94fec2..b6fc15a1 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package socket - -diff --git a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -index c066272d..e67fc3cb 100644 ---- a/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/internal/socket/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package socket - -diff --git a/vendor/golang.org/x/net/ipv4/control_bsd.go b/vendor/golang.org/x/net/ipv4/control_bsd.go -index b7385dfd..c88da8cb 100644 ---- a/vendor/golang.org/x/net/ipv4/control_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/control_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd --// +build aix darwin dragonfly freebsd netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_pktinfo.go b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -index 0e748dbd..14ae2dae 100644 ---- a/vendor/golang.org/x/net/ipv4/control_pktinfo.go -+++ b/vendor/golang.org/x/net/ipv4/control_pktinfo.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || linux || solaris --// +build darwin linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_stub.go b/vendor/golang.org/x/net/ipv4/control_stub.go -index f27322c3..3ba66116 100644 ---- a/vendor/golang.org/x/net/ipv4/control_stub.go -+++ b/vendor/golang.org/x/net/ipv4/control_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/control_unix.go b/vendor/golang.org/x/net/ipv4/control_unix.go -index 2413e02f..2e765548 100644 ---- a/vendor/golang.org/x/net/ipv4/control_unix.go -+++ b/vendor/golang.org/x/net/ipv4/control_unix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/icmp_stub.go b/vendor/golang.org/x/net/ipv4/icmp_stub.go -index cd4ee6e1..c2c4ce7f 100644 ---- a/vendor/golang.org/x/net/ipv4/icmp_stub.go -+++ b/vendor/golang.org/x/net/ipv4/icmp_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_cmsg.go b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -index 1bb370e2..91c685e8 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_cmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_cmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -index 53f0794e..2afd4b50 100644 ---- a/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -+++ b/vendor/golang.org/x/net/ipv4/payload_nocmsg.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_posix.go b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -index eb07c1c0..82e2c378 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_posix.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_posix.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || windows || zos --// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris windows zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sockopt_stub.go b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -index cf036893..840108bf 100644 ---- a/vendor/golang.org/x/net/ipv4/sockopt_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sockopt_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_aix.go b/vendor/golang.org/x/net/ipv4/sys_aix.go -index 02730cdf..9244a68a 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_aix.go -+++ b/vendor/golang.org/x/net/ipv4/sys_aix.go -@@ -4,7 +4,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq.go b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -index 22322b38..645f254c 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build aix || darwin || dragonfly || freebsd || netbsd || openbsd || solaris || windows --// +build aix darwin dragonfly freebsd netbsd openbsd solaris windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -index fde64014..48cfb6db 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !netbsd && !openbsd && !solaris && !windows --// +build !aix,!darwin,!dragonfly,!freebsd,!netbsd,!openbsd,!solaris,!windows - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -index 54eb9901..0b27b632 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux --// +build darwin freebsd linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -index dcb15f25..303a5e2e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_asmreqn_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux --// +build !darwin,!freebsd,!linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf.go b/vendor/golang.org/x/net/ipv4/sys_bpf.go -index fb11e324..1b4780df 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build linux --// +build linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -index fc53a0d3..b1f779b4 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bpf_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !linux --// +build !linux - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_bsd.go b/vendor/golang.org/x/net/ipv4/sys_bsd.go -index e191b2f1..b7b032d2 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_bsd.go -+++ b/vendor/golang.org/x/net/ipv4/sys_bsd.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build netbsd || openbsd --// +build netbsd openbsd - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -index 6a4e7abf..a295e15e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build darwin || freebsd || linux || solaris --// +build darwin freebsd linux solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -index 157159fd..74bd454e 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_ssmreq_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !darwin && !freebsd && !linux && !solaris --// +build !darwin,!freebsd,!linux,!solaris - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/sys_stub.go b/vendor/golang.org/x/net/ipv4/sys_stub.go -index d5508516..20af4074 100644 ---- a/vendor/golang.org/x/net/ipv4/sys_stub.go -+++ b/vendor/golang.org/x/net/ipv4/sys_stub.go -@@ -3,7 +3,6 @@ - // license that can be found in the LICENSE file. - - //go:build !aix && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !solaris && !windows && !zos --// +build !aix,!darwin,!dragonfly,!freebsd,!linux,!netbsd,!openbsd,!solaris,!windows,!zos - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -index b7f2d6e5..dd454025 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_aix_ppc64.go -@@ -3,7 +3,6 @@ - - // Added for go1.11 compatibility - //go:build aix --// +build aix - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -index e15c22c7..54f9e139 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_loong64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build loong64 --// +build loong64 - - package ipv4 - -diff --git a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -index e2edebdb..78374a52 100644 ---- a/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -+++ b/vendor/golang.org/x/net/ipv4/zsys_linux_riscv64.go -@@ -2,7 +2,6 @@ - // cgo -godefs defs_linux.go - - //go:build riscv64 --// +build riscv64 - - package ipv4 - -diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go -index e7d3df4b..b0e41985 100644 ---- a/vendor/golang.org/x/sys/unix/aliases.go -+++ b/vendor/golang.org/x/sys/unix/aliases.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 -+//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh -index 6202638b..fdcaa974 100644 ---- a/vendor/golang.org/x/sys/unix/mkerrors.sh -+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh -@@ -248,6 +248,7 @@ struct ltchars { - #include - #include - #include -+#include - #include - #include - #include -@@ -283,10 +284,6 @@ struct ltchars { - #include - #endif - --#ifndef MSG_FASTOPEN --#define MSG_FASTOPEN 0x20000000 --#endif -- - #ifndef PTRACE_GETREGS - #define PTRACE_GETREGS 0xc - #endif -@@ -295,14 +292,6 @@ struct ltchars { - #define PTRACE_SETREGS 0xd - #endif - --#ifndef SOL_NETLINK --#define SOL_NETLINK 270 --#endif -- --#ifndef SOL_SMC --#define SOL_SMC 286 --#endif -- - #ifdef SOL_BLUETOOTH - // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h - // but it is already in bluetooth_linux.go -@@ -319,10 +308,23 @@ struct ltchars { - #undef TIPC_WAIT_FOREVER - #define TIPC_WAIT_FOREVER 0xffffffff - --// Copied from linux/l2tp.h --// Including linux/l2tp.h here causes conflicts between linux/in.h --// and netinet/in.h included via net/route.h above. --#define IPPROTO_L2TP 115 -+// Copied from linux/netfilter/nf_nat.h -+// Including linux/netfilter/nf_nat.h here causes conflicts between linux/in.h -+// and netinet/in.h. -+#define NF_NAT_RANGE_MAP_IPS (1 << 0) -+#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1) -+#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2) -+#define NF_NAT_RANGE_PERSISTENT (1 << 3) -+#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4) -+#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5) -+#define NF_NAT_RANGE_NETMAP (1 << 6) -+#define NF_NAT_RANGE_PROTO_RANDOM_ALL \ -+ (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY) -+#define NF_NAT_RANGE_MASK \ -+ (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | \ -+ NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | \ -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | \ -+ NF_NAT_RANGE_NETMAP) - - // Copied from linux/hid.h. - // Keep in sync with the size of the referenced fields. -@@ -582,7 +584,7 @@ ccflags="$@" - $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || - $2 ~ /^KEYCTL_/ || - $2 ~ /^PERF_/ || -- $2 ~ /^SECCOMP_MODE_/ || -+ $2 ~ /^SECCOMP_/ || - $2 ~ /^SEEK_/ || - $2 ~ /^SCHED_/ || - $2 ~ /^SPLICE_/ || -@@ -603,6 +605,9 @@ ccflags="$@" - $2 ~ /^FSOPT_/ || - $2 ~ /^WDIO[CFS]_/ || - $2 ~ /^NFN/ || -+ $2 !~ /^NFT_META_IIFTYPE/ && -+ $2 ~ /^NFT_/ || -+ $2 ~ /^NF_NAT_/ || - $2 ~ /^XDP_/ || - $2 ~ /^RWF_/ || - $2 ~ /^(HDIO|WIN|SMART)_/ || -diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -index 16dc6993..2f0fa76e 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go -@@ -2,7 +2,7 @@ - // Use of this source code is governed by a BSD-style - // license that can be found in the LICENSE file. - --//go:build darwin && go1.12 -+//go:build darwin - - package unix - -diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -index 64d1bb4d..2b57e0f7 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go -+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go -@@ -13,6 +13,7 @@ - package unix - - import ( -+ "errors" - "sync" - "unsafe" - ) -@@ -169,25 +170,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { - func Uname(uname *Utsname) error { - mib := []_C_int{CTL_KERN, KERN_OSTYPE} - n := unsafe.Sizeof(uname.Sysname) -- if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { -+ // Suppress ENOMEM errors to be compatible with the C library __xuname() implementation. -+ if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_HOSTNAME} - n = unsafe.Sizeof(uname.Nodename) -- if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_OSRELEASE} - n = unsafe.Sizeof(uname.Release) -- if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - - mib = []_C_int{CTL_KERN, KERN_VERSION} - n = unsafe.Sizeof(uname.Version) -- if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -@@ -205,7 +207,7 @@ func Uname(uname *Utsname) error { - - mib = []_C_int{CTL_HW, HW_MACHINE} - n = unsafe.Sizeof(uname.Machine) -- if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { -+ if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil && !errors.Is(err, ENOMEM) { - return err - } - -diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go -index 0f85e29e..5682e262 100644 ---- a/vendor/golang.org/x/sys/unix/syscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go -@@ -1849,6 +1849,105 @@ func Dup2(oldfd, newfd int) error { - //sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) - //sys Fsopen(fsName string, flags int) (fd int, err error) - //sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) -+ -+//sys fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) -+ -+func fsconfigCommon(fd int, cmd uint, key string, value *byte, aux int) (err error) { -+ var keyp *byte -+ if keyp, err = BytePtrFromString(key); err != nil { -+ return -+ } -+ return fsconfig(fd, cmd, keyp, value, aux) -+} -+ -+// FsconfigSetFlag is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FLAG. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+func FsconfigSetFlag(fd int, key string) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FLAG, key, nil, 0) -+} -+ -+// FsconfigSetString is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_STRING. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetString(fd int, key string, value string) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(value); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_STRING, key, valuep, 0) -+} -+ -+// FsconfigSetBinary is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_BINARY. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is the parameter value to set. -+func FsconfigSetBinary(fd int, key string, value []byte) (err error) { -+ if len(value) == 0 { -+ return EINVAL -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_BINARY, key, &value[0], len(value)) -+} -+ -+// FsconfigSetPath is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// path is a non-empty path for specified key. -+// atfd is a file descriptor at which to start lookup from or AT_FDCWD. -+func FsconfigSetPath(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH, key, valuep, atfd) -+} -+ -+// FsconfigSetPathEmpty is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_PATH_EMPTY. The same as -+// FconfigSetPath but with AT_PATH_EMPTY implied. -+func FsconfigSetPathEmpty(fd int, key string, path string, atfd int) (err error) { -+ var valuep *byte -+ if valuep, err = BytePtrFromString(path); err != nil { -+ return -+ } -+ return fsconfigCommon(fd, FSCONFIG_SET_PATH_EMPTY, key, valuep, atfd) -+} -+ -+// FsconfigSetFd is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_SET_FD. -+// -+// fd is the filesystem context to act upon. -+// key the parameter key to set. -+// value is a file descriptor to be assigned to specified key. -+func FsconfigSetFd(fd int, key string, value int) (err error) { -+ return fsconfigCommon(fd, FSCONFIG_SET_FD, key, nil, value) -+} -+ -+// FsconfigCreate is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_CREATE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigCreate(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_CREATE, nil, nil, 0) -+} -+ -+// FsconfigReconfigure is equivalent to fsconfig(2) called -+// with cmd == FSCONFIG_CMD_RECONFIGURE. -+// -+// fd is the filesystem context to act upon. -+func FsconfigReconfigure(fd int) (err error) { -+ return fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, nil, nil, 0) -+} -+ - //sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 - //sysnb Getpgid(pid int) (pgid int, err error) - -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go -index c73cfe2f..36bf8399 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go -@@ -1785,6 +1785,8 @@ const ( - LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 - LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 - LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 -+ LANDLOCK_ACCESS_NET_BIND_TCP = 0x1 -+ LANDLOCK_ACCESS_NET_CONNECT_TCP = 0x2 - LANDLOCK_CREATE_RULESET_VERSION = 0x1 - LINUX_REBOOT_CMD_CAD_OFF = 0x0 - LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef -@@ -2127,6 +2129,60 @@ const ( - NFNL_SUBSYS_QUEUE = 0x3 - NFNL_SUBSYS_ULOG = 0x4 - NFS_SUPER_MAGIC = 0x6969 -+ NFT_CHAIN_FLAGS = 0x7 -+ NFT_CHAIN_MAXNAMELEN = 0x100 -+ NFT_CT_MAX = 0x17 -+ NFT_DATA_RESERVED_MASK = 0xffffff00 -+ NFT_DATA_VALUE_MAXLEN = 0x40 -+ NFT_EXTHDR_OP_MAX = 0x4 -+ NFT_FIB_RESULT_MAX = 0x3 -+ NFT_INNER_MASK = 0xf -+ NFT_LOGLEVEL_MAX = 0x8 -+ NFT_NAME_MAXLEN = 0x100 -+ NFT_NG_MAX = 0x1 -+ NFT_OBJECT_CONNLIMIT = 0x5 -+ NFT_OBJECT_COUNTER = 0x1 -+ NFT_OBJECT_CT_EXPECT = 0x9 -+ NFT_OBJECT_CT_HELPER = 0x3 -+ NFT_OBJECT_CT_TIMEOUT = 0x7 -+ NFT_OBJECT_LIMIT = 0x4 -+ NFT_OBJECT_MAX = 0xa -+ NFT_OBJECT_QUOTA = 0x2 -+ NFT_OBJECT_SECMARK = 0x8 -+ NFT_OBJECT_SYNPROXY = 0xa -+ NFT_OBJECT_TUNNEL = 0x6 -+ NFT_OBJECT_UNSPEC = 0x0 -+ NFT_OBJ_MAXNAMELEN = 0x100 -+ NFT_OSF_MAXGENRELEN = 0x10 -+ NFT_QUEUE_FLAG_BYPASS = 0x1 -+ NFT_QUEUE_FLAG_CPU_FANOUT = 0x2 -+ NFT_QUEUE_FLAG_MASK = 0x3 -+ NFT_REG32_COUNT = 0x10 -+ NFT_REG32_SIZE = 0x4 -+ NFT_REG_MAX = 0x4 -+ NFT_REG_SIZE = 0x10 -+ NFT_REJECT_ICMPX_MAX = 0x3 -+ NFT_RT_MAX = 0x4 -+ NFT_SECMARK_CTX_MAXLEN = 0x100 -+ NFT_SET_MAXNAMELEN = 0x100 -+ NFT_SOCKET_MAX = 0x3 -+ NFT_TABLE_F_MASK = 0x3 -+ NFT_TABLE_MAXNAMELEN = 0x100 -+ NFT_TRACETYPE_MAX = 0x3 -+ NFT_TUNNEL_F_MASK = 0x7 -+ NFT_TUNNEL_MAX = 0x1 -+ NFT_TUNNEL_MODE_MAX = 0x2 -+ NFT_USERDATA_MAXLEN = 0x100 -+ NFT_XFRM_KEY_MAX = 0x6 -+ NF_NAT_RANGE_MAP_IPS = 0x1 -+ NF_NAT_RANGE_MASK = 0x7f -+ NF_NAT_RANGE_NETMAP = 0x40 -+ NF_NAT_RANGE_PERSISTENT = 0x8 -+ NF_NAT_RANGE_PROTO_OFFSET = 0x20 -+ NF_NAT_RANGE_PROTO_RANDOM = 0x4 -+ NF_NAT_RANGE_PROTO_RANDOM_ALL = 0x14 -+ NF_NAT_RANGE_PROTO_RANDOM_FULLY = 0x10 -+ NF_NAT_RANGE_PROTO_SPECIFIED = 0x2 - NILFS_SUPER_MAGIC = 0x3434 - NL0 = 0x0 - NL1 = 0x100 -@@ -2411,6 +2467,7 @@ const ( - PR_MCE_KILL_GET = 0x22 - PR_MCE_KILL_LATE = 0x0 - PR_MCE_KILL_SET = 0x1 -+ PR_MDWE_NO_INHERIT = 0x2 - PR_MDWE_REFUSE_EXEC_GAIN = 0x1 - PR_MPX_DISABLE_MANAGEMENT = 0x2c - PR_MPX_ENABLE_MANAGEMENT = 0x2b -@@ -2615,8 +2672,9 @@ const ( - RTAX_FEATURES = 0xc - RTAX_FEATURE_ALLFRAG = 0x8 - RTAX_FEATURE_ECN = 0x1 -- RTAX_FEATURE_MASK = 0xf -+ RTAX_FEATURE_MASK = 0x1f - RTAX_FEATURE_SACK = 0x2 -+ RTAX_FEATURE_TCP_USEC_TS = 0x10 - RTAX_FEATURE_TIMESTAMP = 0x4 - RTAX_HOPLIMIT = 0xa - RTAX_INITCWND = 0xb -@@ -2859,9 +2917,38 @@ const ( - SCM_RIGHTS = 0x1 - SCM_TIMESTAMP = 0x1d - SC_LOG_FLUSH = 0x100000 -+ SECCOMP_ADDFD_FLAG_SEND = 0x2 -+ SECCOMP_ADDFD_FLAG_SETFD = 0x1 -+ SECCOMP_FILTER_FLAG_LOG = 0x2 -+ SECCOMP_FILTER_FLAG_NEW_LISTENER = 0x8 -+ SECCOMP_FILTER_FLAG_SPEC_ALLOW = 0x4 -+ SECCOMP_FILTER_FLAG_TSYNC = 0x1 -+ SECCOMP_FILTER_FLAG_TSYNC_ESRCH = 0x10 -+ SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV = 0x20 -+ SECCOMP_GET_ACTION_AVAIL = 0x2 -+ SECCOMP_GET_NOTIF_SIZES = 0x3 -+ SECCOMP_IOCTL_NOTIF_RECV = 0xc0502100 -+ SECCOMP_IOCTL_NOTIF_SEND = 0xc0182101 -+ SECCOMP_IOC_MAGIC = '!' - SECCOMP_MODE_DISABLED = 0x0 - SECCOMP_MODE_FILTER = 0x2 - SECCOMP_MODE_STRICT = 0x1 -+ SECCOMP_RET_ACTION = 0x7fff0000 -+ SECCOMP_RET_ACTION_FULL = 0xffff0000 -+ SECCOMP_RET_ALLOW = 0x7fff0000 -+ SECCOMP_RET_DATA = 0xffff -+ SECCOMP_RET_ERRNO = 0x50000 -+ SECCOMP_RET_KILL = 0x0 -+ SECCOMP_RET_KILL_PROCESS = 0x80000000 -+ SECCOMP_RET_KILL_THREAD = 0x0 -+ SECCOMP_RET_LOG = 0x7ffc0000 -+ SECCOMP_RET_TRACE = 0x7ff00000 -+ SECCOMP_RET_TRAP = 0x30000 -+ SECCOMP_RET_USER_NOTIF = 0x7fc00000 -+ SECCOMP_SET_MODE_FILTER = 0x1 -+ SECCOMP_SET_MODE_STRICT = 0x0 -+ SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP = 0x1 -+ SECCOMP_USER_NOTIF_FLAG_CONTINUE = 0x1 - SECRETMEM_MAGIC = 0x5345434d - SECURITYFS_MAGIC = 0x73636673 - SEEK_CUR = 0x1 -@@ -3021,6 +3108,7 @@ const ( - SOL_TIPC = 0x10f - SOL_TLS = 0x11a - SOL_UDP = 0x11 -+ SOL_VSOCK = 0x11f - SOL_X25 = 0x106 - SOL_XDP = 0x11b - SOMAXCONN = 0x1000 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -index 4920821c..42ff8c3c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -index a0c1e411..dca43600 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go -@@ -282,6 +282,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -index c6398556..5cca668a 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go -@@ -288,6 +288,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -index 47cc62e2..d8cae6d1 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go -@@ -278,6 +278,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -index 27ac4a09..28e39afd 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go -@@ -275,6 +275,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -index 54694642..cd66e92c 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -index 3adb81d7..c1595eba 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -index 2dfe98f0..ee9456b0 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -index f5398f84..8cfca81e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go -@@ -281,6 +281,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x80 - SIOCATMARK = 0x40047307 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -index c54f152d..60b0deb3 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go -@@ -336,6 +336,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -index 76057dc7..f90aa728 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -index e0c3725e..ba9e0150 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go -@@ -340,6 +340,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -index 18f2813e..07cdfd6e 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go -@@ -272,6 +272,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -index 11619d4e..2f1dd214 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go -@@ -344,6 +344,9 @@ const ( - SCM_TIMESTAMPNS = 0x23 - SCM_TXTIME = 0x3d - SCM_WIFI_STATUS = 0x29 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x40182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x40082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x40082104 - SFD_CLOEXEC = 0x80000 - SFD_NONBLOCK = 0x800 - SIOCATMARK = 0x8905 -diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -index 396d994d..f40519d9 100644 ---- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go -@@ -335,6 +335,9 @@ const ( - SCM_TIMESTAMPNS = 0x21 - SCM_TXTIME = 0x3f - SCM_WIFI_STATUS = 0x25 -+ SECCOMP_IOCTL_NOTIF_ADDFD = 0x80182103 -+ SECCOMP_IOCTL_NOTIF_ID_VALID = 0x80082102 -+ SECCOMP_IOCTL_NOTIF_SET_FLAGS = 0x80082104 - SFD_CLOEXEC = 0x400000 - SFD_NONBLOCK = 0x4000 - SF_FP = 0x38 -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -index 1488d271..87d8612a 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_linux.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go -@@ -906,6 +906,16 @@ func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { - - // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT - -+func fsconfig(fd int, cmd uint, key *byte, value *byte, aux int) (err error) { -+ _, _, e1 := Syscall6(SYS_FSCONFIG, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(value)), uintptr(aux), 0) -+ if e1 != 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ -+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT -+ - func Getdents(fd int, buf []byte) (n int, err error) { - var _p0 unsafe.Pointer - if len(buf) > 0 { -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -index a1d06159..9dc42410 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -index 5b2a7409..0d3a0751 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -index f6eda134..c39f7776 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -index 55df20ae..57571d07 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -index 8c1155cb..e62963e6 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -index 7cc80c58..00831354 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -index 0688737f..79029ed5 100644 ---- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go -@@ -2297,5 +2297,3 @@ func unveil(path *byte, flags *byte) (err error) { - var libc_unveil_trampoline_addr uintptr - - //go:cgo_import_dynamic libc_unveil unveil "libc.so" -- -- -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -index fcf3ecbd..0cc3ce49 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go -@@ -448,4 +448,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -index f56dc250..856d92d6 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go -@@ -371,4 +371,7 @@ const ( - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 - SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -index 974bf246..8d467094 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go -@@ -412,4 +412,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -index 39a2739e..edc17324 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go -@@ -315,4 +315,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -index cf9c9d77..445eba20 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go -@@ -309,4 +309,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -index 10b7362e..adba01bc 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -index cd4d8b4f..014c4e9c 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -index 2c0efca8..ccc97d74 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go -@@ -362,4 +362,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 5450 - SYS_CACHESTAT = 5451 - SYS_FCHMODAT2 = 5452 -+ SYS_MAP_SHADOW_STACK = 5453 -+ SYS_FUTEX_WAKE = 5454 -+ SYS_FUTEX_WAIT = 5455 -+ SYS_FUTEX_REQUEUE = 5456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -index a72e31d3..ec2b64a9 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go -@@ -432,4 +432,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 4450 - SYS_CACHESTAT = 4451 - SYS_FCHMODAT2 = 4452 -+ SYS_MAP_SHADOW_STACK = 4453 -+ SYS_FUTEX_WAKE = 4454 -+ SYS_FUTEX_WAIT = 4455 -+ SYS_FUTEX_REQUEUE = 4456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -index c7d1e374..21a839e3 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go -@@ -439,4 +439,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -index f4d4838c..c11121ec 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -index b64f0e59..909b631f 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go -@@ -411,4 +411,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -index 95711195..e49bed16 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go -@@ -316,4 +316,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -index f94e943b..66017d2d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go -@@ -377,4 +377,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -index ba0c2bc5..47bab18d 100644 ---- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go -@@ -390,4 +390,8 @@ const ( - SYS_SET_MEMPOLICY_HOME_NODE = 450 - SYS_CACHESTAT = 451 - SYS_FCHMODAT2 = 452 -+ SYS_MAP_SHADOW_STACK = 453 -+ SYS_FUTEX_WAKE = 454 -+ SYS_FUTEX_WAIT = 455 -+ SYS_FUTEX_REQUEUE = 456 - ) -diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go -index bbf8399f..eff6bcde 100644 ---- a/vendor/golang.org/x/sys/unix/ztypes_linux.go -+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go -@@ -174,7 +174,8 @@ type FscryptPolicyV2 struct { - Contents_encryption_mode uint8 - Filenames_encryption_mode uint8 - Flags uint8 -- _ [4]uint8 -+ Log2_data_unit_size uint8 -+ _ [3]uint8 - Master_key_identifier [16]uint8 - } - -@@ -455,60 +456,63 @@ type Ucred struct { - } - - type TCPInfo struct { -- State uint8 -- Ca_state uint8 -- Retransmits uint8 -- Probes uint8 -- Backoff uint8 -- Options uint8 -- Rto uint32 -- Ato uint32 -- Snd_mss uint32 -- Rcv_mss uint32 -- Unacked uint32 -- Sacked uint32 -- Lost uint32 -- Retrans uint32 -- Fackets uint32 -- Last_data_sent uint32 -- Last_ack_sent uint32 -- Last_data_recv uint32 -- Last_ack_recv uint32 -- Pmtu uint32 -- Rcv_ssthresh uint32 -- Rtt uint32 -- Rttvar uint32 -- Snd_ssthresh uint32 -- Snd_cwnd uint32 -- Advmss uint32 -- Reordering uint32 -- Rcv_rtt uint32 -- Rcv_space uint32 -- Total_retrans uint32 -- Pacing_rate uint64 -- Max_pacing_rate uint64 -- Bytes_acked uint64 -- Bytes_received uint64 -- Segs_out uint32 -- Segs_in uint32 -- Notsent_bytes uint32 -- Min_rtt uint32 -- Data_segs_in uint32 -- Data_segs_out uint32 -- Delivery_rate uint64 -- Busy_time uint64 -- Rwnd_limited uint64 -- Sndbuf_limited uint64 -- Delivered uint32 -- Delivered_ce uint32 -- Bytes_sent uint64 -- Bytes_retrans uint64 -- Dsack_dups uint32 -- Reord_seen uint32 -- Rcv_ooopack uint32 -- Snd_wnd uint32 -- Rcv_wnd uint32 -- Rehash uint32 -+ State uint8 -+ Ca_state uint8 -+ Retransmits uint8 -+ Probes uint8 -+ Backoff uint8 -+ Options uint8 -+ Rto uint32 -+ Ato uint32 -+ Snd_mss uint32 -+ Rcv_mss uint32 -+ Unacked uint32 -+ Sacked uint32 -+ Lost uint32 -+ Retrans uint32 -+ Fackets uint32 -+ Last_data_sent uint32 -+ Last_ack_sent uint32 -+ Last_data_recv uint32 -+ Last_ack_recv uint32 -+ Pmtu uint32 -+ Rcv_ssthresh uint32 -+ Rtt uint32 -+ Rttvar uint32 -+ Snd_ssthresh uint32 -+ Snd_cwnd uint32 -+ Advmss uint32 -+ Reordering uint32 -+ Rcv_rtt uint32 -+ Rcv_space uint32 -+ Total_retrans uint32 -+ Pacing_rate uint64 -+ Max_pacing_rate uint64 -+ Bytes_acked uint64 -+ Bytes_received uint64 -+ Segs_out uint32 -+ Segs_in uint32 -+ Notsent_bytes uint32 -+ Min_rtt uint32 -+ Data_segs_in uint32 -+ Data_segs_out uint32 -+ Delivery_rate uint64 -+ Busy_time uint64 -+ Rwnd_limited uint64 -+ Sndbuf_limited uint64 -+ Delivered uint32 -+ Delivered_ce uint32 -+ Bytes_sent uint64 -+ Bytes_retrans uint64 -+ Dsack_dups uint32 -+ Reord_seen uint32 -+ Rcv_ooopack uint32 -+ Snd_wnd uint32 -+ Rcv_wnd uint32 -+ Rehash uint32 -+ Total_rto uint16 -+ Total_rto_recoveries uint16 -+ Total_rto_time uint32 - } - - type CanFilter struct { -@@ -551,7 +555,7 @@ const ( - SizeofIPv6MTUInfo = 0x20 - SizeofICMPv6Filter = 0x20 - SizeofUcred = 0xc -- SizeofTCPInfo = 0xf0 -+ SizeofTCPInfo = 0xf8 - SizeofCanFilter = 0x8 - SizeofTCPRepairOpt = 0x8 - ) -@@ -832,6 +836,15 @@ const ( - FSPICK_EMPTY_PATH = 0x8 - - FSMOUNT_CLOEXEC = 0x1 -+ -+ FSCONFIG_SET_FLAG = 0x0 -+ FSCONFIG_SET_STRING = 0x1 -+ FSCONFIG_SET_BINARY = 0x2 -+ FSCONFIG_SET_PATH = 0x3 -+ FSCONFIG_SET_PATH_EMPTY = 0x4 -+ FSCONFIG_SET_FD = 0x5 -+ FSCONFIG_CMD_CREATE = 0x6 -+ FSCONFIG_CMD_RECONFIGURE = 0x7 - ) - - type OpenHow struct { -@@ -1546,6 +1559,7 @@ const ( - IFLA_DEVLINK_PORT = 0x3e - IFLA_GSO_IPV4_MAX_SIZE = 0x3f - IFLA_GRO_IPV4_MAX_SIZE = 0x40 -+ IFLA_DPLL_PIN = 0x41 - IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 - IFLA_PROTO_DOWN_REASON_MASK = 0x1 - IFLA_PROTO_DOWN_REASON_VALUE = 0x2 -@@ -1561,6 +1575,7 @@ const ( - IFLA_INET6_ICMP6STATS = 0x6 - IFLA_INET6_TOKEN = 0x7 - IFLA_INET6_ADDR_GEN_MODE = 0x8 -+ IFLA_INET6_RA_MTU = 0x9 - IFLA_BR_UNSPEC = 0x0 - IFLA_BR_FORWARD_DELAY = 0x1 - IFLA_BR_HELLO_TIME = 0x2 -@@ -1608,6 +1623,9 @@ const ( - IFLA_BR_MCAST_MLD_VERSION = 0x2c - IFLA_BR_VLAN_STATS_PER_PORT = 0x2d - IFLA_BR_MULTI_BOOLOPT = 0x2e -+ IFLA_BR_MCAST_QUERIER_STATE = 0x2f -+ IFLA_BR_FDB_N_LEARNED = 0x30 -+ IFLA_BR_FDB_MAX_LEARNED = 0x31 - IFLA_BRPORT_UNSPEC = 0x0 - IFLA_BRPORT_STATE = 0x1 - IFLA_BRPORT_PRIORITY = 0x2 -@@ -1645,6 +1663,14 @@ const ( - IFLA_BRPORT_BACKUP_PORT = 0x22 - IFLA_BRPORT_MRP_RING_OPEN = 0x23 - IFLA_BRPORT_MRP_IN_OPEN = 0x24 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 0x25 -+ IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 0x26 -+ IFLA_BRPORT_LOCKED = 0x27 -+ IFLA_BRPORT_MAB = 0x28 -+ IFLA_BRPORT_MCAST_N_GROUPS = 0x29 -+ IFLA_BRPORT_MCAST_MAX_GROUPS = 0x2a -+ IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 0x2b -+ IFLA_BRPORT_BACKUP_NHID = 0x2c - IFLA_INFO_UNSPEC = 0x0 - IFLA_INFO_KIND = 0x1 - IFLA_INFO_DATA = 0x2 -@@ -1666,6 +1692,9 @@ const ( - IFLA_MACVLAN_MACADDR = 0x4 - IFLA_MACVLAN_MACADDR_DATA = 0x5 - IFLA_MACVLAN_MACADDR_COUNT = 0x6 -+ IFLA_MACVLAN_BC_QUEUE_LEN = 0x7 -+ IFLA_MACVLAN_BC_QUEUE_LEN_USED = 0x8 -+ IFLA_MACVLAN_BC_CUTOFF = 0x9 - IFLA_VRF_UNSPEC = 0x0 - IFLA_VRF_TABLE = 0x1 - IFLA_VRF_PORT_UNSPEC = 0x0 -@@ -1689,9 +1718,22 @@ const ( - IFLA_XFRM_UNSPEC = 0x0 - IFLA_XFRM_LINK = 0x1 - IFLA_XFRM_IF_ID = 0x2 -+ IFLA_XFRM_COLLECT_METADATA = 0x3 - IFLA_IPVLAN_UNSPEC = 0x0 - IFLA_IPVLAN_MODE = 0x1 - IFLA_IPVLAN_FLAGS = 0x2 -+ NETKIT_NEXT = -0x1 -+ NETKIT_PASS = 0x0 -+ NETKIT_DROP = 0x2 -+ NETKIT_REDIRECT = 0x7 -+ NETKIT_L2 = 0x0 -+ NETKIT_L3 = 0x1 -+ IFLA_NETKIT_UNSPEC = 0x0 -+ IFLA_NETKIT_PEER_INFO = 0x1 -+ IFLA_NETKIT_PRIMARY = 0x2 -+ IFLA_NETKIT_POLICY = 0x3 -+ IFLA_NETKIT_PEER_POLICY = 0x4 -+ IFLA_NETKIT_MODE = 0x5 - IFLA_VXLAN_UNSPEC = 0x0 - IFLA_VXLAN_ID = 0x1 - IFLA_VXLAN_GROUP = 0x2 -@@ -1722,6 +1764,8 @@ const ( - IFLA_VXLAN_GPE = 0x1b - IFLA_VXLAN_TTL_INHERIT = 0x1c - IFLA_VXLAN_DF = 0x1d -+ IFLA_VXLAN_VNIFILTER = 0x1e -+ IFLA_VXLAN_LOCALBYPASS = 0x1f - IFLA_GENEVE_UNSPEC = 0x0 - IFLA_GENEVE_ID = 0x1 - IFLA_GENEVE_REMOTE = 0x2 -@@ -1736,6 +1780,7 @@ const ( - IFLA_GENEVE_LABEL = 0xb - IFLA_GENEVE_TTL_INHERIT = 0xc - IFLA_GENEVE_DF = 0xd -+ IFLA_GENEVE_INNER_PROTO_INHERIT = 0xe - IFLA_BAREUDP_UNSPEC = 0x0 - IFLA_BAREUDP_PORT = 0x1 - IFLA_BAREUDP_ETHERTYPE = 0x2 -@@ -1748,6 +1793,8 @@ const ( - IFLA_GTP_FD1 = 0x2 - IFLA_GTP_PDP_HASHSIZE = 0x3 - IFLA_GTP_ROLE = 0x4 -+ IFLA_GTP_CREATE_SOCKETS = 0x5 -+ IFLA_GTP_RESTART_COUNT = 0x6 - IFLA_BOND_UNSPEC = 0x0 - IFLA_BOND_MODE = 0x1 - IFLA_BOND_ACTIVE_SLAVE = 0x2 -@@ -1777,6 +1824,9 @@ const ( - IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a - IFLA_BOND_TLB_DYNAMIC_LB = 0x1b - IFLA_BOND_PEER_NOTIF_DELAY = 0x1c -+ IFLA_BOND_AD_LACP_ACTIVE = 0x1d -+ IFLA_BOND_MISSED_MAX = 0x1e -+ IFLA_BOND_NS_IP6_TARGET = 0x1f - IFLA_BOND_AD_INFO_UNSPEC = 0x0 - IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 - IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 -@@ -1792,6 +1842,7 @@ const ( - IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 - IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 - IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 -+ IFLA_BOND_SLAVE_PRIO = 0x9 - IFLA_VF_INFO_UNSPEC = 0x0 - IFLA_VF_INFO = 0x1 - IFLA_VF_UNSPEC = 0x0 -@@ -1850,8 +1901,16 @@ const ( - IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 - IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 - IFLA_STATS_AF_SPEC = 0x5 -+ IFLA_STATS_GETSET_UNSPEC = 0x0 -+ IFLA_STATS_GET_FILTERS = 0x1 -+ IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 0x2 - IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 - IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO = 0x2 -+ IFLA_OFFLOAD_XSTATS_L3_STATS = 0x3 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_UNSPEC = 0x0 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_REQUEST = 0x1 -+ IFLA_OFFLOAD_XSTATS_HW_S_INFO_USED = 0x2 - IFLA_XDP_UNSPEC = 0x0 - IFLA_XDP_FD = 0x1 - IFLA_XDP_ATTACHED = 0x2 -@@ -1881,6 +1940,11 @@ const ( - IFLA_RMNET_UNSPEC = 0x0 - IFLA_RMNET_MUX_ID = 0x1 - IFLA_RMNET_FLAGS = 0x2 -+ IFLA_MCTP_UNSPEC = 0x0 -+ IFLA_MCTP_NET = 0x1 -+ IFLA_DSA_UNSPEC = 0x0 -+ IFLA_DSA_CONDUIT = 0x1 -+ IFLA_DSA_MASTER = 0x1 - ) - - const ( -@@ -3399,7 +3463,7 @@ const ( - DEVLINK_PORT_FN_ATTR_STATE = 0x2 - DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 - DEVLINK_PORT_FN_ATTR_CAPS = 0x4 -- DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 -+ DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x5 - ) - - type FsverityDigest struct { -@@ -4183,7 +4247,8 @@ const ( - ) - - type LandlockRulesetAttr struct { -- Access_fs uint64 -+ Access_fs uint64 -+ Access_net uint64 - } - - type LandlockPathBeneathAttr struct { -@@ -5134,7 +5199,7 @@ const ( - NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf - NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe - NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf -- NL80211_FREQUENCY_ATTR_MAX = 0x1b -+ NL80211_FREQUENCY_ATTR_MAX = 0x1c - NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 - NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 - NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc -@@ -5547,7 +5612,7 @@ const ( - NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 - NL80211_REGDOM_TYPE_INTERSECTION = 0x3 - NL80211_REGDOM_TYPE_WORLD = 0x1 -- NL80211_REG_RULE_ATTR_MAX = 0x7 -+ NL80211_REG_RULE_ATTR_MAX = 0x8 - NL80211_REKEY_DATA_AKM = 0x4 - NL80211_REKEY_DATA_KCK = 0x2 - NL80211_REKEY_DATA_KEK = 0x1 -diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go -index b8ad1925..d4577a42 100644 ---- a/vendor/golang.org/x/sys/windows/env_windows.go -+++ b/vendor/golang.org/x/sys/windows/env_windows.go -@@ -37,14 +37,17 @@ func (token Token) Environ(inheritExisting bool) (env []string, err error) { - return nil, err - } - defer DestroyEnvironmentBlock(block) -- blockp := unsafe.Pointer(block) -- for { -- entry := UTF16PtrToString((*uint16)(blockp)) -- if len(entry) == 0 { -- break -+ size := unsafe.Sizeof(*block) -+ for *block != 0 { -+ // find NUL terminator -+ end := unsafe.Pointer(block) -+ for *(*uint16)(end) != 0 { -+ end = unsafe.Add(end, size) - } -- env = append(env, entry) -- blockp = unsafe.Add(blockp, 2*(len(entry)+1)) -+ -+ entry := unsafe.Slice(block, (uintptr(end)-uintptr(unsafe.Pointer(block)))/size) -+ env = append(env, UTF16ToString(entry)) -+ block = (*uint16)(unsafe.Add(end, size)) - } - return env, nil - } -diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go -index 47dc5796..6395a031 100644 ---- a/vendor/golang.org/x/sys/windows/syscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go -@@ -125,8 +125,7 @@ func UTF16PtrToString(p *uint16) string { - for ptr := unsafe.Pointer(p); *(*uint16)(ptr) != 0; n++ { - ptr = unsafe.Pointer(uintptr(ptr) + unsafe.Sizeof(*p)) - } -- -- return string(utf16.Decode(unsafe.Slice(p, n))) -+ return UTF16ToString(unsafe.Slice(p, n)) - } - - func Getpagesize() int { return 4096 } -@@ -194,6 +193,7 @@ func NewCallbackCDecl(fn interface{}) uintptr { - //sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW - //sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW - //sys SetEndOfFile(handle Handle) (err error) -+//sys SetFileValidData(handle Handle, validDataLength int64) (err error) - //sys GetSystemTimeAsFileTime(time *Filetime) - //sys GetSystemTimePreciseAsFileTime(time *Filetime) - //sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] -diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -index 146a1f01..e8791c82 100644 ---- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go -+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go -@@ -342,6 +342,7 @@ var ( - procSetDefaultDllDirectories = modkernel32.NewProc("SetDefaultDllDirectories") - procSetDllDirectoryW = modkernel32.NewProc("SetDllDirectoryW") - procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") -+ procSetFileValidData = modkernel32.NewProc("SetFileValidData") - procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") - procSetErrorMode = modkernel32.NewProc("SetErrorMode") - procSetEvent = modkernel32.NewProc("SetEvent") -@@ -2988,6 +2989,14 @@ func SetEndOfFile(handle Handle) (err error) { - return - } - -+func SetFileValidData(handle Handle, validDataLength int64) (err error) { -+ r1, _, e1 := syscall.Syscall(procSetFileValidData.Addr(), 2, uintptr(handle), uintptr(validDataLength), 0) -+ if r1 == 0 { -+ err = errnoErr(e1) -+ } -+ return -+} -+ - func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { - r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) - if r1 == 0 { -diff --git a/vendor/modules.txt b/vendor/modules.txt -index 6636e54e..aca1c689 100644 ---- a/vendor/modules.txt -+++ b/vendor/modules.txt -@@ -191,8 +191,8 @@ go.opencensus.io/trace/tracestate - # golang.org/x/mod v0.13.0 - ## explicit; go 1.18 - golang.org/x/mod/semver --# golang.org/x/net v0.17.0 --## explicit; go 1.17 -+# golang.org/x/net v0.23.0 -+## explicit; go 1.18 - golang.org/x/net/bpf - golang.org/x/net/context - golang.org/x/net/html -@@ -201,14 +201,14 @@ golang.org/x/net/html/charset - golang.org/x/net/internal/iana - golang.org/x/net/internal/socket - golang.org/x/net/ipv4 --# golang.org/x/sys v0.15.0 -+# golang.org/x/sys v0.18.0 - ## explicit; go 1.18 - golang.org/x/sys/execabs - golang.org/x/sys/unix - golang.org/x/sys/windows - golang.org/x/sys/windows/registry --# golang.org/x/text v0.13.0 --## explicit; go 1.17 -+# golang.org/x/text v0.14.0 -+## explicit; go 1.18 - golang.org/x/text/encoding - golang.org/x/text/encoding/charmap - golang.org/x/text/encoding/htmlindex --- -2.39.1 -