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

Proposed by Chloé Smith
Status: Merged
Merge reported by: Utkarsh Gupta
Merged at revision: 85f692fbfcb97e341ea28ff7015f895bae1ad6bf
Proposed branch: ~kajiya/+git/google-osconfig-agent:jammy-update-to-20240320.00
Merge into: ~ubuntu-core-dev/+git/google-osconfig-agent:ubuntu/jammy
Diff against target: 58999 lines (+28768/-9806)
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 (+31/-3)
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
Ubuntu Core Development Team Pending
Review via email: mp+465599@code.launchpad.net

Commit message

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

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

OK, had to rebase this on the security upload. So cherry-picked the commits and sponsored the upload. Marking this as "merged" manually.

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

Subscribers

People subscribed via source and target branches