From 4f12db870410c9773f9a01051cc1d4ae7d34c732 Mon Sep 17 00:00:00 2001 From: Pantani Date: Thu, 4 Apr 2024 23:47:53 +0200 Subject: [PATCH] gex full refactor --- .github/CODEOWNERS | 9 + .github/codecov.yml | 33 + .github/dependabot.yml | 24 + .github/workflows/auto-author-assign.yml | 18 + .github/workflows/cl-enforcer.yml | 19 + .github/workflows/go-formatting.yml | 29 + .github/workflows/janitor.yml | 16 + .github/workflows/release-binary.yml | 38 + .github/workflows/release-docker.yml | 73 + .github/workflows/release-nightly.yml | 85 ++ .github/workflows/stats.yaml | 17 + .github/workflows/test-integration.yml | 42 + .github/workflows/test-lint.yml | 44 + .github/workflows/test-semantic.yml | 16 + .github/workflows/test.yml | 52 + .gitignore | 10 +- .golangci.yml | 63 + .goreleaser.yml | 11 + CODE_OF_CONDUCT.md | 153 +- CONTRIBUTING.md | 24 +- Dockerfile | 43 + Makefile | 77 + changelog.md | 12 + cmd/explorer.go | 34 + cmd/root.go | 50 + cmd/version.go | 19 + go.mod | 318 +++- go.sum | 1722 ++++++++++++++++++++-- integration/gex_test.go | 104 ++ internal/tools/tools.go | 11 + main.go | 832 +---------- pkg/client/client.go | 180 +++ pkg/number/number.go | 46 + pkg/number/number_test.go | 48 + pkg/widget/view.go | 146 ++ pkg/widget/widget.go | 196 +++ pkg/widget/write.go | 105 ++ pkg/xurl/xurl.go | 73 + pkg/xurl/xurl_test.go | 192 +++ readme.md | 56 +- screenshot.png | Bin 94544 -> 340841 bytes services/explorer/explorer.go | 201 +++ version/version.go | 164 +++ websocket.go | 60 - 44 files changed, 4317 insertions(+), 1148 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/codecov.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/auto-author-assign.yml create mode 100644 .github/workflows/cl-enforcer.yml create mode 100644 .github/workflows/go-formatting.yml create mode 100644 .github/workflows/janitor.yml create mode 100644 .github/workflows/release-binary.yml create mode 100644 .github/workflows/release-docker.yml create mode 100644 .github/workflows/release-nightly.yml create mode 100644 .github/workflows/stats.yaml create mode 100644 .github/workflows/test-integration.yml create mode 100644 .github/workflows/test-lint.yml create mode 100644 .github/workflows/test-semantic.yml create mode 100644 .github/workflows/test.yml create mode 100644 .golangci.yml create mode 100644 .goreleaser.yml create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 changelog.md create mode 100644 cmd/explorer.go create mode 100644 cmd/root.go create mode 100644 cmd/version.go create mode 100644 integration/gex_test.go create mode 100644 internal/tools/tools.go create mode 100644 pkg/client/client.go create mode 100644 pkg/number/number.go create mode 100644 pkg/number/number_test.go create mode 100644 pkg/widget/view.go create mode 100644 pkg/widget/widget.go create mode 100644 pkg/widget/write.go create mode 100644 pkg/xurl/xurl.go create mode 100644 pkg/xurl/xurl_test.go create mode 100644 services/explorer/explorer.go create mode 100644 version/version.go delete mode 100644 websocket.go diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..cf65d62 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +# CODEOWNERS: https://help.github.com/articles/about-codeowners/ + +# Primary repo maintainers +* @ilgooz @jeronimoalbi @Pantani @julienrbrt + +# Docs +*.md @salmad3 @toschdev @ilgooz +docs/* @salmad3 @toschdev @ilgooz +changelog.md @ilgooz @salmad3 @toschdev @jeronimoalbi @Pantani @julienrbrt diff --git a/.github/codecov.yml b/.github/codecov.yml new file mode 100644 index 0000000..ee59977 --- /dev/null +++ b/.github/codecov.yml @@ -0,0 +1,33 @@ +coverage: + precision: 2 + round: down + range: 70...100 + status: + project: + default: + target: auto + threshold: 10% + informational: true + patch: + default: + informational: true + +comment: + layout: "reach, diff, files" + behavior: default + require_changes: true + +codecov: + notify: + wait_for_ci: false + +ignore: + - "*.pb.go" + - "*.pb.gw.go" + - "*.md" + - "*.ts" + - "actions/" + - "assets/" + - "docs/" + - "integration/" + - "scripts/" diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5e17308 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,24 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "gomod" + directory: "/" # Location of package manifests + schedule: + interval: "daily" + time: "10:00" + labels: + - "dependencies" + - "component:go" + - "skip-changelog" + open-pull-requests-limit: 0 + + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + time: "10:00" + open-pull-requests-limit: 0 diff --git a/.github/workflows/auto-author-assign.yml b/.github/workflows/auto-author-assign.yml new file mode 100644 index 0000000..8902a12 --- /dev/null +++ b/.github/workflows/auto-author-assign.yml @@ -0,0 +1,18 @@ +name: auto-author-assign + +on: + pull_request_target: + types: [ opened, reopened ] + +permissions: + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + assign-author: + runs-on: ubuntu-latest + steps: + - uses: toshimaru/auto-author-assign@v1.6.2 diff --git a/.github/workflows/cl-enforcer.yml b/.github/workflows/cl-enforcer.yml new file mode 100644 index 0000000..28117e6 --- /dev/null +++ b/.github/workflows/cl-enforcer.yml @@ -0,0 +1,19 @@ +name: Changelog Enforcer +on: + pull_request: + # The specific activity types are listed here to include "labeled" and "unlabeled" + # (which are not included by default for the "pull_request" trigger). + # This is needed to allow skipping enforcement of the changelog in PRs with specific labels, + # as defined in the (optional) "skipLabels" property. + types: [ opened, synchronize, reopened, ready_for_review, labeled, unlabeled ] + +jobs: + changelog: + runs-on: ubuntu-latest + steps: + - uses: dangoslen/changelog-enforcer@v3 + with: + changeLogPath: 'changelog.md' + missingUpdateErrorMessage: 'Please add an entry to the changelog.md file or add the "skip-changelog" label' + skipLabels: 'skip-changelog' + versionPattern: '' diff --git a/.github/workflows/go-formatting.yml b/.github/workflows/go-formatting.yml new file mode 100644 index 0000000..edce8de --- /dev/null +++ b/.github/workflows/go-formatting.yml @@ -0,0 +1,29 @@ +name: Go formatting +on: + push: + branches: [ main ] + paths: + - '**.go' + +jobs: + go-formatting: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: '1.21' + + - name: Run make format + run: make format + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v3 + with: + title: "chore: go formatting" + commit-message: "chore: go formatting" + body: "" + branch: chore/go-formatting diff --git a/.github/workflows/janitor.yml b/.github/workflows/janitor.yml new file mode 100644 index 0000000..ecc2e48 --- /dev/null +++ b/.github/workflows/janitor.yml @@ -0,0 +1,16 @@ +name: Janitor +# Janitor cleans up previous runs that are not completed for a given workflow +# It cancels Sims and Tests +# Reference the API https://api.github.com/repos/:org/:repo/actions/workflows to find workflow ids +on: + pull_request: + +jobs: + cancel: + name: "Cancel Previous Runs" + runs-on: ubuntu-latest + timeout-minutes: 3 + steps: + - uses: styfle/cancel-workflow-action@0.11.0 + with: + access_token: ${{ github.token }} diff --git a/.github/workflows/release-binary.yml b/.github/workflows/release-binary.yml new file mode 100644 index 0000000..6be16ce --- /dev/null +++ b/.github/workflows/release-binary.yml @@ -0,0 +1,38 @@ +name: Release Binaries + +on: + release: + types: [ published ] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + binary: + runs-on: ubuntu-latest + env: + working-directory: go/src/github.com/ignite/gex + + steps: + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + cache: true + cache-dependency-path: go.sum + + - name: Checkout + uses: actions/checkout@v4 + with: + path: ${{ env.working-directory }} + fetch-depth: 0 + + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + workdir: ${{ env.working-directory }} + version: 1.13.0 + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release-docker.yml b/.github/workflows/release-docker.yml new file mode 100644 index 0000000..455eef5 --- /dev/null +++ b/.github/workflows/release-docker.yml @@ -0,0 +1,73 @@ +name: Release Docker Image + +on: + release: + types: [ published ] + schedule: + - cron: "0 0 * * *" # every day at midnight + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + consecutiveness: + runs-on: ubuntu-latest + steps: + - uses: ignite/consecutive-workflow-action@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + + check-latest-run: + runs-on: "ubuntu-latest" + steps: + - uses: octokit/request-action@v2.x + id: check_last_run + with: + route: GET /repos/${{github.repository}}/actions/workflows/release-docker.yml/runs?per_page=1&status=completed + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + outputs: + last_sha: ${{ fromJson(steps.check_last_run.outputs.data).workflow_runs[0].head_sha }} + + docker: + name: Push Docker image to Docker Hub + if: needs.check-latest-run.outputs.last_sha != github.sha + runs-on: ubuntu-latest + needs: [ consecutiveness, check-latest-run ] + + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ignitehq/gex + # push to ignitehq/gex:latest on every push to master + # push to ignitehq/gex:vx.x.x on every release published + tags: | + type=raw,value=latest + type=semver,pattern=v{{version}} + + - name: Build and push + uses: docker/build-push-action@v5 + with: + push: true + context: . + platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/release-nightly.yml b/.github/workflows/release-nightly.yml new file mode 100644 index 0000000..2cd89e0 --- /dev/null +++ b/.github/workflows/release-nightly.yml @@ -0,0 +1,85 @@ +name: Release nightly + +on: + schedule: + - cron: "0 0 * * *" # every day at midnight + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + consecutiveness: + runs-on: ubuntu-latest + steps: + - uses: ignite/consecutive-workflow-action@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + + check-latest-run: + runs-on: "ubuntu-latest" + steps: + - uses: octokit/request-action@v2.x + id: check_last_run + with: + route: GET /repos/${{github.repository}}/actions/workflows/release-nightly.yml/runs?per_page=1&status=completed + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + outputs: + last_sha: ${{ fromJson(steps.check_last_run.outputs.data).workflow_runs[0].head_sha }} + + release-nightly: + if: needs.check-latest-run.outputs.last_sha != github.sha + runs-on: ubuntu-latest + needs: [ consecutiveness, check-latest-run ] + env: + working-directory: go/src/github.com/ignite/gex + + steps: + - uses: actions/checkout@v4 + + - name: Delete the nightly release + uses: dev-drprasad/delete-tag-and-release@v0.2.1 + with: + tag_name: nightly + delete_release: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Push new nightly tag + uses: mathieudutour/github-tag-action@v6.0 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + custom_tag: nightly + tag_prefix: "" + + - name: Create the new nightly release + uses: ncipollo/release-action@v1 + with: + tag: nightly + name: nightly + prerelease: true + + releases-binaries: + if: needs.check-latest-run.outputs.last_sha != github.sha + name: Release Go Binary + needs: [ consecutiveness, check-latest-run ] + runs-on: ubuntu-latest + strategy: + matrix: + goos: [ linux, darwin ] + goarch: [ amd64, arm64 ] + steps: + - uses: actions/checkout@v4 + - uses: wangyoucao577/go-release-action@v1.43 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + project_path: "." + binary_name: "gex" + asset_name: gex-nightly-${{ matrix.goos }}-${{ matrix.goarch }} + release_name: "nightly" + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + ldflags: -s -w -X github.com/ignite/gex/version.Version=nightly + retry: 10 diff --git a/.github/workflows/stats.yaml b/.github/workflows/stats.yaml new file mode 100644 index 0000000..226d59f --- /dev/null +++ b/.github/workflows/stats.yaml @@ -0,0 +1,17 @@ +on: + schedule: + # Run this once per day, towards the end of the day for keeping the most + # recent data point most meaningful (hours are interpreted in UTC). + - cron: "0 23 * * *" + workflow_dispatch: # Allow for running this manually. + +jobs: + j1: + name: Gex Repository Statistics + runs-on: ubuntu-latest + steps: + - name: run-ghrs + uses: jgehrcke/github-repo-stats@v1.4.2 + with: + ghtoken: ${{ secrets.ghrs_github_api_token }} + diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml new file mode 100644 index 0000000..0fdbd3c --- /dev/null +++ b/.github/workflows/test-integration.yml @@ -0,0 +1,42 @@ +name: Integration + +on: + pull_request: + push: + paths-ignore: + - '**.md' + branches: + - main + - release/* + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + steps: + - uses: actions/checkout@v4 + - uses: technote-space/get-diff-action@v6.1.2 + with: + PATTERNS: | + **/*.go + **/*.plush + go.mod + go.sum + **/testdata/** + + - uses: actions/setup-go@v5 + if: env.GIT_DIFF + with: + go-version: "1.22" + cache: true + cache-dependency-path: go.sum + + - name: Run integration + run: go test -race -failfast -v -timeout 120m ./integration/... + if: env.GIT_DIFF diff --git a/.github/workflows/test-lint.yml b/.github/workflows/test-lint.yml new file mode 100644 index 0000000..54ab9c1 --- /dev/null +++ b/.github/workflows/test-lint.yml @@ -0,0 +1,44 @@ +name: Lint + +on: + pull_request: + push: + paths-ignore: + - '**.md' + branches: + - main + - release/* + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + lint: + name: Lint Go code + runs-on: ubuntu-latest + timeout-minutes: 6 + steps: + - uses: actions/checkout@v4 + - uses: technote-space/get-diff-action@v6.1.2 + with: + PATTERNS: | + **/*.go + **/*.plush + go.mod + go.sum + + - uses: actions/setup-go@v5 + if: env.GIT_DIFF + with: + go-version-file: go.mod + cache: true + cache-dependency-path: go.sum + + - uses: golangci/golangci-lint-action@v4 + if: env.GIT_DIFF + with: + version: v1.54.2 + install-mode: goinstall + args: --timeout 10m + github-token: ${{ secrets.github_token }} diff --git a/.github/workflows/test-semantic.yml b/.github/workflows/test-semantic.yml new file mode 100644 index 0000000..d41d864 --- /dev/null +++ b/.github/workflows/test-semantic.yml @@ -0,0 +1,16 @@ +name: Semantic PR + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + semantic_pr: + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..ddd0d97 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,52 @@ +name: Test + +on: + pull_request: + push: + paths-ignore: + - '**.md' + branches: + - main + - release/* + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ ubuntu-latest, macos-latest ] + steps: + - uses: actions/checkout@v4 + - uses: technote-space/get-diff-action@v6.1.2 + with: + PATTERNS: | + **/*.go + **/*.plush + go.mod + go.sum + **/testdata/** + + - uses: actions/setup-go@v5 + if: env.GIT_DIFF + with: + go-version: "1.22" + cache: true + cache-dependency-path: go.sum + + - name: Run tests + run: go test -race -failfast -v -timeout 10m -coverprofile=coverage.txt -covermode=atomic -coverpkg=./... $(go list github.com/ignite/gex/... | grep -v integration) + if: env.GIT_DIFF + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + if: env.GIT_DIFF + with: + token: ${{ secrets.CODECOV_TOKEN }} + file: ./coverage.txt + slug: Pantani/gex + fail_ci_if_error: true + verbose: true diff --git a/.gitignore b/.gitignore index b7ff13a..f870c51 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ -.DS_STORE \ No newline at end of file +.DS_STORE +**/testdata/**/go.sum +dist/ +node_modules +.DS_Store +.idea +.vscode +build/ +*coverage.* diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..0a12431 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,63 @@ +run: + tests: false + +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + exclude-dirs: + - ignite/ui + +linters: + disable-all: true + enable: + - bodyclose + - decorder + - depguard + - dogsled + - dupword + # - errcheck + - errchkjson + - errorlint + - exhaustive + - goconst + - gocritic + - godot + - gofumpt + - revive + # - gosec + - gosimple + - govet + - grouper + - ineffassign + # - interfacer + - misspell + - nakedret + - nolintlint + - exportloopref + - staticcheck + - reassign + - stylecheck + - typecheck + - unconvert + - tenv + - thelper + - unused + - unparam + - misspell + - forbidigo + # - wrapcheck + # - wsl + +linters-settings: + forbidigo: + forbid: + - p: ^fmt\.Errorf$ + msg: fmt.Errorf should be replaced by '"github.com/ignite/cli/ignite/pkg/errors"' + depguard: + rules: + main: + deny: + - pkg: "errors" + desc: Should be replaced by '"github.com/ignite/cli/ignite/pkg/errors"' + - pkg: "github.com/pkg/errors" + desc: Should be replaced by '"github.com/ignite/cli/ignite/pkg/errors"' diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..b9feb8a --- /dev/null +++ b/.goreleaser.yml @@ -0,0 +1,11 @@ +project_name: gex +builds: + - main: . + ldflags: + - -s -w -X github.com/ignite/gex/version.Version={{.Tag}} + goos: + - linux + - darwin + goarch: + - amd64 + - arm64 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 28fd6df..3b27ba2 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,76 +1,125 @@ # Contributor Covenant Code of Conduct -## Our Pledge +## Our pledge -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. -## Our Standards +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. -Examples of behavior that contributes to creating a positive environment -include: +## Our standards -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +Examples of behavior that contributes to a positive environment for our +community include: -Examples of unacceptable behavior by participants include: +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks * Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct that could reasonably be considered inappropriate in a + professional setting -## Our Responsibilities +## Enforcement responsibilities -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. ## Scope -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting by using an official social media account, or acting as an appointed +representative at an online or offline event. ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at tobias@tendermint.com. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. +Report instances of abusive, harassing, or otherwise unacceptable behavior to the community leaders responsible for +enforcement at +. + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement guidelines + +Community leaders will follow these community impact guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This restriction +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary ban + +**Community impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent ban + +**Community impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. +**Consequence**: A permanent ban from any sort of public interaction within +the community. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html +This Code of Conduct is adapted from +the [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html). -[homepage]: https://www.contributor-covenant.org +Community impact guidelines are inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). -For answers to common questions about this code of conduct, see -https://www.contributor-covenant.org/faq +See the [FAQ](https://www.contributor-covenant.org/faq) for answers to common questions about this code of +conduct. [Translations](https://www.contributor-covenant.org/translations) are also available. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 459f361..ec0626a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Cosmos SDK Tutorials Repo +# Cosmos SDK Tutorials repo -This repo contains the code for the GEX in-terminal explorer. +This repo contains the code for the `gex` in-terminal explorer. ## Contributing @@ -11,27 +11,19 @@ Thank you for helping us to create and maintain awesome software. ## Install the Latest Version of GEX -The GEX installation requires [Go](https://golang.org/dl). If you don't already have Go installed, download the binary release that is suitable for your system and follow the installation instructions. +To install the latest version from GitHub, execute the following command in your terminal: -To install the latest version of GEX from GitHub, run the following command in a terminal window: +`go get -u github.com/ignite/gex` -`go get -u github.com/cosmos/gex` - -To launch the GEX block explorer in the terminal window, type: +Then run the code with executing gex in the terminal: `gex` -## GEX Code Structure - -The GEX code resides in the `main.go` file. +## Code structure -### Websocket - -An example how-to-connect-with-websocket file is provided in `websocket.go`. This example shows how to create the websocket connection to the Cosmos SDK. +Currently the code resides in the `main.go` file. Additionally, there is an example how-to-connect-with-websocket file in `websocket.go`, which shows how the websocket connection is created to Cosmos SDK. Websocket takes care of the blocks, transactions and validators feed. A combination of the websocket and API requests are used in order to also feature connected peers or the version of Cosmos SDK currently running. -### UI Framework - -The UI framework for the terminal is Termdash. To see what is possible with Termdash, see [Termdash](https://github.com/mum4k/termdash) on GitHub. Learn how to work with Termdash and see the available charting styles and paginations. +The UI framework used for the terminal is [Termdash](https://github.com/mum4k/termdash). Visit the GitHub page to get inspiration on what is possible to do with Termdash, how to work with it, or which charting styles and paginations are available. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1f9d63e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# syntax = docker/dockerfile:1.2 +# WARNING! Use `DOCKER_BUILDKIT=1` with `docker build` to enable --mount feature. + +## prep the base image. +# +FROM golang:1.21.5 as base + +RUN apt update && \ + apt-get install -y \ + build-essential \ + ca-certificates \ + curl + +# enable faster module downloading. +ENV GOPROXY https://proxy.golang.org + +## builder stage. +# +FROM base as builder + +WORKDIR / + +# cache dependencies. +COPY ./go.mod . +COPY ./go.sum . +RUN go mod download + +COPY . . + +RUN --mount=type=cache,target=/root/.cache/go-build go install -v . + +## prep the final image. +# +FROM base + +RUN useradd -ms /bin/bash tendermint +USER tendermint + +COPY --from=builder /go/bin/gex /usr/bin + +WORKDIR /apps + +ENTRYPOINT ["gex"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ba35a15 --- /dev/null +++ b/Makefile @@ -0,0 +1,77 @@ +#! /usr/bin/make -f + +# Project variables. +PROJECT_NAME = gex +DATE := $(shell date '+%Y-%m-%dT%H:%M:%S') +HEAD = $(shell git rev-parse HEAD) +LD_FLAGS = +BUILD_FLAGS = -mod=readonly -ldflags='$(LD_FLAGS)' +BUILD_FOLDER = ./dist + +## install: Install de binary. +install: + @echo Installing Gex... + @go install $(BUILD_FLAGS) ./... + @gex version + +## build: Build the binary. +build: + @echo Building Gex... + @-mkdir -p $(BUILD_FOLDER) 2> /dev/null + @go build $(BUILD_FLAGS) -o $(BUILD_FOLDER) ./... + +## clean: Clean build files. Also runs `go clean` internally. +clean: + @echo Cleaning build cache... + @-rm -rf $(BUILD_FOLDER) 2> /dev/null + @go clean ./... + +.PHONY: install build clean + +## govet: Run go vet. +govet: + @echo Running go vet... + @go vet ./... + +## govulncheck: Run govulncheck +govulncheck: + @echo Running govulncheck... + @go run golang.org/x/vuln/cmd/govulncheck ./... + +## format: Install and run goimports and gofumpt +format: + @echo Formatting... + @go run mvdan.cc/gofumpt -w . + @go run golang.org/x/tools/cmd/goimports -w -local github.com/ignite/gex . + +## lint: Run Golang CI Lint. +lint: + @echo Running golangci-lint... + @go run github.com/golangci/golangci-lint/cmd/golangci-lint run --out-format=tab --issues-exit-code=0 + +lint-fix: + @echo Running golangci-lint... + @go run github.com/golangci/golangci-lint/cmd/golangci-lint run --fix --out-format=tab --issues-exit-code=0 + +.PHONY: govet format lint + +## test-unit: Run the unit tests. +test-unit: + @echo Running unit tests... + @go test -race -failfast -v ./... + +## test: Run unit and tests. +test: govet govulncheck test-unit + +.PHONY: test-unit test + +help: Makefile + @echo + @echo " Choose a command run in "$(PROJECT_NAME)", or just run 'make' for install" + @echo + @sed -n 's/^##//p' $< | column -t -s ':' | sed -e 's/^/ /' + @echo + +.PHONY: help + +.DEFAULT_GOAL := install diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..eac1127 --- /dev/null +++ b/changelog.md @@ -0,0 +1,12 @@ +# Changelog + +## Unreleased + +### Features + +- [#1](https://github.com/ignite/gex/pull/1) Full refactor + +### Changes + +### Fixes + diff --git a/cmd/explorer.go b/cmd/explorer.go new file mode 100644 index 0000000..489617c --- /dev/null +++ b/cmd/explorer.go @@ -0,0 +1,34 @@ +package cmd + +import ( + "github.com/spf13/cobra" + + "github.com/ignite/gex/pkg/xurl" + "github.com/ignite/gex/services/explorer" +) + +const defaultHost = "http://localhost:26657" + +// NewExplorer creates a new explorer command. +func NewExplorer() *cobra.Command { + cmd := &cobra.Command{ + Use: "explorer [host]", + Short: "Gex is a cosmos explorer for terminals", + Long: "Gex is a tool for generate block explorer for blockchains built with Cosmos SDK.", Args: cobra.MaximumNArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + host := defaultHost + if len(args) > 0 && args[0] != "" { + host = args[0] + } + + hostURL, err := xurl.Parse(host) + if err != nil { + return err + } + + return explorer.Run(cmd.Context(), hostURL.String()) + }, + } + + return cmd +} diff --git a/cmd/root.go b/cmd/root.go new file mode 100644 index 0000000..fec2aab --- /dev/null +++ b/cmd/root.go @@ -0,0 +1,50 @@ +package cmd + +import ( + "context" + "fmt" + "time" + + "github.com/spf13/cobra" + + "github.com/ignite/gex/version" +) + +const checkVersionTimeout = time.Millisecond * 600 + +// NewRootCmd creates a new root command for `Gex` with its sub commands. +// Returns the cobra.Command, a cleanup function and an error. The cleanup +// function must be invoked by the caller to clean eventual Ignite App instances. +func NewRootCmd() *cobra.Command { + c := &cobra.Command{ + Use: "gex", + SilenceUsage: true, + SilenceErrors: true, + PersistentPreRunE: func(cmd *cobra.Command, _ []string) error { + if cmd.Use != "completion" && cmd.Use != "explorer" { + checkNewVersion(cmd.Context()) + } + + return nil + }, + } + + c.AddCommand( + NewExplorer(), + NewVersion(), + ) + + return c +} + +func checkNewVersion(ctx context.Context) { + ctx, cancel := context.WithTimeout(ctx, checkVersionTimeout) + defer cancel() + + isAvailable, next, err := version.CheckNext(ctx) + if err != nil || !isAvailable { + return + } + + fmt.Printf("⬆️ Gex %[1]v is available! To upgrade: https://github.com/ignite/gex/releases/%[1]v", next) +} diff --git a/cmd/version.go b/cmd/version.go new file mode 100644 index 0000000..f6f0e8a --- /dev/null +++ b/cmd/version.go @@ -0,0 +1,19 @@ +package cmd + +import ( + "github.com/spf13/cobra" + + "github.com/ignite/gex/version" +) + +// NewVersion creates a new version command to show the Gex version. +func NewVersion() *cobra.Command { + c := &cobra.Command{ + Use: "version", + Short: "Print the current build information", + Run: func(cmd *cobra.Command, _ []string) { + cmd.Println(version.Long(cmd.Context())) + }, + } + return c +} diff --git a/go.mod b/go.mod index 6d37bb1..f044e0d 100644 --- a/go.mod +++ b/go.mod @@ -1,19 +1,307 @@ -module github.com/cosmos/gex +module github.com/ignite/gex -go 1.16 +go 1.21.1 + +toolchain go1.22.1 + +require ( + github.com/blang/semver/v4 v4.0.0 + github.com/cometbft/cometbft v0.38.6 + github.com/golangci/golangci-lint v1.57.1 + github.com/google/go-github/v48 v48.2.0 + github.com/ignite/cli/v28 v28.3.0 + github.com/mum4k/termdash v0.20.0 + github.com/spf13/cobra v1.8.0 + github.com/stretchr/testify v1.9.0 + golang.org/x/sync v0.6.0 + golang.org/x/tools v0.19.0 + golang.org/x/vuln v1.0.4 + mvdan.cc/gofumpt v0.6.0 +) require ( - github.com/DATA-DOG/go-sqlmock v1.3.3 // indirect - github.com/gdamore/tcell v1.4.0 // indirect - github.com/go-openapi/strfmt v0.20.1 // indirect - github.com/google/uuid v1.2.0 - github.com/gorilla/websocket v1.4.2 - github.com/jedib0t/go-pretty v4.3.0+incompatible - github.com/mum4k/termdash v0.16.0 - github.com/ozgur-soft/google-analytics v0.0.0-20210204020807-2d2daaf3239f - github.com/sacOO7/go-logger v0.0.0-20180719173527-9ac9add5a50d // indirect - github.com/sacOO7/gowebsocket v0.0.0-20210515122958-9396f1a71e23 - github.com/stretchr/objx v0.3.0 // indirect - github.com/tidwall/gjson v1.8.0 - gopkg.in/resty.v1 v1.12.0 + 4d63.com/gocheckcompilerdirectives v1.2.1 // indirect + 4d63.com/gochecknoglobals v0.2.1 // indirect + cosmossdk.io/api v0.7.3 // indirect + cosmossdk.io/collections v0.4.0 // indirect + cosmossdk.io/core v0.11.0 // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/errors v1.0.1 // indirect + cosmossdk.io/log v1.3.1 // indirect + cosmossdk.io/math v1.3.0 // indirect + cosmossdk.io/store v1.0.2 // indirect + cosmossdk.io/x/tx v0.13.1 // indirect + filippo.io/edwards25519 v1.0.0 // indirect + github.com/4meepo/tagalign v1.3.3 // indirect + github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect + github.com/99designs/keyring v1.2.2 // indirect + github.com/Abirdcfly/dupword v0.0.14 // indirect + github.com/Antonboom/errname v0.1.12 // indirect + github.com/Antonboom/nilnil v0.1.7 // indirect + github.com/Antonboom/testifylint v1.2.0 // indirect + github.com/BurntSushi/toml v1.3.2 // indirect + github.com/DataDog/datadog-go v3.2.0+incompatible // indirect + github.com/DataDog/zstd v1.5.5 // indirect + github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 // indirect + github.com/Masterminds/semver v1.5.0 // indirect + github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect + github.com/alecthomas/go-check-sumtype v0.1.4 // indirect + github.com/alexkohler/nakedret/v2 v2.0.4 // indirect + github.com/alexkohler/prealloc v1.0.0 // indirect + github.com/alingse/asasalint v0.0.11 // indirect + github.com/ashanbrown/forbidigo v1.6.0 // indirect + github.com/ashanbrown/makezero v1.1.1 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect + github.com/bkielbasa/cyclop v1.2.1 // indirect + github.com/blizzy78/varnamelen v0.8.0 // indirect + github.com/bombsimon/wsl/v4 v4.2.1 // indirect + github.com/breml/bidichk v0.2.7 // indirect + github.com/breml/errchkjson v0.3.6 // indirect + github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect + github.com/butuzov/ireturn v0.3.0 // indirect + github.com/butuzov/mirror v1.1.0 // indirect + github.com/catenacyber/perfsprint v0.7.1 // indirect + github.com/ccojocar/zxcvbn-go v1.0.2 // indirect + github.com/cenkalti/backoff v2.2.1+incompatible // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/charithe/durationcheck v0.0.10 // indirect + github.com/chavacava/garif v0.1.0 // indirect + github.com/ckaznocha/intrange v0.1.0 // indirect + github.com/cockroachdb/errors v1.11.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/pebble v1.1.0 // indirect + github.com/cockroachdb/redact v1.1.5 // indirect + github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect + github.com/cometbft/cometbft-db v0.9.1 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/cosmos-db v1.0.2 // indirect + github.com/cosmos/cosmos-proto v1.0.0-beta.4 // indirect + github.com/cosmos/cosmos-sdk v0.50.5 // indirect + github.com/cosmos/go-bip39 v1.0.0 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/gogoproto v1.4.11 // indirect + github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/ibc-go/modules/capability v1.0.0 // indirect + github.com/cosmos/ibc-go/v8 v8.1.1 // indirect + github.com/cosmos/ics23/go v0.10.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect + github.com/curioswitch/go-reassign v0.2.0 // indirect + github.com/daixiang0/gci v0.12.3 // indirect + github.com/danieljoos/wincred v1.1.2 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/denis-tingaikin/go-header v0.5.0 // indirect + github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect + github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/dvsekhvalnov/jose2go v1.6.0 // indirect + github.com/emicklei/dot v1.6.1 // indirect + github.com/ettle/strcase v0.2.0 // indirect + github.com/fatih/color v1.16.0 // indirect + github.com/fatih/structtag v1.2.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/firefart/nonamedreturns v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fzipp/gocyclo v0.6.0 // indirect + github.com/getsentry/sentry-go v0.27.0 // indirect + github.com/ghostiam/protogetter v0.3.5 // indirect + github.com/go-critic/go-critic v0.11.2 // indirect + github.com/go-kit/kit v0.12.0 // indirect + github.com/go-kit/log v0.2.1 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/go-toolsmith/astcast v1.1.0 // indirect + github.com/go-toolsmith/astcopy v1.1.0 // indirect + github.com/go-toolsmith/astequal v1.2.0 // indirect + github.com/go-toolsmith/astfmt v1.1.0 // indirect + github.com/go-toolsmith/astp v1.1.0 // indirect + github.com/go-toolsmith/strparse v1.1.0 // indirect + github.com/go-toolsmith/typep v1.1.0 // indirect + github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 // indirect + github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/goccy/go-yaml v1.11.2 // indirect + github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect + github.com/gofrs/flock v0.8.1 // indirect + github.com/gogo/googleapis v1.4.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/glog v1.2.0 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/golang/snappy v0.0.4 // indirect + github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect + github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e // indirect + github.com/golangci/misspell v0.4.1 // indirect + github.com/golangci/plugin-module-register v0.1.1 // indirect + github.com/golangci/revgrep v0.5.2 // indirect + github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/go-querystring v1.1.0 // indirect + github.com/gordonklaus/ineffassign v0.1.0 // indirect + github.com/gorilla/handlers v1.5.2 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/gostaticanalysis/analysisutil v0.7.1 // indirect + github.com/gostaticanalysis/comment v1.4.2 // indirect + github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect + github.com/gostaticanalysis/nilerr v0.1.1 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect + github.com/hashicorp/go-hclog v1.5.0 // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-metrics v0.5.1 // indirect + github.com/hashicorp/go-plugin v1.6.0 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect + github.com/hashicorp/golang-lru v1.0.2 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/yamux v0.1.1 // indirect + github.com/hdevalence/ed25519consensus v0.1.0 // indirect + github.com/hexops/gotextdiff v1.0.3 // indirect + github.com/huandu/skiplist v1.2.0 // indirect + github.com/iancoleman/strcase v0.3.0 // indirect + github.com/imdario/mergo v0.3.13 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jgautheron/goconst v1.7.0 // indirect + github.com/jingyugao/rowserrcheck v1.1.1 // indirect + github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect + github.com/jjti/go-spancheck v0.5.3 // indirect + github.com/jmhodges/levigo v1.0.0 // indirect + github.com/julz/importas v0.1.0 // indirect + github.com/karamaru-alpha/copyloopvar v1.0.8 // indirect + github.com/kisielk/errcheck v1.7.0 // indirect + github.com/kkHAIKE/contextcheck v1.1.4 // indirect + github.com/klauspost/compress v1.17.7 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/kulti/thelper v0.6.3 // indirect + github.com/kunwardeep/paralleltest v1.0.10 // indirect + github.com/kyoh86/exportloopref v0.1.11 // indirect + github.com/ldez/gomoddirectives v0.2.3 // indirect + github.com/ldez/tagliatelle v0.5.0 // indirect + github.com/leonklingele/grouper v1.1.1 // indirect + github.com/libp2p/go-buffer-pool v0.1.0 // indirect + github.com/linxGnu/grocksdb v1.8.12 // indirect + github.com/lufeee/execinquery v1.2.1 // indirect + github.com/macabu/inamedparam v0.1.3 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/maratori/testableexamples v1.0.0 // indirect + github.com/maratori/testpackage v1.1.1 // indirect + github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/mgechev/revive v1.3.7 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/moricho/tparallel v0.3.1 // indirect + github.com/mtibben/percent v0.2.1 // indirect + github.com/nakabonne/nestif v0.3.1 // indirect + github.com/nishanths/exhaustive v0.12.0 // indirect + github.com/nishanths/predeclared v0.2.2 // indirect + github.com/nsf/termbox-go v1.1.1 // indirect + github.com/nunnatsa/ginkgolinter v0.16.1 // indirect + github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a // indirect + github.com/oklog/run v1.1.0 // indirect + github.com/olekukonko/tablewriter v0.0.5 // indirect + github.com/pelletier/go-toml/v2 v2.2.0 // indirect + github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/polyfloyd/go-errorlint v1.4.8 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.6.0 // indirect + github.com/prometheus/common v0.47.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect + github.com/quasilyte/go-ruleguard v0.4.2 // indirect + github.com/quasilyte/gogrep v0.5.0 // indirect + github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect + github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rivo/uniseg v0.4.3 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/rs/cors v1.10.1 // indirect + github.com/rs/zerolog v1.32.0 // indirect + github.com/ryancurrah/gomodguard v1.3.1 // indirect + github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 // indirect + github.com/sasha-s/go-deadlock v0.3.1 // indirect + github.com/sashamelentyev/interfacebloat v1.1.0 // indirect + github.com/sashamelentyev/usestdlibvars v1.25.0 // indirect + github.com/securego/gosec/v2 v2.19.0 // indirect + github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sivchari/containedctx v1.0.3 // indirect + github.com/sivchari/tenv v1.7.1 // indirect + github.com/sonatard/noctx v0.0.2 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/sourcegraph/go-diff v0.7.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.18.2 // indirect + github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect + github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect + github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect + github.com/tdakkota/asciicheck v0.2.0 // indirect + github.com/tendermint/go-amino v0.16.0 // indirect + github.com/tetafro/godot v1.4.16 // indirect + github.com/tidwall/btree v1.7.0 // indirect + github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 // indirect + github.com/timonwong/loggercheck v0.9.4 // indirect + github.com/tomarrell/wrapcheck/v2 v2.8.3 // indirect + github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect + github.com/ultraware/funlen v0.1.0 // indirect + github.com/ultraware/whitespace v0.1.0 // indirect + github.com/uudashr/gocognit v1.1.2 // indirect + github.com/xen0n/gosmopolitan v1.2.2 // indirect + github.com/yagipy/maintidx v1.0.0 // indirect + github.com/yeya24/promlinter v0.2.0 // indirect + github.com/ykadowak/zerologlint v0.1.5 // indirect + github.com/zondax/hid v0.9.2 // indirect + github.com/zondax/ledger-go v0.14.3 // indirect + gitlab.com/bosi/decorder v0.4.1 // indirect + go-simpler.org/musttag v0.9.0 // indirect + go-simpler.org/sloglint v0.5.0 // indirect + go.etcd.io/bbolt v1.3.8 // indirect + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/automaxprocs v1.5.3 // indirect + go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.24.0 // indirect + golang.org/x/crypto v0.21.0 // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect + golang.org/x/mod v0.16.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c // indirect + google.golang.org/grpc v1.62.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.5.1 // indirect + honnef.co/go/tools v0.4.7 // indirect + mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 // indirect + nhooyr.io/websocket v1.8.6 // indirect + pgregory.net/rapid v1.1.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index ff00b1d..2316075 100644 --- a/go.sum +++ b/go.sum @@ -1,202 +1,1632 @@ +4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA= +4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs= +4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc= +4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cosmossdk.io/api v0.7.3 h1:V815i8YOwOAQa1rLCsSMjVG5Gnzs02JLq+l7ks8s1jk= +cosmossdk.io/api v0.7.3/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= +cosmossdk.io/collections v0.4.0/go.mod h1:oa5lUING2dP+gdDquow+QjlF45eL1t4TJDypgGd+tv0= +cosmossdk.io/core v0.11.0 h1:vtIafqUi+1ZNAE/oxLOQQ7Oek2n4S48SWLG8h/+wdbo= +cosmossdk.io/core v0.11.0/go.mod h1:LaTtayWBSoacF5xNzoF8tmLhehqlA9z1SWiPuNC6X1w= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= +cosmossdk.io/errors v1.0.1 h1:bzu+Kcr0kS/1DuPBtUFdWjzLqyUuCiyHjyJB6srBV/0= +cosmossdk.io/errors v1.0.1/go.mod h1:MeelVSZThMi4bEakzhhhE/CKqVv3nOJDA25bIqRDu/U= +cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= +cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= +cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= +cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= +cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= +cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/x/tx v0.13.1 h1:Mg+EMp67Pz+NukbJqYxuo8uRp7N/a9uR+oVS9pONtj8= +cosmossdk.io/x/tx v0.13.1/go.mod h1:CBCU6fsRVz23QGFIQBb1DNX2DztJCf3jWyEkHY2nJQ0= +cosmossdk.io/x/upgrade v0.1.0 h1:z1ZZG4UL9ICTNbJDYZ6jOnF9GdEK9wyoEFi4BUScHXE= +cosmossdk.io/x/upgrade v0.1.0/go.mod h1:/6jjNGbiPCNtmA1N+rBtP601sr0g4ZXuj3yC6ClPCGY= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= +filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +github.com/4meepo/tagalign v1.3.3 h1:ZsOxcwGD/jP4U/aw7qeWu58i7dwYemfy5Y+IF1ACoNw= +github.com/4meepo/tagalign v1.3.3/go.mod h1:Q9c1rYMZJc9dPRkbQPpcBNCLEmY2njbAsXhQOZFE2dE= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= +github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= +github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= +github.com/Abirdcfly/dupword v0.0.14 h1:3U4ulkc8EUo+CaT105/GJ1BQwtgyj6+VaBVbAX11Ba8= +github.com/Abirdcfly/dupword v0.0.14/go.mod h1:VKDAbxdY8YbKUByLGg8EETzYSuC4crm9WwI6Y3S0cLI= +github.com/Antonboom/errname v0.1.12 h1:oh9ak2zUtsLp5oaEd/erjB4GPu9w19NyoIskZClDcQY= +github.com/Antonboom/errname v0.1.12/go.mod h1:bK7todrzvlaZoQagP1orKzWXv59X/x0W0Io2XT1Ssro= +github.com/Antonboom/nilnil v0.1.7 h1:ofgL+BA7vlA1K2wNQOsHzLJ2Pw5B5DpWRLdDAVvvTow= +github.com/Antonboom/nilnil v0.1.7/go.mod h1:TP+ScQWVEq0eSIxqU8CbdT5DFWoHp0MbP+KMUO1BKYQ= +github.com/Antonboom/testifylint v1.2.0 h1:015bxD8zc5iY8QwTp4+RG9I4kIbqwvGX9TrBbb7jGdM= +github.com/Antonboom/testifylint v1.2.0/go.mod h1:rkmEqjqVnHDRNsinyN6fPSLnoajzFwsCcguJgwADBkw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= -github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/DataDog/datadog-go v3.2.0+incompatible h1:qSG2N4FghB1He/r2mFrWKCaL7dXCilEuNEeAn20fdD4= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/zstd v1.5.5 h1:oWf5W7GtOLgp6bciQYDmhHHjdhYkALu6S/5Ni9ZgSvQ= +github.com/DataDog/zstd v1.5.5/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0 h1:sATXp1x6/axKxz2Gjxv8MALP0bXaNRfQinEwyfMcx8c= +github.com/GaijinEntertainment/go-exhaustruct/v3 v3.2.0/go.mod h1:Nl76DrGNJTA1KJ0LePKBw/vznBX1EHbAZX8mwjR82nI= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= +github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= +github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA= +github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/alecthomas/assert/v2 v2.2.2 h1:Z/iVC0xZfWTaFNE6bA3z07T86hd45Xe2eLt6WVy2bbk= +github.com/alecthomas/assert/v2 v2.2.2/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ= +github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c= +github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ= +github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk= +github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg= +github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU= +github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= +github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= +github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY= +github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU= +github.com/ashanbrown/makezero v1.1.1 h1:iCQ87C0V0vSyO+M9E/FZYbu65auqH0lnsOkf5FcB28s= +github.com/ashanbrown/makezero v1.1.1/go.mod h1:i1bJLCRSCHOcOa9Y6MyF2FTfMZMFdHvxKHxgO5Z1axI= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= +github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bits-and-blooms/bitset v1.8.0 h1:FD+XqgOZDUxxZ8hzoBFuV9+cGWY9CslN6d5MS5JVb4c= +github.com/bits-and-blooms/bitset v1.8.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8= +github.com/bkielbasa/cyclop v1.2.1 h1:AeF71HZDob1P2/pRm1so9cd1alZnrpyc4q2uP2l0gJY= +github.com/bkielbasa/cyclop v1.2.1/go.mod h1:K/dT/M0FPAiYjBgQGau7tz+3TMh4FWAEqlMhzFWCrgM= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M= +github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k= +github.com/bombsimon/wsl/v4 v4.2.1 h1:Cxg6u+XDWff75SIFFmNsqnIOgob+Q9hG6y/ioKbRFiM= +github.com/bombsimon/wsl/v4 v4.2.1/go.mod h1:Xu/kDxGZTofQcDGCtQe9KCzhHphIe0fDuyWTxER9Feo= +github.com/breml/bidichk v0.2.7 h1:dAkKQPLl/Qrk7hnP6P+E0xOodrq8Us7+U0o4UBOAlQY= +github.com/breml/bidichk v0.2.7/go.mod h1:YodjipAGI9fGcYM7II6wFvGhdMYsC5pHDlGzqvEW3tQ= +github.com/breml/errchkjson v0.3.6 h1:VLhVkqSBH96AvXEyclMR37rZslRrY2kcyq+31HCsVrA= +github.com/breml/errchkjson v0.3.6/go.mod h1:jhSDoFheAF2RSDOlCfhHO9KqhZgAYLyvHe7bRCX8f/U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.1.3 h1:xfbtw8lwpp0G6NwSHb+UE67ryTFHJAiNuipusjXSohQ= +github.com/btcsuite/btcd/btcutil v1.1.3/go.mod h1:UR7dsSJzJUfMmFiiLlIrMq1lS9jh9EdCV7FStZSnpi0= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 h1:KdUfX2zKommPRa+PD0sWZUyXe9w277ABlgELO7H04IM= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/bufbuild/protocompile v0.6.0 h1:Uu7WiSQ6Yj9DbkdnOe7U4mNKp58y9WDMKDn28/ZlunY= +github.com/bufbuild/protocompile v0.6.0/go.mod h1:YNP35qEYoYGme7QMtz5SBCoN4kL4g12jTtjuzRNdjpE= +github.com/butuzov/ireturn v0.3.0 h1:hTjMqWw3y5JC3kpnC5vXmFJAWI/m31jaCYQqzkS6PL0= +github.com/butuzov/ireturn v0.3.0/go.mod h1:A09nIiwiqzN/IoVo9ogpa0Hzi9fex1kd9PSD6edP5ZA= +github.com/butuzov/mirror v1.1.0 h1:ZqX54gBVMXu78QLoiqdwpl2mgmoOJTk7s4p4o+0avZI= +github.com/butuzov/mirror v1.1.0/go.mod h1:8Q0BdQU6rC6WILDiBM60DBfvV78OLJmMmixe7GF45AE= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc= +github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50= +github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg= +github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60= +github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4= +github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ= +github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc= +github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/ckaznocha/intrange v0.1.0 h1:ZiGBhvrdsKpoEfzh9CjBfDSZof6QB0ORY5tXasUtiew= +github.com/ckaznocha/intrange v0.1.0/go.mod h1:Vwa9Ekex2BrEQMg6zlrWwbs/FtYw7eS5838Q7UjK7TQ= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f h1:otljaYPt5hWxV3MUfO5dFPFiOXg9CyG5/kCfayTqsJ4= +github.com/cockroachdb/datadriven v1.0.3-0.20230413201302-be42291fc80f/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.11.1 h1:xSEW75zKaKCWzR3OfxXUxgrk/NtT4G1MiOv5lWZazG8= +github.com/cockroachdb/errors v1.11.1/go.mod h1:8MUxA3Gi6b25tYlFEBGLf+D8aISL+M4MIpiWMSNRfxw= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/pebble v1.1.0 h1:pcFh8CdCIt2kmEpK0OIatq67Ln9uGDYY3d5XnE0LJG4= +github.com/cockroachdb/pebble v1.1.0/go.mod h1:sEHm5NOXxyiAoKWhoFxT8xMgd/f3RA6qUqQ1BXKrh2E= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= +github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/cometbft/cometbft v0.38.6 h1:QSgpCzrGWJ2KUq1qpw+FCfASRpE27T6LQbfEHscdyOk= +github.com/cometbft/cometbft v0.38.6/go.mod h1:8rSPxzUJYquCN8uuBgbUHOMg2KAwvr7CyUw+6ukO4nw= +github.com/cometbft/cometbft-db v0.9.1 h1:MIhVX5ja5bXNHF8EYrThkG9F7r9kSfv8BX4LWaxWJ4M= +github.com/cometbft/cometbft-db v0.9.1/go.mod h1:iliyWaoV0mRwBJoizElCwwRA9Tf7jZJOURcRZF9m60U= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= +github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= +github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= +github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= +github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= +github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= +github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= +github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= +github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= +github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= +github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= +github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= +github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g= +github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y= +github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= +github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= +github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= +github.com/cosmos/ibc-go/v8 v8.1.1 h1:N2+GA86yACcXnKWCKtqdbCwP0/Eo8pH79+6e7TicULU= +github.com/cosmos/ibc-go/v8 v8.1.1/go.mod h1:o1ipS95xpdjqNcB8Drq0eI3Sn4FRLigjll42ec1ECuU= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= +github.com/cosmos/ledger-cosmos-go v0.13.3 h1:7ehuBGuyIytsXbd4MP43mLeoN2LTOEnk5nvue4rK+yM= +github.com/cosmos/ledger-cosmos-go v0.13.3/go.mod h1:HENcEP+VtahZFw38HZ3+LS3Iv5XV6svsnkk9vdJtLr8= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/curioswitch/go-reassign v0.2.0 h1:G9UZyOcpk/d7Gd6mqYgd8XYWFMw/znxwGDUstnC9DIo= +github.com/curioswitch/go-reassign v0.2.0/go.mod h1:x6OpXuWvgfQaMGks2BZybTngWjT84hqJfKoO8Tt/Roc= +github.com/daixiang0/gci v0.12.3 h1:yOZI7VAxAGPQmkb1eqt5g/11SUlwoat1fSblGLmdiQc= +github.com/daixiang0/gci v0.12.3/go.mod h1:xtHP9N7AHdNvtRNfcx9gwTDfw7FRJx4bZUsiEfiNNAI= +github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= +github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/decred/dcrd/crypto/blake256 v1.0.1 h1:7PltbUIQB7u/FfZ39+DGa/ShuMyJ5ilcvdfma9wOH6Y= +github.com/decred/dcrd/crypto/blake256 v1.0.1/go.mod h1:2OfgNZ5wDpcsFmHmCK5gZTPcCXqlm2ArzUIkw9czNJo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 h1:8UrgZ3GkP4i/CLijOJx79Yu+etlyjdBU4sfcs2WYQMs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= +github.com/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8= +github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= +github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= +github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/dvsekhvalnov/jose2go v1.6.0 h1:Y9gnSnP4qEI0+/uQkHvFXeD2PLPJeXEL+ySMEA2EjTY= +github.com/dvsekhvalnov/jose2go v1.6.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/emicklei/dot v1.6.1 h1:ujpDlBkkwgWUY+qPId5IwapRW/xEoligRSYjioR6DFI= +github.com/emicklei/dot v1.6.1/go.mod h1:DeV7GvQtIw4h2u73RKBkkFdvVAz0D9fzeJrgPW6gy/s= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/ettle/strcase v0.2.0 h1:fGNiVF21fHXpX1niBgk0aROov1LagYsOwV/xqKDKR/Q= +github.com/ettle/strcase v0.2.0/go.mod h1:DajmHElDSaX76ITe3/VHVyMin4LWSJN5Z909Wp+ED1A= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/firefart/nonamedreturns v1.0.4 h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y= +github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIga8MAO/xbKdcVsGI= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= +github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= -github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= -github.com/gdamore/tcell v1.4.0 h1:vUnHwJRvcPQa3tzi+0QI4U9JINXYJlOz9yiaiPQ2wMU= -github.com/gdamore/tcell v1.4.0/go.mod h1:vxEiSDZdW3L+Uhjii9c3375IlDmR05bzxY404ZVSMo0= -github.com/gdamore/tcell/v2 v2.2.0/go.mod h1:cTTuF84Dlj/RqmaCIV5p4w8uG1zWdk0SF6oBpwHp4fU= -github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= -github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= -github.com/go-openapi/errors v0.19.8 h1:doM+tQdZbUm9gydV9yR+iQNmztbjj7I3sW4sIcAwIzc= -github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= -github.com/go-openapi/strfmt v0.19.5 h1:0utjKrw+BAh8s57XE9Xz8DUBsVvPmRUB6styvl9wWIM= -github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= -github.com/go-openapi/strfmt v0.20.1 h1:1VgxvehFne1mbChGeCmZ5pc0LxUf6yaACVSIYAR91Xc= -github.com/go-openapi/strfmt v0.20.1/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= -github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= +github.com/gdamore/tcell/v2 v2.7.4 h1:sg6/UnTM9jGpZU+oFYAsDahfchWAFW8Xx2yFinNSAYU= +github.com/gdamore/tcell/v2 v2.7.4/go.mod h1:dSXtXTSK0VsW1biw65DZLZ2NKr7j0qP/0J7ONmsraWg= +github.com/getsentry/sentry-go v0.27.0 h1:Pv98CIbtB3LkMWmXi4Joa5OOcwbmnX88sF5qbK3r3Ps= +github.com/getsentry/sentry-go v0.27.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghostiam/protogetter v0.3.5 h1:+f7UiF8XNd4w3a//4DnusQ2SZjPkUjxkMEfjbxOK4Ug= +github.com/ghostiam/protogetter v0.3.5/go.mod h1:7lpeDnEJ1ZjL/YtyoN99ljO4z0pd3H0d18/t2dPBxHw= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/gin-gonic/gin v1.8.1/go.mod h1:ji8BvRH1azfM+SYow9zQ6SZMvR8qOMZHmsCuWR9tTTk= +github.com/go-critic/go-critic v0.11.2 h1:81xH/2muBphEgPtcwH1p6QD+KzXl2tMSi3hXjBSxDnM= +github.com/go-critic/go-critic v0.11.2/go.mod h1:OePaicfjsf+KPy33yq4gzv6CO7TEQ9Rom6ns1KsJnl8= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= +github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= +github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= -github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= -github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= -github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= -github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= -github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= -github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= -github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= -github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= -github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= -github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= -github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= -github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= -github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= -github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= -github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= -github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= -github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= -github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-toolsmith/astcast v1.1.0 h1:+JN9xZV1A+Re+95pgnMgDboWNVnIMMQXwfBwLRPgSC8= +github.com/go-toolsmith/astcast v1.1.0/go.mod h1:qdcuFWeGGS2xX5bLM/c3U9lewg7+Zu4mr+xPwZIB4ZU= +github.com/go-toolsmith/astcopy v1.1.0 h1:YGwBN0WM+ekI/6SS6+52zLDEf8Yvp3n2seZITCUBt5s= +github.com/go-toolsmith/astcopy v1.1.0/go.mod h1:hXM6gan18VA1T/daUEHCFcYiW8Ai1tIwIzHY6srfEAw= +github.com/go-toolsmith/astequal v1.0.3/go.mod h1:9Ai4UglvtR+4up+bAD4+hCj7iTo4m/OXVTSLnCyTAx4= +github.com/go-toolsmith/astequal v1.1.0/go.mod h1:sedf7VIdCL22LD8qIvv7Nn9MuWJruQA/ysswh64lffQ= +github.com/go-toolsmith/astequal v1.2.0 h1:3Fs3CYZ1k9Vo4FzFhwwewC3CHISHDnVUPC4x0bI2+Cw= +github.com/go-toolsmith/astequal v1.2.0/go.mod h1:c8NZ3+kSFtFY/8lPso4v8LuJjdJiUFVnSuU3s0qrrDY= +github.com/go-toolsmith/astfmt v1.1.0 h1:iJVPDPp6/7AaeLJEruMsBUlOYCmvg0MoCfJprsOmcco= +github.com/go-toolsmith/astfmt v1.1.0/go.mod h1:OrcLlRwu0CuiIBp/8b5PYF9ktGVZUjlNMV634mhwuQ4= +github.com/go-toolsmith/astp v1.1.0 h1:dXPuCl6u2llURjdPLLDxJeZInAeZ0/eZwFJmqZMnpQA= +github.com/go-toolsmith/astp v1.1.0/go.mod h1:0T1xFGz9hicKs8Z5MfAqSUitoUYS30pDMsRVIDHs8CA= +github.com/go-toolsmith/pkgload v1.2.2 h1:0CtmHq/02QhxcF7E9N5LIFcYFsMR5rdovfqTtRKkgIk= +github.com/go-toolsmith/pkgload v1.2.2/go.mod h1:R2hxLNRKuAsiXCo2i5J6ZQPhnPMOVtU+f0arbFPWCus= +github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/strparse v1.1.0 h1:GAioeZUK9TGxnLS+qfdqNbA4z0SSm5zVNtCQiyP2Bvw= +github.com/go-toolsmith/strparse v1.1.0/go.mod h1:7ksGy58fsaQkGQlY8WVoBFNyEPMGuJin1rfoPS4lBSQ= +github.com/go-toolsmith/typep v1.1.0 h1:fIRYDyF+JywLfqzyhdiHzRop/GQDxxNhLGQ6gFUNHus= +github.com/go-toolsmith/typep v1.1.0/go.mod h1:fVIw+7zjdsMxDA3ITWnH1yOiw1rnTQKCsF/sk2H/qig= +github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1 h1:TQcrn6Wq+sKGkpyPvppOz99zsMBaUOKXq6HSv655U1c= +github.com/go-viper/mapstructure/v2 v2.0.0-alpha.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/go-xmlfmt/xmlfmt v1.1.2 h1:Nea7b4icn8s57fTx1M5AI4qQT5HEM3rVUO8MuE6g80U= +github.com/go-xmlfmt/xmlfmt v1.1.2/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-yaml v1.11.2 h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ= +github.com/goccy/go-yaml v1.11.2/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= +github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw= +github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e h1:ULcKCDV1LOZPFxGZaA6TlQbiM3J2GCPnkx/bGF6sX/g= +github.com/golangci/gofmt v0.0.0-20231018234816-f50ced29576e/go.mod h1:Pm5KhLPA8gSnQwrQ6ukebRcapGb/BG9iUkdaiCcGHJM= +github.com/golangci/golangci-lint v1.57.1 h1:cqhpzkzjDwdN12rfMf1SUyyKyp88a1SltNqEYGS0nJw= +github.com/golangci/golangci-lint v1.57.1/go.mod h1:zLcHhz3NHc88T5zV2j75lyc0zH3LdOPOybblYa4p0oI= +github.com/golangci/misspell v0.4.1 h1:+y73iSicVy2PqyX7kmUefHusENlrP9YwuHZHPLGQj/g= +github.com/golangci/misspell v0.4.1/go.mod h1:9mAN1quEo3DlpbaIKKyEvRxK1pwqR9s/Sea1bJCtlNI= +github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= +github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= +github.com/golangci/revgrep v0.5.2 h1:EndcWoRhcnfj2NHQ+28hyuXpLMF+dQmCN+YaeeIl4FU= +github.com/golangci/revgrep v0.5.2/go.mod h1:bjAMA+Sh/QUfTDcHzxfyHxr4xKvllVr/0sCv2e7jJHA= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs= +github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786 h1:rcv+Ippz6RAtvaGgKxc+8FQIpxHgsF+HBzPyYL2cyVU= +github.com/google/go-cmdtest v0.4.1-0.20220921163831-55ab3332a786/go.mod h1:apVn/GCasLZUVpAJ6oWAuyP7Ne7CEsQbTnc0plM3m+o= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.3 h1:twObb+9XcuH5B9V1TBCvvvZoO6iEdILi2a76PYn5rJI= -github.com/google/uuid v1.1.3/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= -github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-github/v48 v48.2.0 h1:68puzySE6WqUY9KWmpOsDEQfDZsso98rT6pZcz9HqcE= +github.com/google/go-github/v48 v48.2.0/go.mod h1:dDlehKBDo850ZPvCTK0sEqTCVWcrGl2LcDiajkYi89Y= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= +github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20240117000934-35fc243c5815 h1:WzfWbQz/Ze8v6l++GGbGNFZnUShVpP/0xffCPLL+ax8= +github.com/google/pprof v0.0.0-20240117000934-35fc243c5815/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= +github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= +github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= +github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= +github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= +github.com/gostaticanalysis/comment v1.4.2 h1:hlnx5+S2fY9Zo9ePo4AhgYsYHbM2+eAv8m/s1JiCd6Q= +github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= +github.com/gostaticanalysis/forcetypeassert v0.1.0 h1:6eUflI3DiGusXGK6X7cCcIgVCpZ2CiZ1Q7jl6ZxNV70= +github.com/gostaticanalysis/forcetypeassert v0.1.0/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= +github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= +github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= +github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= +github.com/gostaticanalysis/testutil v0.4.0/go.mod h1:bLIoPefWXrRi/ssLFWX1dx7Repi5x3CuviD3dgAZaBU= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= +github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= +github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= +github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-metrics v0.5.1 h1:rfPwUqFU6uZXNvGl4hzjY8LEBsqFVU4si1H9/Hqck/U= +github.com/hashicorp/go-metrics v0.5.1/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.6.0 h1:wgd4KxHJTVGGqWBq4QPB1i5BZNEx9BR8+OFmHDmTk8A= +github.com/hashicorp/go-plugin v1.6.0/go.mod h1:lBS5MtSSBZk0SHc66KACcjjlU6WzEVP/8pwz68aMkCI= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE= +github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= +github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= +github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= +github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= +github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= +github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= +github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ignite/cli/v28 v28.3.0 h1:UpazVPeANrNPI0K5g9kLRivtWl43L3b454hvs8Wf6Os= +github.com/ignite/cli/v28 v28.3.0/go.mod h1:64+GF1iHSCehhQuZ74wsDUO9gnLR17EJAk70+YMgHGU= +github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= +github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jedib0t/go-pretty v4.3.0+incompatible h1:CGs8AVhEKg/n9YbUenWmNStRW2PHJzaeDodcfvRAbIo= -github.com/jedib0t/go-pretty v4.3.0+incompatible/go.mod h1:XemHduiw8R651AF9Pt4FwCTKeG3oo7hrHJAoznj9nag= -github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= -github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= -github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= -github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/jgautheron/goconst v1.7.0 h1:cEqH+YBKLsECnRSd4F4TK5ri8t/aXtt/qoL0Ft252B0= +github.com/jgautheron/goconst v1.7.0/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jhump/protoreflect v1.15.3 h1:6SFRuqU45u9hIZPJAoZ8c28T3nK64BNdp9w6jFonzls= +github.com/jhump/protoreflect v1.15.3/go.mod h1:4ORHmSBmlCW8fh3xHmJMGyul1zNqZK4Elxc8qKP+p1k= +github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= +github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jjti/go-spancheck v0.5.3 h1:vfq4s2IB8T3HvbpiwDTYgVPj1Ze/ZSXrTtaZRTc7CuM= +github.com/jjti/go-spancheck v0.5.3/go.mod h1:eQdOX1k3T+nAKvZDyLC3Eby0La4dZ+I19iOl5NzSPFE= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= +github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/julz/importas v0.1.0 h1:F78HnrsjY3cR7j0etXy5+TU1Zuy7Xt08X/1aJnH5xXY= +github.com/julz/importas v0.1.0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/karamaru-alpha/copyloopvar v1.0.8 h1:gieLARwuByhEMxRwM3GRS/juJqFbLraftXIKDDNJ50Q= +github.com/karamaru-alpha/copyloopvar v1.0.8/go.mod h1:u7CIfztblY0jZLOQZgH3oYsJzpC2A7S6u/lfgSXHy0k= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/errcheck v1.7.0 h1:+SbscKmWJ5mOK/bO1zS60F5I9WwZDWOfRsC4RwfwRV0= +github.com/kisielk/errcheck v1.7.0/go.mod h1:1kLL+jV4e+CFfueBmI1dSK2ADDyQnlrnrY/FqKluHJQ= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kkHAIKE/contextcheck v1.1.4 h1:B6zAaLhOEEcjvUgIYEqystmnFk1Oemn8bvJhbt0GMb8= +github.com/kkHAIKE/contextcheck v1.1.4/go.mod h1:1+i/gWqokIa+dm31mqGLZhZJ7Uh44DJGZVmr6QRBNJg= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= +github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= +github.com/kunwardeep/paralleltest v1.0.10 h1:wrodoaKYzS2mdNVnc4/w31YaXFtsc21PCTdvWJ/lDDs= +github.com/kunwardeep/paralleltest v1.0.10/go.mod h1:2C7s65hONVqY7Q5Efj5aLzRCNLjw2h4eMc9EcypGjcY= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= -github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac= -github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= +github.com/kyoh86/exportloopref v0.1.11 h1:1Z0bcmTypkL3Q4k+IDHMWTcnCliEZcaPiIe0/ymEyhQ= +github.com/kyoh86/exportloopref v0.1.11/go.mod h1:qkV4UF1zGl6EkF1ox8L5t9SwyeBAZ3qLMd6up458uqA= +github.com/ldez/gomoddirectives v0.2.3 h1:y7MBaisZVDYmKvt9/l1mjNCiSA1BVn34U0ObUcJwlhA= +github.com/ldez/gomoddirectives v0.2.3/go.mod h1:cpgBogWITnCfRq2qGoDkKMEVSaarhdBr6g8G04uz6d0= +github.com/ldez/tagliatelle v0.5.0 h1:epgfuYt9v0CG3fms0pEgIMNPuFf/LpPIfjk4kyqSioo= +github.com/ldez/tagliatelle v0.5.0/go.mod h1:rj1HmWiL1MiKQuOONhd09iySTEkUuE/8+5jtPYz9xa4= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leonklingele/grouper v1.1.1 h1:suWXRU57D4/Enn6pXR0QVqqWWrnJ9Osrz+5rjt8ivzU= +github.com/leonklingele/grouper v1.1.1/go.mod h1:uk3I3uDfi9B6PeUjsCKi6ndcf63Uy7snXgR4yDYQVDY= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= +github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/linxGnu/grocksdb v1.8.12 h1:1/pCztQUOa3BX/1gR3jSZDoaKFpeHFvQ1XrqZpSvZVo= +github.com/linxGnu/grocksdb v1.8.12/go.mod h1:xZCIb5Muw+nhbDK4Y5UJuOrin5MceOuiXkVUR7vp4WY= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= +github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/macabu/inamedparam v0.1.3 h1:2tk/phHkMlEL/1GNe/Yf6kkR/hkcUdAEY3L0hjYV1Mk= +github.com/macabu/inamedparam v0.1.3/go.mod h1:93FLICAIk/quk7eaPPQvbzihUdn/QkGDwIZEoLtpH6I= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= +github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= +github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= +github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= +github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= +github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 h1:gWg6ZQ4JhDfJPqlo2srm/LN17lpybq15AryXIRcWYLE= +github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.12 h1:Y41i/hVW3Pgwr8gV+J23B9YEY0zxjptBuCWEaxmAOow= -github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mgechev/revive v1.3.7 h1:502QY0vQGe9KtYJ9FpxMz9rL+Fc/P13CI5POL4uHCcE= +github.com/mgechev/revive v1.3.7/go.mod h1:RJ16jUbF0OWC3co/+XTxmFNgEpUPwnnA0BRllX2aDNA= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= +github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.3 h1:SzB1nHZ2Xi+17FP0zVQBHIZqvwRN9408fJO8h+eeNA8= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= -github.com/mum4k/termdash v0.12.2 h1:S2frz71OrXUKIVVZ3snYBEzyYlUNRTu0ElV6d5Pf6gI= -github.com/mum4k/termdash v0.12.2/go.mod h1:haerPCSO0U8pehROAecmuOHDF+2UXw2KaCTxdWooDFE= -github.com/mum4k/termdash v0.16.0 h1:oez5/noRpk8Lc+4u05QTU1LGGcvUkhEFk2kV9lClQAg= -github.com/mum4k/termdash v0.16.0/go.mod h1:bkSQsw2tif8pLQtGmfxh20N1idek+Hzol/wj+1ZC3cM= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/moricho/tparallel v0.3.1 h1:fQKD4U1wRMAYNngDonW5XupoB/ZGJHdpzrWqgyg9krA= +github.com/moricho/tparallel v0.3.1/go.mod h1:leENX2cUv7Sv2qDgdi0D0fCftN8fRC67Bcn8pqzeYNI= +github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= +github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= +github.com/mum4k/termdash v0.20.0 h1:g6yZvE7VJmuefJmDrSrv5Az8IFTTSCqG0x8xiOMPbyM= +github.com/mum4k/termdash v0.20.0/go.mod h1:/kPwGKcOhLawc2OmWJPLQ5nzR5PmcbiKMcVv9/413b4= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= +github.com/nakabonne/nestif v0.3.1 h1:wm28nZjhQY5HyYPx+weN3Q65k6ilSBxDb8v5S81B81U= +github.com/nakabonne/nestif v0.3.1/go.mod h1:9EtoZochLn5iUprVDmDjqGKPofoUEBL8U4Ngq6aY7OE= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/nsf/termbox-go v0.0.0-20200204031403-4d2b513ad8be h1:yzmWtPyxEUIKdZg4RcPq64MfS8NA6A5fNOJgYhpR9EQ= -github.com/nsf/termbox-go v0.0.0-20200204031403-4d2b513ad8be/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= -github.com/nsf/termbox-go v0.0.0-20201107200903-9b52a5faed9e h1:T8/SzSWIDoWV9trslLNfUdJ5yHrIXXuODEy5M0vou4U= -github.com/nsf/termbox-go v0.0.0-20201107200903-9b52a5faed9e/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/ozgur-soft/google-analytics v0.0.0-20210204020807-2d2daaf3239f h1:4cgWjs08rsuzdL0Ir4+0kb1D1ZgS5XNsLJL1aX4+NoA= -github.com/ozgur-soft/google-analytics v0.0.0-20210204020807-2d2daaf3239f/go.mod h1:Oxz6jzdln12Zk5tMR85t8hJfSyKAE+fyd6/XfWFDlSw= -github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= +github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhKRf3Swg= +github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= +github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= +github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= +github.com/nsf/termbox-go v1.1.1 h1:nksUPLCb73Q++DwbYUBEglYBRPZyoXJdrj5L+TkjyZY= +github.com/nsf/termbox-go v1.1.1/go.mod h1:T0cTdVuOwf7pHQNtfhnEbzHbcNyCEcVU4YPpouCbVxo= +github.com/nunnatsa/ginkgolinter v0.16.1 h1:uDIPSxgVHZ7PgbJElRDGzymkXH+JaF7mjew+Thjnt6Q= +github.com/nunnatsa/ginkgolinter v0.16.1/go.mod h1:4tWRinDN1FeJgU+iJANW/kz7xKN5nYRAOfJDQUS9dOQ= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a h1:dlRvE5fWabOchtH7znfiFCcOvmIYgOeAS5ifBXBlh9Q= +github.com/oasisprotocol/curve25519-voi v0.0.0-20230904125328-1f23a7beb09a/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= +github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= +github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= +github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= +github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/otiai10/copy v1.2.0/go.mod h1:rrF5dJ5F0t/EWSYODDu4j9/vEeYHMkc8jt0zJChqQWw= +github.com/otiai10/copy v1.14.0 h1:dCI/t1iTdYGtkvCuBG2BgR6KZa83PTclw4U5n2wAllU= +github.com/otiai10/copy v1.14.0/go.mod h1:ECfuL02W+/FkTWZWgQqXPWZgW9oeKCSQ5qVfSc4qc4w= +github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= +github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= +github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= +github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= +github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polyfloyd/go-errorlint v1.4.8 h1:jiEjKDH33ouFktyez7sckv6pHWif9B7SuS8cutDXFHw= +github.com/polyfloyd/go-errorlint v1.4.8/go.mod h1:NNCxFcFjZcw3xNjVdCchERkEM6Oz7wta2XJVxRftwO4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= +github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/quasilyte/go-ruleguard v0.4.2 h1:htXcXDK6/rO12kiTHKfHuqR4kr3Y4M0J0rOL6CH/BYs= +github.com/quasilyte/go-ruleguard v0.4.2/go.mod h1:GJLgqsLeo4qgavUoL8JeGFNS7qcisx3awV/w9eWTmNI= +github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= +github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= +github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 h1:M8mH9eK4OUR4lu7Gd+PU1fV2/qnDNfzT635KRSObncs= +github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567/go.mod h1:DWNGW8A4Y+GyBgPuaQJuWiy0XYftx4Xm/y5Jqk9I6VQ= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= +github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/sacOO7/go-logger v0.0.0-20180719173527-9ac9add5a50d h1:5T+fbRuQbpi+WZtB2yfuu59r00F6T2HV/zGYrwX8nvE= -github.com/sacOO7/go-logger v0.0.0-20180719173527-9ac9add5a50d/go.mod h1:L5EJe2k8GwpBoGXDRLAEs58R239jpZuE7NNEtW+T7oo= -github.com/sacOO7/gowebsocket v0.0.0-20180719182212-1436bb906a4e h1:yG1sLAkFltiFiwIpKdiA2CVIPxRL4P9OywNnfq45ivg= -github.com/sacOO7/gowebsocket v0.0.0-20180719182212-1436bb906a4e/go.mod h1:4a2a9BlxB807BaME8FJzQRLrZwYKj0cWjon25PlIssM= -github.com/sacOO7/gowebsocket v0.0.0-20210515122958-9396f1a71e23 h1:yjnkNJTpQPCx10KF1jypuIhAVc6EYn2M9lJgwSTHQYs= -github.com/sacOO7/gowebsocket v0.0.0-20210515122958-9396f1a71e23/go.mod h1:h00QywbM5Le22ESUiI8Yz2/9TVGD8eAz/cAk55Kcz/E= -github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= +github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0= +github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryancurrah/gomodguard v1.3.1 h1:fH+fUg+ngsQO0ruZXXHnA/2aNllWA1whly4a6UvyzGE= +github.com/ryancurrah/gomodguard v1.3.1/go.mod h1:DGFHzEhi6iJ0oIDfMuo3TgrS+L9gZvrEfmjjuelnRU0= +github.com/ryanrolds/sqlclosecheck v0.5.1 h1:dibWW826u0P8jNLsLN+En7+RqWWTYrjCB9fJfSfdyCU= +github.com/ryanrolds/sqlclosecheck v0.5.1/go.mod h1:2g3dUjoS6AL4huFdv6wn55WpLIDjY7ZgUR4J8HOO/XQ= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sanposhiho/wastedassign/v2 v2.0.7 h1:J+6nrY4VW+gC9xFzUc+XjPD3g3wF3je/NsJFwFK7Uxc= +github.com/sanposhiho/wastedassign/v2 v2.0.7/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1 h1:lZUw3E0/J3roVtGQ+SCrUrg3ON6NgVqpn3+iol9aGu4= +github.com/santhosh-tekuri/jsonschema/v5 v5.3.1/go.mod h1:uToXkOrWAZ6/Oc07xWQrPOhJotwFIyu2bBVN41fcDUY= +github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= +github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= +github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= +github.com/sashamelentyev/usestdlibvars v1.25.0 h1:IK8SI2QyFzy/2OD2PYnhy84dpfNo9qADrRt6LH8vSzU= +github.com/sashamelentyev/usestdlibvars v1.25.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/securego/gosec/v2 v2.19.0 h1:gl5xMkOI0/E6Hxx0XCY2XujA3V7SNSefA8sC+3f1gnk= +github.com/securego/gosec/v2 v2.19.0/go.mod h1:hOkDcHz9J/XIgIlPDXalxjeVYsHxoWUc5zJSHxcB8YM= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c h1:W65qqJCIOVP4jpqPQ0YvHYKwcMEMVWIzWC5iNQQfBTU= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= +github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= +github.com/sivchari/tenv v1.7.1 h1:PSpuD4bu6fSmtWMxSGWcvqUUgIn7k3yOJhOIzVWn8Ak= +github.com/sivchari/tenv v1.7.1/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sonatard/noctx v0.0.2 h1:L7Dz4De2zDQhW8S0t+KUjY0MAQJd6SgVwhzNIc4ok00= +github.com/sonatard/noctx v0.0.2/go.mod h1:kzFz+CzWSjQ2OzIm46uJZoXuBpa2+0y3T36U18dWqIo= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/sourcegraph/go-diff v0.7.0 h1:9uLlrd5T46OXs5qpp8L/MTltk0zikUGi0sNNyCpA8G0= +github.com/sourcegraph/go-diff v0.7.0/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= +github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= +github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= -github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/tidwall/gjson v1.6.1 h1:LRbvNuNuvAiISWg6gxLEFuCe72UKy5hDqhxW/8183ws= -github.com/tidwall/gjson v1.6.1/go.mod h1:BaHyNc5bjzYkPqgLq7mdVzeiRtULKULXLgZFKsxEHI0= -github.com/tidwall/gjson v1.8.0 h1:Qt+orfosKn0rbNTZqHYDqBrmm3UDA4KRkv70fDzG+PQ= -github.com/tidwall/gjson v1.8.0/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk= -github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc= -github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= -github.com/tidwall/match v1.0.3 h1:FQUVvBImDutD8wJLN6c5eMzWtjgONK9MwIBCOrUJKeE= -github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU= -github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/pretty v1.1.0 h1:K3hMW5epkdAVwibsQEfR/7Zj0Qgt4DxtNumTq/VloO8= -github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= -github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= -go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU= -go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.5.1 h1:9nOVLGDfOaZ9R0tBumx/BcuqkbFpyTCU2r/Po7A2azI= -go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d h1:vfofYNRScrDdvS342BElfbETmL1Aiz3i2t0zfRj16Hs= +github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d/go.mod h1:RRCYJbIwD5jmqPI9XoAFR0OcDxqUctll6zUj/+B4S48= +github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c h1:+aPplBwWcHBo6q9xrfWdMrT9o4kltkmmvpemgIjep/8= +github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c/go.mod h1:SbErYREK7xXdsRiigaQiQkI9McGRzYMvlKYaP3Nimdk= +github.com/tdakkota/asciicheck v0.2.0 h1:o8jvnUANo0qXtnslk2d3nMKTFNlOnJjRrNcj0j9qkHM= +github.com/tdakkota/asciicheck v0.2.0/go.mod h1:Qb7Y9EgjCLJGup51gDHFzbI08/gbGhL/UVhYIPWG2rg= +github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= +github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= +github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= +github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= +github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= +github.com/tetafro/godot v1.4.16 h1:4ChfhveiNLk4NveAZ9Pu2AN8QZ2nkUGFuadM9lrr5D0= +github.com/tetafro/godot v1.4.16/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio= +github.com/tidwall/btree v1.7.0 h1:L1fkJH/AuEh5zBnnBbmTwQ5Lt+bRJ5A8EWecslvo9iI= +github.com/tidwall/btree v1.7.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966 h1:quvGphlmUVU+nhpFa4gg4yJyTRJ13reZMDHrKwYw53M= +github.com/timakin/bodyclose v0.0.0-20230421092635-574207250966/go.mod h1:27bSVNWSBOHm+qRp1T9qzaIpsWEP6TbUnei/43HK+PQ= +github.com/timonwong/loggercheck v0.9.4 h1:HKKhqrjcVj8sxL7K77beXh0adEm6DLjV/QOGeMXEVi4= +github.com/timonwong/loggercheck v0.9.4/go.mod h1:caz4zlPcgvpEkXgVnAJGowHAMW2NwHaNlpS8xDbVhTg= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tomarrell/wrapcheck/v2 v2.8.3 h1:5ov+Cbhlgi7s/a42BprYoxsr73CbdMUTzE3bRDFASUs= +github.com/tomarrell/wrapcheck/v2 v2.8.3/go.mod h1:g9vNIyhb5/9TQgumxQyOEqDHsmGYcGsVMOx/xGkqdMo= +github.com/tommy-muehle/go-mnd/v2 v2.5.1 h1:NowYhSdyE/1zwK9QCLeRb6USWdoif80Ie+v+yU8u1Zw= +github.com/tommy-muehle/go-mnd/v2 v2.5.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/ultraware/funlen v0.1.0 h1:BuqclbkY6pO+cvxoq7OsktIXZpgBSkYTQtmwhAK81vI= +github.com/ultraware/funlen v0.1.0/go.mod h1:XJqmOQja6DpxarLj6Jj1U7JuoS8PvL4nEqDaQhy22p4= +github.com/ultraware/whitespace v0.1.0 h1:O1HKYoh0kIeqE8sFqZf1o0qbORXUCOQFrlaQyZsczZw= +github.com/ultraware/whitespace v0.1.0/go.mod h1:/se4r3beMFNmewJ4Xmz0nMQ941GJt+qmSHGP9emHYe0= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/uudashr/gocognit v1.1.2 h1:l6BAEKJqQH2UpKAPKdMfZf5kE4W/2xk8pfU1OVLvniI= +github.com/uudashr/gocognit v1.1.2/go.mod h1:aAVdLURqcanke8h3vg35BC++eseDm66Z7KmchI5et4k= +github.com/xen0n/gosmopolitan v1.2.2 h1:/p2KTnMzwRexIW8GlKawsTWOxn7UHA+jCMF/V8HHtvU= +github.com/xen0n/gosmopolitan v1.2.2/go.mod h1:7XX7Mj61uLYrj0qmeN0zi7XDon9JRAEhYQqAPLVNTeg= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yagipy/maintidx v1.0.0 h1:h5NvIsCz+nRDapQ0exNv4aJ0yXSI0420omVANTv3GJM= +github.com/yagipy/maintidx v1.0.0/go.mod h1:0qNf/I/CCZXSMhsRsrEPDZ+DkekpKLXAJfsTACwgXLk= +github.com/yeya24/promlinter v0.2.0 h1:xFKDQ82orCU5jQujdaD8stOHiv8UN68BSdn2a8u8Y3o= +github.com/yeya24/promlinter v0.2.0/go.mod h1:u54lkmBOZrpEbQQ6gox2zWKKLKu2SGe+2KOiextY+IA= +github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoolgdiw= +github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zondax/hid v0.9.2 h1:WCJFnEDMiqGF64nlZz28E9qLVZ0KSJ7xpc5DLEyma2U= +github.com/zondax/hid v0.9.2/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= +github.com/zondax/ledger-go v0.14.3 h1:wEpJt2CEcBJ428md/5MgSLsXLBos98sBOyxNmCjfUCw= +github.com/zondax/ledger-go v0.14.3/go.mod h1:IKKaoxupuB43g4NxeQmbLXv7T9AlQyie1UpHb342ycI= +gitlab.com/bosi/decorder v0.4.1 h1:VdsdfxhstabyhZovHafFw+9eJ6eU0d2CkFNJcZz/NU4= +gitlab.com/bosi/decorder v0.4.1/go.mod h1:jecSqWUew6Yle1pCr2eLWTensJMmsxHsBwt+PVbkAqA= +go-simpler.org/assert v0.7.0 h1:OzWWZqfNxt8cLS+MlUp6Tgk1HjPkmgdKBq9qvy8lZsA= +go-simpler.org/assert v0.7.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= +go-simpler.org/musttag v0.9.0 h1:Dzt6/tyP9ONr5g9h9P3cnYWCxeBFRkd0uJL/w+1Mxos= +go-simpler.org/musttag v0.9.0/go.mod h1:gA9nThnalvNSKpEoyp3Ko4/vCX2xTpqKoUtNqXOnVR4= +go-simpler.org/sloglint v0.5.0 h1:2YCcd+YMuYpuqthCgubcF5lBSjb6berc5VMOYUHKrpY= +go-simpler.org/sloglint v0.5.0/go.mod h1:EUknX5s8iXqf18KQxKnaBHUPVriiPnOrPjjJcsaTcSQ= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= +go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= -golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f h1:phY1HzDcf18Aq9A8KkmRtY9WvOFIxN8wgfvy6Zm1DV8= +golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756 h1:9nuHUbU8dRnRRfj9KjWUVrJeoexdbeMjttk6Oh1rD10= -golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= +golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/vuln v1.0.4 h1:SP0mPeg2PmGCu03V+61EcQiOjmpri2XijexKdzv8Z1I= +golang.org/x/vuln v1.0.4/go.mod h1:NbJdUQhX8jY++FtuhrXs2Eyx0yePo9pF7nPlIjo9aaQ= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c h1:NUsgEN92SQQqzfA+YtqYNqYmB3DMMYLlIwUZAQFVFbo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/resty.v1 v1.12.0 h1:CuXP0Pjfw9rOuY6EP+UvtNvt5DSqHpIxILZKT/quCZI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU= +gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.4.7 h1:9MDAWxMoSnB6QoSqiVr7P5mtkT9pOc1kSxchzPCnqJs= +honnef.co/go/tools v0.4.7/go.mod h1:+rnGS1THNh8zMwnd2oVOTL9QF6vmfyG6ZXBULae2uc0= +mvdan.cc/gofumpt v0.6.0 h1:G3QvahNDmpD+Aek/bNOLrFR2XC6ZAdo62dZu65gmwGo= +mvdan.cc/gofumpt v0.6.0/go.mod h1:4L0wf+kgIPZtcCWXynNS2e6bhmj73umwnuXSZarixzA= +mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14 h1:zCr3iRRgdk5eIikZNDphGcM6KGVTx3Yu+/Uu9Es254w= +mvdan.cc/unparam v0.0.0-20240104100049-c549a3470d14/go.mod h1:ZzZjEpJDOmx8TdVU6umamY3Xy0UAQUI2DHbf05USVbI= +nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= +nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v1.1.0 h1:CMa0sjHSru3puNx+J0MIAuiiEV4N0qj8/cMWGBBCsjw= +pgregory.net/rapid v1.1.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/integration/gex_test.go b/integration/gex_test.go new file mode 100644 index 0000000..ea36316 --- /dev/null +++ b/integration/gex_test.go @@ -0,0 +1,104 @@ +package integration_test + +import ( + "bytes" + "context" + "os" + "path" + "path/filepath" + "sync" + "testing" + "time" + + "github.com/ignite/cli/v28/ignite/pkg/cmdrunner/step" + "github.com/ignite/cli/v28/ignite/pkg/errors" + "github.com/ignite/cli/v28/ignite/pkg/gocmd" + envtest "github.com/ignite/cli/v28/integration" + "github.com/stretchr/testify/require" +) + +var ( + // gexApp hold the location of the gex binary used in the integration + // tests. The binary is compiled the first time the env.New() function is + // invoked. + gexApp = path.Join(os.TempDir(), "gex-tests", "gex") + + compileBinaryOnce sync.Once +) + +// ensureBinary ensure gex binary was compiled. +func ensureBinary(t *testing.T, ctx context.Context) { + t.Helper() + ctx, cancel := context.WithCancel(ctx) + + t.Cleanup(cancel) + compileBinaryOnce.Do(func() { + if err := compileBinary(ctx); err != nil { + panic(err) + } + }) +} + +// compileBinary compile the gex binary. +func compileBinary(ctx context.Context) error { + wd, err := os.Getwd() + if err != nil { + return errors.Errorf("unable to get working dir: %v", err) + } + pkgs, err := gocmd.List(ctx, wd, []string{"-m", "-f={{.Dir}}", "github.com/ignite/gex"}) + if err != nil { + return errors.Errorf("unable to list gex package: %v", err) + } + if len(pkgs) != 1 { + return errors.Errorf("expected only one package, got %d", len(pkgs)) + } + var ( + appPath = pkgs[0] + output, binary = filepath.Split(gexApp) + ) + + if err = gocmd.BuildPath(ctx, output, binary, appPath, nil); err != nil { + return errors.Errorf("error while building binary: %v", err) + } + return err +} + +func TestGexExplorer(t *testing.T) { + var ( + require = require.New(t) + env = envtest.New(t) + app = env.Scaffold("github.com/ignite/mars") + servers = app.RandomizeServerPorts() + execErr = &bytes.Buffer{} + ctx, cancel = context.WithCancel(env.Ctx()) + ) + ensureBinary(t, ctx) + + steps := step.NewSteps( + step.New( + step.Stderr(execErr), + step.Workdir(app.SourcePath()), + step.PreExec(func() error { + return env.IsAppServed(ctx, servers.API) + }), + step.Exec(gexApp, "explorer", servers.RPC), + step.InExec(func() error { + time.Sleep(10 * time.Second) + cancel() + return nil + }), + ), + ) + + var wg sync.WaitGroup + wg.Add(1) + go func() { + env.Must(env.Exec("run gex", steps, envtest.ExecRetry(), envtest.ExecCtx(ctx))) + wg.Done() + }() + + env.Must(app.Serve("should serve", envtest.ExecCtx(ctx))) + wg.Wait() + + require.Empty(execErr.String()) +} diff --git a/internal/tools/tools.go b/internal/tools/tools.go new file mode 100644 index 0000000..330aa4e --- /dev/null +++ b/internal/tools/tools.go @@ -0,0 +1,11 @@ +//go:build tools +// +build tools + +package tools + +import ( + _ "github.com/golangci/golangci-lint/cmd/golangci-lint" + _ "golang.org/x/tools/cmd/goimports" + _ "golang.org/x/vuln/cmd/govulncheck" + _ "mvdan.cc/gofumpt" +) diff --git a/main.go b/main.go index c79fc43..6cb0102 100644 --- a/main.go +++ b/main.go @@ -18,843 +18,15 @@ package main import ( - "context" - "flag" "fmt" - "log" "os" - "strconv" - "time" - "gopkg.in/resty.v1" - - "github.com/google/uuid" - ga "github.com/ozgur-soft/google-analytics/src" - "github.com/sacOO7/gowebsocket" - "github.com/tidwall/gjson" - - "github.com/mum4k/termdash" - "github.com/mum4k/termdash/cell" - "github.com/mum4k/termdash/container" - "github.com/mum4k/termdash/keyboard" - "github.com/mum4k/termdash/linestyle" - "github.com/mum4k/termdash/terminal/termbox" - "github.com/mum4k/termdash/terminal/terminalapi" - "github.com/mum4k/termdash/widgets/donut" - "github.com/mum4k/termdash/widgets/text" -) - -const ( - // donut widget constants - playTypePercent playType = iota - playTypeAbsolute + "github.com/ignite/gex/cmd" ) -// optional port variable. example: `gex -p 30057` -var givenPort = flag.Int("p", 26657, "port to connect") -var givenHost = flag.String("h", "localhost", "host to connect") -var ssl = flag.Bool("s", false, "use SSL for connection") - -// Info describes a list of types with data that are used in the explorer -type Info struct { - blocks *Blocks - transactions *Transactions -} - -// Blocks describe content that gets parsed for block -type Blocks struct { - amount int - secondsPassed int - totalGasWanted int64 - gasWantedLatestBlock int64 - maxGasWanted int64 - lastTx int64 -} - -// Transactions describe content that gets parsed for transactions -type Transactions struct { - amount uint64 -} - -// playType indicates the type of the donut widget. -type playType int - func main() { - view() - - flag.Parse() - - // Init internal variables - info := Info{} - info.blocks = new(Blocks) - info.transactions = new(Transactions) - - connectionSignal := make(chan string) - - networkInfo, err := getFromRPC("status") - if err != nil { - fmt.Println("Application not running on " + fmt.Sprintf("%s:%d", *givenHost, *givenPort)) + if err := cmd.NewRootCmd().Execute(); err != nil { fmt.Println(err) os.Exit(1) } - - networkStatus := gjson.Parse(networkInfo) - - genesisRPC, _ := getFromRPC("genesis") - - genesisInfo := gjson.Parse(genesisRPC) - - ctx, cancel := context.WithCancel(context.Background()) - - // START INITIALISING WIDGETS - - // Creates Network Widget - currentNetworkWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := currentNetworkWidget.Write(networkStatus.Get("result.node_info.network").String()); err != nil { - panic(err) - } - - // Creates Health Widget - healthWidget, err := text.New() - if err != nil { - panic(err) - } - if err := healthWidget.Write("⌛ loading"); err != nil { - panic(err) - } - - // Creates System Time Widget - timeWidget, err := text.New() - if err != nil { - panic(err) - } - currentTime := time.Now() - if err := timeWidget.Write(fmt.Sprintf("%s\n", currentTime.Format("2006-01-02\n03:04:05 PM"))); err != nil { - panic(err) - } - - // Creates Connected Peers Widget - peerWidget, err := text.New() - if err != nil { - panic(err) - } - if err := peerWidget.Write("0"); err != nil { - panic(err) - } - - // Creates Seconds Between Blocks Widget - secondsPerBlockWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := secondsPerBlockWidget.Write("0"); err != nil { - panic(err) - } - - // Creates Max Block Size Widget - maxBlocksizeWidget, err := text.New() - - consensusParamsRPC, _ := getFromRPC("consensus_params") - - maxBlockSize := gjson.Get(consensusParamsRPC, "result.consensus_params.block.max_bytes").Int() - if err != nil { - panic(err) - } - if err := maxBlocksizeWidget.Write(fmt.Sprintf("%s", byteCountDecimal(maxBlockSize))); err != nil { - panic(err) - } - - // Creates Validators widget - validatorWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := validatorWidget.Write("List available validators.\n\n"); err != nil { - panic(err) - } - - // Creates Validators widget - gasMaxWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := gasMaxWidget.Write("How much gas.\n\n"); err != nil { - panic(err) - } - - // Creates Gas per Average Block Widget - gasAvgBlockWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := gasAvgBlockWidget.Write("How much gas.\n\n"); err != nil { - panic(err) - } - - // Creates Gas per Average Transaction Widget - gasAvgTransactionWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := gasAvgTransactionWidget.Write("How much gas.\n\n"); err != nil { - panic(err) - } - - // Creates Gas per Latest Transaction Widget - latestGasWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := latestGasWidget.Write("How much gas.\n\n"); err != nil { - panic(err) - } - - // BIG WIDGETS - - // Block Status Donut widget - green, err := donut.New( - donut.CellOpts(cell.FgColor(cell.ColorGreen)), - donut.Label("New Block Status", cell.FgColor(cell.ColorGreen)), - ) - if err != nil { - panic(err) - } - - // Transaction parsing widget - transactionWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := transactionWidget.Write("Transactions will appear as soon as they are confirmed in a block.\n\n"); err != nil { - panic(err) - } - - // Create Blocks parsing widget - blocksWidget, err := text.New(text.RollContent(), text.WrapAtWords()) - if err != nil { - panic(err) - } - if err := blocksWidget.Write(networkStatus.Get("result.sync_info.latest_block_height").String() + "\n"); err != nil { - panic(err) - } - - // END INITIALISING WIDGETS - - // The functions that execute the updating widgets. - - // system powered widgets - go writeTime(ctx, info, timeWidget, 1*time.Second) - - // rpc widgets - go writePeers(ctx, peerWidget, 1*time.Second) - go writeHealth(ctx, healthWidget, 500*time.Millisecond, connectionSignal) - go writeSecondsPerBlock(ctx, info, secondsPerBlockWidget, 1*time.Second) - go writeAmountValidators(ctx, validatorWidget, 3000*time.Millisecond, connectionSignal) - go writeGasWidget(ctx, info, gasMaxWidget, gasAvgBlockWidget, gasAvgTransactionWidget, latestGasWidget, 1000*time.Millisecond, connectionSignal, genesisInfo) - - // websocket powered widgets - go writeBlocks(ctx, info, blocksWidget, connectionSignal) - go writeTransactions(ctx, info, transactionWidget, connectionSignal) - go writeBlockDonut(ctx, green, 0, 20, 700*time.Millisecond, playTypePercent, connectionSignal) - - t, err := termbox.New() - if err != nil { - panic(err) - } - defer t.Close() - - // Draw Dashboard - c, err := container.New( - t, - container.Border(linestyle.Light), - container.BorderTitle("GEX: PRESS Q or ESC TO QUIT"), - container.BorderColor(cell.ColorNumber(2)), - container.SplitHorizontal( - container.Top( - container.SplitVertical( - container.Left( - container.SplitHorizontal( - container.Top( - container.SplitVertical( - container.Left( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("Network"), - container.PlaceWidget(currentNetworkWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Health"), - container.PlaceWidget(healthWidget), - ), - ), - ), - container.Right( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("System Time"), - container.PlaceWidget(timeWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Connected Peers"), - container.PlaceWidget(peerWidget), - ), - ), - ), - ), - ), - container.Bottom( - // INSERT NEW BOTTOM ROWS - container.SplitVertical( - container.Left( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("Latest Block"), - container.PlaceWidget(blocksWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Max Block Size"), - container.PlaceWidget(maxBlocksizeWidget), - ), - ), - ), - container.Right( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("s Between Blocks"), - container.PlaceWidget(secondsPerBlockWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Validators"), - container.PlaceWidget(validatorWidget), - ), - ), - ), - ), - ), - ), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Current Block Round"), - container.PlaceWidget(green), - ), - ), - ), - container.Bottom( - container.SplitVertical( - - container.Left( - container.SplitHorizontal( - container.Top( - container.SplitVertical( - container.Left( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("Gas Max"), - container.PlaceWidget(gasMaxWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Gas Ø Block"), - container.PlaceWidget(gasAvgBlockWidget), - ), - ), - ), - container.Right( - container.SplitVertical( - container.Left( - container.Border(linestyle.Light), - container.BorderTitle("Gas Ø Tx"), - container.PlaceWidget(gasAvgTransactionWidget), - ), - container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Gas Latest Tx"), - container.PlaceWidget(latestGasWidget), - ), - ), - ), - ), - ), - container.Bottom( - //empty - ), - ), - ), container.Right( - container.Border(linestyle.Light), - container.BorderTitle("Latest Confirmed Transactions"), - container.PlaceWidget(transactionWidget), - ), - ), - ), - ), - ) - if err != nil { - panic(err) - } - - quitter := func(k *terminalapi.Keyboard) { - if k.Key == 'q' || k.Key == 'Q' || k.Key == keyboard.KeyEsc { - cancel() - } - } - - if err := termdash.Run(ctx, t, c, termdash.KeyboardSubscriber(quitter)); err != nil { - panic(err) - } -} - -// writeTime writes the current system time to the timeWidget. -// Exits when the context expires. -func writeTime(ctx context.Context, info Info, t *text.Text, delay time.Duration) { - ticker := time.NewTicker(delay) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - currentTime := time.Now() - t.Reset() - if err := t.Write(fmt.Sprintf("%s\n", currentTime.Format("2006-01-02\n03:04:05 PM"))); err != nil { - panic(err) - } - info.blocks.secondsPassed++ - case <-ctx.Done(): - return - } - } -} - -// writeHealth writes the status to the healthWidget. -// Exits when the context expires. -func writeHealth(ctx context.Context, t *text.Text, delay time.Duration, connectionSignal chan string) { - reconnect := false - healthRPC, _ := getFromRPC("health") - health := gjson.Get(healthRPC, "result") - t.Reset() - if health.Exists() { - t.Write("✔️ good") - } else { - t.Write("✖️ not connected") - } - - ticker := time.NewTicker(delay) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - healthRPC, _ := getFromRPC("health") - health := gjson.Get(healthRPC, "result") - if health.Exists() { - t.Reset() - t.Write("✔️ good") - if reconnect == true { - connectionSignal <- "reconnect" - connectionSignal <- "reconnect" - connectionSignal <- "reconnect" - reconnect = false - } - } else { - t.Reset() - t.Write("✖️ not connected") - if reconnect == false { - connectionSignal <- "no_connection" - connectionSignal <- "no_connection" - connectionSignal <- "no_connection" - reconnect = true - } - } - case <-ctx.Done(): - return - } - } -} - -// writePeers writes the connected Peers to the peerWidget. -// Exits when the context expires. -func writePeers(ctx context.Context, t *text.Text, delay time.Duration) { - netInfoRPC, _ := getFromRPC("net_info") - - peers := gjson.Get(netInfoRPC, "result.n_peers").String() - t.Reset() - if peers != "" { - t.Write(peers) - } - if err := t.Write(peers); err != nil { - panic(err) - } - - ticker := time.NewTicker(delay) - t.Reset() - defer ticker.Stop() - - for { - select { - case <-ticker.C: - t.Reset() - netInfoRPC, _ := getFromRPC("net_info") - peers := gjson.Get(netInfoRPC, "result.n_peers").String() - if peers != "" { - t.Reset() - t.Write(peers) - } - - case <-ctx.Done(): - return - } - } -} - -// writeAmountValidators writes the status to the healthWidget. -// Exits when the context expires. -func writeAmountValidators(ctx context.Context, t *text.Text, delay time.Duration, connectionSignal chan string) { - reconnect := false - validatorsRPC, _ := getFromRPC("validators") - validators := gjson.Get(validatorsRPC, "result") - t.Reset() - if validators.Exists() { - t.Write("0") - } else { - t.Write("0") - } - - ticker := time.NewTicker(delay) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - validatorsRPC, _ := getFromRPC("validators") - validators := gjson.Get(validatorsRPC, "result") - if validators.Exists() { - t.Reset() - t.Write(validators.Get("total").String()) - if reconnect == true { - connectionSignal <- "reconnect" - connectionSignal <- "reconnect" - connectionSignal <- "reconnect" - reconnect = false - } - } else { - t.Reset() - t.Write("0") - if reconnect == false { - connectionSignal <- "no_connection" - connectionSignal <- "no_connection" - connectionSignal <- "no_connection" - reconnect = true - } - } - case <-ctx.Done(): - return - } - } -} - -// writeGasWidget writes the status to the healthWidget. -// Exits when the context expires. -func writeGasWidget(ctx context.Context, info Info, tMax *text.Text, tAvgBlock *text.Text, tAvgTx *text.Text, tLatest *text.Text, delay time.Duration, connectionSignal chan string, genesisInfo gjson.Result) { - tMax.Write("0") - tAvgBlock.Write("0") - tLatest.Write("0") - tAvgTx.Write("0") - - ticker := time.NewTicker(delay) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - tMax.Reset() - tAvgBlock.Reset() - tAvgTx.Reset() - tLatest.Reset() - - totalGasWanted := uint64(info.blocks.totalGasWanted) - totalBlocks := uint64(info.blocks.amount) - totalGasPerBlock := uint64(0) - - // don't divide by 0 - if totalBlocks > 0 { - totalGasPerBlock = uint64(totalGasWanted / totalBlocks) - } - - totalTransactions := uint64(info.transactions.amount) - - // don't divide by 0 - averageGasPerTx := uint64(0) - if totalTransactions > 0 { - averageGasPerTx = uint64(totalGasWanted / info.transactions.amount) - } - - tMax.Write(fmt.Sprintf("%v", numberWithComma(info.blocks.maxGasWanted))) - tAvgBlock.Write(fmt.Sprintf("%v", numberWithComma(int64(totalGasPerBlock)))) - tLatest.Write(fmt.Sprintf("%v", numberWithComma(info.blocks.lastTx))) - tAvgTx.Write(fmt.Sprintf("%v", numberWithComma(int64(averageGasPerTx)))) - case <-ctx.Done(): - return - } - } -} - -// writeSecondsPerBlock writes the status to the Time per block. -// Exits when the context expires. -func writeSecondsPerBlock(ctx context.Context, info Info, t *text.Text, delay time.Duration) { - - t.Reset() - - ticker := time.NewTicker(delay) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - t.Reset() - blocksPerSecond := 0.00 - if info.blocks.secondsPassed != 0 { - blocksPerSecond = float64(info.blocks.secondsPassed) / float64(info.blocks.amount) - } - - t.Write(fmt.Sprintf("%.2f seconds", blocksPerSecond)) - case <-ctx.Done(): - return - } - } -} - -// WEBSOCKET WIDGETS - -// writeBlocks writes the latest Block to the blocksWidget. -// Exits when the context expires. -func writeBlocks(ctx context.Context, info Info, t *text.Text, connectionSignal <-chan string) { - socket := gowebsocket.New(getWsUrl() + "/websocket") - - socket.OnTextMessage = func(message string, socket gowebsocket.Socket) { - currentBlock := gjson.Get(message, "result.data.value.block.header.height") - if currentBlock.String() != "" { - t.Reset() - err := t.Write(fmt.Sprintf("%v", numberWithComma(int64(currentBlock.Int())))) - if err != nil { - panic(err) - } - info.blocks.amount++ - info.blocks.maxGasWanted = gjson.Get(message, "result.data.value.result_end_block.consensus_param_updates.block.max_gas").Int() - } - - } - - socket.Connect() - - socket.SendText("{ \"jsonrpc\": \"2.0\", \"method\": \"subscribe\", \"params\": [\"tm.event='NewBlock'\"], \"id\": 1 }") - - for { - select { - case s := <-connectionSignal: - if s == "no_connection" { - socket.Close() - } - if s == "reconnect" { - writeBlocks(ctx, info, t, connectionSignal) - } - case <-ctx.Done(): - log.Println("interrupt") - socket.Close() - return - } - } -} - -// writeBlockDonut continuously changes the displayed percent value on the donut by the -// step once every delay. Exits when the context expires. -func writeBlockDonut(ctx context.Context, d *donut.Donut, start, step int, delay time.Duration, pt playType, connectionSignal <-chan string) { - socket := gowebsocket.New(getWsUrl() + "/websocket") - - socket.OnTextMessage = func(message string, socket gowebsocket.Socket) { - step := gjson.Get(message, "result.data.value.step") - progress := 0 - - if step.String() == "RoundStepNewHeight" { - progress = 100 - } - - if step.String() == "RoundStepCommit" { - progress = 80 - } - - if step.String() == "RoundStepPrecommit" { - progress = 60 - } - - if step.String() == "RoundStepPrevote" { - progress = 40 - } - - if step.String() == "RoundStepPropose" { - progress = 20 - } - - if err := d.Percent(progress); err != nil { - panic(err) - } - - } - - socket.Connect() - - socket.SendText("{ \"jsonrpc\": \"2.0\", \"method\": \"subscribe\", \"params\": [\"tm.event='NewRoundStep'\"], \"id\": 3 }") - - for { - select { - case s := <-connectionSignal: - if s == "no_connection" { - socket.Close() - } - if s == "reconnect" { - writeBlockDonut(ctx, d, start, step, delay, pt, connectionSignal) - } - case <-ctx.Done(): - log.Println("interrupt") - socket.Close() - return - } - } -} - -// writeTransactions writes the latest Transactions to the transactionsWidget. -// Exits when the context expires. -func writeTransactions(ctx context.Context, info Info, t *text.Text, connectionSignal <-chan string) { - socket := gowebsocket.New(getWsUrl() + "/websocket") - - socket.OnTextMessage = func(message string, socket gowebsocket.Socket) { - currentTx := gjson.Get(message, "result.data.value.TxResult.result.log") - currentTime := time.Now() - if currentTx.String() != "" { - if err := t.Write(fmt.Sprintf("%s\n", currentTime.Format("2006-01-02 03:04:05 PM")+"\n"+currentTx.String())); err != nil { - panic(err) - } - - info.blocks.totalGasWanted = info.blocks.totalGasWanted + gjson.Get(message, "result.data.value.TxResult.result.gas_wanted").Int() - info.blocks.lastTx = gjson.Get(message, "result.data.value.TxResult.result.gas_wanted").Int() - info.transactions.amount++ - } - } - - socket.Connect() - - socket.SendText("{ \"jsonrpc\": \"2.0\", \"method\": \"subscribe\", \"params\": [\"tm.event='Tx'\"], \"id\": 2 }") - - for { - select { - case s := <-connectionSignal: - if s == "no_connection" { - socket.Close() - } - if s == "reconnect" { - writeTransactions(ctx, info, t, connectionSignal) - } - case <-ctx.Done(): - log.Println("interrupt") - socket.Close() - return - } - } -} - -// UTIL FUNCTIONS - -// Get Data from RPC Endpoint -func getFromRPC(endpoint string) (string, error) { - resp, err := resty.R(). - SetHeader("Cache-Control", "no-cache"). - SetHeader("Content-Type", "application/json"). - Get(getHttpUrl() + "/" + endpoint) - - return resp.String(), err -} - -// byteCountDecimal calculates bytes integer to a human readable decimal number -func byteCountDecimal(b int64) string { - const unit = 1000 - if b < unit { - return fmt.Sprintf("%d B", b) - } - div, exp := int64(unit), 0 - for n := b / unit; n >= unit; n /= unit { - div *= unit - exp++ - } - return fmt.Sprintf("%.1f %cB", float64(b)/float64(div), "kMGTPE"[exp]) -} - -func numberWithComma(n int64) string { - in := strconv.FormatInt(n, 10) - numOfDigits := len(in) - if n < 0 { - numOfDigits-- // First character is the - sign (not a digit) - } - numOfCommas := (numOfDigits - 1) / 3 - - out := make([]byte, len(in)+numOfCommas) - if n < 0 { - in, out[0] = in[1:], '-' - } - - for i, j, k := len(in)-1, len(out)-1, 0; ; i, j = i-1, j-1 { - out[j] = in[i] - if i == 0 { - return string(out) - } - if k++; k == 3 { - j, k = j-1, 0 - out[j] = ',' - } - } -} - -func getHttpUrl() string { - return getUrl("http", *ssl) -} - -func getWsUrl() string { - return getUrl("ws", *ssl) -} - -func getUrl(protocol string, secure bool) string { - if secure { - protocol = protocol + "s" - } - - return fmt.Sprintf("%s://%s:%d", protocol, *givenHost, *givenPort) -} - -func view() { - api := new(ga.API) - api.ContentType = "application/x-www-form-urlencoded" - - client := new(ga.Client) - client.ProtocolVersion = "1" - client.ClientID = uuid.New().String() - client.TrackingID = "UA-183957259-1" - client.HitType = "event" - client.DocumentLocationURL = "https://github.com/cosmos/gex" - client.DocumentTitle = "Dashboard" - client.DocumentEncoding = "UTF-8" - client.EventCategory = "Start" - client.EventAction = "Dashboard" - client.EventLabel = "start" - - api.Send(client) } diff --git a/pkg/client/client.go b/pkg/client/client.go new file mode 100644 index 0000000..bbcd053 --- /dev/null +++ b/pkg/client/client.go @@ -0,0 +1,180 @@ +package client + +import ( + "context" + "time" + + coretypes "github.com/cometbft/cometbft/rpc/core/types" + "github.com/cometbft/cometbft/types" + "github.com/ignite/cli/v28/ignite/pkg/cosmosclient" + "github.com/ignite/cli/v28/ignite/pkg/errors" +) + +const tickerTime = 1 * time.Second + +// Client gex client. +type Client struct { + cosmosclient.Client +} + +// New creates a new Client. +func New(ctx context.Context, host string) (Client, error) { + client, err := cosmosclient.New(ctx, cosmosclient.WithNodeAddress(host)) + if err != nil { + return Client{}, err + } + + if err := client.RPC.Start(); err != nil { + return Client{}, err + } + + return Client{Client: client}, nil +} + +// NewBlock listen the new block event from the websocket subscriber. +func (c Client) NewBlock(ctx context.Context, fn func(types.EventDataNewBlock) error) error { + return c.Subscribe( + ctx, + types.EventNewBlock, + types.EventQueryNewBlock.String(), + func(event coretypes.ResultEvent) error { + blockEvent, ok := event.Data.(types.EventDataNewBlock) + if !ok { + return errors.Errorf("invalid event new block type: %v", event.Data) + } + return fn(blockEvent) + }, + ) +} + +// NewRoundStep listen the new round step event from the websocket subscriber. +func (c Client) NewRoundStep(ctx context.Context, fn func(types.EventDataRoundState) error) error { + return c.Subscribe( + ctx, + types.EventNewRoundStep, + types.EventQueryNewRoundStep.String(), + func(event coretypes.ResultEvent) error { + newRoundEvent, ok := event.Data.(types.EventDataRoundState) + if !ok { + return errors.Errorf("invalid event new round step type: %v", event.Data) + } + return fn(newRoundEvent) + }, + ) +} + +// Tx listen the new transaction event from the websocket subscriber. +func (c Client) Tx(ctx context.Context, fn func(types.EventDataTx) error) error { + return c.Subscribe( + ctx, + types.EventTx, + types.EventQueryTx.String(), + func(event coretypes.ResultEvent) error { + txEvent, ok := event.Data.(types.EventDataTx) + if !ok { + return errors.Errorf("invalid event tx type: %v", event.Data) + } + return fn(txEvent) + }, + ) +} + +// Subscribe listen websocket events based in the query. +func (c Client) Subscribe(ctx context.Context, subscriber, query string, fn func(coretypes.ResultEvent) error) error { + out, err := c.RPC.Subscribe(ctx, subscriber, query) + if err != nil { + return err + } + + go func() { + for { + select { + case <-ctx.Done(): + return + case resultEvent := <-out: + if err := fn(resultEvent); err != nil { + // TODO find a better way to send logs + // fmt.Println(err) + return + } + } + } + }() + + return nil +} + +// NetInfo fetch the network information for each new block. +func (c Client) NetInfo(ctx context.Context, fn func(coretypes.ResultNetInfo) error) { + c.BlockCallback(ctx, func(int64) error { + netInfo, err := c.RPC.NetInfo(ctx) + if err != nil { + return err + } + return fn(*netInfo) + }) +} + +// Health fetch the health information for each new block. +func (c Client) Health(ctx context.Context, fn func(*coretypes.ResultHealth, error) error) { + c.BlockCallback(ctx, func(int64) error { + return fn(c.RPC.Health(ctx)) + }) +} + +// Validators fetch the validators information for each new block. +func (c Client) Validators(ctx context.Context, fn func(coretypes.ResultValidators) error) { + c.BlockCallback(ctx, func(height int64) error { + page := 1 + count := 1_000 + validators, err := c.RPC.Validators(ctx, &height, &page, &count) + if err != nil { + return err + } + return fn(*validators) + }) +} + +// ConsensusParams fetch the consensus parameters for each new block. +func (c Client) ConsensusParams(ctx context.Context, fn func(coretypes.ResultConsensusParams) error) { + c.BlockCallback(ctx, func(height int64) error { + params, err := c.RPC.ConsensusParams(ctx, &height) + if err != nil { + return err + } + return fn(*params) + }) +} + +// BlockCallback execute the callback for each new block. +func (c Client) BlockCallback(ctx context.Context, fn func(height int64) error) { + Callback(ctx, tickerTime, func() error { + if err := c.WaitForNextBlock(ctx); err != nil { + return err + } + height, err := c.LatestBlockHeight(ctx) + if err != nil { + return err + } + return fn(height) + }) +} + +// Callback execute the callback for each time duration. +func Callback(ctx context.Context, d time.Duration, fn func() error) { + ticker := time.NewTicker(d) + go func() { + for { + select { + case <-ctx.Done(): + return + case <-ticker.C: + if err := fn(); err != nil { + // TODO find a better way to send logs + // fmt.Println(err) + return + } + } + } + }() +} diff --git a/pkg/number/number.go b/pkg/number/number.go new file mode 100644 index 0000000..7f87d10 --- /dev/null +++ b/pkg/number/number.go @@ -0,0 +1,46 @@ +package number + +import ( + "fmt" + "strconv" +) + +// ByteCountDecimal calculates bytes integer to a human-readable decimal number. +func ByteCountDecimal(b int64) string { + const unit = 1000 + if b < unit { + return fmt.Sprintf("%d B", b) + } + div, exp := int64(unit), 0 + for n := b / unit; n >= unit; n /= unit { + div *= unit + exp++ + } + return fmt.Sprintf("%.1f %cB", float64(b)/float64(div), "kMGTPE"[exp]) +} + +// WithComma return the number in string with comma. +func WithComma(n int64) string { + in := strconv.FormatInt(n, 10) + numOfDigits := len(in) + if n < 0 { + numOfDigits-- // First character is the - sign (not a digit) + } + numOfCommas := (numOfDigits - 1) / 3 + + out := make([]byte, len(in)+numOfCommas) + if n < 0 { + in, out[0] = in[1:], '-' + } + + for i, j, k := len(in)-1, len(out)-1, 0; ; i, j = i-1, j-1 { + out[j] = in[i] + if i == 0 { + return string(out) + } + if k++; k == 3 { + j, k = j-1, 0 + out[j] = ',' + } + } +} diff --git a/pkg/number/number_test.go b/pkg/number/number_test.go new file mode 100644 index 0000000..6f3e968 --- /dev/null +++ b/pkg/number/number_test.go @@ -0,0 +1,48 @@ +package number + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestByteCountDecimal(t *testing.T) { + tests := []struct { + name string + n int64 + want string + }{ + {"bytes", 42, "42 B"}, + {"kilobytes", 1024, "1.0 kB"}, + {"megabytes", 1048576, "1.0 MB"}, + {"gigabytes", 1073741824, "1.1 GB"}, + {"terabytes", 1099511627776, "1.1 TB"}, + {"petabytes", 1125899906842624, "1.1 PB"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := ByteCountDecimal(tt.n) + require.Equal(t, tt.want, got) + }) + } +} + +func TestWithComma(t *testing.T) { + tests := []struct { + name string + n int64 + want string + }{ + {"zero", 0, "0"}, + {"positive number", 123456789, "123,456,789"}, + {"negative number", -987654321, "-987,654,321"}, + {"small number", 42, "42"}, + {"large number", 1234567890123456789, "1,234,567,890,123,456,789"}, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := WithComma(tt.n) + require.Equal(t, tt.want, got) + }) + } +} diff --git a/pkg/widget/view.go b/pkg/widget/view.go new file mode 100644 index 0000000..85e0f96 --- /dev/null +++ b/pkg/widget/view.go @@ -0,0 +1,146 @@ +package widget + +import ( + "github.com/mum4k/termdash/cell" + "github.com/mum4k/termdash/container" + "github.com/mum4k/termdash/linestyle" +) + +// drawView draw all containers view. +func (w *Widget) drawView() (*container.Container, error) { + return container.New( + w.terminal, + container.Border(linestyle.Light), + container.BorderTitle("GEX: PRESS Q or ESC TO QUIT"), + container.BorderColor(cell.ColorNumber(2)), + container.SplitHorizontal( + container.Top( + container.SplitVertical( + container.Left( + container.SplitHorizontal( + container.Top( + container.SplitVertical( + container.Left( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Network"), + container.PlaceWidget(w.currentNetwork), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Moniker"), + container.PlaceWidget(w.moniker), + ), + ), + ), + container.Right( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Health"), + container.PlaceWidget(w.health), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("System Time"), + container.PlaceWidget(w.time), + ), + ), + ), + ), + ), + container.Bottom( + // Insert new bottom rows + container.SplitVertical( + container.Left( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Block Time"), + container.PlaceWidget(w.secondsPerBlock), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Max Block Size"), + container.PlaceWidget(w.maxBlockSize), + ), + ), + ), + container.Right( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Connected Peers"), + container.PlaceWidget(w.peers), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Validators"), + container.PlaceWidget(w.validators), + ), + ), + ), + ), + ), + ), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Current Block Round"), + container.PlaceWidget(w.blockProgress), + ), + ), + ), + container.Bottom( + container.SplitVertical( + container.Left( + container.SplitHorizontal( + container.Top( + container.SplitVertical( + container.Left( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Gas Max"), + container.PlaceWidget(w.gasMax), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Gas Ø Block"), + container.PlaceWidget(w.gasAvgBlock), + ), + ), + ), + container.Right( + container.SplitVertical( + container.Left( + container.Border(linestyle.Light), + container.BorderTitle("Gas Ø Tx"), + container.PlaceWidget(w.gasAvgTransaction), + ), + container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Gas Latest Tx"), + container.PlaceWidget(w.latestGas), + ), + ), + ), + ), + ), + container.Bottom( + container.Border(linestyle.Light), + container.BorderTitle("Latest Blocks"), + container.PlaceWidget(w.blocks), + ), + ), + ), container.Right( + container.Border(linestyle.Light), + container.BorderTitle("Latest Confirmed Transactions"), + container.PlaceWidget(w.transactions), + ), + ), + ), + ), + ) +} diff --git a/pkg/widget/widget.go b/pkg/widget/widget.go new file mode 100644 index 0000000..5451204 --- /dev/null +++ b/pkg/widget/widget.go @@ -0,0 +1,196 @@ +package widget + +import ( + "context" + "time" + + "github.com/mum4k/termdash" + "github.com/mum4k/termdash/cell" + "github.com/mum4k/termdash/container" + "github.com/mum4k/termdash/keyboard" + "github.com/mum4k/termdash/terminal/termbox" + "github.com/mum4k/termdash/terminal/terminalapi" + "github.com/mum4k/termdash/widgets/donut" + "github.com/mum4k/termdash/widgets/text" +) + +const loading = "⌛ loading..." + +// Widget widget container holder. +type Widget struct { + terminal *termbox.Terminal + container *container.Container + currentNetwork *text.Text + health *text.Text + time *text.Text + peers *text.Text + secondsPerBlock *text.Text + maxBlockSize *text.Text + validators *text.Text + gasMax *text.Text + gasAvgBlock *text.Text + gasAvgTransaction *text.Text + latestGas *text.Text + transactions *text.Text + blocks *text.Text + moniker *text.Text + blockProgress *donut.Donut +} + +// New initialize widgets. +func New() (*Widget, error) { + var ( + widget = new(Widget) + err error + ) + + // Creates Network Widget. + if widget.currentNetwork, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.currentNetwork.Write(loading); err != nil { + return widget, err + } + + // Creates Health Widget. + if widget.health, err = text.New(); err != nil { + return widget, err + } + if err := widget.health.Write(loading); err != nil { + return widget, err + } + + // Creates System Time Widget. + if widget.time, err = text.New(); err != nil { + return widget, err + } + currentTime := time.Now() + if err := widget.time.Write(currentTime.Format("2006-01-02\n15:04:05")); err != nil { + return widget, err + } + + // Creates Connected Peers Widget. + if widget.peers, err = text.New(); err != nil { + return widget, err + } + if err := widget.peers.Write("0"); err != nil { + return widget, err + } + + // Creates Seconds Between Blocks Widget. + if widget.secondsPerBlock, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.secondsPerBlock.Write("0"); err != nil { + return widget, err + } + + // Creates Max Block Size Widget. + if widget.maxBlockSize, err = text.New(); err != nil { + return widget, err + } + if err := widget.maxBlockSize.Write("0"); err != nil { + return widget, err + } + + // Creates Validators widget. + if widget.validators, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.validators.Write(loading); err != nil { + return widget, err + } + + // Creates Validators widget. + if widget.gasMax, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.gasMax.Write(loading); err != nil { + return widget, err + } + + // Creates Gas per Average Block Widget. + if widget.gasAvgBlock, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.gasAvgBlock.Write(loading); err != nil { + return widget, err + } + + // Creates Gas per Average Transaction Widget. + if widget.gasAvgTransaction, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.gasAvgTransaction.Write(loading); err != nil { + return widget, err + } + + // Creates Gas per Latest Transaction Widget. + if widget.latestGas, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.latestGas.Write(loading); err != nil { + return widget, err + } + + // Add big widgets. + + // Block Status Donut widget. + if widget.blockProgress, err = donut.New( + donut.CellOpts(cell.FgColor(cell.ColorGreen)), + donut.Label("New Block Status", cell.FgColor(cell.ColorGreen)), + ); err != nil { + return widget, err + } + + // Transaction parsing widget. + if widget.transactions, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.transactions.Write("Transactions will appear as soon as they are confirmed in a moniker."); err != nil { + return widget, err + } + + // Blocks parsing widget. + if widget.blocks, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + + // Create Blocks parsing widget. + if widget.moniker, err = text.New(text.RollContent(), text.WrapAtWords()); err != nil { + return widget, err + } + if err := widget.moniker.Write(loading); err != nil { + return widget, err + } + + if widget.terminal, err = termbox.New(); err != nil { + return widget, err + } + + if widget.container, err = widget.drawView(); err != nil { + return widget, err + } + + return widget, nil +} + +// Cleanup widgets. +func (w *Widget) Cleanup() { + w.terminal.Close() +} + +// Run the widget view. +func (w *Widget) Run(ctx context.Context) error { + defer w.Cleanup() + + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + quitter := func(k *terminalapi.Keyboard) { + if k.Key == 'q' || k.Key == 'Q' || k.Key == keyboard.KeyEsc { + cancel() + } + } + return termdash.Run(ctx, w.terminal, w.container, termdash.KeyboardSubscriber(quitter)) +} diff --git a/pkg/widget/write.go b/pkg/widget/write.go new file mode 100644 index 0000000..55f2335 --- /dev/null +++ b/pkg/widget/write.go @@ -0,0 +1,105 @@ +package widget + +import ( + "fmt" + "strconv" + "time" + + "github.com/mum4k/termdash/cell" + "github.com/mum4k/termdash/widgets/donut" + "github.com/mum4k/termdash/widgets/text" +) + +// SetCurrentNetwork reset the widget and set current network text. +func (w *Widget) SetCurrentNetwork(txt string, opts ...text.WriteOption) error { + w.currentNetwork.Reset() + return w.currentNetwork.Write(txt, opts...) +} + +// SetHealth resets the widget and sets health text. +func (w *Widget) SetHealth(txt string, opts ...text.WriteOption) error { + w.health.Reset() + return w.health.Write(txt, opts...) +} + +// SetTime resets the widget and sets time text. +func (w *Widget) SetTime(txt string, opts ...text.WriteOption) error { + w.time.Reset() + return w.time.Write(txt, opts...) +} + +// SetPeers resets the widget and sets peers text. +func (w *Widget) SetPeers(peers int, opts ...text.WriteOption) error { + w.peers.Reset() + return w.peers.Write(strconv.Itoa(peers), opts...) +} + +// SetSecondsPerBlock resets the widget and sets seconds per block text. +func (w *Widget) SetSecondsPerBlock(txt string, opts ...text.WriteOption) error { + w.secondsPerBlock.Reset() + return w.secondsPerBlock.Write(txt, opts...) +} + +// SetMaxBlockSize resets the widget and sets max block size text. +func (w *Widget) SetMaxBlockSize(txt string, opts ...text.WriteOption) error { + w.maxBlockSize.Reset() + return w.maxBlockSize.Write(txt, opts...) +} + +// SetValidators resets the widget and sets validators text. +func (w *Widget) SetValidators(validators int, opts ...text.WriteOption) error { + w.validators.Reset() + return w.validators.Write(strconv.Itoa(validators), opts...) +} + +// SetGasMax resets the widget and sets gas max text. +func (w *Widget) SetGasMax(txt string, opts ...text.WriteOption) error { + w.gasMax.Reset() + return w.gasMax.Write(txt, opts...) +} + +// SetGasAvgBlock resets the widget and sets gas average per block text. +func (w *Widget) SetGasAvgBlock(txt string, opts ...text.WriteOption) error { + w.gasAvgBlock.Reset() + return w.gasAvgBlock.Write(txt, opts...) +} + +// SetGasAvgTransaction resets the widget and sets gas average per transaction text. +func (w *Widget) SetGasAvgTransaction(txt string, opts ...text.WriteOption) error { + w.gasAvgTransaction.Reset() + return w.gasAvgTransaction.Write(txt, opts...) +} + +// SetLatestGas resets the widget and sets latest gas text. +func (w *Widget) SetLatestGas(txt string, opts ...text.WriteOption) error { + w.latestGas.Reset() + return w.latestGas.Write(txt, opts...) +} + +// SetMoniker resets the widget and sets moniker text. +func (w *Widget) SetMoniker(text string, opts ...text.WriteOption) error { + w.moniker.Reset() + return w.moniker.Write(text, opts...) +} + +// AddTransaction adds a new transaction to the widget. +func (w *Widget) AddTransaction(txt string, opts ...text.WriteOption) error { + now := time.Now().Format("2006-01-02 15:04:05") + if err := w.transactions.Write( + fmt.Sprintf("\n\nNew Transaction (%s)\n", now), + text.WriteCellOpts(cell.Bold(), cell.Inverse()), + ); err != nil { + return err + } + return w.transactions.Write(txt, opts...) +} + +// AddBlock adds a new block to the widget. +func (w *Widget) AddBlock(txt string, opts ...text.WriteOption) error { + return w.blocks.Write(txt+"\n", opts...) +} + +// SetBlockProgress sets the progress of the block in the widget. +func (w *Widget) SetBlockProgress(percent int, opts ...donut.Option) error { + return w.blockProgress.Percent(percent, opts...) +} diff --git a/pkg/xurl/xurl.go b/pkg/xurl/xurl.go new file mode 100644 index 0000000..1fb106d --- /dev/null +++ b/pkg/xurl/xurl.go @@ -0,0 +1,73 @@ +package xurl + +import ( + "fmt" + "net" + "net/url" + "strings" +) + +const ( + schemeHTTP = "http" + schemeHTTPS = "https" +) + +// Parse ensures that url has a port number and scheme suits with the connection type. +func Parse(s string) (*url.URL, error) { + // Check if the URL contains a schema + if !strings.Contains(s, "://") { + // Handle the case where the URI is an IP:PORT or HOST:PORT + // without scheme prefix because that case can't be URL parsed. + // When the URI has no scheme it is parsed as a path by "url.Parse" + // placing the colon within the path, which is invalid. + if host, isAddrPort := addressPort(address(s)); isAddrPort { + return &url.URL{Host: host}, nil + } + + // Prepend a default schema (e.g., "http://") if it doesn't have one + s = fmt.Sprintf("%s://%s:80", schemeHTTP, s) + } + + // Parsing the URL + u, err := url.Parse(s) + if err != nil { + return nil, err + } + + port := u.Port() + if port == "" { + port = "80" + if IsSSL(u) { + port = "443" + } + } + + u.Host = fmt.Sprintf("%s:%s", u.Hostname(), port) + return u, nil +} + +// IsSSL ensures that address is SSL protocol. +func IsSSL(url *url.URL) bool { + return url.Scheme == schemeHTTPS +} + +// address ensures that address contains localhost as host if non specified. +func address(address string) string { + if strings.HasPrefix(address, ":") { + return "localhost" + address + } + return address +} + +// addressPort verify if the string is an address and port host. +func addressPort(s string) (string, bool) { + // Use the net split function to support IPv6 addresses + host, port, err := net.SplitHostPort(s) + if err != nil { + return "", false + } + if host == "" { + host = "0.0.0.0" + } + return net.JoinHostPort(host, port), true +} diff --git a/pkg/xurl/xurl_test.go b/pkg/xurl/xurl_test.go new file mode 100644 index 0000000..1e276e6 --- /dev/null +++ b/pkg/xurl/xurl_test.go @@ -0,0 +1,192 @@ +package xurl + +import ( + "net/url" + "testing" + + "github.com/ignite/cli/v28/ignite/pkg/errors" + "github.com/stretchr/testify/require" +) + +func TestParse(t *testing.T) { + cases := []struct { + name string + addr string + want *url.URL + err error + }{ + { + name: "http", + addr: "http://localhost", + want: &url.URL{Host: "localhost:80", Scheme: schemeHTTP}, + }, + { + name: "https", + addr: "https://localhost", + want: &url.URL{Host: "localhost:443", Scheme: schemeHTTPS}, + }, + { + name: "custom", + addr: "http://localhost:4000", + want: &url.URL{Host: "localhost:4000", Scheme: schemeHTTP}, + }, + { + name: "custom ssl", + addr: "https://localhost:4005", + want: &url.URL{Host: "localhost:4005", Scheme: schemeHTTPS}, + }, + { + name: "no schema and port", + addr: "localhost", + want: &url.URL{Host: "localhost:80", Scheme: schemeHTTP}, + }, + { + name: "no schema", + addr: "localhost:80", + want: &url.URL{Host: "localhost:80"}, + }, + { + name: "invalid address", + addr: "://.e", + err: errors.New("parse \"://.e\": missing protocol scheme"), + }, + } + + for _, tt := range cases { + t.Run(tt.name, func(t *testing.T) { + addr, err := Parse(tt.addr) + if tt.err != nil { + require.Error(t, err) + require.Equal(t, tt.err.Error(), err.Error()) + return + } + require.NoError(t, err) + require.EqualValues(t, tt.want, addr) + }) + } +} + +func Test_addressPort(t *testing.T) { + tests := []struct { + name string + arg string + wantHost string + want bool + }{ + { + name: "URI path", + arg: "/test/false", + want: false, + }, + { + name: "invalid address", + arg: "aeihf3/aef/f..//", + want: false, + }, + { + name: "host and port", + arg: "102.33.3.43:10000", + wantHost: "102.33.3.43:10000", + want: true, + }, + { + name: "local port", + arg: "0.0.0.0:10000", + wantHost: "0.0.0.0:10000", + want: true, + }, + { + name: "only port", + arg: ":10000", + wantHost: "0.0.0.0:10000", + want: true, + }, + { + name: "only host", + arg: "102.33.3.43", + want: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + gotHost, got := addressPort(tt.arg) + require.Equal(t, tt.want, got) + require.Equal(t, tt.wantHost, gotHost) + }) + } +} + +func Test_address(t *testing.T) { + tests := []struct { + name string + address string + want string + }{ + { + name: "localhost", + address: "localhost", + want: "localhost", + }, + { + name: "empty port", + address: "127.0.0.1", + want: "127.0.0.1", + }, + { + name: "empty string", + address: "", + want: "", + }, + { + name: "empty host and port", + address: ":", + want: "localhost:", + }, + { + name: "empty host", + address: ":80", + want: "localhost:80", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := address(tt.address) + require.Equal(t, tt.want, got) + }) + } +} + +func TestIsSSL(t *testing.T) { + tests := []struct { + name string + url *url.URL + want bool + }{ + { + name: "no ssl", + url: &url.URL{Host: "localhost:80", Scheme: schemeHTTP}, + want: false, + }, + { + name: "just not ssl schema", + url: &url.URL{Scheme: schemeHTTP}, + want: false, + }, + { + name: "ssl", + url: &url.URL{Host: "localhost:80", Scheme: schemeHTTPS}, + want: true, + }, + { + name: "just ssl schema", + url: &url.URL{Scheme: schemeHTTPS}, + want: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := IsSSL(tt.url) + require.Equal(t, tt.want, got) + }) + } +} diff --git a/readme.md b/readme.md index db74fc4..00ad376 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ GEX is a real time in-terminal explorer for Cosmos SDK blockchains. See the [Check out your Cosmos SDK blockchain in a terminal-based block explorer](https://blog.cosmos.network/gaia-explorer-in-terminal-f37a4ea52e3c) blog post to learn more about GEX. -The GEX explorer displays blocks, transactions, validator, network status, and more information. Use the GEX block explorer to see the status of peers, connection, version, and other useful information to have a quick peek into your own node. GEX works with Starport. +The GEX explorer displays blocks, transactions, validator, network status, and more information. Use the GEX block explorer to see the status of peers, connection, version, and other useful information to have a quick peek into your own node. GEX works with Ignite. ## Install GEX @@ -10,52 +10,52 @@ The GEX installation requires Go. If you don't already have Go installed, see ht To install the GEX binary: -```sh -go install github.com/cosmos/gex@latest +```shell +go install github.com/ignite/gex@latest ``` ## Run GEX To launch a GEX explorer in your terminal window, type: -```sh -gex +```shell +gex explorer ``` and hit enter. ## Optional Host -Configure an optional host, instead of using the default RPC host `localhost` +Configure an optional host, instead of using the default RPC host `http://localhost:26657` -```sh -gex -h 192.168.0.1 +```shell +gex explorer 192.168.0.1 ``` ## Optional Port -Configure an optional port, instead of using the default RPC port `26657` +Configure an optional port -```sh -gex -p 27657 -``` - -## Optional Secure Transport -Configure connection to use SSL for HTTP and websockets requests -```sh -gex -s +```shell +gex explorer 192.168.0.1:27657 ``` ## Print help -```sh -gex --help -Usage of gex: - -h string - host to connect (default "localhost") - -p int - port to connect (default 26657) - -s boolean - use SSL for connection +```shell +Usage: + gex [command] + +Available Commands: + completion Generate the autocompletion script for the specified shell + explorer Gex is a cosmos explorer for terminals + help Help about any command + version Print the current build information + +Flags: + -h, --help help for gex + +Use "gex [command] --help" for more information about a command. + ``` ## Preview @@ -64,9 +64,9 @@ Usage of gex: ## Run In Development -To manually run GEX, clone the `github.com/cosmos/gex` repository and then cd into the `gex` directory. Then to run GEX manually, type this command in a terminal window: +To manually run GEX, clone the `github.com/ignite/gex` repository and then cd into the `gex` directory. Then to run GEX manually, type this command in a terminal window: -`go run main.go` +`go run main.go explorer` ## Contribute diff --git a/screenshot.png b/screenshot.png index 987feca4a64cac0874bc2afec437eae77402c739..67469573f11d63ba545367ce2d1b5a77285277fa 100644 GIT binary patch literal 340841 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

ON~6Ic+>za>?n8TWXi+EtBV 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≀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 L+V%XarjPy)6I2&2 literal 94544 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�^zBi>S=?FxKx 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 z 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 a1s+(?IO&dtpA{0~?~$CEY?<_v!2bg*t=J?0 diff --git a/services/explorer/explorer.go b/services/explorer/explorer.go new file mode 100644 index 0000000..f989c9f --- /dev/null +++ b/services/explorer/explorer.go @@ -0,0 +1,201 @@ +package explorer + +import ( + "context" + "fmt" + "strings" + "sync" + "time" + + "github.com/cometbft/cometbft/libs/json" + coretypes "github.com/cometbft/cometbft/rpc/core/types" + "github.com/cometbft/cometbft/types" + "golang.org/x/sync/errgroup" + + "github.com/ignite/gex/pkg/client" + "github.com/ignite/gex/pkg/number" + "github.com/ignite/gex/pkg/widget" +) + +const ( + statusConnected = "✔️ good" + statusNotConnected = "✖️ not connected" +) + +var ( + RoundStepPropose = strings.ToUpper("RoundStepPropose") + RoundStepPreVote = strings.ToUpper("RoundStepPrevote") + RoundStepPreCommit = strings.ToUpper("RoundStepPrecommit") + RoundStepCommit = strings.ToUpper("RoundStepCommit") + RoundStepNewHeight = strings.ToUpper("RoundStepNewHeight") +) + +// info holds all cross infos. +type info struct { + sync.RWMutex + blocks int64 + maxGasWanted int64 + transactions int64 + totalGasWanted int64 + lastTxGasWanted int64 +} + +// Run runs the explorer view listening to the provided host. +func Run(ctx context.Context, host string) error { + ctx, cancel := context.WithCancel(ctx) + defer cancel() + + c, err := client.New(ctx, host) + if err != nil { + return err + } + + w, err := widget.New() + if err != nil { + return err + } + + var ( + info = &info{} + start = time.Now() + ) + + errGroup, _ := errgroup.WithContext(ctx) + errGroup.Go(func() error { + status, err := c.Status(ctx) + if err != nil { + return err + } + + if err := w.SetCurrentNetwork(status.NodeInfo.Network); err != nil { + return err + } + return w.SetMoniker(status.NodeInfo.Moniker) + }) + + client.Callback(ctx, 1*time.Second, func() error { + now := time.Now() + if err := w.SetTime(now.Format("2006-01-02\n15:04:05")); err != nil { + return err + } + secondsPassed := now.Sub(start).Seconds() + + info.RLock() + var ( + lastTxGasWanted = info.lastTxGasWanted + maxGasWanted = info.maxGasWanted + blocksPerSecond = 0.0 + totalGasPerBlock = int64(0) + averageGasPerTx = int64(0) + ) + if info.blocks > 0 { + totalGasPerBlock = info.totalGasWanted / info.blocks + blocksPerSecond = secondsPassed / float64(info.blocks) + } + if info.transactions > 0 { + averageGasPerTx = info.totalGasWanted / info.transactions + } + info.RUnlock() + + if err := w.SetSecondsPerBlock(fmt.Sprintf("%.2f seconds", blocksPerSecond)); err != nil { + return err + } + + if err := w.SetGasMax(number.WithComma(maxGasWanted)); err != nil { + return err + } + + if err := w.SetGasAvgBlock(number.WithComma(totalGasPerBlock)); err != nil { + return err + } + + if err := w.SetLatestGas(number.WithComma(lastTxGasWanted)); err != nil { + return err + } + + return w.SetGasAvgTransaction(number.WithComma(averageGasPerTx)) + }) + + c.ConsensusParams(ctx, func(params coretypes.ResultConsensusParams) error { + info.Lock() + info.maxGasWanted = params.ConsensusParams.Block.MaxGas + info.Unlock() + return w.SetMaxBlockSize(number.ByteCountDecimal(params.ConsensusParams.Block.MaxBytes)) + }) + + c.NetInfo(ctx, func(info coretypes.ResultNetInfo) error { + return w.SetPeers(info.NPeers) + }) + + c.Health(ctx, func(health *coretypes.ResultHealth, err error) error { + if health != nil && err == nil { + return w.SetHealth(statusConnected) + } + return w.SetHealth(statusNotConnected) + }) + + c.Validators(ctx, func(validators coretypes.ResultValidators) error { + return w.SetValidators(validators.Total) + }) + + err = c.NewRoundStep(ctx, func(state types.EventDataRoundState) error { + progress := 0 + switch strings.ToUpper(state.Step) { + case RoundStepPropose: + progress = 20 + case RoundStepPreVote: + progress = 40 + case RoundStepPreCommit: + progress = 60 + case RoundStepCommit: + progress = 80 + case RoundStepNewHeight: + progress = 100 + } + return w.SetBlockProgress(progress) + }) + if err != nil { + return err + } + + err = c.NewBlock(ctx, func(block types.EventDataNewBlock) error { + info.Lock() + info.blocks++ + info.Unlock() + + return w.AddBlock( + fmt.Sprintf( + "%d %s txs:%d", + block.Block.Height, + block.Block.Header.Hash(), + block.Block.Txs.Len(), + ), + ) + }) + if err != nil { + return err + } + + err = c.Tx(ctx, func(tx types.EventDataTx) error { + info.Lock() + info.transactions++ + info.lastTxGasWanted = tx.Result.GasWanted + info.totalGasWanted += info.lastTxGasWanted + info.Unlock() + + result, err := json.Marshal(tx.Result) + if err != nil { + return err + } + return w.AddTransaction(string(result)) + }) + if err != nil { + return err + } + + if err := errGroup.Wait(); err != nil { + return err + } + + return w.Run(ctx) +} diff --git a/version/version.go b/version/version.go new file mode 100644 index 0000000..250db8c --- /dev/null +++ b/version/version.go @@ -0,0 +1,164 @@ +package version + +import ( + "bytes" + "context" + "fmt" + "os" + "path" + "runtime" + "runtime/debug" + "strings" + "text/tabwriter" + + "github.com/blang/semver/v4" + "github.com/google/go-github/v48/github" + "github.com/ignite/cli/v28/ignite/pkg/cmdrunner/exec" + "github.com/ignite/cli/v28/ignite/pkg/cmdrunner/step" + "github.com/ignite/cli/v28/ignite/pkg/xexec" +) + +const ( + versionDev = "development" + versionNightly = "nightly" +) + +// Version is the semantic version of Gex. +var Version = versionDev + +// CheckNext checks whether there is a new version of Gex. +func CheckNext(ctx context.Context) (isAvailable bool, version string, err error) { + if Version == versionDev || Version == versionNightly { + return false, "", nil + } + + tagName, err := getLatestReleaseTag(ctx) + if err != nil { + return false, "", err + } + + currentVersion, err := semver.ParseTolerant(Version) + if err != nil { + return false, "", err + } + + latestVersion, err := semver.ParseTolerant(tagName) + if err != nil { + return false, "", err + } + + isAvailable = latestVersion.GT(currentVersion) + + return isAvailable, tagName, nil +} + +func getLatestReleaseTag(ctx context.Context) (string, error) { + latest, _, err := github. + NewClient(nil). + Repositories. + GetLatestRelease(ctx, "ignite", "gex") + if err != nil { + return "", err + } + + if latest.TagName == nil { + return "", nil + } + + return *latest.TagName, nil +} + +// resolveDevVersion creates a string for version printing if the version being used is "development". +// the version will be of the form "LATEST-dev" where LATEST is the latest tagged release. +func resolveDevVersion(ctx context.Context) string { + // do nothing if built with specific tag + if Version != versionDev && Version != versionNightly { + return Version + } + + tag, err := getLatestReleaseTag(ctx) + if err != nil { + return Version + } + + // if the module version is higher than the latest tag, use the module version + if info, ok := debug.ReadBuildInfo(); ok { + if version := path.Base(info.Main.Path); version > tag { + tag = fmt.Sprintf("%s.0.0", version) + } + } + + if Version == versionDev { + return tag + "-dev" + } + if Version == versionNightly { + return tag + "-nightly" + } + + return Version +} + +// Long generates a detailed version info. +func Long(ctx context.Context) string { + var ( + w = &tabwriter.Writer{} + b = &bytes.Buffer{} + date = "undefined" + head = "undefined" + modified bool + ) + if info, ok := debug.ReadBuildInfo(); ok { + for _, kv := range info.Settings { + switch kv.Key { + case "vcs.revision": + head = kv.Value + case "vcs.time": + date = kv.Value + case "vcs.modified": + modified = kv.Value == "true" + } + } + if modified { + // add * suffix to head to indicate the sources have been modified. + head += "*" + } + } + + write := func(k string, v interface{}) { + fmt.Fprintf(w, "%s:\t%v\n", k, v) + } + + w.Init(b, 0, 8, 0, '\t', 0) + + write("Gex version", resolveDevVersion(ctx)) + write("Gex build date", date) + write("Gex source hash", head) + + write("Your OS", runtime.GOOS) + write("Your arch", runtime.GOARCH) + + cmdOut := &bytes.Buffer{} + err := exec.Exec(ctx, []string{"go", "version"}, exec.StepOption(step.Stdout(cmdOut))) + if err != nil { + panic(err) + } + write("Your go version", strings.TrimSpace(cmdOut.String())) + + unameCmd := "uname" + if xexec.IsCommandAvailable(unameCmd) { + cmdOut.Reset() + + err := exec.Exec(ctx, []string{unameCmd, "-a"}, exec.StepOption(step.Stdout(cmdOut))) + if err == nil { + write("Your uname -a", strings.TrimSpace(cmdOut.String())) + } + } + + if cwd, err := os.Getwd(); err == nil { + write("Your cwd", cwd) + } + + w.Flush() + + return b.String() +} diff --git a/websocket.go b/websocket.go deleted file mode 100644 index 21c3c62..0000000 --- a/websocket.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -// example websocket connection to blocks - -import ( - "log" - "os" - "os/signal" - - "github.com/sacOO7/gowebsocket" -) - -// func main() { -// websocket() -// } - -func websocket() { - interrupt := make(chan os.Signal, 1) - signal.Notify(interrupt, os.Interrupt) - - socket := gowebsocket.New("ws://localhost:26657/websocket") - - socket.OnConnectError = func(err error, socket gowebsocket.Socket) { - log.Fatal("Received connect error - ", err) - } - - socket.OnConnected = func(socket gowebsocket.Socket) { - log.Println("Connected to server") - } - - socket.OnTextMessage = func(message string, socket gowebsocket.Socket) { - log.Println("Received message - " + message) - } - - socket.OnPingReceived = func(data string, socket gowebsocket.Socket) { - log.Println("Received ping - " + data) - } - - socket.OnPongReceived = func(data string, socket gowebsocket.Socket) { - log.Println("Received pong - " + data) - } - - socket.OnDisconnected = func(err error, socket gowebsocket.Socket) { - log.Println("Disconnected from server ") - return - } - - socket.Connect() - - socket.SendText("{ \"jsonrpc\": \"2.0\", \"method\": \"subscribe\", \"params\": [\"tm.event='NewBlock'\"], \"id\": 1 }") - - for { - select { - case <-interrupt: - log.Println("interrupt") - socket.Close() - return - } - } -}