Merge ~kajiya/+git/google-osconfig-agent:mantic-update-to-20240320.00 into ~ubuntu-core-dev/+git/google-osconfig-agent:ubuntu/mantic

Proposed by Chloé Smith
Status: Merged
Merged at revision: bba06a15f69d60f19a935168f33a3dfe370be409
Proposed branch: ~kajiya/+git/google-osconfig-agent:mantic-update-to-20240320.00
Merge into: ~ubuntu-core-dev/+git/google-osconfig-agent:ubuntu/mantic
Diff against target: 58992 lines (+28766/-9803)
530 files modified
OWNERS (+8/-10)
README.md (+2/-3)
agentconfig/agentconfig.go (+1/-1)
agentconfig/agentconfig_test.go (+1/-1)
agentendpoint/agentendpoint.go (+1/-1)
attributes/attributes.go (+1/-1)
clog/clog.go (+9/-9)
config/exec_resource.go (+2/-2)
config/repository_resource.go (+36/-23)
config/repository_resource_test.go (+28/-0)
debian/changelog (+29/-0)
debian/control (+1/-1)
debian/extra/vendor/cloud.google.com/go/compute/internal/version.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/iam/CHANGES.md (+7/-0)
debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/logging/CHANGES.md (+15/-0)
debian/extra/vendor/cloud.google.com/go/logging/README.md (+1/-1)
debian/extra/vendor/cloud.google.com/go/logging/apiv2/config_client.go (+2/-2)
debian/extra/vendor/cloud.google.com/go/logging/apiv2/doc.go (+7/-5)
debian/extra/vendor/cloud.google.com/go/logging/apiv2/logging_client.go (+2/-2)
debian/extra/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go (+2/-2)
debian/extra/vendor/cloud.google.com/go/logging/apiv2/version.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/logging/instrumentation.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/logging/internal/version.go (+1/-1)
debian/extra/vendor/cloud.google.com/go/logging/logging.go (+37/-13)
debian/extra/vendor/github.com/golang/glog/glog.go (+329/-888)
debian/extra/vendor/github.com/golang/glog/glog_file.go (+294/-11)
debian/extra/vendor/github.com/golang/glog/glog_flags.go (+395/-0)
debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink.go (+387/-0)
debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go (+35/-0)
debian/extra/vendor/github.com/golang/glog/internal/stackdump/stackdump.go (+127/-0)
debian/extra/vendor/github.com/golang/protobuf/jsonpb/decode.go (+7/-1)
debian/extra/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json (+1/-1)
debian/extra/vendor/github.com/googleapis/gax-go/v2/CHANGES.md (+7/-0)
debian/extra/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go (+8/-3)
debian/extra/vendor/github.com/googleapis/gax-go/v2/internal/version.go (+1/-1)
debian/extra/vendor/golang.org/x/crypto/openpgp/packet/compressed.go (+1/-1)
debian/extra/vendor/golang.org/x/net/http2/pipe.go (+1/-5)
debian/extra/vendor/golang.org/x/net/http2/server.go (+80/-22)
debian/extra/vendor/golang.org/x/net/http2/transport.go (+66/-15)
debian/extra/vendor/golang.org/x/net/http2/writesched.go (+2/-1)
debian/extra/vendor/golang.org/x/net/http2/writesched_roundrobin.go (+119/-0)
debian/extra/vendor/golang.org/x/net/idna/idna9.0.0.go (+1/-1)
debian/extra/vendor/golang.org/x/net/idna/tables13.0.0.go (+1554/-1434)
debian/extra/vendor/golang.org/x/net/idna/tables15.0.0.go (+5145/-0)
debian/extra/vendor/golang.org/x/net/idna/trie.go (+0/-21)
debian/extra/vendor/golang.org/x/net/idna/trie12.0.0.go (+31/-0)
debian/extra/vendor/golang.org/x/net/idna/trie13.0.0.go (+31/-0)
debian/extra/vendor/golang.org/x/oauth2/README.md (+8/-4)
debian/extra/vendor/golang.org/x/oauth2/google/default.go (+21/-7)
debian/extra/vendor/golang.org/x/oauth2/google/doc.go (+57/-8)
debian/extra/vendor/golang.org/x/oauth2/google/google.go (+13/-2)
debian/extra/vendor/golang.org/x/oauth2/google/internal/externalaccount/basecredentials.go (+2/-30)
debian/extra/vendor/golang.org/x/oauth2/oauth2.go (+32/-1)
debian/extra/vendor/golang.org/x/oauth2/token.go (+12/-2)
debian/extra/vendor/golang.org/x/sys/unix/aliases.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_386.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_arm.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_386.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_amd64.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_arm.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_arm64.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_loong64.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/asm_linux_s390x.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/asm_zos_s390x.s (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/cap_freebsd.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/constants.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/dev_aix_ppc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/dev_zos.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/dirent.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/endian_big.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/endian_little.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/env_unix.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/epoll_zos.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/fcntl.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/fdset.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/fstatfs_zos.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/gccgo.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/gccgo_c.c (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ifreq_linux.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ioctl_linux.go (+5/-0)
debian/extra/vendor/golang.org/x/sys/unix/ioctl_signed.go (+69/-0)
debian/extra/vendor/golang.org/x/sys/unix/ioctl_unsigned.go (+7/-13)
debian/extra/vendor/golang.org/x/sys/unix/ioctl_zos.go (+9/-12)
debian/extra/vendor/golang.org/x/sys/unix/mkall.sh (+1/-1)
debian/extra/vendor/golang.org/x/sys/unix/mkerrors.sh (+12/-6)
debian/extra/vendor/golang.org/x/sys/unix/mmap_nomremap.go (+13/-0)
debian/extra/vendor/golang.org/x/sys/unix/mremap.go (+52/-0)
debian/extra/vendor/golang.org/x/sys/unix/pagesize_unix.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/pledge_openbsd.go (+20/-72)
debian/extra/vendor/golang.org/x/sys/unix/ptrace_darwin.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ptrace_ios.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/race.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/race0.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/readdirent_getdents.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/sockcmsg_unix.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_aix.go (+5/-23)
debian/extra/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_bsd.go (+2/-18)
debian/extra/vendor/golang.org/x/sys/unix/syscall_darwin.go (+33/-218)
debian/extra/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_dragonfly.go (+1/-199)
debian/extra/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd.go (+37/-199)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go (+5/-13)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go (+5/-13)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go (+4/-12)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go (+4/-12)
debian/extra/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go (+4/-12)
debian/extra/vendor/golang.org/x/sys/unix/syscall_hurd.go (+8/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_hurd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_illumos.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux.go (+151/-148)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_386.go (+0/-28)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go (+1/-3)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_arm.go (+0/-28)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go (+1/-12)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_gc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go (+1/-7)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go (+1/-4)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go (+0/-29)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go (+0/-28)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go (+12/-3)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_netbsd.go (+13/-266)
debian/extra/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd.go (+36/-85)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_solaris.go (+22/-51)
debian/extra/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_unix.go (+18/-1)
debian/extra/vendor/golang.org/x/sys/unix/syscall_unix_gc.go (+0/-2)
debian/extra/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go (+0/-3)
debian/extra/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go (+4/-20)
debian/extra/vendor/golang.org/x/sys/unix/sysvshm_linux.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/sysvshm_unix.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/timestruct.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/unveil_openbsd.go (+25/-16)
debian/extra/vendor/golang.org/x/sys/unix/xattr_bsd.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go (+19/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go (+19/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux.go (+83/-7)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_386.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go (+13/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go (+14/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go (+14/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go (+59/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go (+4/-6)
debian/extra/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go (+2/-2)
debian/extra/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go (+4/-6)
debian/extra/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go (+4/-6)
debian/extra/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go (+4/-6)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go (+11/-35)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go (+12/-35)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go (+7/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go (+9/-10)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go (+35/-37)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s (+5/-155)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go (+35/-37)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s (+5/-155)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go (+10/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go (+20/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go (+20/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go (+20/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go (+20/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go (+20/-33)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go (+5/-6)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux.go (+81/-34)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go (+16/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go (+0/-11)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go (+19/-31)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go (+19/-31)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go (+19/-31)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go (+19/-31)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s (+36/-6)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go (+92/-26)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s (+30/-5)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go (+139/-142)
debian/extra/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go (+11/-13)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go (+3/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go (+4/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go (+3/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go (+2/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go (+1/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux.go (+222/-48)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_386.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go (+30/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go (+3/-2)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/aliases.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/empty.s (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/env_windows.go (+3/-3)
debian/extra/vendor/golang.org/x/sys/windows/eventlog.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/exec_windows.go (+81/-11)
debian/extra/vendor/golang.org/x/sys/windows/mksyscall.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/race.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/race0.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/registry/key.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/registry/mksyscall.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/registry/syscall.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/registry/value.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/security_windows.go (+6/-15)
debian/extra/vendor/golang.org/x/sys/windows/service.go (+11/-1)
debian/extra/vendor/golang.org/x/sys/windows/str.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/svc/eventlog/install.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/svc/eventlog/log.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/svc/security.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/svc/service.go (+10/-7)
debian/extra/vendor/golang.org/x/sys/windows/syscall.go (+0/-1)
debian/extra/vendor/golang.org/x/sys/windows/syscall_windows.go (+56/-26)
debian/extra/vendor/golang.org/x/sys/windows/types_windows.go (+126/-4)
debian/extra/vendor/golang.org/x/sys/windows/zsyscall_windows.go (+113/-13)
debian/extra/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go (+1/-2)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go (+2042/-0)
debian/extra/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/forminfo.go (+1/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go (+1/-2)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go (+7907/-0)
debian/extra/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go (+0/-1)
debian/extra/vendor/golang.org/x/text/unicode/norm/trie.go (+1/-1)
debian/extra/vendor/google.golang.org/api/internal/creds.go (+70/-6)
debian/extra/vendor/google.golang.org/api/internal/dca.go (+7/-6)
debian/extra/vendor/google.golang.org/api/internal/version.go (+1/-1)
debian/extra/vendor/google.golang.org/api/storage/v1/storage-api.json (+7/-2)
debian/extra/vendor/google.golang.org/api/storage/v1/storage-gen.go (+12/-0)
debian/extra/vendor/google.golang.org/api/transport/grpc/dial.go (+2/-7)
debian/extra/vendor/google.golang.org/api/transport/http/dial.go (+4/-8)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go (+246/-135)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/annotations/field_behavior.pb.go (+10/-10)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/annotations/http.pb.go (+11/-6)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/annotations/resource.pb.go (+33/-33)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/annotations/routing.pb.go (+31/-31)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/distribution/distribution.pb.go (+10/-7)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/label/label.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/launch_stage.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/metric/metric.pb.go (+12/-8)
debian/extra/vendor/google.golang.org/genproto/googleapis/api/monitoredres/monitored_resource.pb.go (+25/-20)
debian/extra/vendor/google.golang.org/grpc/CONTRIBUTING.md (+19/-6)
debian/extra/vendor/google.golang.org/grpc/attributes/attributes.go (+29/-0)
debian/extra/vendor/google.golang.org/grpc/balancer/balancer.go (+1/-1)
debian/extra/vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/grpc/balancer/grpclb/grpc_lb_v1/load_balancer_grpc.pb.go (+7/-3)
debian/extra/vendor/google.golang.org/grpc/balancer_conn_wrappers.go (+232/-254)
debian/extra/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/grpc/call.go (+5/-0)
debian/extra/vendor/google.golang.org/grpc/clientconn.go (+453/-192)
debian/extra/vendor/google.golang.org/grpc/codes/code_string.go (+50/-1)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/handshaker.go (+36/-18)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/handshaker/service/service.go (+18/-0)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp/altscontext.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp/handshaker.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp/handshaker_grpc.pb.go (+7/-3)
debian/extra/vendor/google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp/transport_security_common.pb.go (+2/-2)
debian/extra/vendor/google.golang.org/grpc/dialoptions.go (+44/-3)
debian/extra/vendor/google.golang.org/grpc/idle.go (+287/-0)
debian/extra/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go (+7/-4)
debian/extra/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go (+12/-2)
debian/extra/vendor/google.golang.org/grpc/internal/buffer/unbounded.go (+23/-3)
debian/extra/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go (+4/-0)
debian/extra/vendor/google.golang.org/grpc/internal/envconfig/observability.go (+6/-0)
debian/extra/vendor/google.golang.org/grpc/internal/envconfig/xds.go (+12/-9)
debian/extra/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go (+12/-0)
debian/extra/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go (+14/-0)
debian/extra/vendor/google.golang.org/grpc/internal/grpcsync/callback_serializer.go (+119/-0)
debian/extra/vendor/google.golang.org/grpc/internal/internal.go (+34/-0)
debian/extra/vendor/google.golang.org/grpc/internal/metadata/metadata.go (+37/-25)
debian/extra/vendor/google.golang.org/grpc/internal/serviceconfig/duration.go (+130/-0)
debian/extra/vendor/google.golang.org/grpc/internal/transport/controlbuf.go (+51/-42)
debian/extra/vendor/google.golang.org/grpc/internal/transport/handler_server.go (+7/-4)
debian/extra/vendor/google.golang.org/grpc/internal/transport/http2_client.go (+22/-24)
debian/extra/vendor/google.golang.org/grpc/internal/transport/http2_server.go (+51/-48)
debian/extra/vendor/google.golang.org/grpc/internal/transport/http_util.go (+23/-3)
debian/extra/vendor/google.golang.org/grpc/internal/transport/logging.go (+40/-0)
debian/extra/vendor/google.golang.org/grpc/internal/transport/transport.go (+22/-3)
debian/extra/vendor/google.golang.org/grpc/metadata/metadata.go (+10/-3)
debian/extra/vendor/google.golang.org/grpc/picker_wrapper.go (+30/-8)
debian/extra/vendor/google.golang.org/grpc/pickfirst.go (+48/-4)
debian/extra/vendor/google.golang.org/grpc/resolver/resolver.go (+29/-7)
debian/extra/vendor/google.golang.org/grpc/resolver_conn_wrapper.go (+146/-83)
debian/extra/vendor/google.golang.org/grpc/rpc_util.go (+45/-8)
debian/extra/vendor/google.golang.org/grpc/server.go (+180/-70)
debian/extra/vendor/google.golang.org/grpc/service_config.go (+8/-67)
debian/extra/vendor/google.golang.org/grpc/stats/stats.go (+18/-4)
debian/extra/vendor/google.golang.org/grpc/status/status.go (+39/-14)
debian/extra/vendor/google.golang.org/grpc/stream.go (+63/-27)
debian/extra/vendor/google.golang.org/grpc/version.go (+1/-1)
debian/extra/vendor/google.golang.org/grpc/vet.sh (+3/-12)
debian/extra/vendor/google.golang.org/protobuf/encoding/protojson/doc.go (+1/-1)
debian/extra/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go (+9/-3)
debian/extra/vendor/google.golang.org/protobuf/encoding/protowire/wire.go (+2/-6)
debian/extra/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go (+1/-1)
debian/extra/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go (+3/-2)
debian/extra/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go (+31/-12)
debian/extra/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go (+66/-24)
debian/extra/vendor/google.golang.org/protobuf/internal/impl/convert.go (+0/-1)
debian/extra/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go (+1/-1)
debian/extra/vendor/google.golang.org/protobuf/internal/version/version.go (+2/-2)
debian/extra/vendor/google.golang.org/protobuf/proto/doc.go (+3/-6)
debian/extra/vendor/google.golang.org/protobuf/proto/equal.go (+29/-143)
debian/extra/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go (+14/-0)
debian/extra/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go (+1/-1)
debian/extra/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go (+168/-0)
debian/extra/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go (+2/-2)
debian/extra/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go (+1/-1)
debian/extra/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go (+970/-577)
debian/extra/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go (+66/-69)
debian/extra/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go (+29/-34)
debian/extra/vendor/google.golang.org/protobuf/types/known/emptypb/empty.pb.go (+3/-5)
debian/extra/vendor/google.golang.org/protobuf/types/known/fieldmaskpb/field_mask.pb.go (+67/-70)
debian/extra/vendor/google.golang.org/protobuf/types/known/structpb/struct.pb.go (+12/-12)
debian/extra/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go (+27/-34)
debian/extra/vendor/modules.txt (+56/-38)
debian/patches/0001-Disable-TestGetAptGPGKey-for-LP-build-environment.patch (+21/-0)
debian/patches/series (+1/-0)
debian/rules (+9/-0)
dev/null (+0/-470)
e2e_tests/go.mod (+9/-11)
e2e_tests/go.sum (+991/-104)
e2e_tests/test_suites/guestpolicies/guest_policies.go (+1/-1)
e2e_tests/test_suites/guestpolicies/guest_policies_test_data.go (+6/-0)
e2e_tests/test_suites/guestpolicies/guest_policies_utils.go (+12/-14)
e2e_tests/test_suites/inventory/inventory.go (+2/-2)
e2e_tests/test_suites/inventory/test_setup.go (+14/-14)
e2e_tests/test_suites/inventoryreporting/inventory_reporting.go (+1/-1)
e2e_tests/test_suites/inventoryreporting/test_setup.go (+14/-14)
e2e_tests/test_suites/ospolicies/ospolicies.go (+3/-3)
e2e_tests/test_suites/ospolicies/ospolicies_test_data.go (+15/-15)
e2e_tests/test_suites/patch/patch.go (+4/-4)
e2e_tests/test_suites/patch/test_setup.go (+15/-15)
e2e_tests/utils/utils.go (+92/-79)
examples/OSPolicyAssignments/console/CIS/cis-exclude-check-once-a-day.yaml (+35/-0)
examples/OSPolicyAssignments/console/CIS/cis-level1-once-a-day-policy.yaml (+36/-0)
examples/OSPolicyAssignments/console/CIS/cis-level1-once-an-hour-policy.yaml (+43/-0)
examples/OSPolicyAssignments/console/CIS/cis-level2-once-a-day-policy.yaml (+33/-0)
examples/OSPolicyAssignments/console/README.md (+3/-0)
examples/OSPolicyAssignments/console/google-cloud-sap-agent.yaml (+245/-0)
examples/OSPolicyAssignments/console/win-ensure-openssh.yaml (+4/-0)
examples/OSPolicyAssignments/console/win-validation-powershell.yaml (+2/-0)
examples/OSPolicyAssignments/gcloud/google_cloud_sap_agent.yaml (+261/-0)
examples/OWNERS (+12/-10)
go.mod (+32/-11)
go.sum (+30/-776)
main.go (+1/-1)
main_linux.go (+1/-1)
main_windows.go (+2/-2)
ospatch/updates_windows.go (+1/-1)
packages/wua_windows.go (+33/-16)
packages/yum.go (+4/-2)
packages/yum_test.go (+30/-0)
packages/zypper.go (+31/-8)
packages/zypper_test.go (+122/-0)
policies/apt.go (+26/-14)
policies/apt_test.go (+28/-0)
policies/recipes/steps.go (+2/-2)
util/mocks/match.go (+1/-1)
util/util.go (+6/-6)
Reviewer Review Type Date Requested Status
Utkarsh Gupta Approve
Review via email: mp+465610@code.launchpad.net

Commit message

Merge remote-tracking branch 'core-dev/ubuntu/master' into mantic-update-to-20240320.00
  * Update d/rules && d/control to use golang-1.21
  * d/changelog entry for Mantic (LP: #2064580)

To post a comment you must log in.
Revision history for this message
Utkarsh Gupta (utkarsh) wrote :

Hey! Thanks for the work, the bug number was missing in the d/ch. I've added that, dropped the Go 1.21 bits, and sponsored the upload.

$ dput ubuntu ../google-osconfig-agent_20240320.00-0ubuntu1\~23.10.0_source.changes
Uploading google-osconfig-agent using ftp to ubuntu (host: upload.ubuntu.com; directory: /ubuntu)
running supported-distribution: check whether the target distribution is currently supported (using distro-info)
{'allowed': ['release', 'proposed', 'backports', 'security'], 'known': ['release', 'proposed', 'updates', 'backports', 'security']}
running required-fields: check whether a field is present and non-empty in the changes file
running checksum: verify checksums before uploading
running suite-mismatch: check the target distribution for common errors
running check-debs: makes sure the upload contains a binary package
running gpg: check GnuPG signatures before the upload
Uploading google-osconfig-agent_20240320.00-0ubuntu1~23.10.0.dsc
Uploading google-osconfig-agent_20240320.00.orig.tar.gz
Uploading google-osconfig-agent_20240320.00-0ubuntu1~23.10.0.debian.tar.xz
Uploading google-osconfig-agent_20240320.00-0ubuntu1~23.10.0_source.buildinfo
Uploading google-osconfig-agent_20240320.00-0ubuntu1~23.10.0_source.changes

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/OWNERS b/OWNERS
2index adca5fb..20cdb27 100644
3--- a/OWNERS
4+++ b/OWNERS
5@@ -2,13 +2,11 @@
6 # See the OWNERS docs at https://go.k8s.io/owners
7
8 approvers:
9- - adjackura
10- - bkatyl
11- - chaitanyakulkarni28
12- - dorileo
13- - jjerger
14- - karnvadaliya
15- - koln67
16- - quintonamore
17- - vorakl
18- - zmarano
19+ - burov
20+ - dowgird
21+ - Gulio
22+ - michaljankowiak
23+ - paulinakania
24+ - ekremenetskii
25+ - MahmoudOuka
26+ - savijatv
27diff --git a/README.md b/README.md
28index 277a904..558b59a 100644
29--- a/README.md
30+++ b/README.md
31@@ -4,9 +4,8 @@ This repository contains the OS Config agent and associated end to end tests.
32
33 The OS Config agent currently supports the following three main features:
34 - [OS inventory management](https://cloud.google.com/compute/docs/instances/os-inventory-management)
35-- [OS patch management](https://cloud.google.com/compute/docs/os-patch-management)
36-- [OS configuration management](https://cloud.google.com/compute/docs/os-config-management)
37+- [Patch](https://cloud.google.com/compute/docs/os-patch-management)
38+- [OS policies](https://cloud.google.com/compute/docs/os-config-management)
39
40 For instructions on how to install the OS Config agent on a [Compute Engine](https://cloud.google.com/compute) VM instance, see [Installing the OS Config agent](https://cloud.google.com/compute/docs/manage-os#agent-install).
41
42-
43diff --git a/agentconfig/agentconfig.go b/agentconfig/agentconfig.go
44index f75cc9c..05da6fc 100644
45--- a/agentconfig/agentconfig.go
46+++ b/agentconfig/agentconfig.go
47@@ -60,7 +60,7 @@ const (
48 aptRepoDir = "/etc/apt/sources.list.d"
49 aptRepoFilePath = aptRepoDir + "/google_osconfig_managed.list"
50
51- prodEndpoint = "{zone}-osconfig.googleapis.com:443"
52+ prodEndpoint = "{zone}-osconfig.googleapis.com.:443"
53
54 osInventoryEnabledDefault = false
55 guestPoliciesEnabledDefault = false
56diff --git a/agentconfig/agentconfig_test.go b/agentconfig/agentconfig_test.go
57index 525275a..dcf12a1 100644
58--- a/agentconfig/agentconfig_test.go
59+++ b/agentconfig/agentconfig_test.go
60@@ -206,7 +206,7 @@ func TestSetConfigDefaultValues(t *testing.T) {
61 t.Errorf("Default poll interval: got(%f) != want(%d)", SvcPollInterval().Minutes(), osConfigPollIntervalDefault)
62 }
63
64- expectedEndpoint := "fake-zone-osconfig.googleapis.com:443"
65+ expectedEndpoint := "fake-zone-osconfig.googleapis.com.:443"
66 if SvcEndpoint() != expectedEndpoint {
67 t.Errorf("Default endpoint: got(%s) != want(%s)", SvcEndpoint(), expectedEndpoint)
68 }
69diff --git a/agentendpoint/agentendpoint.go b/agentendpoint/agentendpoint.go
70index a99d5b0..3f0cac3 100644
71--- a/agentendpoint/agentendpoint.go
72+++ b/agentendpoint/agentendpoint.go
73@@ -413,7 +413,7 @@ func (c *Client) WaitForTaskNotification(ctx context.Context) {
74 errs++
75 clog.Warningf(ctx, "Error waiting for task (attempt %d of 10): %v", errs, err)
76 resourceExhausted = 0
77- if errs > 10 {
78+ if errs >= 10 {
79 c.Close()
80 return
81 }
82diff --git a/attributes/attributes.go b/attributes/attributes.go
83index 7456e04..938e0ac 100644
84--- a/attributes/attributes.go
85+++ b/attributes/attributes.go
86@@ -51,7 +51,7 @@ func PostAttribute(url string, value io.Reader) error {
87 }
88
89 // PostAttributeCompressed compresses and posts data to Guest Attributes
90-func PostAttributeCompressed(url string, body interface{}) error {
91+func PostAttributeCompressed(url string, body any) error {
92 buf := &bytes.Buffer{}
93 b := base64.NewEncoder(base64.StdEncoding, buf)
94 zw := gzip.NewWriter(b)
95diff --git a/clog/clog.go b/clog/clog.go
96index 67e94a7..36a16cb 100644
97--- a/clog/clog.go
98+++ b/clog/clog.go
99@@ -40,7 +40,7 @@ type log struct {
100 sync.Mutex
101 }
102
103-func (l *log) log(structuredPayload interface{}, msg string, sev logger.Severity) {
104+func (l *log) log(structuredPayload any, msg string, sev logger.Severity) {
105 // Set CallDepth 3, one for logger.Log, one for this function, and one for
106 // the calling clog function.
107 logger.Log(logger.LogEntry{Message: msg, StructuredPayload: structuredPayload, Severity: sev, CallDepth: 3, Labels: l.labels})
108@@ -51,7 +51,7 @@ func (l *log) log(structuredPayload interface{}, msg string, sev logger.Severity
109 //
110 // Conversion errors are encoded in the JSON object rather than returned,
111 // because callers of logging functions should not be forced to handle errors.
112-func protoToJSON(p proto.Message) interface{} {
113+func protoToJSON(p proto.Message) any {
114 bytes, err := pretty.MarshalOptions().Marshal(p)
115 if err != nil {
116 return fmt.Sprintf("Error converting proto: %s", err)
117@@ -66,9 +66,9 @@ func DebugRPC(ctx context.Context, method string, req proto.Message, resp proto.
118 return
119 }
120 // The Cloud Logging library doesn't handle proto messages nor structures containing generic JSON.
121- // To work around this we construct map[string]interface{} and fill it with JSON
122+ // To work around this we construct map[string]any and fill it with JSON
123 // resulting from explicit conversion of the proto messages.
124- payload := map[string]interface{}{}
125+ payload := map[string]any{}
126 payload["MethodName"] = method
127 var msg string
128 if resp != nil && req != nil {
129@@ -87,27 +87,27 @@ func DebugRPC(ctx context.Context, method string, req proto.Message, resp proto.
130
131 // DebugStructured is like Debugf but sends structuredPayload instead of the text message
132 // to Cloud Logging.
133-func DebugStructured(ctx context.Context, structuredPayload interface{}, format string, args ...interface{}) {
134+func DebugStructured(ctx context.Context, structuredPayload any, format string, args ...any) {
135 fromContext(ctx).log(structuredPayload, fmt.Sprintf(format, args...), logger.Debug)
136 }
137
138 // Debugf simulates logger.Debugf and adds context labels.
139-func Debugf(ctx context.Context, format string, args ...interface{}) {
140+func Debugf(ctx context.Context, format string, args ...any) {
141 fromContext(ctx).log(nil, fmt.Sprintf(format, args...), logger.Debug)
142 }
143
144 // Infof simulates logger.Infof and adds context labels.
145-func Infof(ctx context.Context, format string, args ...interface{}) {
146+func Infof(ctx context.Context, format string, args ...any) {
147 fromContext(ctx).log(nil, fmt.Sprintf(format, args...), logger.Info)
148 }
149
150 // Warningf simulates logger.Warningf and context labels.
151-func Warningf(ctx context.Context, format string, args ...interface{}) {
152+func Warningf(ctx context.Context, format string, args ...any) {
153 fromContext(ctx).log(nil, fmt.Sprintf(format, args...), logger.Warning)
154 }
155
156 // Errorf simulates logger.Errorf and adds context labels.
157-func Errorf(ctx context.Context, format string, args ...interface{}) {
158+func Errorf(ctx context.Context, format string, args ...any) {
159 fromContext(ctx).log(nil, fmt.Sprintf(format, args...), logger.Error)
160 }
161
162diff --git a/config/exec_resource.go b/config/exec_resource.go
163index 71742dd..18eaac9 100644
164--- a/config/exec_resource.go
165+++ b/config/exec_resource.go
166@@ -141,14 +141,14 @@ func (e *execResource) run(ctx context.Context, name string, execR *agentendpoin
167 if goos == "windows" {
168 cmd = name
169 } else {
170- args = append([]string{name})
171+ args = append(args, name)
172 cmd = "/bin/sh"
173 }
174 case agentendpointpb.OSPolicy_Resource_ExecResource_Exec_POWERSHELL:
175 if goos != "windows" {
176 return nil, nil, 0, fmt.Errorf("interpreter %q can only be used on Windows systems", execR.GetInterpreter())
177 }
178- args = append([]string{"-File", name})
179+ args = append(args, "-File", name)
180 cmd = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\PowerShell.exe"
181 default:
182 return nil, nil, 0, fmt.Errorf("unsupported interpreter %q", execR.GetInterpreter())
183diff --git a/config/repository_resource.go b/config/repository_resource.go
184index 5ff2cab..b9d3d93 100644
185--- a/config/repository_resource.go
186+++ b/config/repository_resource.go
187@@ -31,7 +31,6 @@ import (
188 "github.com/GoogleCloudPlatform/osconfig/util"
189 "golang.org/x/crypto/openpgp"
190 "golang.org/x/crypto/openpgp/armor"
191- "golang.org/x/crypto/openpgp/packet"
192
193 agentendpointpb "google.golang.org/genproto/googleapis/cloud/osconfig/agentendpoint/v1"
194 )
195@@ -176,40 +175,50 @@ func zypperRepoContents(repo *agentendpointpb.OSPolicy_Resource_RepositoryResour
196 return buf.Bytes()
197 }
198
199-func fetchGPGKey(key string) ([]byte, error) {
200+func serializeGPGKeyEntity(entityList openpgp.EntityList) ([]byte, error) {
201+ var buf bytes.Buffer
202+ for _, entity := range entityList {
203+ if err := entity.Serialize(&buf); err != nil {
204+ return nil, fmt.Errorf("error serializing gpg key: %v", err)
205+ }
206+ }
207+ return buf.Bytes(), nil
208+}
209+
210+func isArmoredGPGKey(keyData []byte) bool {
211+ var buf bytes.Buffer
212+ tee := io.TeeReader(bytes.NewReader(keyData), &buf)
213+
214+ // Try decoding as armored
215+ decodedBlock, err := armor.Decode(tee)
216+ if err == nil && decodedBlock != nil {
217+ return true
218+ }
219+
220+ return false
221+}
222+
223+func fetchGPGKey(key string) (openpgp.EntityList, error) {
224 resp, err := http.Get(key)
225 if err != nil {
226- return nil, fmt.Errorf("error downloading gpg key: %v", err)
227+ return nil, err
228 }
229 defer resp.Body.Close()
230 if resp.ContentLength > 1024*1024 {
231 return nil, fmt.Errorf("key size of %d too large", resp.ContentLength)
232 }
233
234- var buf bytes.Buffer
235- tee := io.TeeReader(resp.Body, &buf)
236-
237- decoded, err := armor.Decode(tee)
238- if err != nil && err != io.EOF {
239- return nil, fmt.Errorf("error decoding gpg key: %v", err)
240- }
241-
242- var entity *openpgp.Entity
243- if decoded == nil {
244- entity, err = openpgp.ReadEntity(packet.NewReader(&buf))
245- } else {
246- entity, err = openpgp.ReadEntity(packet.NewReader(decoded.Body))
247- }
248+ responseBody, err := io.ReadAll(resp.Body)
249 if err != nil {
250- return nil, fmt.Errorf("error reading gpg key: %v", err)
251+ return nil, fmt.Errorf("can not read response body for key %s, err: %v", key, err)
252 }
253
254- buf.Reset()
255- if err := entity.Serialize(&buf); err != nil {
256- return nil, fmt.Errorf("error serializing gpg key: %v", err)
257+ if isArmoredGPGKey(responseBody) {
258+ return openpgp.ReadArmoredKeyRing(bytes.NewBuffer(responseBody))
259 }
260
261- return buf.Bytes(), nil
262+ return openpgp.ReadKeyRing(bytes.NewReader(responseBody))
263+
264 }
265
266 func (r *repositoryResource) validate(ctx context.Context) (*ManagedResources, error) {
267@@ -224,7 +233,11 @@ func (r *repositoryResource) validate(ctx context.Context) (*ManagedResources, e
268 r.managedRepository.RepoFileContents = aptRepoContents(r.GetApt())
269 repoFormat = agentconfig.AptRepoFormat()
270 if gpgkey != "" {
271- keyContents, err := fetchGPGKey(gpgkey)
272+ entityList, err := fetchGPGKey(gpgkey)
273+ if err != nil {
274+ return nil, fmt.Errorf("error fetching apt gpg key %q: %v", gpgkey, err)
275+ }
276+ keyContents, err := serializeGPGKeyEntity(entityList)
277 if err != nil {
278 return nil, fmt.Errorf("error fetching apt gpg key %q: %v", gpgkey, err)
279 }
280diff --git a/config/repository_resource_test.go b/config/repository_resource_test.go
281index 459d84b..2b14391 100644
282--- a/config/repository_resource_test.go
283+++ b/config/repository_resource_test.go
284@@ -19,6 +19,7 @@ import (
285 "io/ioutil"
286 "os"
287 "path/filepath"
288+ "strings"
289 "testing"
290
291 "github.com/google/go-cmp/cmp"
292@@ -277,3 +278,30 @@ func TestRepositoryResourceEnforceState(t *testing.T) {
293 })
294 }
295 }
296+
297+func TestFetchGPGKey(t *testing.T) {
298+ key := "https://packages.cloud.google.com/apt/doc/apt-key.gpg"
299+
300+ entityList, err := fetchGPGKey(key)
301+ if err != nil {
302+ t.Fatal(err)
303+ }
304+
305+ if len(entityList) != 2 {
306+ t.Errorf("Expected: %v key(s), got: %v", 2, len(entityList))
307+ }
308+
309+ // check if Artifact Regitry key exist or not
310+ artifactRegistryKeyFound := false
311+ for _, e := range entityList {
312+ for key := range e.Identities {
313+ if strings.Contains(key, "Artifact Registry") {
314+ artifactRegistryKeyFound = true
315+ }
316+ }
317+ }
318+
319+ if !artifactRegistryKeyFound {
320+ t.Errorf("Expected to find Artifact Registry key in Google Cloud Public GPG key, but its missed.")
321+ }
322+}
323diff --git a/debian/changelog b/debian/changelog
324index 11366c7..5147e57 100644
325--- a/debian/changelog
326+++ b/debian/changelog
327@@ -1,3 +1,32 @@
328+google-osconfig-agent (20240320.00-0ubuntu1~23.10.0) mantic; urgency=medium
329+
330+ * Rebuild for mantic
331+ * d/rules && d/control - force use of golang 1.21 to avail of "slices"
332+
333+ -- Chloé 'kajiya' Smith <chloe.smith@canonical.com> Mon, 06 May 2024 21:10:17 +0100
334+
335+google-osconfig-agent (20240320.00-0ubuntu1) oracular; urgency=medium
336+
337+ [ Chloé 'kajiya' Smith ]
338+ * New upstream version for upstream tag 20240320.00. (LP: #2064580)
339+
340+ [ Mitchell Dzurick ]
341+ * d/patches - Disable TestGetAptGPGKey for LP build environment (mitchdz)
342+
343+ [ Utkarsh Gupta ]
344+ * Add missing n-c-r d/ch entries.
345+ * Add DEP3 headers & refresh the patch.
346+ * Update vendored dependencies.
347+
348+ -- Chloé 'kajiya' Smith <chloe.smith@canonical.com> Thu, 02 May 2024 21:56:35 +0100
349+
350+
351+google-osconfig-agent (20230504.00-0ubuntu3) noble; urgency=medium
352+
353+ * No-change rebuild against Go 1.22.
354+
355+ -- Vladimir Petko <vladimir.petko@canonical.com> Mon, 08 Apr 2024 14:58:21 +1200
356+
357 google-osconfig-agent (20230504.00-0ubuntu2.2) mantic-security; urgency=medium
358
359 * SECURITY UPDATE: Denial of service
360diff --git a/debian/control b/debian/control
361index f720188..abd8332 100644
362--- a/debian/control
363+++ b/debian/control
364@@ -6,7 +6,7 @@ Testsuite: autopkgtest-pkg-go
365 Priority: optional
366 Build-Depends: debhelper-compat (= 12),
367 dh-golang,
368- golang-any
369+ golang-1.21-go
370 Standards-Version: 4.5.0
371 Vcs-Browser: https://code.launchpad.net/~ubuntu-core-dev/+git/google-osconfig-agent
372 Vcs-Git: https://git.launchpad.net/~ubuntu-core-dev/+git/google-osconfig-agent -b ubuntu/master
373diff --git a/debian/extra/vendor/cloud.google.com/go/compute/internal/version.go b/debian/extra/vendor/cloud.google.com/go/compute/internal/version.go
374index ddddbd2..a5b0209 100644
375--- a/debian/extra/vendor/cloud.google.com/go/compute/internal/version.go
376+++ b/debian/extra/vendor/cloud.google.com/go/compute/internal/version.go
377@@ -15,4 +15,4 @@
378 package internal
379
380 // Version is the current tagged release of the library.
381-const Version = "1.18.0"
382+const Version = "1.19.1"
383diff --git a/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.mod b/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.mod
384deleted file mode 100644
385index 519aa43..0000000
386--- a/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.mod
387+++ /dev/null
388@@ -1,5 +0,0 @@
389-module cloud.google.com/go/compute/metadata
390-
391-go 1.19
392-
393-require cloud.google.com/go/compute v1.14.0
394diff --git a/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.sum b/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.sum
395deleted file mode 100644
396index 5940f94..0000000
397--- a/debian/extra/vendor/cloud.google.com/go/compute/metadata/go.sum
398+++ /dev/null
399@@ -1,2 +0,0 @@
400-cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
401-cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
402diff --git a/debian/extra/vendor/cloud.google.com/go/go.mod b/debian/extra/vendor/cloud.google.com/go/go.mod
403deleted file mode 100644
404index a8b7707..0000000
405--- a/debian/extra/vendor/cloud.google.com/go/go.mod
406+++ /dev/null
407@@ -1,31 +0,0 @@
408-module cloud.google.com/go
409-
410-go 1.19
411-
412-require (
413- cloud.google.com/go/compute/metadata v0.2.3
414- cloud.google.com/go/storage v1.28.1
415- github.com/golang/protobuf v1.5.2
416- github.com/google/go-cmp v0.5.9
417- github.com/google/martian/v3 v3.3.2
418- github.com/googleapis/gax-go/v2 v2.7.0
419- go.opencensus.io v0.24.0
420- golang.org/x/oauth2 v0.5.0
421- golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
422- google.golang.org/api v0.110.0
423- google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc
424- google.golang.org/grpc v1.53.0
425- google.golang.org/protobuf v1.28.1
426-)
427-
428-require (
429- cloud.google.com/go/compute v1.18.0 // indirect
430- cloud.google.com/go/iam v0.8.0 // indirect
431- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
432- github.com/google/uuid v1.3.0 // indirect
433- github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
434- golang.org/x/net v0.6.0 // indirect
435- golang.org/x/sys v0.5.0 // indirect
436- golang.org/x/text v0.7.0 // indirect
437- google.golang.org/appengine v1.6.7 // indirect
438-)
439diff --git a/debian/extra/vendor/cloud.google.com/go/go.sum b/debian/extra/vendor/cloud.google.com/go/go.sum
440deleted file mode 100644
441index 0cd310d..0000000
442--- a/debian/extra/vendor/cloud.google.com/go/go.sum
443+++ /dev/null
444@@ -1,151 +0,0 @@
445-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
446-cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY=
447-cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
448-cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
449-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
450-cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk=
451-cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE=
452-cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
453-cloud.google.com/go/storage v1.28.1 h1:F5QDG5ChchaAVQhINh24U99OWHURqrW8OmQcGKXcbgI=
454-cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y=
455-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
456-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
457-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
458-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
459-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
460-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
461-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
462-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
463-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
464-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
465-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
466-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
467-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
468-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
469-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
470-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
471-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
472-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
473-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
474-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
475-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
476-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
477-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
478-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
479-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
480-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
481-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
482-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
483-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
484-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
485-github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
486-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
487-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
488-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
489-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
490-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
491-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
492-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
493-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
494-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
495-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
496-github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
497-github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
498-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
499-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
500-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
501-github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
502-github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
503-github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
504-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
505-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
506-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
507-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
508-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
509-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
510-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
511-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
512-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
513-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
514-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
515-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
516-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
517-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
518-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
519-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
520-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
521-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
522-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
523-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
524-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
525-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
526-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
527-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
528-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
529-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
530-golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
531-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
532-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
533-golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s=
534-golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
535-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
536-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
537-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
538-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
539-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
540-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
541-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
542-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
543-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
544-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
545-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
546-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
547-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
548-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
549-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
550-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
551-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
552-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
553-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
554-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
555-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
556-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
557-google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU=
558-google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI=
559-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
560-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
561-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
562-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
563-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
564-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
565-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
566-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc h1:ijGwO+0vL2hJt5gaygqP2j6PfflOBrRot0IczKbmtio=
567-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
568-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
569-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
570-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
571-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
572-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
573-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
574-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
575-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
576-google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
577-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
578-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
579-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
580-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
581-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
582-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
583-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
584-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
585-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
586-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
587-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
588-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
589-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
590-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
591-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
592-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
593-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
594-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
595-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
596diff --git a/debian/extra/vendor/cloud.google.com/go/iam/CHANGES.md b/debian/extra/vendor/cloud.google.com/go/iam/CHANGES.md
597index 9d39f98..40ae15d 100644
598--- a/debian/extra/vendor/cloud.google.com/go/iam/CHANGES.md
599+++ b/debian/extra/vendor/cloud.google.com/go/iam/CHANGES.md
600@@ -1,5 +1,12 @@
601 # Changes
602
603+## [0.13.0](https://github.com/googleapis/google-cloud-go/compare/iam/v0.12.0...iam/v0.13.0) (2023-03-15)
604+
605+
606+### Features
607+
608+* **iam:** Update iam and longrunning deps ([91a1f78](https://github.com/googleapis/google-cloud-go/commit/91a1f784a109da70f63b96414bba8a9b4254cddd))
609+
610 ## [0.12.0](https://github.com/googleapis/google-cloud-go/compare/iam/v0.11.0...iam/v0.12.0) (2023-02-17)
611
612
613diff --git a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go
614index 9ef7373..21079f6 100644
615--- a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go
616+++ b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/iam_policy.pb.go
617@@ -15,7 +15,7 @@
618 // Code generated by protoc-gen-go. DO NOT EDIT.
619 // versions:
620 // protoc-gen-go v1.26.0
621-// protoc v3.21.12
622+// protoc v3.21.9
623 // source: google/iam/v1/iam_policy.proto
624
625 package iampb
626diff --git a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go
627index 026c115..e8a2aca 100644
628--- a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go
629+++ b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/options.pb.go
630@@ -15,7 +15,7 @@
631 // Code generated by protoc-gen-go. DO NOT EDIT.
632 // versions:
633 // protoc-gen-go v1.26.0
634-// protoc v3.21.12
635+// protoc v3.21.9
636 // source: google/iam/v1/options.proto
637
638 package iampb
639diff --git a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go
640index 16bed43..e521db6 100644
641--- a/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go
642+++ b/debian/extra/vendor/cloud.google.com/go/iam/apiv1/iampb/policy.pb.go
643@@ -15,7 +15,7 @@
644 // Code generated by protoc-gen-go. DO NOT EDIT.
645 // versions:
646 // protoc-gen-go v1.26.0
647-// protoc v3.21.12
648+// protoc v3.21.9
649 // source: google/iam/v1/policy.proto
650
651 package iampb
652diff --git a/debian/extra/vendor/cloud.google.com/go/iam/go.mod b/debian/extra/vendor/cloud.google.com/go/iam/go.mod
653deleted file mode 100644
654index c5974a7..0000000
655--- a/debian/extra/vendor/cloud.google.com/go/iam/go.mod
656+++ /dev/null
657@@ -1,28 +0,0 @@
658-module cloud.google.com/go/iam
659-
660-go 1.19
661-
662-require (
663- cloud.google.com/go v0.107.0
664- cloud.google.com/go/longrunning v0.3.0
665- github.com/golang/protobuf v1.5.2
666- github.com/googleapis/gax-go/v2 v2.7.0
667- google.golang.org/api v0.110.0
668- google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44
669- google.golang.org/grpc v1.53.0
670- google.golang.org/protobuf v1.28.1
671-)
672-
673-require (
674- cloud.google.com/go/compute v1.18.0 // indirect
675- cloud.google.com/go/compute/metadata v0.2.3 // indirect
676- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
677- github.com/google/go-cmp v0.5.9 // indirect
678- github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
679- go.opencensus.io v0.24.0 // indirect
680- golang.org/x/net v0.6.0 // indirect
681- golang.org/x/oauth2 v0.5.0 // indirect
682- golang.org/x/sys v0.5.0 // indirect
683- golang.org/x/text v0.7.0 // indirect
684- google.golang.org/appengine v1.6.7 // indirect
685-)
686diff --git a/debian/extra/vendor/cloud.google.com/go/iam/go.sum b/debian/extra/vendor/cloud.google.com/go/iam/go.sum
687deleted file mode 100644
688index c85b4ea..0000000
689--- a/debian/extra/vendor/cloud.google.com/go/iam/go.sum
690+++ /dev/null
691@@ -1,135 +0,0 @@
692-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
693-cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww=
694-cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
695-cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY=
696-cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
697-cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
698-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
699-cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
700-cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc=
701-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
702-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
703-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
704-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
705-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
706-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
707-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
708-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
709-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
710-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
711-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
712-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
713-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
714-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
715-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
716-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
717-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
718-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
719-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
720-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
721-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
722-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
723-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
724-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
725-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
726-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
727-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
728-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
729-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
730-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
731-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
732-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
733-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
734-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
735-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
736-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
737-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
738-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
739-github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
740-github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
741-github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
742-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
743-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
744-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
745-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
746-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
747-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
748-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
749-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
750-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
751-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
752-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
753-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
754-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
755-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
756-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
757-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
758-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
759-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
760-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
761-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
762-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
763-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
764-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
765-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
766-golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
767-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
768-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
769-golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s=
770-golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
771-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
772-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
773-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
774-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
775-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
776-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
777-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
778-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
779-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
780-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
781-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
782-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
783-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
784-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
785-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
786-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
787-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
788-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
789-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
790-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
791-google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU=
792-google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI=
793-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
794-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
795-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
796-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
797-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
798-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
799-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
800-google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 h1:EfLuoKW5WfkgVdDy7dTK8qSbH37AX5mj/MFh+bGPz14=
801-google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA=
802-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
803-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
804-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
805-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
806-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
807-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
808-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
809-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
810-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
811-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
812-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
813-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
814-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
815-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
816-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
817-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
818-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
819-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
820-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
821-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
822-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
823-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
824-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
825-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
826-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
827diff --git a/debian/extra/vendor/cloud.google.com/go/logging/CHANGES.md b/debian/extra/vendor/cloud.google.com/go/logging/CHANGES.md
828index c62dd3c..a5c037c 100644
829--- a/debian/extra/vendor/cloud.google.com/go/logging/CHANGES.md
830+++ b/debian/extra/vendor/cloud.google.com/go/logging/CHANGES.md
831@@ -1,5 +1,20 @@
832 # Changes
833
834+## [1.7.0](https://github.com/googleapis/google-cloud-go/compare/logging/v1.6.1...logging/v1.7.0) (2023-02-27)
835+
836+
837+### Features
838+
839+* **logging:** Add (*Logger). StandardLoggerFromTemplate() method. ([#7261](https://github.com/googleapis/google-cloud-go/issues/7261)) ([533ecbb](https://github.com/googleapis/google-cloud-go/commit/533ecbb19a2833e667ad139a6604fd40dfb43cdc))
840+* **logging:** Add REST client ([06a54a1](https://github.com/googleapis/google-cloud-go/commit/06a54a16a5866cce966547c51e203b9e09a25bc0))
841+* **logging:** Rewrite signatures and type in terms of new location ([620e6d8](https://github.com/googleapis/google-cloud-go/commit/620e6d828ad8641663ae351bfccfe46281e817ad))
842+
843+
844+### Bug Fixes
845+
846+* **logging:** Correctly populate SourceLocation when logging via (*Logger).StandardLogger ([#7320](https://github.com/googleapis/google-cloud-go/issues/7320)) ([1a0bd13](https://github.com/googleapis/google-cloud-go/commit/1a0bd13b88569826f4ee6528e9cdb59fd26914fa))
847+* **logging:** Fix typo in README.md ([#7297](https://github.com/googleapis/google-cloud-go/issues/7297)) ([82aa2ee](https://github.com/googleapis/google-cloud-go/commit/82aa2ee9381f793bd731f1b6789fc18e4b671bd7))
848+
849 ## [1.6.1](https://github.com/googleapis/google-cloud-go/compare/logging/v1.6.0...logging/v1.6.1) (2022-12-02)
850
851
852diff --git a/debian/extra/vendor/cloud.google.com/go/logging/README.md b/debian/extra/vendor/cloud.google.com/go/logging/README.md
853index 0de922f..d1fb9ec 100644
854--- a/debian/extra/vendor/cloud.google.com/go/logging/README.md
855+++ b/debian/extra/vendor/cloud.google.com/go/logging/README.md
856@@ -60,6 +60,6 @@ Creating a Logger using `logging.Logger` accept configuration [LoggerOption](log
857 | EntryByteLimit | `int` | Maximum size in bytes of the single write call to ingest log entries. If EntryByteLimit is smaller than EntryByteThreshold, the latter has no effect. The default is zero, meaning there is no limit. |
858 | BufferedByteLimit | `int` | Maximum number of bytes that the Logger will keep in memory before returning ErrOverflow. This option limits the total memory consumption of the Logger (but note that each Logger has its own, separate limit). It is possible to reach BufferedByteLimit even if it is larger than EntryByteThreshold or EntryByteLimit, because calls triggered by the latter two options may be enqueued (and hence occupying memory) while new log entries are being added. |
859 | ContextFunc | `func() (ctx context.Context, afterCall func())` | Callback function to be called to obtain `context.Context` during async log ingestion. |
860-| SourceLocationPopulation | One of `logging.DoNotPopulateSourceLocation`, `logging.PopulateSourceLocationForDebugEntries` or `logging.AlwaysPopulateSourceLocation` | Controls auto-population of the logging.Entry.SoourceLocation field when ingesting log entries. Allows to disable population of source location info, allowing it only for log entries at Debug severity or enable it for all log entries. Enabling it for all entries may result in degradation in performance. Use `logging_test.BenchmarkSourceLocationPopulation` to test performance with and without the option. The default is set to `logging.DoNotPopulateSourceLocation`. |
861+| SourceLocationPopulation | One of `logging.DoNotPopulateSourceLocation`, `logging.PopulateSourceLocationForDebugEntries` or `logging.AlwaysPopulateSourceLocation` | Controls auto-population of the logging.Entry.SourceLocation field when ingesting log entries. Allows to disable population of source location info, allowing it only for log entries at Debug severity or enable it for all log entries. Enabling it for all entries may result in degradation in performance. Use `logging_test.BenchmarkSourceLocationPopulation` to test performance with and without the option. The default is set to `logging.DoNotPopulateSourceLocation`. |
862 | PartialSuccess | | Make each write call to Logging service with [partialSuccess flag](https://cloud.google.com/logging/docs/reference/v2/rest/v2/entries/write#body.request_body.FIELDS.partial_success) set. The default is to make calls without setting the flag. |
863 | RedirectAsJSON | `io.Writer` | Converts log entries to Jsonified one line string according to the [structured logging format](https://cloud.google.com/logging/docs/structured-logging#special-payload-fields) and writes it to provided `io.Writer`. Users should use this option with `os.Stdout` and `os.Stderr` to leverage the out-of-process ingestion of logs using logging agents that are deployed in Cloud Logging environments. |
864diff --git a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/config_client.go b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/config_client.go
865index 14161eb..64072da 100644
866--- a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/config_client.go
867+++ b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/config_client.go
868@@ -1,4 +1,4 @@
869-// Copyright 2022 Google LLC
870+// Copyright 2023 Google LLC
871 //
872 // Licensed under the Apache License, Version 2.0 (the "License");
873 // you may not use this file except in compliance with the License.
874@@ -23,6 +23,7 @@ import (
875 "net/url"
876 "time"
877
878+ loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
879 "cloud.google.com/go/longrunning"
880 lroauto "cloud.google.com/go/longrunning/autogen"
881 gax "github.com/googleapis/gax-go/v2"
882@@ -30,7 +31,6 @@ import (
883 "google.golang.org/api/option"
884 "google.golang.org/api/option/internaloption"
885 gtransport "google.golang.org/api/transport/grpc"
886- loggingpb "google.golang.org/genproto/googleapis/logging/v2"
887 longrunningpb "google.golang.org/genproto/googleapis/longrunning"
888 "google.golang.org/grpc"
889 "google.golang.org/grpc/codes"
890diff --git a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/doc.go b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/doc.go
891index f748605..033fe01 100644
892--- a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/doc.go
893+++ b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/doc.go
894@@ -1,4 +1,4 @@
895-// Copyright 2022 Google LLC
896+// Copyright 2023 Google LLC
897 //
898 // Licensed under the Apache License, Version 2.0 (the "License");
899 // you may not use this file except in compliance with the License.
900@@ -19,6 +19,11 @@
901 //
902 // Writes log entries and manages your Cloud Logging configuration.
903 //
904+// # General documentation
905+//
906+// For information about setting deadlines, reusing contexts, and more
907+// please visit https://pkg.go.dev/cloud.google.com/go.
908+//
909 // # Example usage
910 //
911 // To get started with this package, create a client.
912@@ -57,7 +62,7 @@
913 //
914 // req := &loggingpb.DeleteLogRequest{
915 // // TODO: Fill request struct fields.
916-// // See https://pkg.go.dev/google.golang.org/genproto/googleapis/logging/v2#DeleteLogRequest.
917+// // See https://pkg.go.dev/cloud.google.com/go/logging/apiv2/loggingpb#DeleteLogRequest.
918 // }
919 // err = c.DeleteLog(ctx, req)
920 // if err != nil {
921@@ -71,9 +76,6 @@
922 // Individual methods on the client use the ctx given to them.
923 //
924 // To close the open connection, use the Close() method.
925-//
926-// For information about setting deadlines, reusing contexts, and more
927-// please visit https://pkg.go.dev/cloud.google.com/go.
928 package logging // import "cloud.google.com/go/logging/apiv2"
929
930 import (
931diff --git a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/logging_client.go b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
932index fe67949..d05aa0b 100644
933--- a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
934+++ b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/logging_client.go
935@@ -1,4 +1,4 @@
936-// Copyright 2022 Google LLC
937+// Copyright 2023 Google LLC
938 //
939 // Licensed under the Apache License, Version 2.0 (the "License");
940 // you may not use this file except in compliance with the License.
941@@ -23,13 +23,13 @@ import (
942 "net/url"
943 "time"
944
945+ loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
946 gax "github.com/googleapis/gax-go/v2"
947 "google.golang.org/api/iterator"
948 "google.golang.org/api/option"
949 "google.golang.org/api/option/internaloption"
950 gtransport "google.golang.org/api/transport/grpc"
951 monitoredrespb "google.golang.org/genproto/googleapis/api/monitoredres"
952- loggingpb "google.golang.org/genproto/googleapis/logging/v2"
953 "google.golang.org/grpc"
954 "google.golang.org/grpc/codes"
955 "google.golang.org/grpc/metadata"
956diff --git a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
957index ae5b6d4..79fcde1 100644
958--- a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
959+++ b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/metrics_client.go
960@@ -1,4 +1,4 @@
961-// Copyright 2022 Google LLC
962+// Copyright 2023 Google LLC
963 //
964 // Licensed under the Apache License, Version 2.0 (the "License");
965 // you may not use this file except in compliance with the License.
966@@ -23,12 +23,12 @@ import (
967 "net/url"
968 "time"
969
970+ loggingpb "cloud.google.com/go/logging/apiv2/loggingpb"
971 gax "github.com/googleapis/gax-go/v2"
972 "google.golang.org/api/iterator"
973 "google.golang.org/api/option"
974 "google.golang.org/api/option/internaloption"
975 gtransport "google.golang.org/api/transport/grpc"
976- loggingpb "google.golang.org/genproto/googleapis/logging/v2"
977 "google.golang.org/grpc"
978 "google.golang.org/grpc/codes"
979 "google.golang.org/grpc/metadata"
980diff --git a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/version.go b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/version.go
981index 2de6c54..da2bcee 100644
982--- a/debian/extra/vendor/cloud.google.com/go/logging/apiv2/version.go
983+++ b/debian/extra/vendor/cloud.google.com/go/logging/apiv2/version.go
984@@ -1,4 +1,4 @@
985-// Copyright 2022 Google LLC
986+// Copyright 2023 Google LLC
987 //
988 // Licensed under the Apache License, Version 2.0 (the "License");
989 // you may not use this file except in compliance with the License.
990diff --git a/debian/extra/vendor/cloud.google.com/go/logging/go.mod b/debian/extra/vendor/cloud.google.com/go/logging/go.mod
991deleted file mode 100644
992index a130967..0000000
993--- a/debian/extra/vendor/cloud.google.com/go/logging/go.mod
994+++ /dev/null
995@@ -1,33 +0,0 @@
996-module cloud.google.com/go/logging
997-
998-go 1.19
999-
1000-require (
1001- cloud.google.com/go v0.105.0
1002- cloud.google.com/go/compute/metadata v0.2.1
1003- cloud.google.com/go/iam v0.7.0
1004- cloud.google.com/go/longrunning v0.3.0
1005- cloud.google.com/go/storage v1.27.0
1006- github.com/golang/protobuf v1.5.2
1007- github.com/google/go-cmp v0.5.9
1008- github.com/googleapis/gax-go/v2 v2.7.0
1009- go.opencensus.io v0.24.0
1010- golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783
1011- google.golang.org/api v0.103.0
1012- google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c
1013- google.golang.org/grpc v1.50.1
1014- google.golang.org/protobuf v1.28.1
1015-)
1016-
1017-require (
1018- cloud.google.com/go/compute v1.12.1 // indirect
1019- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
1020- github.com/google/uuid v1.3.0 // indirect
1021- github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect
1022- golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
1023- golang.org/x/sync v0.1.0 // indirect
1024- golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
1025- golang.org/x/text v0.4.0 // indirect
1026- golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
1027- google.golang.org/appengine v1.6.7 // indirect
1028-)
1029diff --git a/debian/extra/vendor/cloud.google.com/go/logging/go.sum b/debian/extra/vendor/cloud.google.com/go/logging/go.sum
1030deleted file mode 100644
1031index 8468a8a..0000000
1032--- a/debian/extra/vendor/cloud.google.com/go/logging/go.sum
1033+++ /dev/null
1034@@ -1,149 +0,0 @@
1035-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
1036-cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y=
1037-cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM=
1038-cloud.google.com/go/compute v1.12.1 h1:gKVJMEyqV5c/UnpzjjQbo3Rjvvqpr9B1DFSbJC4OXr0=
1039-cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
1040-cloud.google.com/go/compute/metadata v0.2.1 h1:efOwf5ymceDhK6PKMnnrTHP4pppY5L22mle96M1yP48=
1041-cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
1042-cloud.google.com/go/iam v0.7.0 h1:k4MuwOsS7zGJJ+QfZ5vBK8SgHBAvYN/23BWsiihJ1vs=
1043-cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg=
1044-cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
1045-cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc=
1046-cloud.google.com/go/storage v1.27.0 h1:YOO045NZI9RKfCj1c5A/ZtuuENUc8OAW+gHdGnDgyMQ=
1047-cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s=
1048-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
1049-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
1050-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1051-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
1052-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1053-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1054-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1055-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1056-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
1057-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
1058-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
1059-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
1060-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
1061-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
1062-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1063-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1064-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1065-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
1066-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
1067-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
1068-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
1069-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
1070-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
1071-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
1072-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
1073-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
1074-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
1075-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
1076-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1077-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1078-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1079-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1080-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1081-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1082-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
1083-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1084-github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ=
1085-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1086-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
1087-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1088-github.com/googleapis/enterprise-certificate-proxy v0.2.0 h1:y8Yozv7SZtlU//QXbezB6QkpuE6jMD2/gfzk4AftXjs=
1089-github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg=
1090-github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
1091-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
1092-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1093-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
1094-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
1095-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
1096-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
1097-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1098-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1099-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
1100-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
1101-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
1102-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
1103-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
1104-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
1105-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
1106-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
1107-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
1108-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1109-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1110-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1111-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1112-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1113-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
1114-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
1115-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU=
1116-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
1117-golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0=
1118-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
1119-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
1120-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
1121-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
1122-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1123-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1124-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1125-golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
1126-golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1127-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1128-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1129-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1130-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1131-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
1132-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1133-golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
1134-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1135-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
1136-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
1137-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
1138-golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
1139-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
1140-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1141-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1142-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
1143-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
1144-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
1145-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1146-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
1147-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
1148-google.golang.org/api v0.103.0 h1:9yuVqlu2JCvcLg9p8S3fcFLZij8EPSyvODIY1rkMizQ=
1149-google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0=
1150-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
1151-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
1152-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
1153-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
1154-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
1155-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
1156-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
1157-google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c h1:S34D59DS2GWOEwWNt4fYmTcFrtlOgukG2k9WsomZ7tg=
1158-google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
1159-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
1160-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
1161-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
1162-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
1163-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
1164-google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY=
1165-google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
1166-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
1167-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
1168-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
1169-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
1170-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
1171-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1172-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1173-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1174-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
1175-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
1176-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
1177-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
1178-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
1179-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1180-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1181-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1182-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1183-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1184diff --git a/debian/extra/vendor/cloud.google.com/go/logging/instrumentation.go b/debian/extra/vendor/cloud.google.com/go/logging/instrumentation.go
1185index a377d5c..b8822e6 100644
1186--- a/debian/extra/vendor/cloud.google.com/go/logging/instrumentation.go
1187+++ b/debian/extra/vendor/cloud.google.com/go/logging/instrumentation.go
1188@@ -17,8 +17,8 @@ package logging
1189 import (
1190 "strings"
1191
1192+ logpb "cloud.google.com/go/logging/apiv2/loggingpb"
1193 "cloud.google.com/go/logging/internal"
1194- logpb "google.golang.org/genproto/googleapis/logging/v2"
1195 )
1196
1197 const diagnosticLogID = "diagnostic-log"
1198diff --git a/debian/extra/vendor/cloud.google.com/go/logging/internal/version.go b/debian/extra/vendor/cloud.google.com/go/logging/internal/version.go
1199index b819fa7..7c251d9 100644
1200--- a/debian/extra/vendor/cloud.google.com/go/logging/internal/version.go
1201+++ b/debian/extra/vendor/cloud.google.com/go/logging/internal/version.go
1202@@ -15,4 +15,4 @@
1203 package internal
1204
1205 // Version is the current tagged release of the library.
1206-const Version = "1.6.1"
1207+const Version = "1.7.0"
1208diff --git a/debian/extra/vendor/cloud.google.com/go/logging/logging.go b/debian/extra/vendor/cloud.google.com/go/logging/logging.go
1209index 7b7176a..0763640 100644
1210--- a/debian/extra/vendor/cloud.google.com/go/logging/logging.go
1211+++ b/debian/extra/vendor/cloud.google.com/go/logging/logging.go
1212@@ -42,6 +42,7 @@ import (
1213 "unicode/utf8"
1214
1215 vkit "cloud.google.com/go/logging/apiv2"
1216+ logpb "cloud.google.com/go/logging/apiv2/loggingpb"
1217 "cloud.google.com/go/logging/internal"
1218 "github.com/golang/protobuf/proto"
1219 "github.com/golang/protobuf/ptypes"
1220@@ -50,7 +51,6 @@ import (
1221 "google.golang.org/api/support/bundler"
1222 mrpb "google.golang.org/genproto/googleapis/api/monitoredres"
1223 logtypepb "google.golang.org/genproto/googleapis/logging/type"
1224- logpb "google.golang.org/genproto/googleapis/logging/v2"
1225 "google.golang.org/protobuf/types/known/anypb"
1226 "google.golang.org/protobuf/types/known/timestamppb"
1227 )
1228@@ -96,7 +96,8 @@ var (
1229 ErrRedirectProtoPayloadNotSupported = errors.New("printEntryToStdout: cannot find valid payload")
1230
1231 // For testing:
1232- now = time.Now
1233+ now = time.Now
1234+ toLogEntryInternal = toLogEntryInternalImpl
1235
1236 // ErrOverflow signals that the number of buffered entries for a Logger
1237 // exceeds its BufferLimit.
1238@@ -287,7 +288,8 @@ func (c *Client) Logger(logID string, opts ...LoggerOption) *Logger {
1239 }
1240 l.stdLoggers = map[Severity]*log.Logger{}
1241 for s := range severityName {
1242- l.stdLoggers[s] = log.New(severityWriter{l, s}, "", 0)
1243+ e := Entry{Severity: s}
1244+ l.stdLoggers[s] = log.New(templateEntryWriter{l, &e}, "", 0)
1245 }
1246
1247 c.loggers.Add(1)
1248@@ -301,16 +303,20 @@ func (c *Client) Logger(logID string, opts ...LoggerOption) *Logger {
1249 return l
1250 }
1251
1252-type severityWriter struct {
1253- l *Logger
1254- s Severity
1255+type templateEntryWriter struct {
1256+ l *Logger
1257+ template *Entry
1258 }
1259
1260-func (w severityWriter) Write(p []byte) (n int, err error) {
1261- w.l.Log(Entry{
1262- Severity: w.s,
1263- Payload: string(p),
1264- })
1265+func (w templateEntryWriter) Write(p []byte) (n int, err error) {
1266+ e := *w.template
1267+ e.Payload = string(p)
1268+ // The second argument to logInternal() is how many frames to skip
1269+ // from the call stack when determining the source location. In the
1270+ // current implementation of log.Logger (i.e. Go's logging library)
1271+ // the Write() method is called 2 calls deep so we need to skip 3
1272+ // frames to account for the call to logInternal() itself.
1273+ w.l.logInternal(e, 3)
1274 return len(p), nil
1275 }
1276
1277@@ -656,7 +662,11 @@ func (l *Logger) LogSync(ctx context.Context, e Entry) error {
1278
1279 // Log buffers the Entry for output to the logging service. It never blocks.
1280 func (l *Logger) Log(e Entry) {
1281- ent, err := toLogEntryInternal(e, l, l.client.parent, 1)
1282+ l.logInternal(e, 1)
1283+}
1284+
1285+func (l *Logger) logInternal(e Entry, skipLevels int) {
1286+ ent, err := toLogEntryInternal(e, l, l.client.parent, skipLevels+1)
1287 if err != nil {
1288 l.client.error(err)
1289 return
1290@@ -721,6 +731,20 @@ func (l *Logger) writeLogEntries(entries []*logpb.LogEntry) {
1291 // (for example by calling SetFlags or SetPrefix).
1292 func (l *Logger) StandardLogger(s Severity) *log.Logger { return l.stdLoggers[s] }
1293
1294+// StandardLoggerFromTemplate returns a Go Standard Logging API *log.Logger.
1295+//
1296+// The returned logger emits logs using logging.(*Logger).Log() with an entry
1297+// constructed from the provided template Entry struct.
1298+//
1299+// The caller is responsible for ensuring that the template Entry struct
1300+// does not change during the the lifetime of the returned *log.Logger.
1301+//
1302+// Prefer (*Logger).StandardLogger() which is more efficient if the template
1303+// only sets Severity.
1304+func (l *Logger) StandardLoggerFromTemplate(template *Entry) *log.Logger {
1305+ return log.New(templateEntryWriter{l, template}, "", 0)
1306+}
1307+
1308 func populateTraceInfo(e *Entry, req *http.Request) bool {
1309 if req == nil {
1310 if e.HTTPRequest != nil && e.HTTPRequest.Request != nil {
1311@@ -834,7 +858,7 @@ func (l *Logger) ToLogEntry(e Entry, parent string) (*logpb.LogEntry, error) {
1312 return toLogEntryInternal(e, l, parent, 1)
1313 }
1314
1315-func toLogEntryInternal(e Entry, l *Logger, parent string, skipLevels int) (*logpb.LogEntry, error) {
1316+func toLogEntryInternalImpl(e Entry, l *Logger, parent string, skipLevels int) (*logpb.LogEntry, error) {
1317 if e.LogName != "" {
1318 return nil, errors.New("logging: Entry.LogName should be not be set when writing")
1319 }
1320diff --git a/debian/extra/vendor/cloud.google.com/go/longrunning/go.mod b/debian/extra/vendor/cloud.google.com/go/longrunning/go.mod
1321deleted file mode 100644
1322index f8d30f7..0000000
1323--- a/debian/extra/vendor/cloud.google.com/go/longrunning/go.mod
1324+++ /dev/null
1325@@ -1,27 +0,0 @@
1326-module cloud.google.com/go/longrunning
1327-
1328-go 1.19
1329-
1330-require (
1331- cloud.google.com/go v0.107.0
1332- github.com/golang/protobuf v1.5.2
1333- github.com/googleapis/gax-go/v2 v2.7.0
1334- google.golang.org/api v0.110.0
1335- google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc
1336- google.golang.org/grpc v1.53.0
1337- google.golang.org/protobuf v1.28.1
1338-)
1339-
1340-require (
1341- cloud.google.com/go/compute v1.18.0 // indirect
1342- cloud.google.com/go/compute/metadata v0.2.3 // indirect
1343- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
1344- github.com/google/go-cmp v0.5.9 // indirect
1345- github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
1346- go.opencensus.io v0.24.0 // indirect
1347- golang.org/x/net v0.6.0 // indirect
1348- golang.org/x/oauth2 v0.5.0 // indirect
1349- golang.org/x/sys v0.5.0 // indirect
1350- golang.org/x/text v0.7.0 // indirect
1351- google.golang.org/appengine v1.6.7 // indirect
1352-)
1353diff --git a/debian/extra/vendor/cloud.google.com/go/longrunning/go.sum b/debian/extra/vendor/cloud.google.com/go/longrunning/go.sum
1354deleted file mode 100644
1355index 51fc0c3..0000000
1356--- a/debian/extra/vendor/cloud.google.com/go/longrunning/go.sum
1357+++ /dev/null
1358@@ -1,132 +0,0 @@
1359-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
1360-cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww=
1361-cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
1362-cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY=
1363-cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs=
1364-cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
1365-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
1366-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
1367-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
1368-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1369-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
1370-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1371-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1372-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1373-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1374-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
1375-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
1376-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
1377-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
1378-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
1379-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
1380-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1381-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1382-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1383-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
1384-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
1385-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
1386-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
1387-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
1388-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
1389-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
1390-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
1391-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
1392-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
1393-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
1394-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1395-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1396-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1397-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1398-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1399-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1400-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
1401-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1402-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1403-github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k=
1404-github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
1405-github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
1406-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
1407-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1408-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
1409-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
1410-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
1411-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
1412-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1413-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1414-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
1415-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
1416-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
1417-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
1418-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
1419-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
1420-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
1421-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
1422-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
1423-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1424-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1425-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1426-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1427-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1428-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
1429-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
1430-golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
1431-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
1432-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
1433-golang.org/x/oauth2 v0.5.0 h1:HuArIo48skDwlrvM3sEdHXElYslAMsf3KwRkkW4MC4s=
1434-golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
1435-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1436-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1437-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1438-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1439-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1440-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1441-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1442-golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
1443-golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1444-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
1445-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
1446-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
1447-golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
1448-golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
1449-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1450-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1451-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
1452-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
1453-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
1454-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1455-google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU=
1456-google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI=
1457-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
1458-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
1459-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
1460-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
1461-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
1462-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
1463-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
1464-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc h1:ijGwO+0vL2hJt5gaygqP2j6PfflOBrRot0IczKbmtio=
1465-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
1466-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
1467-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
1468-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
1469-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
1470-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
1471-google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
1472-google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
1473-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
1474-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
1475-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
1476-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
1477-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
1478-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1479-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1480-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1481-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
1482-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
1483-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
1484-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
1485-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
1486-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1487-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1488-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1489-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1490-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1491diff --git a/debian/extra/vendor/cloud.google.com/go/storage/go.mod b/debian/extra/vendor/cloud.google.com/go/storage/go.mod
1492deleted file mode 100644
1493index f62e151..0000000
1494--- a/debian/extra/vendor/cloud.google.com/go/storage/go.mod
1495+++ /dev/null
1496@@ -1,31 +0,0 @@
1497-module cloud.google.com/go/storage
1498-
1499-go 1.19
1500-
1501-require (
1502- cloud.google.com/go v0.107.0
1503- cloud.google.com/go/compute/metadata v0.2.3
1504- cloud.google.com/go/iam v0.8.0
1505- github.com/golang/protobuf v1.5.2
1506- github.com/google/go-cmp v0.5.9
1507- github.com/google/uuid v1.3.0
1508- github.com/googleapis/gax-go/v2 v2.7.0
1509- golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783
1510- golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
1511- google.golang.org/api v0.106.0
1512- google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f
1513- google.golang.org/grpc v1.51.0
1514- google.golang.org/protobuf v1.28.1
1515-)
1516-
1517-require (
1518- cloud.google.com/go/compute v1.14.0 // indirect
1519- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
1520- github.com/google/martian/v3 v3.2.1 // indirect
1521- github.com/googleapis/enterprise-certificate-proxy v0.2.1 // indirect
1522- go.opencensus.io v0.24.0 // indirect
1523- golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
1524- golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
1525- golang.org/x/text v0.5.0 // indirect
1526- google.golang.org/appengine v1.6.7 // indirect
1527-)
1528diff --git a/debian/extra/vendor/cloud.google.com/go/storage/go.sum b/debian/extra/vendor/cloud.google.com/go/storage/go.sum
1529deleted file mode 100644
1530index deaeda7..0000000
1531--- a/debian/extra/vendor/cloud.google.com/go/storage/go.sum
1532+++ /dev/null
1533@@ -1,151 +0,0 @@
1534-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
1535-cloud.google.com/go v0.107.0 h1:qkj22L7bgkl6vIeZDlOY2po43Mx/TIa2Wsa7VR+PEww=
1536-cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
1537-cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0=
1538-cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
1539-cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
1540-cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
1541-cloud.google.com/go/iam v0.8.0 h1:E2osAkZzxI/+8pZcxVLcDtAQx/u+hZXVryUaYQ5O0Kk=
1542-cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE=
1543-cloud.google.com/go/longrunning v0.3.0 h1:NjljC+FYPV3uh5/OwWT6pVU+doBqMg2x/rZlE+CamDs=
1544-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
1545-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
1546-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
1547-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
1548-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
1549-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1550-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1551-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1552-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
1553-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
1554-github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
1555-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
1556-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
1557-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
1558-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
1559-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
1560-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1561-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1562-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
1563-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
1564-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
1565-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
1566-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
1567-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
1568-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
1569-github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
1570-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
1571-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
1572-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
1573-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
1574-github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
1575-github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
1576-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
1577-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1578-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
1579-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1580-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1581-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1582-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
1583-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
1584-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1585-github.com/google/martian/v3 v3.2.1 h1:d8MncMlErDFTwQGBK1xhv026j9kqhvw1Qv9IbWT1VLQ=
1586-github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
1587-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1588-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
1589-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1590-github.com/googleapis/enterprise-certificate-proxy v0.2.1 h1:RY7tHKZcRlk788d5WSo/e83gOyyy742E8GSs771ySpg=
1591-github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k=
1592-github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ=
1593-github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
1594-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1595-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
1596-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
1597-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
1598-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
1599-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
1600-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1601-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1602-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
1603-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
1604-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
1605-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
1606-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
1607-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
1608-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
1609-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
1610-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
1611-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1612-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1613-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
1614-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1615-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
1616-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
1617-golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
1618-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
1619-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU=
1620-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
1621-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
1622-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
1623-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
1624-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1625-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1626-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1627-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1628-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
1629-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1630-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1631-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
1632-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1633-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
1634-golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
1635-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
1636-golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM=
1637-golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
1638-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1639-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
1640-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
1641-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
1642-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
1643-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1644-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk=
1645-golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
1646-google.golang.org/api v0.106.0 h1:ffmW0faWCwKkpbbtvlY/K/8fUl+JKvNS5CVzRoyfCv8=
1647-google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY=
1648-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
1649-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
1650-google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
1651-google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
1652-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
1653-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
1654-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
1655-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f h1:BWUVssLB0HVOSY78gIdvk1dTVYtT1y8SBWtPYuTJ/6w=
1656-google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
1657-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
1658-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
1659-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
1660-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
1661-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
1662-google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
1663-google.golang.org/grpc v1.51.0 h1:E1eGv1FTqoLIdnBCZufiSHgKjlqG6fKFf6pPWtMTh8U=
1664-google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
1665-google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
1666-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
1667-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
1668-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
1669-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
1670-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
1671-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1672-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1673-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
1674-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
1675-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
1676-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
1677-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
1678-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
1679-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1680-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
1681-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1682-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
1683-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1684-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
1685diff --git a/debian/extra/vendor/github.com/StackExchange/wmi/go.mod b/debian/extra/vendor/github.com/StackExchange/wmi/go.mod
1686deleted file mode 100644
1687index 996d0bd..0000000
1688--- a/debian/extra/vendor/github.com/StackExchange/wmi/go.mod
1689+++ /dev/null
1690@@ -1,5 +0,0 @@
1691-module github.com/StackExchange/wmi
1692-
1693-go 1.13
1694-
1695-require github.com/go-ole/go-ole v1.2.5
1696diff --git a/debian/extra/vendor/github.com/StackExchange/wmi/go.sum b/debian/extra/vendor/github.com/StackExchange/wmi/go.sum
1697deleted file mode 100644
1698index 2712e4d..0000000
1699--- a/debian/extra/vendor/github.com/StackExchange/wmi/go.sum
1700+++ /dev/null
1701@@ -1,4 +0,0 @@
1702-github.com/go-ole/go-ole v1.2.5 h1:t4MGB5xEDZvXI+0rMjjsfBsD7yAgp/s9ZDkL1JndXwY=
1703-github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
1704-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo=
1705-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1706diff --git a/debian/extra/vendor/github.com/go-ole/go-ole/go.mod b/debian/extra/vendor/github.com/go-ole/go-ole/go.mod
1707deleted file mode 100644
1708index 3a21f75..0000000
1709--- a/debian/extra/vendor/github.com/go-ole/go-ole/go.mod
1710+++ /dev/null
1711@@ -1,5 +0,0 @@
1712-module github.com/go-ole/go-ole
1713-
1714-go 1.12
1715-
1716-require golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3
1717diff --git a/debian/extra/vendor/github.com/go-ole/go-ole/go.sum b/debian/extra/vendor/github.com/go-ole/go-ole/go.sum
1718deleted file mode 100644
1719index 9814d31..0000000
1720--- a/debian/extra/vendor/github.com/go-ole/go-ole/go.sum
1721+++ /dev/null
1722@@ -1,2 +0,0 @@
1723-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 h1:7TYNF4UdlohbFwpNH04CoPMp1cHUZgO1Ebq5r2hIjfo=
1724-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1725diff --git a/debian/extra/vendor/github.com/golang/glog/glog.go b/debian/extra/vendor/github.com/golang/glog/glog.go
1726index 718c34f..e108ae8 100644
1727--- a/debian/extra/vendor/github.com/golang/glog/glog.go
1728+++ b/debian/extra/vendor/github.com/golang/glog/glog.go
1729@@ -1,6 +1,6 @@
1730-// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/
1731+// Go support for leveled logs, analogous to https://github.com/google/glog.
1732 //
1733-// Copyright 2013 Google Inc. All Rights Reserved.
1734+// Copyright 2023 Google Inc. All Rights Reserved.
1735 //
1736 // Licensed under the Apache License, Version 2.0 (the "License");
1737 // you may not use this file except in compliance with the License.
1738@@ -50,15 +50,15 @@
1739 // Log files will be written to this directory instead of the
1740 // default temporary directory.
1741 //
1742-// Other flags provide aids to debugging.
1743+// Other flags provide aids to debugging.
1744 //
1745 // -log_backtrace_at=""
1746-// When set to a file and line number holding a logging statement,
1747-// such as
1748+// A comma-separated list of file and line numbers holding a logging
1749+// statement, such as
1750 // -log_backtrace_at=gopherflakes.go:234
1751-// a stack trace will be written to the Info log whenever execution
1752-// hits that statement. (Unlike with -vmodule, the ".go" must be
1753-// present.)
1754+// A stack trace will be written to the Info log whenever execution
1755+// hits one of these statements. (Unlike with -vmodule, the ".go"
1756+// must bepresent.)
1757 // -v=0
1758 // Enable V-leveled logging at the specified level.
1759 // -vmodule=""
1760@@ -66,100 +66,47 @@
1761 // where pattern is a literal file name (minus the ".go" suffix) or
1762 // "glob" pattern and N is a V level. For instance,
1763 // -vmodule=gopher*=3
1764-// sets the V level to 3 in all Go files whose names begin "gopher".
1765-//
1766+// sets the V level to 3 in all Go files whose names begin with "gopher",
1767+// and
1768+// -vmodule=/path/to/glog/glog_test=1
1769+// sets the V level to 1 in the Go file /path/to/glog/glog_test.go.
1770+// If a glob pattern contains a slash, it is matched against the full path,
1771+// and the file name. Otherwise, the pattern is
1772+// matched only against the file's basename. When both -vmodule and -v
1773+// are specified, the -vmodule values take precedence for the specified
1774+// modules.
1775 package glog
1776
1777+// This file contains the parts of the log package that are shared among all
1778+// implementations (file, envelope, and appengine).
1779+
1780 import (
1781- "bufio"
1782 "bytes"
1783 "errors"
1784- "flag"
1785 "fmt"
1786- "io"
1787 stdLog "log"
1788 "os"
1789- "path/filepath"
1790+ "reflect"
1791 "runtime"
1792+ "runtime/pprof"
1793 "strconv"
1794- "strings"
1795 "sync"
1796 "sync/atomic"
1797+ "syscall"
1798 "time"
1799-)
1800-
1801-// severity identifies the sort of log: info, warning etc. It also implements
1802-// the flag.Value interface. The -stderrthreshold flag is of type severity and
1803-// should be modified only through the flag.Value interface. The values match
1804-// the corresponding constants in C++.
1805-type severity int32 // sync/atomic int32
1806
1807-// These constants identify the log levels in order of increasing severity.
1808-// A message written to a high-severity log file is also written to each
1809-// lower-severity log file.
1810-const (
1811- infoLog severity = iota
1812- warningLog
1813- errorLog
1814- fatalLog
1815- numSeverity = 4
1816+ "github.com/golang/glog/internal/logsink"
1817+ "github.com/golang/glog/internal/stackdump"
1818 )
1819
1820-const severityChar = "IWEF"
1821-
1822-var severityName = []string{
1823- infoLog: "INFO",
1824- warningLog: "WARNING",
1825- errorLog: "ERROR",
1826- fatalLog: "FATAL",
1827-}
1828-
1829-// get returns the value of the severity.
1830-func (s *severity) get() severity {
1831- return severity(atomic.LoadInt32((*int32)(s)))
1832-}
1833-
1834-// set sets the value of the severity.
1835-func (s *severity) set(val severity) {
1836- atomic.StoreInt32((*int32)(s), int32(val))
1837-}
1838-
1839-// String is part of the flag.Value interface.
1840-func (s *severity) String() string {
1841- return strconv.FormatInt(int64(*s), 10)
1842-}
1843-
1844-// Get is part of the flag.Value interface.
1845-func (s *severity) Get() interface{} {
1846- return *s
1847-}
1848+var timeNow = time.Now // Stubbed out for testing.
1849
1850-// Set is part of the flag.Value interface.
1851-func (s *severity) Set(value string) error {
1852- var threshold severity
1853- // Is it a known name?
1854- if v, ok := severityByName(value); ok {
1855- threshold = v
1856- } else {
1857- v, err := strconv.Atoi(value)
1858- if err != nil {
1859- return err
1860- }
1861- threshold = severity(v)
1862- }
1863- logging.stderrThreshold.set(threshold)
1864- return nil
1865-}
1866+// MaxSize is the maximum size of a log file in bytes.
1867+var MaxSize uint64 = 1024 * 1024 * 1800
1868
1869-func severityByName(s string) (severity, bool) {
1870- s = strings.ToUpper(s)
1871- for i, name := range severityName {
1872- if name == s {
1873- return severity(i), true
1874- }
1875- }
1876- return 0, false
1877-}
1878+// ErrNoLog is the error we return if no log file has yet been created
1879+// for the specified log type.
1880+var ErrNoLog = errors.New("log file not yet created")
1881
1882 // OutputStats tracks the number of output lines and bytes written.
1883 type OutputStats struct {
1884@@ -183,724 +130,99 @@ var Stats struct {
1885 Info, Warning, Error OutputStats
1886 }
1887
1888-var severityStats = [numSeverity]*OutputStats{
1889- infoLog: &Stats.Info,
1890- warningLog: &Stats.Warning,
1891- errorLog: &Stats.Error,
1892+var severityStats = [...]*OutputStats{
1893+ logsink.Info: &Stats.Info,
1894+ logsink.Warning: &Stats.Warning,
1895+ logsink.Error: &Stats.Error,
1896+ logsink.Fatal: nil,
1897 }
1898
1899-// Level is exported because it appears in the arguments to V and is
1900-// the type of the v flag, which can be set programmatically.
1901-// It's a distinct type because we want to discriminate it from logType.
1902-// Variables of type level are only changed under logging.mu.
1903-// The -v flag is read only with atomic ops, so the state of the logging
1904-// module is consistent.
1905-
1906-// Level is treated as a sync/atomic int32.
1907-
1908-// Level specifies a level of verbosity for V logs. *Level implements
1909-// flag.Value; the -v flag is of type Level and should be modified
1910-// only through the flag.Value interface.
1911+// Level specifies a level of verbosity for V logs. The -v flag is of type
1912+// Level and should be modified only through the flag.Value interface.
1913 type Level int32
1914
1915-// get returns the value of the Level.
1916-func (l *Level) get() Level {
1917- return Level(atomic.LoadInt32((*int32)(l)))
1918-}
1919-
1920-// set sets the value of the Level.
1921-func (l *Level) set(val Level) {
1922- atomic.StoreInt32((*int32)(l), int32(val))
1923-}
1924-
1925-// String is part of the flag.Value interface.
1926-func (l *Level) String() string {
1927- return strconv.FormatInt(int64(*l), 10)
1928-}
1929+var metaPool sync.Pool // Pool of *logsink.Meta.
1930
1931-// Get is part of the flag.Value interface.
1932-func (l *Level) Get() interface{} {
1933- return *l
1934-}
1935-
1936-// Set is part of the flag.Value interface.
1937-func (l *Level) Set(value string) error {
1938- v, err := strconv.Atoi(value)
1939- if err != nil {
1940- return err
1941- }
1942- logging.mu.Lock()
1943- defer logging.mu.Unlock()
1944- logging.setVState(Level(v), logging.vmodule.filter, false)
1945- return nil
1946-}
1947-
1948-// moduleSpec represents the setting of the -vmodule flag.
1949-type moduleSpec struct {
1950- filter []modulePat
1951-}
1952-
1953-// modulePat contains a filter for the -vmodule flag.
1954-// It holds a verbosity level and a file pattern to match.
1955-type modulePat struct {
1956- pattern string
1957- literal bool // The pattern is a literal string
1958- level Level
1959-}
1960-
1961-// match reports whether the file matches the pattern. It uses a string
1962-// comparison if the pattern contains no metacharacters.
1963-func (m *modulePat) match(file string) bool {
1964- if m.literal {
1965- return file == m.pattern
1966- }
1967- match, _ := filepath.Match(m.pattern, file)
1968- return match
1969-}
1970-
1971-func (m *moduleSpec) String() string {
1972- // Lock because the type is not atomic. TODO: clean this up.
1973- logging.mu.Lock()
1974- defer logging.mu.Unlock()
1975- var b bytes.Buffer
1976- for i, f := range m.filter {
1977- if i > 0 {
1978- b.WriteRune(',')
1979- }
1980- fmt.Fprintf(&b, "%s=%d", f.pattern, f.level)
1981+// metaPoolGet returns a *logsink.Meta from metaPool as both an interface and a
1982+// pointer, allocating a new one if necessary. (Returning the interface value
1983+// directly avoids an allocation if there was an existing pointer in the pool.)
1984+func metaPoolGet() (any, *logsink.Meta) {
1985+ if metai := metaPool.Get(); metai != nil {
1986+ return metai, metai.(*logsink.Meta)
1987 }
1988- return b.String()
1989-}
1990-
1991-// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the
1992-// struct is not exported.
1993-func (m *moduleSpec) Get() interface{} {
1994- return nil
1995+ meta := new(logsink.Meta)
1996+ return meta, meta
1997 }
1998
1999-var errVmoduleSyntax = errors.New("syntax error: expect comma-separated list of filename=N")
2000-
2001-// Syntax: -vmodule=recordio=2,file=1,gfs*=3
2002-func (m *moduleSpec) Set(value string) error {
2003- var filter []modulePat
2004- for _, pat := range strings.Split(value, ",") {
2005- if len(pat) == 0 {
2006- // Empty strings such as from a trailing comma can be ignored.
2007- continue
2008- }
2009- patLev := strings.Split(pat, "=")
2010- if len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {
2011- return errVmoduleSyntax
2012- }
2013- pattern := patLev[0]
2014- v, err := strconv.Atoi(patLev[1])
2015- if err != nil {
2016- return errors.New("syntax error: expect comma-separated list of filename=N")
2017- }
2018- if v < 0 {
2019- return errors.New("negative value for vmodule level")
2020- }
2021- if v == 0 {
2022- continue // Ignore. It's harmless but no point in paying the overhead.
2023- }
2024- // TODO: check syntax of filter?
2025- filter = append(filter, modulePat{pattern, isLiteral(pattern), Level(v)})
2026- }
2027- logging.mu.Lock()
2028- defer logging.mu.Unlock()
2029- logging.setVState(logging.verbosity, filter, true)
2030- return nil
2031-}
2032-
2033-// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters
2034-// that require filepath.Match to be called to match the pattern.
2035-func isLiteral(pattern string) bool {
2036- return !strings.ContainsAny(pattern, `\*?[]`)
2037-}
2038-
2039-// traceLocation represents the setting of the -log_backtrace_at flag.
2040-type traceLocation struct {
2041- file string
2042- line int
2043-}
2044-
2045-// isSet reports whether the trace location has been specified.
2046-// logging.mu is held.
2047-func (t *traceLocation) isSet() bool {
2048- return t.line > 0
2049-}
2050+type stack bool
2051
2052-// match reports whether the specified file and line matches the trace location.
2053-// The argument file name is the full path, not the basename specified in the flag.
2054-// logging.mu is held.
2055-func (t *traceLocation) match(file string, line int) bool {
2056- if t.line != line {
2057- return false
2058- }
2059- if i := strings.LastIndex(file, "/"); i >= 0 {
2060- file = file[i+1:]
2061- }
2062- return t.file == file
2063-}
2064-
2065-func (t *traceLocation) String() string {
2066- // Lock because the type is not atomic. TODO: clean this up.
2067- logging.mu.Lock()
2068- defer logging.mu.Unlock()
2069- return fmt.Sprintf("%s:%d", t.file, t.line)
2070-}
2071-
2072-// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the
2073-// struct is not exported
2074-func (t *traceLocation) Get() interface{} {
2075- return nil
2076-}
2077-
2078-var errTraceSyntax = errors.New("syntax error: expect file.go:234")
2079-
2080-// Syntax: -log_backtrace_at=gopherflakes.go:234
2081-// Note that unlike vmodule the file extension is included here.
2082-func (t *traceLocation) Set(value string) error {
2083- if value == "" {
2084- // Unset.
2085- t.line = 0
2086- t.file = ""
2087- }
2088- fields := strings.Split(value, ":")
2089- if len(fields) != 2 {
2090- return errTraceSyntax
2091- }
2092- file, line := fields[0], fields[1]
2093- if !strings.Contains(file, ".") {
2094- return errTraceSyntax
2095- }
2096- v, err := strconv.Atoi(line)
2097- if err != nil {
2098- return errTraceSyntax
2099- }
2100- if v <= 0 {
2101- return errors.New("negative or zero value for level")
2102- }
2103- logging.mu.Lock()
2104- defer logging.mu.Unlock()
2105- t.line = v
2106- t.file = file
2107- return nil
2108-}
2109-
2110-// flushSyncWriter is the interface satisfied by logging destinations.
2111-type flushSyncWriter interface {
2112- Flush() error
2113- Sync() error
2114- io.Writer
2115-}
2116-
2117-func init() {
2118- flag.BoolVar(&logging.toStderr, "logtostderr", false, "log to standard error instead of files")
2119- flag.BoolVar(&logging.alsoToStderr, "alsologtostderr", false, "log to standard error as well as files")
2120- flag.Var(&logging.verbosity, "v", "log level for V logs")
2121- flag.Var(&logging.stderrThreshold, "stderrthreshold", "logs at or above this threshold go to stderr")
2122- flag.Var(&logging.vmodule, "vmodule", "comma-separated list of pattern=N settings for file-filtered logging")
2123- flag.Var(&logging.traceLocation, "log_backtrace_at", "when logging hits line file:N, emit a stack trace")
2124-
2125- // Default stderrThreshold is ERROR.
2126- logging.stderrThreshold = errorLog
2127-
2128- logging.setVState(0, nil, false)
2129- go logging.flushDaemon()
2130-}
2131-
2132-// Flush flushes all pending log I/O.
2133-func Flush() {
2134- logging.lockAndFlushAll()
2135-}
2136-
2137-// loggingT collects all the global state of the logging setup.
2138-type loggingT struct {
2139- // Boolean flags. Not handled atomically because the flag.Value interface
2140- // does not let us avoid the =true, and that shorthand is necessary for
2141- // compatibility. TODO: does this matter enough to fix? Seems unlikely.
2142- toStderr bool // The -logtostderr flag.
2143- alsoToStderr bool // The -alsologtostderr flag.
2144-
2145- // Level flag. Handled atomically.
2146- stderrThreshold severity // The -stderrthreshold flag.
2147-
2148- // freeList is a list of byte buffers, maintained under freeListMu.
2149- freeList *buffer
2150- // freeListMu maintains the free list. It is separate from the main mutex
2151- // so buffers can be grabbed and printed to without holding the main lock,
2152- // for better parallelization.
2153- freeListMu sync.Mutex
2154-
2155- // mu protects the remaining elements of this structure and is
2156- // used to synchronize logging.
2157- mu sync.Mutex
2158- // file holds writer for each of the log types.
2159- file [numSeverity]flushSyncWriter
2160- // pcs is used in V to avoid an allocation when computing the caller's PC.
2161- pcs [1]uintptr
2162- // vmap is a cache of the V Level for each V() call site, identified by PC.
2163- // It is wiped whenever the vmodule flag changes state.
2164- vmap map[uintptr]Level
2165- // filterLength stores the length of the vmodule filter chain. If greater
2166- // than zero, it means vmodule is enabled. It may be read safely
2167- // using sync.LoadInt32, but is only modified under mu.
2168- filterLength int32
2169- // traceLocation is the state of the -log_backtrace_at flag.
2170- traceLocation traceLocation
2171- // These flags are modified only under lock, although verbosity may be fetched
2172- // safely using atomic.LoadInt32.
2173- vmodule moduleSpec // The state of the -vmodule flag.
2174- verbosity Level // V logging level, the value of the -v flag/
2175-}
2176-
2177-// buffer holds a byte Buffer for reuse. The zero value is ready for use.
2178-type buffer struct {
2179- bytes.Buffer
2180- tmp [64]byte // temporary byte array for creating headers.
2181- next *buffer
2182-}
2183-
2184-var logging loggingT
2185-
2186-// setVState sets a consistent state for V logging.
2187-// l.mu is held.
2188-func (l *loggingT) setVState(verbosity Level, filter []modulePat, setFilter bool) {
2189- // Turn verbosity off so V will not fire while we are in transition.
2190- logging.verbosity.set(0)
2191- // Ditto for filter length.
2192- atomic.StoreInt32(&logging.filterLength, 0)
2193-
2194- // Set the new filters and wipe the pc->Level map if the filter has changed.
2195- if setFilter {
2196- logging.vmodule.filter = filter
2197- logging.vmap = make(map[uintptr]Level)
2198- }
2199-
2200- // Things are consistent now, so enable filtering and verbosity.
2201- // They are enabled in order opposite to that in V.
2202- atomic.StoreInt32(&logging.filterLength, int32(len(filter)))
2203- logging.verbosity.set(verbosity)
2204-}
2205-
2206-// getBuffer returns a new, ready-to-use buffer.
2207-func (l *loggingT) getBuffer() *buffer {
2208- l.freeListMu.Lock()
2209- b := l.freeList
2210- if b != nil {
2211- l.freeList = b.next
2212- }
2213- l.freeListMu.Unlock()
2214- if b == nil {
2215- b = new(buffer)
2216- } else {
2217- b.next = nil
2218- b.Reset()
2219- }
2220- return b
2221-}
2222-
2223-// putBuffer returns a buffer to the free list.
2224-func (l *loggingT) putBuffer(b *buffer) {
2225- if b.Len() >= 256 {
2226- // Let big buffers die a natural death.
2227- return
2228- }
2229- l.freeListMu.Lock()
2230- b.next = l.freeList
2231- l.freeList = b
2232- l.freeListMu.Unlock()
2233-}
2234-
2235-var timeNow = time.Now // Stubbed out for testing.
2236+const (
2237+ noStack = stack(false)
2238+ withStack = stack(true)
2239+)
2240
2241-/*
2242-header formats a log header as defined by the C++ implementation.
2243-It returns a buffer containing the formatted header and the user's file and line number.
2244-The depth specifies how many stack frames above lives the source line to be identified in the log message.
2245-
2246-Log lines have this form:
2247- Lmmdd hh:mm:ss.uuuuuu threadid file:line] msg...
2248-where the fields are defined as follows:
2249- L A single character, representing the log level (eg 'I' for INFO)
2250- mm The month (zero padded; ie May is '05')
2251- dd The day (zero padded)
2252- hh:mm:ss.uuuuuu Time in hours, minutes and fractional seconds
2253- threadid The space-padded thread ID as returned by GetTID()
2254- file The file name
2255- line The line number
2256- msg The user-supplied message
2257-*/
2258-func (l *loggingT) header(s severity, depth int) (*buffer, string, int) {
2259- _, file, line, ok := runtime.Caller(3 + depth)
2260+func appendBacktrace(depth int, format string, args []any) (string, []any) {
2261+ // Capture a backtrace as a stackdump.Stack (both text and PC slice).
2262+ // Structured log sinks can extract the backtrace in whichever format they
2263+ // prefer (PCs or text), and Text sinks will include it as just another part
2264+ // of the log message.
2265+ //
2266+ // Use depth instead of depth+1 so that the backtrace always includes the
2267+ // log function itself - otherwise the reason for the trace appearing in the
2268+ // log may not be obvious to the reader.
2269+ dump := stackdump.Caller(depth)
2270+
2271+ // Add an arg and an entry in the format string for the stack dump.
2272+ //
2273+ // Copy the "args" slice to avoid a rare but serious aliasing bug
2274+ // (corrupting the caller's slice if they passed it to a non-Fatal call
2275+ // using "...").
2276+ format = format + "\n\n%v\n"
2277+ args = append(append([]any(nil), args...), dump)
2278+
2279+ return format, args
2280+}
2281+
2282+// logf writes a log message for a log function call (or log function wrapper)
2283+// at the given depth in the current goroutine's stack.
2284+func logf(depth int, severity logsink.Severity, verbose bool, stack stack, format string, args ...any) {
2285+ now := timeNow()
2286+ _, file, line, ok := runtime.Caller(depth + 1)
2287 if !ok {
2288 file = "???"
2289 line = 1
2290- } else {
2291- slash := strings.LastIndex(file, "/")
2292- if slash >= 0 {
2293- file = file[slash+1:]
2294- }
2295 }
2296- return l.formatHeader(s, file, line), file, line
2297-}
2298
2299-// formatHeader formats a log header using the provided file name and line number.
2300-func (l *loggingT) formatHeader(s severity, file string, line int) *buffer {
2301- now := timeNow()
2302- if line < 0 {
2303- line = 0 // not a real line number, but acceptable to someDigits
2304+ if stack == withStack || backtraceAt(file, line) {
2305+ format, args = appendBacktrace(depth+1, format, args)
2306 }
2307- if s > fatalLog {
2308- s = infoLog // for safety.
2309- }
2310- buf := l.getBuffer()
2311-
2312- // Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.
2313- // It's worth about 3X. Fprintf is hard.
2314- _, month, day := now.Date()
2315- hour, minute, second := now.Clock()
2316- // Lmmdd hh:mm:ss.uuuuuu threadid file:line]
2317- buf.tmp[0] = severityChar[s]
2318- buf.twoDigits(1, int(month))
2319- buf.twoDigits(3, day)
2320- buf.tmp[5] = ' '
2321- buf.twoDigits(6, hour)
2322- buf.tmp[8] = ':'
2323- buf.twoDigits(9, minute)
2324- buf.tmp[11] = ':'
2325- buf.twoDigits(12, second)
2326- buf.tmp[14] = '.'
2327- buf.nDigits(6, 15, now.Nanosecond()/1000, '0')
2328- buf.tmp[21] = ' '
2329- buf.nDigits(7, 22, pid, ' ') // TODO: should be TID
2330- buf.tmp[29] = ' '
2331- buf.Write(buf.tmp[:30])
2332- buf.WriteString(file)
2333- buf.tmp[0] = ':'
2334- n := buf.someDigits(1, line)
2335- buf.tmp[n+1] = ']'
2336- buf.tmp[n+2] = ' '
2337- buf.Write(buf.tmp[:n+3])
2338- return buf
2339-}
2340-
2341-// Some custom tiny helper functions to print the log header efficiently.
2342-
2343-const digits = "0123456789"
2344
2345-// twoDigits formats a zero-prefixed two-digit integer at buf.tmp[i].
2346-func (buf *buffer) twoDigits(i, d int) {
2347- buf.tmp[i+1] = digits[d%10]
2348- d /= 10
2349- buf.tmp[i] = digits[d%10]
2350-}
2351-
2352-// nDigits formats an n-digit integer at buf.tmp[i],
2353-// padding with pad on the left.
2354-// It assumes d >= 0.
2355-func (buf *buffer) nDigits(n, i, d int, pad byte) {
2356- j := n - 1
2357- for ; j >= 0 && d > 0; j-- {
2358- buf.tmp[i+j] = digits[d%10]
2359- d /= 10
2360- }
2361- for ; j >= 0; j-- {
2362- buf.tmp[i+j] = pad
2363- }
2364-}
2365-
2366-// someDigits formats a zero-prefixed variable-width integer at buf.tmp[i].
2367-func (buf *buffer) someDigits(i, d int) int {
2368- // Print into the top, then copy down. We know there's space for at least
2369- // a 10-digit number.
2370- j := len(buf.tmp)
2371- for {
2372- j--
2373- buf.tmp[j] = digits[d%10]
2374- d /= 10
2375- if d == 0 {
2376- break
2377- }
2378+ metai, meta := metaPoolGet()
2379+ *meta = logsink.Meta{
2380+ Time: now,
2381+ File: file,
2382+ Line: line,
2383+ Depth: depth + 1,
2384+ Severity: severity,
2385+ Verbose: verbose,
2386+ Thread: int64(pid),
2387 }
2388- return copy(buf.tmp[i:], buf.tmp[j:])
2389+ sinkf(meta, format, args...)
2390+ metaPool.Put(metai)
2391 }
2392
2393-func (l *loggingT) println(s severity, args ...interface{}) {
2394- buf, file, line := l.header(s, 0)
2395- fmt.Fprintln(buf, args...)
2396- l.output(s, buf, file, line, false)
2397-}
2398-
2399-func (l *loggingT) print(s severity, args ...interface{}) {
2400- l.printDepth(s, 1, args...)
2401-}
2402-
2403-func (l *loggingT) printDepth(s severity, depth int, args ...interface{}) {
2404- buf, file, line := l.header(s, depth)
2405- fmt.Fprint(buf, args...)
2406- if buf.Bytes()[buf.Len()-1] != '\n' {
2407- buf.WriteByte('\n')
2408- }
2409- l.output(s, buf, file, line, false)
2410-}
2411-
2412-func (l *loggingT) printf(s severity, format string, args ...interface{}) {
2413- buf, file, line := l.header(s, 0)
2414- fmt.Fprintf(buf, format, args...)
2415- if buf.Bytes()[buf.Len()-1] != '\n' {
2416- buf.WriteByte('\n')
2417- }
2418- l.output(s, buf, file, line, false)
2419-}
2420-
2421-// printWithFileLine behaves like print but uses the provided file and line number. If
2422-// alsoLogToStderr is true, the log message always appears on standard error; it
2423-// will also appear in the log file unless --logtostderr is set.
2424-func (l *loggingT) printWithFileLine(s severity, file string, line int, alsoToStderr bool, args ...interface{}) {
2425- buf := l.formatHeader(s, file, line)
2426- fmt.Fprint(buf, args...)
2427- if buf.Bytes()[buf.Len()-1] != '\n' {
2428- buf.WriteByte('\n')
2429- }
2430- l.output(s, buf, file, line, alsoToStderr)
2431-}
2432-
2433-// output writes the data to the log files and releases the buffer.
2434-func (l *loggingT) output(s severity, buf *buffer, file string, line int, alsoToStderr bool) {
2435- l.mu.Lock()
2436- if l.traceLocation.isSet() {
2437- if l.traceLocation.match(file, line) {
2438- buf.Write(stacks(false))
2439- }
2440- }
2441- data := buf.Bytes()
2442- if !flag.Parsed() {
2443- os.Stderr.Write([]byte("ERROR: logging before flag.Parse: "))
2444- os.Stderr.Write(data)
2445- } else if l.toStderr {
2446- os.Stderr.Write(data)
2447- } else {
2448- if alsoToStderr || l.alsoToStderr || s >= l.stderrThreshold.get() {
2449- os.Stderr.Write(data)
2450- }
2451- if l.file[s] == nil {
2452- if err := l.createFiles(s); err != nil {
2453- os.Stderr.Write(data) // Make sure the message appears somewhere.
2454- l.exit(err)
2455- }
2456- }
2457- switch s {
2458- case fatalLog:
2459- l.file[fatalLog].Write(data)
2460- fallthrough
2461- case errorLog:
2462- l.file[errorLog].Write(data)
2463- fallthrough
2464- case warningLog:
2465- l.file[warningLog].Write(data)
2466- fallthrough
2467- case infoLog:
2468- l.file[infoLog].Write(data)
2469- }
2470- }
2471- if s == fatalLog {
2472- // If we got here via Exit rather than Fatal, print no stacks.
2473- if atomic.LoadUint32(&fatalNoStacks) > 0 {
2474- l.mu.Unlock()
2475- timeoutFlush(10 * time.Second)
2476- os.Exit(1)
2477- }
2478- // Dump all goroutine stacks before exiting.
2479- // First, make sure we see the trace for the current goroutine on standard error.
2480- // If -logtostderr has been specified, the loop below will do that anyway
2481- // as the first stack in the full dump.
2482- if !l.toStderr {
2483- os.Stderr.Write(stacks(false))
2484- }
2485- // Write the stack trace for all goroutines to the files.
2486- trace := stacks(true)
2487- logExitFunc = func(error) {} // If we get a write error, we'll still exit below.
2488- for log := fatalLog; log >= infoLog; log-- {
2489- if f := l.file[log]; f != nil { // Can be nil if -logtostderr is set.
2490- f.Write(trace)
2491- }
2492- }
2493- l.mu.Unlock()
2494- timeoutFlush(10 * time.Second)
2495- os.Exit(255) // C++ uses -1, which is silly because it's anded with 255 anyway.
2496- }
2497- l.putBuffer(buf)
2498- l.mu.Unlock()
2499- if stats := severityStats[s]; stats != nil {
2500+func sinkf(meta *logsink.Meta, format string, args ...any) {
2501+ meta.Depth++
2502+ n, err := logsink.Printf(meta, format, args...)
2503+ if stats := severityStats[meta.Severity]; stats != nil {
2504 atomic.AddInt64(&stats.lines, 1)
2505- atomic.AddInt64(&stats.bytes, int64(len(data)))
2506- }
2507-}
2508-
2509-// timeoutFlush calls Flush and returns when it completes or after timeout
2510-// elapses, whichever happens first. This is needed because the hooks invoked
2511-// by Flush may deadlock when glog.Fatal is called from a hook that holds
2512-// a lock.
2513-func timeoutFlush(timeout time.Duration) {
2514- done := make(chan bool, 1)
2515- go func() {
2516- Flush() // calls logging.lockAndFlushAll()
2517- done <- true
2518- }()
2519- select {
2520- case <-done:
2521- case <-time.After(timeout):
2522- fmt.Fprintln(os.Stderr, "glog: Flush took longer than", timeout)
2523- }
2524-}
2525-
2526-// stacks is a wrapper for runtime.Stack that attempts to recover the data for all goroutines.
2527-func stacks(all bool) []byte {
2528- // We don't know how big the traces are, so grow a few times if they don't fit. Start large, though.
2529- n := 10000
2530- if all {
2531- n = 100000
2532- }
2533- var trace []byte
2534- for i := 0; i < 5; i++ {
2535- trace = make([]byte, n)
2536- nbytes := runtime.Stack(trace, all)
2537- if nbytes < len(trace) {
2538- return trace[:nbytes]
2539- }
2540- n *= 2
2541- }
2542- return trace
2543-}
2544-
2545-// logExitFunc provides a simple mechanism to override the default behavior
2546-// of exiting on error. Used in testing and to guarantee we reach a required exit
2547-// for fatal logs. Instead, exit could be a function rather than a method but that
2548-// would make its use clumsier.
2549-var logExitFunc func(error)
2550-
2551-// exit is called if there is trouble creating or writing log files.
2552-// It flushes the logs and exits the program; there's no point in hanging around.
2553-// l.mu is held.
2554-func (l *loggingT) exit(err error) {
2555- fmt.Fprintf(os.Stderr, "log: exiting because of error: %s\n", err)
2556- // If logExitFunc is set, we do that instead of exiting.
2557- if logExitFunc != nil {
2558- logExitFunc(err)
2559- return
2560- }
2561- l.flushAll()
2562- os.Exit(2)
2563-}
2564-
2565-// syncBuffer joins a bufio.Writer to its underlying file, providing access to the
2566-// file's Sync method and providing a wrapper for the Write method that provides log
2567-// file rotation. There are conflicting methods, so the file cannot be embedded.
2568-// l.mu is held for all its methods.
2569-type syncBuffer struct {
2570- logger *loggingT
2571- *bufio.Writer
2572- file *os.File
2573- sev severity
2574- nbytes uint64 // The number of bytes written to this file
2575-}
2576-
2577-func (sb *syncBuffer) Sync() error {
2578- return sb.file.Sync()
2579-}
2580-
2581-func (sb *syncBuffer) Write(p []byte) (n int, err error) {
2582- if sb.nbytes+uint64(len(p)) >= MaxSize {
2583- if err := sb.rotateFile(time.Now()); err != nil {
2584- sb.logger.exit(err)
2585- }
2586+ atomic.AddInt64(&stats.bytes, int64(n))
2587 }
2588- n, err = sb.Writer.Write(p)
2589- sb.nbytes += uint64(n)
2590- if err != nil {
2591- sb.logger.exit(err)
2592- }
2593- return
2594-}
2595
2596-// rotateFile closes the syncBuffer's file and starts a new one.
2597-func (sb *syncBuffer) rotateFile(now time.Time) error {
2598- if sb.file != nil {
2599- sb.Flush()
2600- sb.file.Close()
2601- }
2602- var err error
2603- sb.file, _, err = create(severityName[sb.sev], now)
2604- sb.nbytes = 0
2605 if err != nil {
2606- return err
2607- }
2608-
2609- sb.Writer = bufio.NewWriterSize(sb.file, bufferSize)
2610-
2611- // Write header.
2612- var buf bytes.Buffer
2613- fmt.Fprintf(&buf, "Log file created at: %s\n", now.Format("2006/01/02 15:04:05"))
2614- fmt.Fprintf(&buf, "Running on machine: %s\n", host)
2615- fmt.Fprintf(&buf, "Binary: Built with %s %s for %s/%s\n", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)
2616- fmt.Fprintf(&buf, "Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\n")
2617- n, err := sb.file.Write(buf.Bytes())
2618- sb.nbytes += uint64(n)
2619- return err
2620-}
2621-
2622-// bufferSize sizes the buffer associated with each log file. It's large
2623-// so that log records can accumulate without the logging thread blocking
2624-// on disk I/O. The flushDaemon will block instead.
2625-const bufferSize = 256 * 1024
2626-
2627-// createFiles creates all the log files for severity from sev down to infoLog.
2628-// l.mu is held.
2629-func (l *loggingT) createFiles(sev severity) error {
2630- now := time.Now()
2631- // Files are created in decreasing severity order, so as soon as we find one
2632- // has already been created, we can stop.
2633- for s := sev; s >= infoLog && l.file[s] == nil; s-- {
2634- sb := &syncBuffer{
2635- logger: l,
2636- sev: s,
2637- }
2638- if err := sb.rotateFile(now); err != nil {
2639- return err
2640- }
2641- l.file[s] = sb
2642- }
2643- return nil
2644-}
2645-
2646-const flushInterval = 30 * time.Second
2647-
2648-// flushDaemon periodically flushes the log file buffers.
2649-func (l *loggingT) flushDaemon() {
2650- for range time.NewTicker(flushInterval).C {
2651- l.lockAndFlushAll()
2652- }
2653-}
2654-
2655-// lockAndFlushAll is like flushAll but locks l.mu first.
2656-func (l *loggingT) lockAndFlushAll() {
2657- l.mu.Lock()
2658- l.flushAll()
2659- l.mu.Unlock()
2660-}
2661-
2662-// flushAll flushes all the logs and attempts to "sync" their data to disk.
2663-// l.mu is held.
2664-func (l *loggingT) flushAll() {
2665- // Flush from fatal down, in case there's trouble flushing.
2666- for s := fatalLog; s >= infoLog; s-- {
2667- file := l.file[s]
2668- if file != nil {
2669- file.Flush() // ignore error
2670- file.Sync() // ignore error
2671- }
2672+ logsink.Printf(meta, "glog: exiting because of error: %s", err)
2673+ sinks.file.Flush()
2674+ os.Exit(2)
2675 }
2676 }
2677
2678@@ -912,9 +234,9 @@ func (l *loggingT) flushAll() {
2679 // Valid names are "INFO", "WARNING", "ERROR", and "FATAL". If the name is not
2680 // recognized, CopyStandardLogTo panics.
2681 func CopyStandardLogTo(name string) {
2682- sev, ok := severityByName(name)
2683- if !ok {
2684- panic(fmt.Sprintf("log.CopyStandardLogTo(%q): unrecognized severity name", name))
2685+ sev, err := logsink.ParseSeverity(name)
2686+ if err != nil {
2687+ panic(fmt.Sprintf("log.CopyStandardLogTo(%q): %v", name, err))
2688 }
2689 // Set a log format that captures the user's file and line:
2690 // d.go:23: message
2691@@ -922,9 +244,22 @@ func CopyStandardLogTo(name string) {
2692 stdLog.SetOutput(logBridge(sev))
2693 }
2694
2695+// NewStandardLogger returns a Logger that writes to the Google logs for the
2696+// named and lower severities.
2697+//
2698+// Valid names are "INFO", "WARNING", "ERROR", and "FATAL". If the name is not
2699+// recognized, NewStandardLogger panics.
2700+func NewStandardLogger(name string) *stdLog.Logger {
2701+ sev, err := logsink.ParseSeverity(name)
2702+ if err != nil {
2703+ panic(fmt.Sprintf("log.NewStandardLogger(%q): %v", name, err))
2704+ }
2705+ return stdLog.New(logBridge(sev), "", stdLog.Lshortfile)
2706+}
2707+
2708 // logBridge provides the Write method that enables CopyStandardLogTo to connect
2709 // Go's standard logs to the logs provided by this package.
2710-type logBridge severity
2711+type logBridge logsink.Severity
2712
2713 // Write parses the standard logging line and passes its components to the
2714 // logger for severity(lb).
2715@@ -946,36 +281,72 @@ func (lb logBridge) Write(b []byte) (n int, err error) {
2716 line = 1
2717 }
2718 }
2719- // printWithFileLine with alsoToStderr=true, so standard log messages
2720- // always appear on standard error.
2721- logging.printWithFileLine(severity(lb), file, line, true, text)
2722+
2723+ // The depth below hard-codes details of how stdlog gets here. The alternative would be to walk
2724+ // up the stack looking for src/log/log.go but that seems like it would be
2725+ // unfortunately slow.
2726+ const stdLogDepth = 4
2727+
2728+ metai, meta := metaPoolGet()
2729+ *meta = logsink.Meta{
2730+ Time: timeNow(),
2731+ File: file,
2732+ Line: line,
2733+ Depth: stdLogDepth,
2734+ Severity: logsink.Severity(lb),
2735+ Thread: int64(pid),
2736+ }
2737+
2738+ format := "%s"
2739+ args := []any{text}
2740+ if backtraceAt(file, line) {
2741+ format, args = appendBacktrace(meta.Depth, format, args)
2742+ }
2743+
2744+ sinkf(meta, format, args...)
2745+ metaPool.Put(metai)
2746+
2747 return len(b), nil
2748 }
2749
2750-// setV computes and remembers the V level for a given PC
2751-// when vmodule is enabled.
2752-// File pattern matching takes the basename of the file, stripped
2753-// of its .go suffix, and uses filepath.Match, which is a little more
2754-// general than the *? matching used in C++.
2755-// l.mu is held.
2756-func (l *loggingT) setV(pc uintptr) Level {
2757- fn := runtime.FuncForPC(pc)
2758- file, _ := fn.FileLine(pc)
2759- // The file is something like /a/b/c/d.go. We want just the d.
2760- if strings.HasSuffix(file, ".go") {
2761- file = file[:len(file)-3]
2762+// defaultFormat returns a fmt.Printf format specifier that formats its
2763+// arguments as if they were passed to fmt.Print.
2764+func defaultFormat(args []any) string {
2765+ n := len(args)
2766+ switch n {
2767+ case 0:
2768+ return ""
2769+ case 1:
2770+ return "%v"
2771+ }
2772+
2773+ b := make([]byte, 0, n*3-1)
2774+ wasString := true // Suppress leading space.
2775+ for _, arg := range args {
2776+ isString := arg != nil && reflect.TypeOf(arg).Kind() == reflect.String
2777+ if wasString || isString {
2778+ b = append(b, "%v"...)
2779+ } else {
2780+ b = append(b, " %v"...)
2781+ }
2782+ wasString = isString
2783 }
2784- if slash := strings.LastIndex(file, "/"); slash >= 0 {
2785- file = file[slash+1:]
2786+ return string(b)
2787+}
2788+
2789+// lnFormat returns a fmt.Printf format specifier that formats its arguments
2790+// as if they were passed to fmt.Println.
2791+func lnFormat(args []any) string {
2792+ if len(args) == 0 {
2793+ return "\n"
2794 }
2795- for _, filter := range l.vmodule.filter {
2796- if filter.match(file) {
2797- l.vmap[pc] = filter.level
2798- return filter.level
2799- }
2800+
2801+ b := make([]byte, 0, len(args)*3)
2802+ for range args {
2803+ b = append(b, "%v "...)
2804 }
2805- l.vmap[pc] = 0
2806- return 0
2807+ b[len(b)-1] = '\n' // Replace the last space with a newline.
2808+ return string(b)
2809 }
2810
2811 // Verbose is a boolean type that implements Infof (like Printf) etc.
2812@@ -986,9 +357,13 @@ type Verbose bool
2813 // The returned value is a boolean of type Verbose, which implements Info, Infoln
2814 // and Infof. These methods will write to the Info log if called.
2815 // Thus, one may write either
2816+//
2817 // if glog.V(2) { glog.Info("log this") }
2818+//
2819 // or
2820+//
2821 // glog.V(2).Info("log this")
2822+//
2823 // The second form is shorter but the first is cheaper if logging is off because it does
2824 // not evaluate its arguments.
2825 //
2826@@ -997,184 +372,250 @@ type Verbose bool
2827 // V is at most the value of -v, or of -vmodule for the source file containing the
2828 // call, the V call will log.
2829 func V(level Level) Verbose {
2830- // This function tries hard to be cheap unless there's work to do.
2831- // The fast path is two atomic loads and compares.
2832+ return VDepth(1, level)
2833+}
2834
2835- // Here is a cheap but safe test to see if V logging is enabled globally.
2836- if logging.verbosity.get() >= level {
2837- return Verbose(true)
2838- }
2839+// VDepth acts as V but uses depth to determine which call frame to check vmodule for.
2840+// VDepth(0, level) is the same as V(level).
2841+func VDepth(depth int, level Level) Verbose {
2842+ return Verbose(verboseEnabled(depth+1, level))
2843+}
2844
2845- // It's off globally but it vmodule may still be set.
2846- // Here is another cheap but safe test to see if vmodule is enabled.
2847- if atomic.LoadInt32(&logging.filterLength) > 0 {
2848- // Now we need a proper lock to use the logging structure. The pcs field
2849- // is shared so we must lock before accessing it. This is fairly expensive,
2850- // but if V logging is enabled we're slow anyway.
2851- logging.mu.Lock()
2852- defer logging.mu.Unlock()
2853- if runtime.Callers(2, logging.pcs[:]) == 0 {
2854- return Verbose(false)
2855- }
2856- v, ok := logging.vmap[logging.pcs[0]]
2857- if !ok {
2858- v = logging.setV(logging.pcs[0])
2859- }
2860- return Verbose(v >= level)
2861+// Info is equivalent to the global Info function, guarded by the value of v.
2862+// See the documentation of V for usage.
2863+func (v Verbose) Info(args ...any) {
2864+ v.InfoDepth(1, args...)
2865+}
2866+
2867+// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v.
2868+// See the documentation of V for usage.
2869+func (v Verbose) InfoDepth(depth int, args ...any) {
2870+ if v {
2871+ logf(depth+1, logsink.Info, true, noStack, defaultFormat(args), args...)
2872 }
2873- return Verbose(false)
2874 }
2875
2876-// Info is equivalent to the global Info function, guarded by the value of v.
2877+// InfoDepthf is equivalent to the global InfoDepthf function, guarded by the value of v.
2878 // See the documentation of V for usage.
2879-func (v Verbose) Info(args ...interface{}) {
2880+func (v Verbose) InfoDepthf(depth int, format string, args ...any) {
2881 if v {
2882- logging.print(infoLog, args...)
2883+ logf(depth+1, logsink.Info, true, noStack, format, args...)
2884 }
2885 }
2886
2887 // Infoln is equivalent to the global Infoln function, guarded by the value of v.
2888 // See the documentation of V for usage.
2889-func (v Verbose) Infoln(args ...interface{}) {
2890+func (v Verbose) Infoln(args ...any) {
2891 if v {
2892- logging.println(infoLog, args...)
2893+ logf(1, logsink.Info, true, noStack, lnFormat(args), args...)
2894 }
2895 }
2896
2897 // Infof is equivalent to the global Infof function, guarded by the value of v.
2898 // See the documentation of V for usage.
2899-func (v Verbose) Infof(format string, args ...interface{}) {
2900+func (v Verbose) Infof(format string, args ...any) {
2901 if v {
2902- logging.printf(infoLog, format, args...)
2903+ logf(1, logsink.Info, true, noStack, format, args...)
2904 }
2905 }
2906
2907 // Info logs to the INFO log.
2908 // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
2909-func Info(args ...interface{}) {
2910- logging.print(infoLog, args...)
2911+func Info(args ...any) {
2912+ InfoDepth(1, args...)
2913+}
2914+
2915+// InfoDepth calls Info from a different depth in the call stack.
2916+// This enables a callee to emit logs that use the callsite information of its caller
2917+// or any other callers in the stack. When depth == 0, the original callee's line
2918+// information is emitted. When depth > 0, depth frames are skipped in the call stack
2919+// and the final frame is treated like the original callee to Info.
2920+func InfoDepth(depth int, args ...any) {
2921+ logf(depth+1, logsink.Info, false, noStack, defaultFormat(args), args...)
2922 }
2923
2924-// InfoDepth acts as Info but uses depth to determine which call frame to log.
2925-// InfoDepth(0, "msg") is the same as Info("msg").
2926-func InfoDepth(depth int, args ...interface{}) {
2927- logging.printDepth(infoLog, depth, args...)
2928+// InfoDepthf acts as InfoDepth but with format string.
2929+func InfoDepthf(depth int, format string, args ...any) {
2930+ logf(depth+1, logsink.Info, false, noStack, format, args...)
2931 }
2932
2933 // Infoln logs to the INFO log.
2934 // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.
2935-func Infoln(args ...interface{}) {
2936- logging.println(infoLog, args...)
2937+func Infoln(args ...any) {
2938+ logf(1, logsink.Info, false, noStack, lnFormat(args), args...)
2939 }
2940
2941 // Infof logs to the INFO log.
2942 // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.
2943-func Infof(format string, args ...interface{}) {
2944- logging.printf(infoLog, format, args...)
2945+func Infof(format string, args ...any) {
2946+ logf(1, logsink.Info, false, noStack, format, args...)
2947 }
2948
2949 // Warning logs to the WARNING and INFO logs.
2950 // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
2951-func Warning(args ...interface{}) {
2952- logging.print(warningLog, args...)
2953+func Warning(args ...any) {
2954+ WarningDepth(1, args...)
2955 }
2956
2957 // WarningDepth acts as Warning but uses depth to determine which call frame to log.
2958 // WarningDepth(0, "msg") is the same as Warning("msg").
2959-func WarningDepth(depth int, args ...interface{}) {
2960- logging.printDepth(warningLog, depth, args...)
2961+func WarningDepth(depth int, args ...any) {
2962+ logf(depth+1, logsink.Warning, false, noStack, defaultFormat(args), args...)
2963+}
2964+
2965+// WarningDepthf acts as Warningf but uses depth to determine which call frame to log.
2966+// WarningDepthf(0, "msg") is the same as Warningf("msg").
2967+func WarningDepthf(depth int, format string, args ...any) {
2968+ logf(depth+1, logsink.Warning, false, noStack, format, args...)
2969 }
2970
2971 // Warningln logs to the WARNING and INFO logs.
2972 // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.
2973-func Warningln(args ...interface{}) {
2974- logging.println(warningLog, args...)
2975+func Warningln(args ...any) {
2976+ logf(1, logsink.Warning, false, noStack, lnFormat(args), args...)
2977 }
2978
2979 // Warningf logs to the WARNING and INFO logs.
2980 // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.
2981-func Warningf(format string, args ...interface{}) {
2982- logging.printf(warningLog, format, args...)
2983+func Warningf(format string, args ...any) {
2984+ logf(1, logsink.Warning, false, noStack, format, args...)
2985 }
2986
2987 // Error logs to the ERROR, WARNING, and INFO logs.
2988 // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
2989-func Error(args ...interface{}) {
2990- logging.print(errorLog, args...)
2991+func Error(args ...any) {
2992+ ErrorDepth(1, args...)
2993 }
2994
2995 // ErrorDepth acts as Error but uses depth to determine which call frame to log.
2996 // ErrorDepth(0, "msg") is the same as Error("msg").
2997-func ErrorDepth(depth int, args ...interface{}) {
2998- logging.printDepth(errorLog, depth, args...)
2999+func ErrorDepth(depth int, args ...any) {
3000+ logf(depth+1, logsink.Error, false, noStack, defaultFormat(args), args...)
3001+}
3002+
3003+// ErrorDepthf acts as Errorf but uses depth to determine which call frame to log.
3004+// ErrorDepthf(0, "msg") is the same as Errorf("msg").
3005+func ErrorDepthf(depth int, format string, args ...any) {
3006+ logf(depth+1, logsink.Error, false, noStack, format, args...)
3007 }
3008
3009 // Errorln logs to the ERROR, WARNING, and INFO logs.
3010 // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.
3011-func Errorln(args ...interface{}) {
3012- logging.println(errorLog, args...)
3013+func Errorln(args ...any) {
3014+ logf(1, logsink.Error, false, noStack, lnFormat(args), args...)
3015 }
3016
3017 // Errorf logs to the ERROR, WARNING, and INFO logs.
3018 // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.
3019-func Errorf(format string, args ...interface{}) {
3020- logging.printf(errorLog, format, args...)
3021+func Errorf(format string, args ...any) {
3022+ logf(1, logsink.Error, false, noStack, format, args...)
3023+}
3024+
3025+func fatalf(depth int, format string, args ...any) {
3026+ logf(depth+1, logsink.Fatal, false, withStack, format, args...)
3027+ sinks.file.Flush()
3028+
3029+ err := abortProcess() // Should not return.
3030+
3031+ // Failed to abort the process using signals. Dump a stack trace and exit.
3032+ Errorf("abortProcess returned unexpectedly: %v", err)
3033+ sinks.file.Flush()
3034+ pprof.Lookup("goroutine").WriteTo(os.Stderr, 1)
3035+ os.Exit(2) // Exit with the same code as the default SIGABRT handler.
3036+}
3037+
3038+// abortProcess attempts to kill the current process in a way that will dump the
3039+// currently-running goroutines someplace useful (Coroner or stderr).
3040+//
3041+// It does this by sending SIGABRT to the current process. Unfortunately, the
3042+// signal may or may not be delivered to the current thread; in order to do that
3043+// portably, we would need to add a cgo dependency and call pthread_kill.
3044+//
3045+// If successful, abortProcess does not return.
3046+func abortProcess() error {
3047+ p, err := os.FindProcess(os.Getpid())
3048+ if err != nil {
3049+ return err
3050+ }
3051+ if err := p.Signal(syscall.SIGABRT); err != nil {
3052+ return err
3053+ }
3054+
3055+ // Sent the signal. Now we wait for it to arrive and any SIGABRT handlers to
3056+ // run (and eventually terminate the process themselves).
3057+ //
3058+ // We could just "select{}" here, but there's an outside chance that would
3059+ // trigger the runtime's deadlock detector if there happen not to be any
3060+ // background goroutines running. So we'll sleep a while first to give
3061+ // the signal some time.
3062+ time.Sleep(10 * time.Second)
3063+ select {}
3064 }
3065
3066 // Fatal logs to the FATAL, ERROR, WARNING, and INFO logs,
3067-// including a stack trace of all running goroutines, then calls os.Exit(255).
3068+// including a stack trace of all running goroutines, then calls os.Exit(2).
3069 // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
3070-func Fatal(args ...interface{}) {
3071- logging.print(fatalLog, args...)
3072+func Fatal(args ...any) {
3073+ FatalDepth(1, args...)
3074 }
3075
3076 // FatalDepth acts as Fatal but uses depth to determine which call frame to log.
3077 // FatalDepth(0, "msg") is the same as Fatal("msg").
3078-func FatalDepth(depth int, args ...interface{}) {
3079- logging.printDepth(fatalLog, depth, args...)
3080+func FatalDepth(depth int, args ...any) {
3081+ fatalf(depth+1, defaultFormat(args), args...)
3082+}
3083+
3084+// FatalDepthf acts as Fatalf but uses depth to determine which call frame to log.
3085+// FatalDepthf(0, "msg") is the same as Fatalf("msg").
3086+func FatalDepthf(depth int, format string, args ...any) {
3087+ fatalf(depth+1, format, args...)
3088 }
3089
3090 // Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs,
3091-// including a stack trace of all running goroutines, then calls os.Exit(255).
3092+// including a stack trace of all running goroutines, then calls os.Exit(2).
3093 // Arguments are handled in the manner of fmt.Println; a newline is appended if missing.
3094-func Fatalln(args ...interface{}) {
3095- logging.println(fatalLog, args...)
3096+func Fatalln(args ...any) {
3097+ fatalf(1, lnFormat(args), args...)
3098 }
3099
3100 // Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs,
3101-// including a stack trace of all running goroutines, then calls os.Exit(255).
3102+// including a stack trace of all running goroutines, then calls os.Exit(2).
3103 // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.
3104-func Fatalf(format string, args ...interface{}) {
3105- logging.printf(fatalLog, format, args...)
3106+func Fatalf(format string, args ...any) {
3107+ fatalf(1, format, args...)
3108 }
3109
3110-// fatalNoStacks is non-zero if we are to exit without dumping goroutine stacks.
3111-// It allows Exit and relatives to use the Fatal logs.
3112-var fatalNoStacks uint32
3113+func exitf(depth int, format string, args ...any) {
3114+ logf(depth+1, logsink.Fatal, false, noStack, format, args...)
3115+ sinks.file.Flush()
3116+ os.Exit(1)
3117+}
3118
3119 // Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).
3120 // Arguments are handled in the manner of fmt.Print; a newline is appended if missing.
3121-func Exit(args ...interface{}) {
3122- atomic.StoreUint32(&fatalNoStacks, 1)
3123- logging.print(fatalLog, args...)
3124+func Exit(args ...any) {
3125+ ExitDepth(1, args...)
3126 }
3127
3128 // ExitDepth acts as Exit but uses depth to determine which call frame to log.
3129 // ExitDepth(0, "msg") is the same as Exit("msg").
3130-func ExitDepth(depth int, args ...interface{}) {
3131- atomic.StoreUint32(&fatalNoStacks, 1)
3132- logging.printDepth(fatalLog, depth, args...)
3133+func ExitDepth(depth int, args ...any) {
3134+ exitf(depth+1, defaultFormat(args), args...)
3135+}
3136+
3137+// ExitDepthf acts as Exitf but uses depth to determine which call frame to log.
3138+// ExitDepthf(0, "msg") is the same as Exitf("msg").
3139+func ExitDepthf(depth int, format string, args ...any) {
3140+ exitf(depth+1, format, args...)
3141 }
3142
3143 // Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).
3144-func Exitln(args ...interface{}) {
3145- atomic.StoreUint32(&fatalNoStacks, 1)
3146- logging.println(fatalLog, args...)
3147+func Exitln(args ...any) {
3148+ exitf(1, lnFormat(args), args...)
3149 }
3150
3151 // Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls os.Exit(1).
3152 // Arguments are handled in the manner of fmt.Printf; a newline is appended if missing.
3153-func Exitf(format string, args ...interface{}) {
3154- atomic.StoreUint32(&fatalNoStacks, 1)
3155- logging.printf(fatalLog, format, args...)
3156+func Exitf(format string, args ...any) {
3157+ exitf(1, format, args...)
3158 }
3159diff --git a/debian/extra/vendor/github.com/golang/glog/glog_file.go b/debian/extra/vendor/github.com/golang/glog/glog_file.go
3160index 65075d2..af1c934 100644
3161--- a/debian/extra/vendor/github.com/golang/glog/glog_file.go
3162+++ b/debian/extra/vendor/github.com/golang/glog/glog_file.go
3163@@ -1,6 +1,6 @@
3164-// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/
3165+// Go support for leveled logs, analogous to https://github.com/google/glog.
3166 //
3167-// Copyright 2013 Google Inc. All Rights Reserved.
3168+// Copyright 2023 Google Inc. All Rights Reserved.
3169 //
3170 // Licensed under the Apache License, Version 2.0 (the "License");
3171 // you may not use this file except in compliance with the License.
3172@@ -19,26 +19,34 @@
3173 package glog
3174
3175 import (
3176+ "bufio"
3177+ "bytes"
3178 "errors"
3179 "flag"
3180 "fmt"
3181+ "io"
3182 "os"
3183 "os/user"
3184 "path/filepath"
3185+ "runtime"
3186 "strings"
3187 "sync"
3188 "time"
3189-)
3190
3191-// MaxSize is the maximum size of a log file in bytes.
3192-var MaxSize uint64 = 1024 * 1024 * 1800
3193+ "github.com/golang/glog/internal/logsink"
3194+)
3195
3196 // logDirs lists the candidate directories for new log files.
3197 var logDirs []string
3198
3199-// If non-empty, overrides the choice of directory in which to write logs.
3200-// See createLogDirs for the full list of possible destinations.
3201-var logDir = flag.String("log_dir", "", "If non-empty, write log files in this directory")
3202+var (
3203+ // If non-empty, overrides the choice of directory in which to write logs.
3204+ // See createLogDirs for the full list of possible destinations.
3205+ logDir = flag.String("log_dir", "", "If non-empty, write log files in this directory")
3206+ logLink = flag.String("log_link", "", "If non-empty, add symbolic links in this directory to the log files")
3207+ logBufLevel = flag.Int("logbuflevel", int(logsink.Info), "Buffer log messages logged at this level or lower"+
3208+ " (-1 means don't buffer; 0 means buffer INFO only; ...). Has limited applicability on non-prod platforms.")
3209+)
3210
3211 func createLogDirs() {
3212 if *logDir != "" {
3213@@ -64,9 +72,17 @@ func init() {
3214 if err == nil {
3215 userName = current.Username
3216 }
3217-
3218- // Sanitize userName since it may contain filepath separators on Windows.
3219- userName = strings.Replace(userName, `\`, "_", -1)
3220+ // Sanitize userName since it is used to construct file paths.
3221+ userName = strings.Map(func(r rune) rune {
3222+ switch {
3223+ case r >= 'a' && r <= 'z':
3224+ case r >= 'A' && r <= 'Z':
3225+ case r >= '0' && r <= '9':
3226+ default:
3227+ return '_'
3228+ }
3229+ return r
3230+ }, userName)
3231 }
3232
3233 // shortHostname returns its argument, truncating at the first period.
3234@@ -122,3 +138,270 @@ func create(tag string, t time.Time) (f *os.File, filename string, err error) {
3235 }
3236 return nil, "", fmt.Errorf("log: cannot create log: %v", lastErr)
3237 }
3238+
3239+// flushSyncWriter is the interface satisfied by logging destinations.
3240+type flushSyncWriter interface {
3241+ Flush() error
3242+ Sync() error
3243+ io.Writer
3244+ filenames() []string
3245+}
3246+
3247+var sinks struct {
3248+ stderr stderrSink
3249+ file fileSink
3250+}
3251+
3252+func init() {
3253+ sinks.stderr.w = os.Stderr
3254+
3255+ // Register stderr first: that way if we crash during file-writing at least
3256+ // the log will have gone somewhere.
3257+ logsink.TextSinks = append(logsink.TextSinks, &sinks.stderr, &sinks.file)
3258+
3259+ sinks.file.flushChan = make(chan logsink.Severity, 1)
3260+ go sinks.file.flushDaemon()
3261+}
3262+
3263+// stderrSink is a logsink.Text that writes log entries to stderr
3264+// if they meet certain conditions.
3265+type stderrSink struct {
3266+ mu sync.Mutex
3267+ w io.Writer
3268+}
3269+
3270+// Enabled implements logsink.Text.Enabled. It returns true if any of the
3271+// various stderr flags are enabled for logs of the given severity, if the log
3272+// message is from the standard "log" package, or if google.Init has not yet run
3273+// (and hence file logging is not yet initialized).
3274+func (s *stderrSink) Enabled(m *logsink.Meta) bool {
3275+ return toStderr || alsoToStderr || m.Severity >= stderrThreshold.get()
3276+}
3277+
3278+// Emit implements logsink.Text.Emit.
3279+func (s *stderrSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {
3280+ s.mu.Lock()
3281+ defer s.mu.Unlock()
3282+
3283+ dn, err := s.w.Write(data)
3284+ n += dn
3285+ return n, err
3286+}
3287+
3288+// severityWriters is an array of flushSyncWriter with a value for each
3289+// logsink.Severity.
3290+type severityWriters [4]flushSyncWriter
3291+
3292+// fileSink is a logsink.Text that prints to a set of Google log files.
3293+type fileSink struct {
3294+ mu sync.Mutex
3295+ // file holds writer for each of the log types.
3296+ file severityWriters
3297+ flushChan chan logsink.Severity
3298+}
3299+
3300+// Enabled implements logsink.Text.Enabled. It returns true if google.Init
3301+// has run and both --disable_log_to_disk and --logtostderr are false.
3302+func (s *fileSink) Enabled(m *logsink.Meta) bool {
3303+ return !toStderr
3304+}
3305+
3306+// Emit implements logsink.Text.Emit
3307+func (s *fileSink) Emit(m *logsink.Meta, data []byte) (n int, err error) {
3308+ s.mu.Lock()
3309+ defer s.mu.Unlock()
3310+
3311+ if err = s.createMissingFiles(m.Severity); err != nil {
3312+ return 0, err
3313+ }
3314+ for sev := m.Severity; sev >= logsink.Info; sev-- {
3315+ if _, fErr := s.file[sev].Write(data); fErr != nil && err == nil {
3316+ err = fErr // Take the first error.
3317+ }
3318+ }
3319+ n = len(data)
3320+ if int(m.Severity) > *logBufLevel {
3321+ select {
3322+ case s.flushChan <- m.Severity:
3323+ default:
3324+ }
3325+ }
3326+
3327+ return n, err
3328+}
3329+
3330+// syncBuffer joins a bufio.Writer to its underlying file, providing access to the
3331+// file's Sync method and providing a wrapper for the Write method that provides log
3332+// file rotation. There are conflicting methods, so the file cannot be embedded.
3333+// s.mu is held for all its methods.
3334+type syncBuffer struct {
3335+ sink *fileSink
3336+ *bufio.Writer
3337+ file *os.File
3338+ names []string
3339+ sev logsink.Severity
3340+ nbytes uint64 // The number of bytes written to this file
3341+}
3342+
3343+func (sb *syncBuffer) Sync() error {
3344+ return sb.file.Sync()
3345+}
3346+
3347+func (sb *syncBuffer) Write(p []byte) (n int, err error) {
3348+ if sb.nbytes+uint64(len(p)) >= MaxSize {
3349+ if err := sb.rotateFile(time.Now()); err != nil {
3350+ return 0, err
3351+ }
3352+ }
3353+ n, err = sb.Writer.Write(p)
3354+ sb.nbytes += uint64(n)
3355+ return n, err
3356+}
3357+
3358+func (sb *syncBuffer) filenames() []string {
3359+ return sb.names
3360+}
3361+
3362+const footer = "\nCONTINUED IN NEXT FILE\n"
3363+
3364+// rotateFile closes the syncBuffer's file and starts a new one.
3365+func (sb *syncBuffer) rotateFile(now time.Time) error {
3366+ var err error
3367+ pn := "<none>"
3368+ file, name, err := create(sb.sev.String(), now)
3369+
3370+ if sb.file != nil {
3371+ // The current log file becomes the previous log at the end of
3372+ // this block, so save its name for use in the header of the next
3373+ // file.
3374+ pn = sb.file.Name()
3375+ sb.Flush()
3376+ // If there's an existing file, write a footer with the name of
3377+ // the next file in the chain, followed by the constant string
3378+ // \nCONTINUED IN NEXT FILE\n to make continuation detection simple.
3379+ sb.file.Write([]byte("Next log: "))
3380+ sb.file.Write([]byte(name))
3381+ sb.file.Write([]byte(footer))
3382+ sb.file.Close()
3383+ }
3384+
3385+ sb.file = file
3386+ sb.names = append(sb.names, name)
3387+ sb.nbytes = 0
3388+ if err != nil {
3389+ return err
3390+ }
3391+
3392+ sb.Writer = bufio.NewWriterSize(sb.file, bufferSize)
3393+
3394+ // Write header.
3395+ var buf bytes.Buffer
3396+ fmt.Fprintf(&buf, "Log file created at: %s\n", now.Format("2006/01/02 15:04:05"))
3397+ fmt.Fprintf(&buf, "Running on machine: %s\n", host)
3398+ fmt.Fprintf(&buf, "Binary: Built with %s %s for %s/%s\n", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH)
3399+ fmt.Fprintf(&buf, "Previous log: %s\n", pn)
3400+ fmt.Fprintf(&buf, "Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\n")
3401+ n, err := sb.file.Write(buf.Bytes())
3402+ sb.nbytes += uint64(n)
3403+ return err
3404+}
3405+
3406+// bufferSize sizes the buffer associated with each log file. It's large
3407+// so that log records can accumulate without the logging thread blocking
3408+// on disk I/O. The flushDaemon will block instead.
3409+const bufferSize = 256 * 1024
3410+
3411+// createMissingFiles creates all the log files for severity from infoLog up to
3412+// upTo that have not already been created.
3413+// s.mu is held.
3414+func (s *fileSink) createMissingFiles(upTo logsink.Severity) error {
3415+ if s.file[upTo] != nil {
3416+ return nil
3417+ }
3418+ now := time.Now()
3419+ // Files are created in increasing severity order, so we can be assured that
3420+ // if a high severity logfile exists, then so do all of lower severity.
3421+ for sev := logsink.Info; sev <= upTo; sev++ {
3422+ if s.file[sev] != nil {
3423+ continue
3424+ }
3425+ sb := &syncBuffer{
3426+ sink: s,
3427+ sev: sev,
3428+ }
3429+ if err := sb.rotateFile(now); err != nil {
3430+ return err
3431+ }
3432+ s.file[sev] = sb
3433+ }
3434+ return nil
3435+}
3436+
3437+// flushDaemon periodically flushes the log file buffers.
3438+func (s *fileSink) flushDaemon() {
3439+ tick := time.NewTicker(30 * time.Second)
3440+ defer tick.Stop()
3441+ for {
3442+ select {
3443+ case <-tick.C:
3444+ s.Flush()
3445+ case sev := <-s.flushChan:
3446+ s.flush(sev)
3447+ }
3448+ }
3449+}
3450+
3451+// Flush flushes all pending log I/O.
3452+func Flush() {
3453+ sinks.file.Flush()
3454+}
3455+
3456+// Flush flushes all the logs and attempts to "sync" their data to disk.
3457+func (s *fileSink) Flush() error {
3458+ return s.flush(logsink.Info)
3459+}
3460+
3461+// flush flushes all logs of severity threshold or greater.
3462+func (s *fileSink) flush(threshold logsink.Severity) error {
3463+ s.mu.Lock()
3464+ defer s.mu.Unlock()
3465+
3466+ var firstErr error
3467+ updateErr := func(err error) {
3468+ if err != nil && firstErr == nil {
3469+ firstErr = err
3470+ }
3471+ }
3472+
3473+ // Flush from fatal down, in case there's trouble flushing.
3474+ for sev := logsink.Fatal; sev >= threshold; sev-- {
3475+ file := s.file[sev]
3476+ if file != nil {
3477+ updateErr(file.Flush())
3478+ updateErr(file.Sync())
3479+ }
3480+ }
3481+
3482+ return firstErr
3483+}
3484+
3485+// Names returns the names of the log files holding the FATAL, ERROR,
3486+// WARNING, or INFO logs. Returns ErrNoLog if the log for the given
3487+// level doesn't exist (e.g. because no messages of that level have been
3488+// written). This may return multiple names if the log type requested
3489+// has rolled over.
3490+func Names(s string) ([]string, error) {
3491+ severity, err := logsink.ParseSeverity(s)
3492+ if err != nil {
3493+ return nil, err
3494+ }
3495+
3496+ sinks.file.mu.Lock()
3497+ defer sinks.file.mu.Unlock()
3498+ f := sinks.file.file[severity]
3499+ if f == nil {
3500+ return nil, ErrNoLog
3501+ }
3502+
3503+ return f.filenames(), nil
3504+}
3505diff --git a/debian/extra/vendor/github.com/golang/glog/glog_flags.go b/debian/extra/vendor/github.com/golang/glog/glog_flags.go
3506new file mode 100644
3507index 0000000..3060e54
3508--- /dev/null
3509+++ b/debian/extra/vendor/github.com/golang/glog/glog_flags.go
3510@@ -0,0 +1,395 @@
3511+// Go support for leveled logs, analogous to https://github.com/google/glog.
3512+//
3513+// Copyright 2023 Google Inc. All Rights Reserved.
3514+//
3515+// Licensed under the Apache License, Version 2.0 (the "License");
3516+// you may not use this file except in compliance with the License.
3517+// You may obtain a copy of the License at
3518+//
3519+// http://www.apache.org/licenses/LICENSE-2.0
3520+//
3521+// Unless required by applicable law or agreed to in writing, software
3522+// distributed under the License is distributed on an "AS IS" BASIS,
3523+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3524+// See the License for the specific language governing permissions and
3525+// limitations under the License.
3526+
3527+package glog
3528+
3529+import (
3530+ "bytes"
3531+ "errors"
3532+ "flag"
3533+ "fmt"
3534+ "path/filepath"
3535+ "runtime"
3536+ "strconv"
3537+ "strings"
3538+ "sync"
3539+ "sync/atomic"
3540+
3541+ "github.com/golang/glog/internal/logsink"
3542+)
3543+
3544+// modulePat contains a filter for the -vmodule flag.
3545+// It holds a verbosity level and a file pattern to match.
3546+type modulePat struct {
3547+ pattern string
3548+ literal bool // The pattern is a literal string
3549+ full bool // The pattern wants to match the full path
3550+ level Level
3551+}
3552+
3553+// match reports whether the file matches the pattern. It uses a string
3554+// comparison if the pattern contains no metacharacters.
3555+func (m *modulePat) match(full, file string) bool {
3556+ if m.literal {
3557+ if m.full {
3558+ return full == m.pattern
3559+ }
3560+ return file == m.pattern
3561+ }
3562+ if m.full {
3563+ match, _ := filepath.Match(m.pattern, full)
3564+ return match
3565+ }
3566+ match, _ := filepath.Match(m.pattern, file)
3567+ return match
3568+}
3569+
3570+// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters
3571+// that require filepath.Match to be called to match the pattern.
3572+func isLiteral(pattern string) bool {
3573+ return !strings.ContainsAny(pattern, `\*?[]`)
3574+}
3575+
3576+// isFull reports whether the pattern matches the full file path, that is,
3577+// whether it contains /.
3578+func isFull(pattern string) bool {
3579+ return strings.ContainsRune(pattern, '/')
3580+}
3581+
3582+// verboseFlags represents the setting of the -v and -vmodule flags.
3583+type verboseFlags struct {
3584+ // moduleLevelCache is a sync.Map storing the -vmodule Level for each V()
3585+ // call site, identified by PC. If there is no matching -vmodule filter,
3586+ // the cached value is exactly v. moduleLevelCache is replaced with a new
3587+ // Map whenever the -vmodule or -v flag changes state.
3588+ moduleLevelCache atomic.Value
3589+
3590+ // mu guards all fields below.
3591+ mu sync.Mutex
3592+
3593+ // v stores the value of the -v flag. It may be read safely using
3594+ // sync.LoadInt32, but is only modified under mu.
3595+ v Level
3596+
3597+ // module stores the parsed -vmodule flag.
3598+ module []modulePat
3599+
3600+ // moduleLength caches len(module). If greater than zero, it
3601+ // means vmodule is enabled. It may be read safely using sync.LoadInt32, but
3602+ // is only modified under mu.
3603+ moduleLength int32
3604+}
3605+
3606+// NOTE: For compatibility with the open-sourced v1 version of this
3607+// package (github.com/golang/glog) we need to retain that flag.Level
3608+// implements the flag.Value interface. See also go/log-vs-glog.
3609+
3610+// String is part of the flag.Value interface.
3611+func (l *Level) String() string {
3612+ return strconv.FormatInt(int64(l.Get().(Level)), 10)
3613+}
3614+
3615+// Get is part of the flag.Value interface.
3616+func (l *Level) Get() any {
3617+ if l == &vflags.v {
3618+ // l is the value registered for the -v flag.
3619+ return Level(atomic.LoadInt32((*int32)(l)))
3620+ }
3621+ return *l
3622+}
3623+
3624+// Set is part of the flag.Value interface.
3625+func (l *Level) Set(value string) error {
3626+ v, err := strconv.Atoi(value)
3627+ if err != nil {
3628+ return err
3629+ }
3630+ if l == &vflags.v {
3631+ // l is the value registered for the -v flag.
3632+ vflags.mu.Lock()
3633+ defer vflags.mu.Unlock()
3634+ vflags.moduleLevelCache.Store(&sync.Map{})
3635+ atomic.StoreInt32((*int32)(l), int32(v))
3636+ return nil
3637+ }
3638+ *l = Level(v)
3639+ return nil
3640+}
3641+
3642+// vModuleFlag is the flag.Value for the --vmodule flag.
3643+type vModuleFlag struct{ *verboseFlags }
3644+
3645+func (f vModuleFlag) String() string {
3646+ f.mu.Lock()
3647+ defer f.mu.Unlock()
3648+
3649+ var b bytes.Buffer
3650+ for i, f := range f.module {
3651+ if i > 0 {
3652+ b.WriteRune(',')
3653+ }
3654+ fmt.Fprintf(&b, "%s=%d", f.pattern, f.level)
3655+ }
3656+ return b.String()
3657+}
3658+
3659+// Get returns nil for this flag type since the struct is not exported.
3660+func (f vModuleFlag) Get() any { return nil }
3661+
3662+var errVmoduleSyntax = errors.New("syntax error: expect comma-separated list of filename=N")
3663+
3664+// Syntax: -vmodule=recordio=2,foo/bar/baz=1,gfs*=3
3665+func (f vModuleFlag) Set(value string) error {
3666+ var filter []modulePat
3667+ for _, pat := range strings.Split(value, ",") {
3668+ if len(pat) == 0 {
3669+ // Empty strings such as from a trailing comma can be ignored.
3670+ continue
3671+ }
3672+ patLev := strings.Split(pat, "=")
3673+ if len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 {
3674+ return errVmoduleSyntax
3675+ }
3676+ pattern := patLev[0]
3677+ v, err := strconv.Atoi(patLev[1])
3678+ if err != nil {
3679+ return errors.New("syntax error: expect comma-separated list of filename=N")
3680+ }
3681+ // TODO: check syntax of filter?
3682+ filter = append(filter, modulePat{pattern, isLiteral(pattern), isFull(pattern), Level(v)})
3683+ }
3684+
3685+ f.mu.Lock()
3686+ defer f.mu.Unlock()
3687+ f.module = filter
3688+ atomic.StoreInt32((*int32)(&f.moduleLength), int32(len(f.module)))
3689+ f.moduleLevelCache.Store(&sync.Map{})
3690+ return nil
3691+}
3692+
3693+func (f *verboseFlags) levelForPC(pc uintptr) Level {
3694+ if level, ok := f.moduleLevelCache.Load().(*sync.Map).Load(pc); ok {
3695+ return level.(Level)
3696+ }
3697+
3698+ f.mu.Lock()
3699+ defer f.mu.Unlock()
3700+ level := Level(f.v)
3701+ fn := runtime.FuncForPC(pc)
3702+ file, _ := fn.FileLine(pc)
3703+ // The file is something like /a/b/c/d.go. We want just the d for
3704+ // regular matches, /a/b/c/d for full matches.
3705+ if strings.HasSuffix(file, ".go") {
3706+ file = file[:len(file)-3]
3707+ }
3708+ full := file
3709+ if slash := strings.LastIndex(file, "/"); slash >= 0 {
3710+ file = file[slash+1:]
3711+ }
3712+ for _, filter := range f.module {
3713+ if filter.match(full, file) {
3714+ level = filter.level
3715+ break // Use the first matching level.
3716+ }
3717+ }
3718+ f.moduleLevelCache.Load().(*sync.Map).Store(pc, level)
3719+ return level
3720+}
3721+
3722+func (f *verboseFlags) enabled(callerDepth int, level Level) bool {
3723+ if atomic.LoadInt32(&f.moduleLength) == 0 {
3724+ // No vmodule values specified, so compare against v level.
3725+ return Level(atomic.LoadInt32((*int32)(&f.v))) >= level
3726+ }
3727+
3728+ pcs := [1]uintptr{}
3729+ if runtime.Callers(callerDepth+2, pcs[:]) < 1 {
3730+ return false
3731+ }
3732+ frame, _ := runtime.CallersFrames(pcs[:]).Next()
3733+ return f.levelForPC(frame.Entry) >= level
3734+}
3735+
3736+// traceLocation represents an entry in the -log_backtrace_at flag.
3737+type traceLocation struct {
3738+ file string
3739+ line int
3740+}
3741+
3742+var errTraceSyntax = errors.New("syntax error: expect file.go:234")
3743+
3744+func parseTraceLocation(value string) (traceLocation, error) {
3745+ fields := strings.Split(value, ":")
3746+ if len(fields) != 2 {
3747+ return traceLocation{}, errTraceSyntax
3748+ }
3749+ file, lineStr := fields[0], fields[1]
3750+ if !strings.Contains(file, ".") {
3751+ return traceLocation{}, errTraceSyntax
3752+ }
3753+ line, err := strconv.Atoi(lineStr)
3754+ if err != nil {
3755+ return traceLocation{}, errTraceSyntax
3756+ }
3757+ if line < 0 {
3758+ return traceLocation{}, errors.New("negative value for line")
3759+ }
3760+ return traceLocation{file, line}, nil
3761+}
3762+
3763+// match reports whether the specified file and line matches the trace location.
3764+// The argument file name is the full path, not the basename specified in the flag.
3765+func (t traceLocation) match(file string, line int) bool {
3766+ if t.line != line {
3767+ return false
3768+ }
3769+ if i := strings.LastIndex(file, "/"); i >= 0 {
3770+ file = file[i+1:]
3771+ }
3772+ return t.file == file
3773+}
3774+
3775+func (t traceLocation) String() string {
3776+ return fmt.Sprintf("%s:%d", t.file, t.line)
3777+}
3778+
3779+// traceLocations represents the -log_backtrace_at flag.
3780+// Syntax: -log_backtrace_at=recordio.go:234,sstable.go:456
3781+// Note that unlike vmodule the file extension is included here.
3782+type traceLocations struct {
3783+ mu sync.Mutex
3784+ locsLen int32 // Safe for atomic read without mu.
3785+ locs []traceLocation
3786+}
3787+
3788+func (t *traceLocations) String() string {
3789+ t.mu.Lock()
3790+ defer t.mu.Unlock()
3791+
3792+ var buf bytes.Buffer
3793+ for i, tl := range t.locs {
3794+ if i > 0 {
3795+ buf.WriteString(",")
3796+ }
3797+ buf.WriteString(tl.String())
3798+ }
3799+ return buf.String()
3800+}
3801+
3802+// Get always returns nil for this flag type since the struct is not exported
3803+func (t *traceLocations) Get() any { return nil }
3804+
3805+func (t *traceLocations) Set(value string) error {
3806+ var locs []traceLocation
3807+ for _, s := range strings.Split(value, ",") {
3808+ if s == "" {
3809+ continue
3810+ }
3811+ loc, err := parseTraceLocation(s)
3812+ if err != nil {
3813+ return err
3814+ }
3815+ locs = append(locs, loc)
3816+ }
3817+
3818+ t.mu.Lock()
3819+ defer t.mu.Unlock()
3820+ atomic.StoreInt32(&t.locsLen, int32(len(locs)))
3821+ t.locs = locs
3822+ return nil
3823+}
3824+
3825+func (t *traceLocations) match(file string, line int) bool {
3826+ if atomic.LoadInt32(&t.locsLen) == 0 {
3827+ return false
3828+ }
3829+
3830+ t.mu.Lock()
3831+ defer t.mu.Unlock()
3832+ for _, tl := range t.locs {
3833+ if tl.match(file, line) {
3834+ return true
3835+ }
3836+ }
3837+ return false
3838+}
3839+
3840+// severityFlag is an atomic flag.Value implementation for logsink.Severity.
3841+type severityFlag int32
3842+
3843+func (s *severityFlag) get() logsink.Severity {
3844+ return logsink.Severity(atomic.LoadInt32((*int32)(s)))
3845+}
3846+func (s *severityFlag) String() string { return strconv.FormatInt(int64(*s), 10) }
3847+func (s *severityFlag) Get() any { return s.get() }
3848+func (s *severityFlag) Set(value string) error {
3849+ threshold, err := logsink.ParseSeverity(value)
3850+ if err != nil {
3851+ // Not a severity name. Try a raw number.
3852+ v, err := strconv.Atoi(value)
3853+ if err != nil {
3854+ return err
3855+ }
3856+ threshold = logsink.Severity(v)
3857+ if threshold < logsink.Info || threshold > logsink.Fatal {
3858+ return fmt.Errorf("Severity %d out of range (min %d, max %d).", v, logsink.Info, logsink.Fatal)
3859+ }
3860+ }
3861+ atomic.StoreInt32((*int32)(s), int32(threshold))
3862+ return nil
3863+}
3864+
3865+var (
3866+ vflags verboseFlags // The -v and -vmodule flags.
3867+
3868+ logBacktraceAt traceLocations // The -log_backtrace_at flag.
3869+
3870+ // Boolean flags. Not handled atomically because the flag.Value interface
3871+ // does not let us avoid the =true, and that shorthand is necessary for
3872+ // compatibility. TODO: does this matter enough to fix? Seems unlikely.
3873+ toStderr bool // The -logtostderr flag.
3874+ alsoToStderr bool // The -alsologtostderr flag.
3875+
3876+ stderrThreshold severityFlag // The -stderrthreshold flag.
3877+)
3878+
3879+// verboseEnabled returns whether the caller at the given depth should emit
3880+// verbose logs at the given level, with depth 0 identifying the caller of
3881+// verboseEnabled.
3882+func verboseEnabled(callerDepth int, level Level) bool {
3883+ return vflags.enabled(callerDepth+1, level)
3884+}
3885+
3886+// backtraceAt returns whether the logging call at the given function and line
3887+// should also emit a backtrace of the current call stack.
3888+func backtraceAt(file string, line int) bool {
3889+ return logBacktraceAt.match(file, line)
3890+}
3891+
3892+func init() {
3893+ vflags.moduleLevelCache.Store(&sync.Map{})
3894+
3895+ flag.Var(&vflags.v, "v", "log level for V logs")
3896+ flag.Var(vModuleFlag{&vflags}, "vmodule", "comma-separated list of pattern=N settings for file-filtered logging")
3897+
3898+ flag.Var(&logBacktraceAt, "log_backtrace_at", "when logging hits line file:N, emit a stack trace")
3899+
3900+ stderrThreshold = severityFlag(logsink.Error)
3901+
3902+ flag.BoolVar(&toStderr, "logtostderr", false, "log to standard error instead of files")
3903+ flag.BoolVar(&alsoToStderr, "alsologtostderr", false, "log to standard error as well as files")
3904+ flag.Var(&stderrThreshold, "stderrthreshold", "logs at or above this threshold go to stderr")
3905+}
3906diff --git a/debian/extra/vendor/github.com/golang/glog/go.mod b/debian/extra/vendor/github.com/golang/glog/go.mod
3907deleted file mode 100644
3908index 376dc05..0000000
3909--- a/debian/extra/vendor/github.com/golang/glog/go.mod
3910+++ /dev/null
3911@@ -1,3 +0,0 @@
3912-module github.com/golang/glog
3913-
3914-go 1.11
3915diff --git a/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink.go b/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink.go
3916new file mode 100644
3917index 0000000..53758e1
3918--- /dev/null
3919+++ b/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink.go
3920@@ -0,0 +1,387 @@
3921+// Copyright 2023 Google Inc. All Rights Reserved.
3922+//
3923+// Licensed under the Apache License, Version 2.0 (the "License");
3924+// you may not use this file except in compliance with the License.
3925+// You may obtain a copy of the License at
3926+//
3927+// http://www.apache.org/licenses/LICENSE-2.0
3928+//
3929+// Unless required by applicable law or agreed to in writing, software
3930+// distributed under the License is distributed on an "AS IS" BASIS,
3931+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3932+// See the License for the specific language governing permissions and
3933+// limitations under the License.
3934+
3935+package logsink
3936+
3937+import (
3938+ "bytes"
3939+ "fmt"
3940+ "strconv"
3941+ "strings"
3942+ "sync"
3943+ "time"
3944+
3945+ "github.com/golang/glog/internal/stackdump"
3946+)
3947+
3948+// MaxLogMessageLen is the limit on length of a formatted log message, including
3949+// the standard line prefix and trailing newline.
3950+//
3951+// Chosen to match C++ glog.
3952+const MaxLogMessageLen = 15000
3953+
3954+// A Severity is a severity at which a message can be logged.
3955+type Severity int8
3956+
3957+// These constants identify the log levels in order of increasing severity.
3958+// A message written to a high-severity log file is also written to each
3959+// lower-severity log file.
3960+const (
3961+ Info Severity = iota
3962+ Warning
3963+ Error
3964+
3965+ // Fatal contains logs written immediately before the process terminates.
3966+ //
3967+ // Sink implementations should not terminate the process themselves: the log
3968+ // package will perform any necessary cleanup and terminate the process as
3969+ // appropriate.
3970+ Fatal
3971+)
3972+
3973+func (s Severity) String() string {
3974+ switch s {
3975+ case Info:
3976+ return "INFO"
3977+ case Warning:
3978+ return "WARNING"
3979+ case Error:
3980+ return "ERROR"
3981+ case Fatal:
3982+ return "FATAL"
3983+ }
3984+ return fmt.Sprintf("%T(%d)", s, s)
3985+}
3986+
3987+// ParseSeverity returns the case-insensitive Severity value for the given string.
3988+func ParseSeverity(name string) (Severity, error) {
3989+ name = strings.ToUpper(name)
3990+ for s := Info; s <= Fatal; s++ {
3991+ if s.String() == name {
3992+ return s, nil
3993+ }
3994+ }
3995+ return -1, fmt.Errorf("logsink: invalid severity %q", name)
3996+}
3997+
3998+// Meta is metadata about a logging call.
3999+type Meta struct {
4000+ // Time is the time at which the log call was made.
4001+ Time time.Time
4002+
4003+ // File is the source file from which the log entry originates.
4004+ File string
4005+ // Line is the line offset within the source file.
4006+ Line int
4007+ // Depth is the number of stack frames between the logsink and the log call.
4008+ Depth int
4009+
4010+ Severity Severity
4011+
4012+ // Verbose indicates whether the call was made via "log.V". Log entries below
4013+ // the current verbosity threshold are not sent to the sink.
4014+ Verbose bool
4015+
4016+ // Thread ID. This can be populated with a thread ID from another source,
4017+ // such as a system we are importing logs from. In the normal case, this
4018+ // will be set to the process ID (PID), since Go doesn't have threads.
4019+ Thread int64
4020+
4021+ // Stack trace starting in the logging function. May be nil.
4022+ // A logsink should implement the StackWanter interface to request this.
4023+ //
4024+ // Even if WantStack returns false, this field may be set (e.g. if another
4025+ // sink wants a stack trace).
4026+ Stack *stackdump.Stack
4027+}
4028+
4029+// Structured is a logging destination that accepts structured data as input.
4030+type Structured interface {
4031+ // Printf formats according to a fmt.Printf format specifier and writes a log
4032+ // entry. The precise result of formatting depends on the sink, but should
4033+ // aim for consistency with fmt.Printf.
4034+ //
4035+ // Printf returns the number of bytes occupied by the log entry, which
4036+ // may not be equal to the total number of bytes written.
4037+ //
4038+ // Printf returns any error encountered *if* it is severe enough that the log
4039+ // package should terminate the process.
4040+ //
4041+ // The sink must not modify the *Meta parameter, nor reference it after
4042+ // Printf has returned: it may be reused in subsequent calls.
4043+ Printf(meta *Meta, format string, a ...any) (n int, err error)
4044+}
4045+
4046+// StackWanter can be implemented by a logsink.Structured to indicate that it
4047+// wants a stack trace to accompany at least some of the log messages it receives.
4048+type StackWanter interface {
4049+ // WantStack returns true if the sink requires a stack trace for a log message
4050+ // with this metadata.
4051+ //
4052+ // NOTE: Returning true implies that meta.Stack will be non-nil. Returning
4053+ // false does NOT imply that meta.Stack will be nil.
4054+ WantStack(meta *Meta) bool
4055+}
4056+
4057+// Text is a logging destination that accepts pre-formatted log lines (instead of
4058+// structured data).
4059+type Text interface {
4060+ // Enabled returns whether this sink should output messages for the given
4061+ // Meta. If the sink returns false for a given Meta, the Printf function will
4062+ // not call Emit on it for the corresponding log message.
4063+ Enabled(*Meta) bool
4064+
4065+ // Emit writes a pre-formatted text log entry (including any applicable
4066+ // header) to the log. It returns the number of bytes occupied by the entry
4067+ // (which may differ from the length of the passed-in slice).
4068+ //
4069+ // Emit returns any error encountered *if* it is severe enough that the log
4070+ // package should terminate the process.
4071+ //
4072+ // The sink must not modify the *Meta parameter, nor reference it after
4073+ // Printf has returned: it may be reused in subsequent calls.
4074+ //
4075+ // NOTE: When developing a text sink, keep in mind the surface in which the
4076+ // logs will be displayed, and whether it's important that the sink be
4077+ // resistent to tampering in the style of b/211428300. Standard text sinks
4078+ // (like `stderrSink`) do not protect against this (e.g. by escaping
4079+ // characters) because the cases where they would show user-influenced bytes
4080+ // are vanishingly small.
4081+ Emit(*Meta, []byte) (n int, err error)
4082+}
4083+
4084+// bufs is a pool of *bytes.Buffer used in formatting log entries.
4085+var bufs sync.Pool // Pool of *bytes.Buffer.
4086+
4087+// textPrintf formats a text log entry and emits it to all specified Text sinks.
4088+//
4089+// The returned n is the maximum across all Emit calls.
4090+// The returned err is the first non-nil error encountered.
4091+// Sinks that are disabled by configuration should return (0, nil).
4092+func textPrintf(m *Meta, textSinks []Text, format string, args ...any) (n int, err error) {
4093+ // We expect at most file, stderr, and perhaps syslog. If there are more,
4094+ // we'll end up allocating - no big deal.
4095+ const maxExpectedTextSinks = 3
4096+ var noAllocSinks [maxExpectedTextSinks]Text
4097+
4098+ sinks := noAllocSinks[:0]
4099+ for _, s := range textSinks {
4100+ if s.Enabled(m) {
4101+ sinks = append(sinks, s)
4102+ }
4103+ }
4104+ if len(sinks) == 0 && m.Severity != Fatal {
4105+ return 0, nil // No TextSinks specified; don't bother formatting.
4106+ }
4107+
4108+ bufi := bufs.Get()
4109+ var buf *bytes.Buffer
4110+ if bufi == nil {
4111+ buf = bytes.NewBuffer(nil)
4112+ bufi = buf
4113+ } else {
4114+ buf = bufi.(*bytes.Buffer)
4115+ buf.Reset()
4116+ }
4117+
4118+ // Lmmdd hh:mm:ss.uuuuuu PID/GID file:line]
4119+ //
4120+ // The "PID" entry arguably ought to be TID for consistency with other
4121+ // environments, but TID is not meaningful in a Go program due to the
4122+ // multiplexing of goroutines across threads.
4123+ //
4124+ // Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand.
4125+ // It's worth about 3X. Fprintf is hard.
4126+ const severityChar = "IWEF"
4127+ buf.WriteByte(severityChar[m.Severity])
4128+
4129+ _, month, day := m.Time.Date()
4130+ hour, minute, second := m.Time.Clock()
4131+ twoDigits(buf, int(month))
4132+ twoDigits(buf, day)
4133+ buf.WriteByte(' ')
4134+ twoDigits(buf, hour)
4135+ buf.WriteByte(':')
4136+ twoDigits(buf, minute)
4137+ buf.WriteByte(':')
4138+ twoDigits(buf, second)
4139+ buf.WriteByte('.')
4140+ nDigits(buf, 6, uint64(m.Time.Nanosecond()/1000), '0')
4141+ buf.WriteByte(' ')
4142+
4143+ nDigits(buf, 7, uint64(m.Thread), ' ')
4144+ buf.WriteByte(' ')
4145+
4146+ {
4147+ file := m.File
4148+ if i := strings.LastIndex(file, "/"); i >= 0 {
4149+ file = file[i+1:]
4150+ }
4151+ buf.WriteString(file)
4152+ }
4153+
4154+ buf.WriteByte(':')
4155+ {
4156+ var tmp [19]byte
4157+ buf.Write(strconv.AppendInt(tmp[:0], int64(m.Line), 10))
4158+ }
4159+ buf.WriteString("] ")
4160+
4161+ msgStart := buf.Len()
4162+ fmt.Fprintf(buf, format, args...)
4163+ if buf.Len() > MaxLogMessageLen-1 {
4164+ buf.Truncate(MaxLogMessageLen - 1)
4165+ }
4166+ msgEnd := buf.Len()
4167+ if b := buf.Bytes(); b[len(b)-1] != '\n' {
4168+ buf.WriteByte('\n')
4169+ }
4170+
4171+ for _, s := range sinks {
4172+ sn, sErr := s.Emit(m, buf.Bytes())
4173+ if sn > n {
4174+ n = sn
4175+ }
4176+ if sErr != nil && err == nil {
4177+ err = sErr
4178+ }
4179+ }
4180+
4181+ if m.Severity == Fatal {
4182+ savedM := *m
4183+ fatalMessageStore(savedEntry{
4184+ meta: &savedM,
4185+ msg: buf.Bytes()[msgStart:msgEnd],
4186+ })
4187+ } else {
4188+ bufs.Put(bufi)
4189+ }
4190+ return n, err
4191+}
4192+
4193+const digits = "0123456789"
4194+
4195+// twoDigits formats a zero-prefixed two-digit integer to buf.
4196+func twoDigits(buf *bytes.Buffer, d int) {
4197+ buf.WriteByte(digits[(d/10)%10])
4198+ buf.WriteByte(digits[d%10])
4199+}
4200+
4201+// nDigits formats an n-digit integer to buf, padding with pad on the left. It
4202+// assumes d != 0.
4203+func nDigits(buf *bytes.Buffer, n int, d uint64, pad byte) {
4204+ var tmp [20]byte
4205+
4206+ cutoff := len(tmp) - n
4207+ j := len(tmp) - 1
4208+ for ; d > 0; j-- {
4209+ tmp[j] = digits[d%10]
4210+ d /= 10
4211+ }
4212+ for ; j >= cutoff; j-- {
4213+ tmp[j] = pad
4214+ }
4215+ j++
4216+ buf.Write(tmp[j:])
4217+}
4218+
4219+// Printf writes a log entry to all registered TextSinks in this package, then
4220+// to all registered StructuredSinks.
4221+//
4222+// The returned n is the maximum across all Emit and Printf calls.
4223+// The returned err is the first non-nil error encountered.
4224+// Sinks that are disabled by configuration should return (0, nil).
4225+func Printf(m *Meta, format string, args ...any) (n int, err error) {
4226+ m.Depth++
4227+ n, err = textPrintf(m, TextSinks, format, args...)
4228+
4229+ for _, sink := range StructuredSinks {
4230+ // TODO: Support TextSinks that implement StackWanter?
4231+ if sw, ok := sink.(StackWanter); ok && sw.WantStack(m) {
4232+ if m.Stack == nil {
4233+ // First, try to find a stacktrace in args, otherwise generate one.
4234+ for _, arg := range args {
4235+ if stack, ok := arg.(stackdump.Stack); ok {
4236+ m.Stack = &stack
4237+ break
4238+ }
4239+ }
4240+ if m.Stack == nil {
4241+ stack := stackdump.Caller( /* skipDepth = */ m.Depth)
4242+ m.Stack = &stack
4243+ }
4244+ }
4245+ }
4246+ sn, sErr := sink.Printf(m, format, args...)
4247+ if sn > n {
4248+ n = sn
4249+ }
4250+ if sErr != nil && err == nil {
4251+ err = sErr
4252+ }
4253+ }
4254+ return n, err
4255+}
4256+
4257+// The sets of sinks to which logs should be written.
4258+//
4259+// These must only be modified during package init, and are read-only thereafter.
4260+var (
4261+ // StructuredSinks is the set of Structured sink instances to which logs
4262+ // should be written.
4263+ StructuredSinks []Structured
4264+
4265+ // TextSinks is the set of Text sink instances to which logs should be
4266+ // written.
4267+ //
4268+ // These are registered separately from Structured sink implementations to
4269+ // avoid the need to repeat the work of formatting a message for each Text
4270+ // sink that writes it. The package-level Printf function writes to both sets
4271+ // independenty, so a given log destination should only register a Structured
4272+ // *or* a Text sink (not both).
4273+ TextSinks []Text
4274+)
4275+
4276+type savedEntry struct {
4277+ meta *Meta
4278+ msg []byte
4279+}
4280+
4281+// StructuredTextWrapper is a Structured sink which forwards logs to a set of Text sinks.
4282+//
4283+// The purpose of this sink is to allow applications to intercept logging calls before they are
4284+// serialized and sent to Text sinks. For example, if one needs to redact PII from logging
4285+// arguments before they reach STDERR, one solution would be to do the redacting in a Structured
4286+// sink that forwards logs to a StructuredTextWrapper instance, and make STDERR a child of that
4287+// StructuredTextWrapper instance. This is how one could set this up in their application:
4288+//
4289+// func init() {
4290+//
4291+// wrapper := logsink.StructuredTextWrapper{TextSinks: logsink.TextSinks}
4292+// // sanitizersink will intercept logs and remove PII
4293+// sanitizer := sanitizersink{Sink: &wrapper}
4294+// logsink.StructuredSinks = append(logsink.StructuredSinks, &sanitizer)
4295+// logsink.TextSinks = nil
4296+//
4297+// }
4298+type StructuredTextWrapper struct {
4299+ // TextSinks is the set of Text sinks that should receive logs from this
4300+ // StructuredTextWrapper instance.
4301+ TextSinks []Text
4302+}
4303+
4304+// Printf forwards logs to all Text sinks registered in the StructuredTextWrapper.
4305+func (w *StructuredTextWrapper) Printf(meta *Meta, format string, args ...any) (n int, err error) {
4306+ return textPrintf(meta, w.TextSinks, format, args...)
4307+}
4308diff --git a/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go b/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go
4309new file mode 100644
4310index 0000000..3dc269a
4311--- /dev/null
4312+++ b/debian/extra/vendor/github.com/golang/glog/internal/logsink/logsink_fatal.go
4313@@ -0,0 +1,35 @@
4314+package logsink
4315+
4316+import (
4317+ "sync/atomic"
4318+ "unsafe"
4319+)
4320+
4321+func fatalMessageStore(e savedEntry) {
4322+ // Only put a new one in if we haven't assigned before.
4323+ atomic.CompareAndSwapPointer(&fatalMessage, nil, unsafe.Pointer(&e))
4324+}
4325+
4326+var fatalMessage unsafe.Pointer // savedEntry stored with CompareAndSwapPointer
4327+
4328+// FatalMessage returns the Meta and message contents of the first message
4329+// logged with Fatal severity, or false if none has occurred.
4330+func FatalMessage() (*Meta, []byte, bool) {
4331+ e := (*savedEntry)(atomic.LoadPointer(&fatalMessage))
4332+ if e == nil {
4333+ return nil, nil, false
4334+ }
4335+ return e.meta, e.msg, true
4336+}
4337+
4338+// DoNotUseRacyFatalMessage is FatalMessage, but worse.
4339+//
4340+//go:norace
4341+//go:nosplit
4342+func DoNotUseRacyFatalMessage() (*Meta, []byte, bool) {
4343+ e := (*savedEntry)(fatalMessage)
4344+ if e == nil {
4345+ return nil, nil, false
4346+ }
4347+ return e.meta, e.msg, true
4348+}
4349diff --git a/debian/extra/vendor/github.com/golang/glog/internal/stackdump/stackdump.go b/debian/extra/vendor/github.com/golang/glog/internal/stackdump/stackdump.go
4350new file mode 100644
4351index 0000000..3427c9d
4352--- /dev/null
4353+++ b/debian/extra/vendor/github.com/golang/glog/internal/stackdump/stackdump.go
4354@@ -0,0 +1,127 @@
4355+// Copyright 2023 Google Inc. All Rights Reserved.
4356+//
4357+// Licensed under the Apache License, Version 2.0 (the "License");
4358+// you may not use this file except in compliance with the License.
4359+// You may obtain a copy of the License at
4360+//
4361+// http://www.apache.org/licenses/LICENSE-2.0
4362+//
4363+// Unless required by applicable law or agreed to in writing, software
4364+// distributed under the License is distributed on an "AS IS" BASIS,
4365+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4366+// See the License for the specific language governing permissions and
4367+// limitations under the License.
4368+
4369+// Package stackdump provides wrappers for runtime.Stack and runtime.Callers
4370+// with uniform support for skipping caller frames.
4371+//
4372+// ⚠ Unlike the functions in the runtime package, these may allocate a
4373+// non-trivial quantity of memory: use them with care. ⚠
4374+package stackdump
4375+
4376+import (
4377+ "bytes"
4378+ "runtime"
4379+)
4380+
4381+// runtimeStackSelfFrames is 1 if runtime.Stack includes the call to
4382+// runtime.Stack itself or 0 if it does not.
4383+//
4384+// As of 2016-04-27, the gccgo compiler includes runtime.Stack but the gc
4385+// compiler does not.
4386+var runtimeStackSelfFrames = func() int {
4387+ for n := 1 << 10; n < 1<<20; n *= 2 {
4388+ buf := make([]byte, n)
4389+ n := runtime.Stack(buf, false)
4390+ if bytes.Contains(buf[:n], []byte("runtime.Stack")) {
4391+ return 1
4392+ } else if n < len(buf) || bytes.Count(buf, []byte("\n")) >= 3 {
4393+ return 0
4394+ }
4395+ }
4396+ return 0
4397+}()
4398+
4399+// Stack is a stack dump for a single goroutine.
4400+type Stack struct {
4401+ // Text is a representation of the stack dump in a human-readable format.
4402+ Text []byte
4403+
4404+ // PC is a representation of the stack dump using raw program counter values.
4405+ PC []uintptr
4406+}
4407+
4408+func (s Stack) String() string { return string(s.Text) }
4409+
4410+// Caller returns the Stack dump for the calling goroutine, starting skipDepth
4411+// frames before the caller of Caller. (Caller(0) provides a dump starting at
4412+// the caller of this function.)
4413+func Caller(skipDepth int) Stack {
4414+ return Stack{
4415+ Text: CallerText(skipDepth + 1),
4416+ PC: CallerPC(skipDepth + 1),
4417+ }
4418+}
4419+
4420+// CallerText returns a textual dump of the stack starting skipDepth frames before
4421+// the caller. (CallerText(0) provides a dump starting at the caller of this
4422+// function.)
4423+func CallerText(skipDepth int) []byte {
4424+ for n := 1 << 10; ; n *= 2 {
4425+ buf := make([]byte, n)
4426+ n := runtime.Stack(buf, false)
4427+ if n < len(buf) {
4428+ return pruneFrames(skipDepth+1+runtimeStackSelfFrames, buf[:n])
4429+ }
4430+ }
4431+}
4432+
4433+// CallerPC returns a dump of the program counters of the stack starting
4434+// skipDepth frames before the caller. (CallerPC(0) provides a dump starting at
4435+// the caller of this function.)
4436+func CallerPC(skipDepth int) []uintptr {
4437+ for n := 1 << 8; ; n *= 2 {
4438+ buf := make([]uintptr, n)
4439+ n := runtime.Callers(skipDepth+2, buf)
4440+ if n < len(buf) {
4441+ return buf[:n]
4442+ }
4443+ }
4444+}
4445+
4446+// pruneFrames removes the topmost skipDepth frames of the first goroutine in a
4447+// textual stack dump. It overwrites the passed-in slice.
4448+//
4449+// If there are fewer than skipDepth frames in the first goroutine's stack,
4450+// pruneFrames prunes it to an empty stack and leaves the remaining contents
4451+// intact.
4452+func pruneFrames(skipDepth int, stack []byte) []byte {
4453+ headerLen := 0
4454+ for i, c := range stack {
4455+ if c == '\n' {
4456+ headerLen = i + 1
4457+ break
4458+ }
4459+ }
4460+ if headerLen == 0 {
4461+ return stack // No header line - not a well-formed stack trace.
4462+ }
4463+
4464+ skipLen := headerLen
4465+ skipNewlines := skipDepth * 2
4466+ for ; skipLen < len(stack) && skipNewlines > 0; skipLen++ {
4467+ c := stack[skipLen]
4468+ if c != '\n' {
4469+ continue
4470+ }
4471+ skipNewlines--
4472+ skipLen++
4473+ if skipNewlines == 0 || skipLen == len(stack) || stack[skipLen] == '\n' {
4474+ break
4475+ }
4476+ }
4477+
4478+ pruned := stack[skipLen-headerLen:]
4479+ copy(pruned, stack[:headerLen])
4480+ return pruned
4481+}
4482diff --git a/debian/extra/vendor/github.com/golang/protobuf/jsonpb/decode.go b/debian/extra/vendor/github.com/golang/protobuf/jsonpb/decode.go
4483index 60e82ca..6c16c25 100644
4484--- a/debian/extra/vendor/github.com/golang/protobuf/jsonpb/decode.go
4485+++ b/debian/extra/vendor/github.com/golang/protobuf/jsonpb/decode.go
4486@@ -386,8 +386,14 @@ func (u *Unmarshaler) unmarshalMessage(m protoreflect.Message, in []byte) error
4487 }
4488
4489 func isSingularWellKnownValue(fd protoreflect.FieldDescriptor) bool {
4490+ if fd.Cardinality() == protoreflect.Repeated {
4491+ return false
4492+ }
4493 if md := fd.Message(); md != nil {
4494- return md.FullName() == "google.protobuf.Value" && fd.Cardinality() != protoreflect.Repeated
4495+ return md.FullName() == "google.protobuf.Value"
4496+ }
4497+ if ed := fd.Enum(); ed != nil {
4498+ return ed.FullName() == "google.protobuf.NullValue"
4499 }
4500 return false
4501 }
4502diff --git a/debian/extra/vendor/github.com/google/uuid/go.mod b/debian/extra/vendor/github.com/google/uuid/go.mod
4503deleted file mode 100644
4504index fc84cd7..0000000
4505--- a/debian/extra/vendor/github.com/google/uuid/go.mod
4506+++ /dev/null
4507@@ -1 +0,0 @@
4508-module github.com/google/uuid
4509diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json b/debian/extra/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json
4510index d88960b..1029563 100644
4511--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json
4512+++ b/debian/extra/vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json
4513@@ -1,3 +1,3 @@
4514 {
4515- "v2": "2.7.0"
4516+ "v2": "2.7.1"
4517 }
4518diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/CHANGES.md b/debian/extra/vendor/github.com/googleapis/gax-go/v2/CHANGES.md
4519index b75170f..41a7ca9 100644
4520--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/CHANGES.md
4521+++ b/debian/extra/vendor/github.com/googleapis/gax-go/v2/CHANGES.md
4522@@ -1,5 +1,12 @@
4523 # Changelog
4524
4525+## [2.7.1](https://github.com/googleapis/gax-go/compare/v2.7.0...v2.7.1) (2023-03-06)
4526+
4527+
4528+### Bug Fixes
4529+
4530+* **v2/apierror:** return Unknown GRPCStatus when err source is HTTP ([#260](https://github.com/googleapis/gax-go/issues/260)) ([043b734](https://github.com/googleapis/gax-go/commit/043b73437a240a91229207fb3ee52a9935a36f23)), refs [#254](https://github.com/googleapis/gax-go/issues/254)
4531+
4532 ## [2.7.0](https://github.com/googleapis/gax-go/compare/v2.6.0...v2.7.0) (2022-11-02)
4533
4534
4535diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go b/debian/extra/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go
4536index aa6be13..ed862c8 100644
4537--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go
4538+++ b/debian/extra/vendor/github.com/googleapis/gax-go/v2/apierror/apierror.go
4539@@ -39,6 +39,7 @@ import (
4540 jsonerror "github.com/googleapis/gax-go/v2/apierror/internal/proto"
4541 "google.golang.org/api/googleapi"
4542 "google.golang.org/genproto/googleapis/rpc/errdetails"
4543+ "google.golang.org/grpc/codes"
4544 "google.golang.org/grpc/status"
4545 "google.golang.org/protobuf/encoding/protojson"
4546 "google.golang.org/protobuf/proto"
4547@@ -197,12 +198,12 @@ func (a *APIError) Unwrap() error {
4548 // Error returns a readable representation of the APIError.
4549 func (a *APIError) Error() string {
4550 var msg string
4551- if a.status != nil {
4552- msg = a.err.Error()
4553- } else if a.httpErr != nil {
4554+ if a.httpErr != nil {
4555 // Truncate the googleapi.Error message because it dumps the Details in
4556 // an ugly way.
4557 msg = fmt.Sprintf("googleapi: Error %d: %s", a.httpErr.Code, a.httpErr.Message)
4558+ } else if a.status != nil {
4559+ msg = a.err.Error()
4560 }
4561 return strings.TrimSpace(fmt.Sprintf("%s\n%s", msg, a.details))
4562 }
4563@@ -236,6 +237,9 @@ func (a *APIError) Metadata() map[string]string {
4564 // setDetailsFromError parses a Status error or a googleapi.Error
4565 // and sets status and details or httpErr and details, respectively.
4566 // It returns false if neither Status nor googleapi.Error can be parsed.
4567+// When err is a googleapi.Error, the status of the returned error will
4568+// be set to an Unknown error, rather than nil, since a nil code is
4569+// interpreted as OK in the gRPC status package.
4570 func (a *APIError) setDetailsFromError(err error) bool {
4571 st, isStatus := status.FromError(err)
4572 var herr *googleapi.Error
4573@@ -248,6 +252,7 @@ func (a *APIError) setDetailsFromError(err error) bool {
4574 case isHTTPErr:
4575 a.httpErr = herr
4576 a.details = parseHTTPDetails(herr)
4577+ a.status = status.New(codes.Unknown, herr.Message)
4578 default:
4579 return false
4580 }
4581diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.mod b/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.mod
4582deleted file mode 100644
4583index d8d32df..0000000
4584--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.mod
4585+++ /dev/null
4586@@ -1,19 +0,0 @@
4587-module github.com/googleapis/gax-go/v2
4588-
4589-go 1.19
4590-
4591-require (
4592- github.com/google/go-cmp v0.5.9
4593- google.golang.org/api v0.102.0
4594- google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e
4595- google.golang.org/grpc v1.50.1
4596- google.golang.org/protobuf v1.28.1
4597-
4598-)
4599-
4600-require (
4601- github.com/golang/protobuf v1.5.2 // indirect
4602- golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect
4603- golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect
4604- golang.org/x/text v0.4.0 // indirect
4605-)
4606diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.sum b/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.sum
4607deleted file mode 100644
4608index 55104d0..0000000
4609--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/go.sum
4610+++ /dev/null
4611@@ -1,23 +0,0 @@
4612-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
4613-github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
4614-github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
4615-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4616-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
4617-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
4618-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU=
4619-golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
4620-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=
4621-golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4622-golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg=
4623-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
4624-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
4625-google.golang.org/api v0.102.0 h1:JxJl2qQ85fRMPNvlZY/enexbxpCjLwGhZUtgfGeQ51I=
4626-google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo=
4627-google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y=
4628-google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
4629-google.golang.org/grpc v1.50.1 h1:DS/BukOZWp8s6p4Dt/tOaJaTQyPyOoCcrjroHuCeLzY=
4630-google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
4631-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
4632-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
4633-google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
4634-google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
4635diff --git a/debian/extra/vendor/github.com/googleapis/gax-go/v2/internal/version.go b/debian/extra/vendor/github.com/googleapis/gax-go/v2/internal/version.go
4636index 0ba5da1..936873e 100644
4637--- a/debian/extra/vendor/github.com/googleapis/gax-go/v2/internal/version.go
4638+++ b/debian/extra/vendor/github.com/googleapis/gax-go/v2/internal/version.go
4639@@ -30,4 +30,4 @@
4640 package internal
4641
4642 // Version is the current tagged release of the library.
4643-const Version = "2.7.0"
4644+const Version = "2.7.1"
4645diff --git a/debian/extra/vendor/github.com/julienschmidt/httprouter/go.mod b/debian/extra/vendor/github.com/julienschmidt/httprouter/go.mod
4646deleted file mode 100644
4647index 26cc80e..0000000
4648--- a/debian/extra/vendor/github.com/julienschmidt/httprouter/go.mod
4649+++ /dev/null
4650@@ -1,3 +0,0 @@
4651-module github.com/julienschmidt/httprouter
4652-
4653-go 1.7
4654diff --git a/debian/extra/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod b/debian/extra/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod
4655deleted file mode 100644
4656index 716c613..0000000
4657--- a/debian/extra/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod
4658+++ /dev/null
4659@@ -1 +0,0 @@
4660-module github.com/konsorten/go-windows-terminal-sequences
4661diff --git a/debian/extra/vendor/github.com/sirupsen/logrus/go.mod b/debian/extra/vendor/github.com/sirupsen/logrus/go.mod
4662deleted file mode 100644
4663index d413296..0000000
4664--- a/debian/extra/vendor/github.com/sirupsen/logrus/go.mod
4665+++ /dev/null
4666@@ -1,11 +0,0 @@
4667-module github.com/sirupsen/logrus
4668-
4669-require (
4670- github.com/davecgh/go-spew v1.1.1 // indirect
4671- github.com/konsorten/go-windows-terminal-sequences v1.0.3
4672- github.com/pmezard/go-difflib v1.0.0 // indirect
4673- github.com/stretchr/testify v1.2.2
4674- golang.org/x/sys v0.0.0-20190422165155-953cdadca894
4675-)
4676-
4677-go 1.13
4678diff --git a/debian/extra/vendor/github.com/sirupsen/logrus/go.sum b/debian/extra/vendor/github.com/sirupsen/logrus/go.sum
4679deleted file mode 100644
4680index 49c690f..0000000
4681--- a/debian/extra/vendor/github.com/sirupsen/logrus/go.sum
4682+++ /dev/null
4683@@ -1,12 +0,0 @@
4684-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4685-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4686-github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk=
4687-github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
4688-github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
4689-github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
4690-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4691-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4692-github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
4693-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
4694-golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc=
4695-golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4696diff --git a/debian/extra/vendor/github.com/ulikunitz/xz/go.mod b/debian/extra/vendor/github.com/ulikunitz/xz/go.mod
4697deleted file mode 100644
4698index 330b675..0000000
4699--- a/debian/extra/vendor/github.com/ulikunitz/xz/go.mod
4700+++ /dev/null
4701@@ -1,3 +0,0 @@
4702-module github.com/ulikunitz/xz
4703-
4704-go 1.12
4705diff --git a/debian/extra/vendor/go.opencensus.io/go.mod b/debian/extra/vendor/go.opencensus.io/go.mod
4706deleted file mode 100644
4707index b01208d..0000000
4708--- a/debian/extra/vendor/go.opencensus.io/go.mod
4709+++ /dev/null
4710@@ -1,12 +0,0 @@
4711-module go.opencensus.io
4712-
4713-require (
4714- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
4715- github.com/golang/protobuf v1.4.3
4716- github.com/google/go-cmp v0.5.3
4717- github.com/stretchr/testify v1.8.1
4718- golang.org/x/net v0.0.0-20201110031124-69a78807bb2b
4719- google.golang.org/grpc v1.33.2
4720-)
4721-
4722-go 1.13
4723diff --git a/debian/extra/vendor/go.opencensus.io/go.sum b/debian/extra/vendor/go.opencensus.io/go.sum
4724deleted file mode 100644
4725index fa7f96d..0000000
4726--- a/debian/extra/vendor/go.opencensus.io/go.sum
4727+++ /dev/null
4728@@ -1,105 +0,0 @@
4729-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
4730-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
4731-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
4732-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
4733-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
4734-github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4735-github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
4736-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
4737-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
4738-github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
4739-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
4740-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
4741-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
4742-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
4743-github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
4744-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
4745-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
4746-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
4747-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
4748-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
4749-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
4750-github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
4751-github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
4752-github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
4753-github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM=
4754-github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
4755-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
4756-github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
4757-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
4758-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4759-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4760-github.com/google/go-cmp v0.5.3 h1:x95R7cp+rSeeqAMI2knLtQ0DKlaBhv2NrtrOvafPHRo=
4761-github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
4762-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
4763-github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4764-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4765-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
4766-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
4767-github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
4768-github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
4769-github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
4770-github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
4771-github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
4772-github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
4773-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
4774-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
4775-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
4776-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
4777-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
4778-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
4779-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
4780-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
4781-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
4782-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
4783-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
4784-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
4785-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
4786-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
4787-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
4788-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
4789-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
4790-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
4791-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
4792-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4793-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
4794-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
4795-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
4796-golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
4797-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
4798-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
4799-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
4800-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
4801-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
4802-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
4803-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
4804-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
4805-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
4806-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
4807-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
4808-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
4809-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
4810-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
4811-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
4812-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
4813-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
4814-google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
4815-google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o=
4816-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
4817-google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
4818-google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
4819-google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
4820-google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
4821-google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
4822-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
4823-google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
4824-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
4825-google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
4826-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
4827-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
4828-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4829-gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
4830-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
4831-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
4832-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
4833-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
4834diff --git a/debian/extra/vendor/golang.org/x/crypto/openpgp/packet/compressed.go b/debian/extra/vendor/golang.org/x/crypto/openpgp/packet/compressed.go
4835index e8f0b5c..353f945 100644
4836--- a/debian/extra/vendor/golang.org/x/crypto/openpgp/packet/compressed.go
4837+++ b/debian/extra/vendor/golang.org/x/crypto/openpgp/packet/compressed.go
4838@@ -60,7 +60,7 @@ func (c *Compressed) parse(r io.Reader) error {
4839 return err
4840 }
4841
4842-// compressedWriterCloser represents the serialized compression stream
4843+// compressedWriteCloser represents the serialized compression stream
4844 // header and the compressor. Its Close() method ensures that both the
4845 // compressor and serialized stream header are closed. Its Write()
4846 // method writes to the compressor.
4847diff --git a/debian/extra/vendor/golang.org/x/net/http2/Dockerfile b/debian/extra/vendor/golang.org/x/net/http2/Dockerfile
4848deleted file mode 100644
4849index 8512245..0000000
4850--- a/debian/extra/vendor/golang.org/x/net/http2/Dockerfile
4851+++ /dev/null
4852@@ -1,51 +0,0 @@
4853-#
4854-# This Dockerfile builds a recent curl with HTTP/2 client support, using
4855-# a recent nghttp2 build.
4856-#
4857-# See the Makefile for how to tag it. If Docker and that image is found, the
4858-# Go tests use this curl binary for integration tests.
4859-#
4860-
4861-FROM ubuntu:trusty
4862-
4863-RUN apt-get update && \
4864- apt-get upgrade -y && \
4865- apt-get install -y git-core build-essential wget
4866-
4867-RUN apt-get install -y --no-install-recommends \
4868- autotools-dev libtool pkg-config zlib1g-dev \
4869- libcunit1-dev libssl-dev libxml2-dev libevent-dev \
4870- automake autoconf
4871-
4872-# The list of packages nghttp2 recommends for h2load:
4873-RUN apt-get install -y --no-install-recommends make binutils \
4874- autoconf automake autotools-dev \
4875- libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \
4876- libev-dev libevent-dev libjansson-dev libjemalloc-dev \
4877- cython python3.4-dev python-setuptools
4878-
4879-# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached:
4880-ENV NGHTTP2_VER 895da9a
4881-RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git
4882-
4883-WORKDIR /root/nghttp2
4884-RUN git reset --hard $NGHTTP2_VER
4885-RUN autoreconf -i
4886-RUN automake
4887-RUN autoconf
4888-RUN ./configure
4889-RUN make
4890-RUN make install
4891-
4892-WORKDIR /root
4893-RUN wget https://curl.se/download/curl-7.45.0.tar.gz
4894-RUN tar -zxvf curl-7.45.0.tar.gz
4895-WORKDIR /root/curl-7.45.0
4896-RUN ./configure --with-ssl --with-nghttp2=/usr/local
4897-RUN make
4898-RUN make install
4899-RUN ldconfig
4900-
4901-CMD ["-h"]
4902-ENTRYPOINT ["/usr/local/bin/curl"]
4903-
4904diff --git a/debian/extra/vendor/golang.org/x/net/http2/Makefile b/debian/extra/vendor/golang.org/x/net/http2/Makefile
4905deleted file mode 100644
4906index 55fd826..0000000
4907--- a/debian/extra/vendor/golang.org/x/net/http2/Makefile
4908+++ /dev/null
4909@@ -1,3 +0,0 @@
4910-curlimage:
4911- docker build -t gohttp2/curl .
4912-
4913diff --git a/debian/extra/vendor/golang.org/x/net/http2/pipe.go b/debian/extra/vendor/golang.org/x/net/http2/pipe.go
4914index c15b8a7..684d984 100644
4915--- a/debian/extra/vendor/golang.org/x/net/http2/pipe.go
4916+++ b/debian/extra/vendor/golang.org/x/net/http2/pipe.go
4917@@ -88,13 +88,9 @@ func (p *pipe) Write(d []byte) (n int, err error) {
4918 p.c.L = &p.mu
4919 }
4920 defer p.c.Signal()
4921- if p.err != nil {
4922+ if p.err != nil || p.breakErr != nil {
4923 return 0, errClosedPipeWrite
4924 }
4925- if p.breakErr != nil {
4926- p.unread += len(d)
4927- return len(d), nil // discard when there is no reader
4928- }
4929 return p.b.Write(d)
4930 }
4931
4932diff --git a/debian/extra/vendor/golang.org/x/net/http2/server.go b/debian/extra/vendor/golang.org/x/net/http2/server.go
4933index 8cb14f3..02c88b6 100644
4934--- a/debian/extra/vendor/golang.org/x/net/http2/server.go
4935+++ b/debian/extra/vendor/golang.org/x/net/http2/server.go
4936@@ -441,7 +441,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) {
4937 if s.NewWriteScheduler != nil {
4938 sc.writeSched = s.NewWriteScheduler()
4939 } else {
4940- sc.writeSched = NewPriorityWriteScheduler(nil)
4941+ sc.writeSched = newRoundRobinWriteScheduler()
4942 }
4943
4944 // These start at the RFC-specified defaults. If there is a higher
4945@@ -581,9 +581,11 @@ type serverConn struct {
4946 advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client
4947 curClientStreams uint32 // number of open streams initiated by the client
4948 curPushedStreams uint32 // number of open streams initiated by server push
4949+ curHandlers uint32 // number of running handler goroutines
4950 maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests
4951 maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes
4952 streams map[uint32]*stream
4953+ unstartedHandlers []unstartedHandler
4954 initialStreamSendWindowSize int32
4955 maxFrameSize int32
4956 peerMaxHeaderListSize uint32 // zero means unknown (default)
4957@@ -981,6 +983,8 @@ func (sc *serverConn) serve() {
4958 return
4959 case gracefulShutdownMsg:
4960 sc.startGracefulShutdownInternal()
4961+ case handlerDoneMsg:
4962+ sc.handlerDone()
4963 default:
4964 panic("unknown timer")
4965 }
4966@@ -1012,14 +1016,6 @@ func (sc *serverConn) serve() {
4967 }
4968 }
4969
4970-func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) {
4971- select {
4972- case <-sc.doneServing:
4973- case <-sharedCh:
4974- close(privateCh)
4975- }
4976-}
4977-
4978 type serverMessage int
4979
4980 // Message values sent to serveMsgCh.
4981@@ -1028,6 +1024,7 @@ var (
4982 idleTimerMsg = new(serverMessage)
4983 shutdownTimerMsg = new(serverMessage)
4984 gracefulShutdownMsg = new(serverMessage)
4985+ handlerDoneMsg = new(serverMessage)
4986 )
4987
4988 func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) }
4989@@ -1822,15 +1819,18 @@ func (sc *serverConn) processData(f *DataFrame) error {
4990 }
4991
4992 if len(data) > 0 {
4993+ st.bodyBytes += int64(len(data))
4994 wrote, err := st.body.Write(data)
4995 if err != nil {
4996+ // The handler has closed the request body.
4997+ // Return the connection-level flow control for the discarded data,
4998+ // but not the stream-level flow control.
4999 sc.sendWindowUpdate(nil, int(f.Length)-wrote)
5000- return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed))
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches