From 33628e353cdace3ad1b8eaf9b23ccaf7c15d49fd Mon Sep 17 00:00:00 2001
From: MagicManatee <69170322+ArthurSudbrackIbarra@users.noreply.github.com>
Date: Thu, 5 Oct 2023 16:39:45 -0300
Subject: [PATCH] Cloney Version 0.2.0 (#2)
---
.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md | 15 +
.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md | 31 ++
.github/workflows/testing.yaml | 4 -
CHANGELOG.md | 46 +++
LICENSE | 21 ++
README.md | 2 +-
cli/commands/clone.go | 7 +-
cli/commands/docs.go | 46 +++
cli/commands/docs_test.go | 3 +
cli/commands/dryrun.go | 17 +-
cli/commands/info.go | 5 +-
cli/commands/start.go | 5 +-
cli/commands/steps/steps.go | 6 +-
cli/commands/validate.go | 20 +-
cli/commands/validate_test.go | 3 +
cli/commands/version.go | 1 +
cli/root.go | 4 +-
config/config.go | 51 +--
go.mod | 15 +-
go.sum | 436 +---------------------
images/cloney-documentation.png | Bin 153603 -> 187312 bytes
images/cloney-logo-no-text-rounded.png | Bin 0 -> 30446 bytes
images/cloney-logo-no-text.png | Bin 0 -> 21109 bytes
images/cloney-logo-rounded.png | Bin 0 -> 30933 bytes
images/cloney-logo-transparent.png | Bin 0 -> 30310 bytes
main.go | 11 -
templates/custom_funcs.go | 27 +-
templates/template.go | 19 +-
28 files changed, 248 insertions(+), 547 deletions(-)
create mode 100644 .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
create mode 100644 .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
create mode 100644 CHANGELOG.md
create mode 100644 LICENSE
create mode 100644 cli/commands/docs.go
create mode 100644 cli/commands/docs_test.go
create mode 100644 cli/commands/validate_test.go
create mode 100644 images/cloney-logo-no-text-rounded.png
create mode 100644 images/cloney-logo-no-text.png
create mode 100644 images/cloney-logo-rounded.png
create mode 100644 images/cloney-logo-transparent.png
diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
new file mode 100644
index 0000000..fad3b7a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md
@@ -0,0 +1,15 @@
+# Feature Description
+
+A clear and concise description of the feature you would like to request.
+
+## Use Case
+
+Describe the use case or problem this feature would solve.
+
+## Proposed Solution
+
+If you have any ideas or suggestions on how this feature could be implemented, please describe them here.
+
+## Additional Information
+
+Add any additional information or context about the feature request.
diff --git a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000..49f9b6b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
@@ -0,0 +1,31 @@
+# Bug Description
+
+A clear and concise description of the bug.
+
+## Steps to Reproduce
+
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See the error.
+
+## Expected Behavior
+
+A clear and concise description of what you expected to happen.
+
+## Actual Behavior
+
+A clear and concise description of what actually happened.
+
+## Screenshots or Additional Information
+
+If applicable, add screenshots or additional information to help explain the problem.
+
+## Environment
+
+- **Operating System**: [e.g., Windows, macOS, Linux]
+- **Cloney Version**: [e.g., 22]
+
+## Additional Context
+
+Add any other context about the problem here.
diff --git a/.github/workflows/testing.yaml b/.github/workflows/testing.yaml
index 25dfed1..f39ff40 100644
--- a/.github/workflows/testing.yaml
+++ b/.github/workflows/testing.yaml
@@ -11,10 +11,6 @@ on:
branches:
- main
-# Environment variables required when running the tests.
-env:
- PERSONAL_ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
-
jobs:
test:
runs-on: ubuntu-22.04
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..603433f
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,46 @@
+
+# Change Log
+
+All notable changes to this project are documented in this file.
+
+The format is based on [Keep a Changelog](http://keepachangelog.com/)
+and this project adheres to [Semantic Versioning](http://semver.org/).
+
+## Cloney 0.2.0 (Latest) - 2023-10-05
+
+### Added
+
+- Added the `docs` command.
+
+### Changed
+
+- Changed the `dry-run` and `validate` commands to accept a path to a local template repository as the first argument. Before this change, you had to use the `-p, --path` flag to have the same effect.
+
+ ```bash
+ # Before
+ $ cloney dry-run -p /path/to/template-repo
+
+ # After
+ $ cloney dry-run /path/to/template-repo
+ ```
+
+### Fixed
+
+- Fixed a security issue that allowed users to create files and directories outside the scope of the template repository.
+- Addressed an issue where the `CLONEY_GIT_TOKEN` environment variable was not being utilized when interacting with private Git repositories.
+
+## Cloney 0.1.0 - 2023-10-01
+
+This is the first release of Cloney.
+
+### Added
+
+- CLI commands: `clone`, `dry-run`, `info`, `start`, `validate`, `version`.
+
+### Changed
+
+- No changes.
+
+### Fixed
+
+- No fixes.
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..96422ae
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Arthur Sudbrack Ibarra
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index ad27d41..2cb5222 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-
+
diff --git a/cli/commands/clone.go b/cli/commands/clone.go
index 419f2e7..2efc7b9 100644
--- a/cli/commands/clone.go
+++ b/cli/commands/clone.go
@@ -52,9 +52,6 @@ func cloneCmdRun(cmd *cobra.Command, args []string) error {
}
// If a token is provided, authenticate with it.
- if token == "" {
- token = appConfig.GitToken
- }
steps.AuthenticateToRepository(repository, token)
// Calculate the clone path.
@@ -125,7 +122,7 @@ func CreateCloneCommand() *cobra.Command {
Long: fmt.Sprintf(`Clone a template repository.
The 'cloney clone' command will search for a file named '%s' in your current directory by default.
-You can specify a different file using the '--variables' flag or pass the variables inline as YAML.`, appConfig.DefaultUserVariablesFileName),
+You can specify a different file or pass the variables inline as YAML using the '--variables' flag.`, appConfig.DefaultUserVariablesFileName),
Example: strings.Join([]string{
" clone https://github.com/username/repository.git",
" clone https://github.com/username/repository.git -v variables.yaml",
@@ -141,7 +138,7 @@ You can specify a different file using the '--variables' flag or pass the variab
cloneCmd.Flags().StringP("branch", "b", "main", "Git branch")
cloneCmd.Flags().StringP("tag", "t", "", "Git tag")
cloneCmd.Flags().StringP("variables", "v", appConfig.DefaultUserVariablesFileName, "Path to a template variables file or raw YAML")
- cloneCmd.Flags().StringP("token", "k", "", "Git token, if referencing a private Git repository")
+ cloneCmd.Flags().StringP("token", "k", "", "Git token, if referencing a private Git repository (not recommended)")
return cloneCmd
}
diff --git a/cli/commands/docs.go b/cli/commands/docs.go
new file mode 100644
index 0000000..54e74f7
--- /dev/null
+++ b/cli/commands/docs.go
@@ -0,0 +1,46 @@
+package commands
+
+import (
+ "fmt"
+ "os/exec"
+ "runtime"
+
+ "github.com/ArthurSudbrackIbarra/cloney/terminal"
+ "github.com/spf13/cobra"
+)
+
+// docsCmd is the function that runs when the 'docs' command is called.
+func docsCmdRun(cmd *cobra.Command, args []string) error {
+ // Variable to store errors.
+ var err error
+
+ // Open the Cloney documentation in the default browser.
+ switch runtime.GOOS {
+ case "linux":
+ err = exec.Command("xdg-open", appConfig.CloneyDocumentationURL).Start()
+ case "windows":
+ err = exec.Command("rundll32", "url.dll,FileProtocolHandler", appConfig.CloneyDocumentationURL).Start()
+ case "darwin":
+ err = exec.Command("open", appConfig.CloneyDocumentationURL).Start()
+ default:
+ terminal.ErrorMessage("Compatibility error", fmt.Errorf("unsupported operating system"))
+ }
+ if err != nil {
+ terminal.ErrorMessage("Error opening Cloney documentation in default browser", err)
+ }
+
+ return nil
+}
+
+// CreateDocsCommand creates the 'docs' command.
+func CreateDocsCommand() *cobra.Command {
+ docsCmd := &cobra.Command{
+ Use: "docs",
+ Short: "Open the Cloney documentation in your browser",
+ Long: "Open the Cloney documentation in your browser.",
+ PersistentPreRun: persistentPreRun,
+ RunE: docsCmdRun,
+ }
+
+ return docsCmd
+}
diff --git a/cli/commands/docs_test.go b/cli/commands/docs_test.go
new file mode 100644
index 0000000..82dcb55
--- /dev/null
+++ b/cli/commands/docs_test.go
@@ -0,0 +1,3 @@
+package commands
+
+// TODO: Add 'docs' command tests.
diff --git a/cli/commands/dryrun.go b/cli/commands/dryrun.go
index ddc985c..d6ba363 100644
--- a/cli/commands/dryrun.go
+++ b/cli/commands/dryrun.go
@@ -14,7 +14,10 @@ import (
// dryRunCmdRun is the function that runs when the 'dry-run' command is called.
func dryRunCmdRun(cmd *cobra.Command, args []string) error {
// Get command-line arguments.
- path, _ := cmd.Flags().GetString("path")
+ var repositorySource string
+ if len(args) >= 1 {
+ repositorySource = args[0]
+ }
output, _ := cmd.Flags().GetString("output")
outputInTerminal, _ := cmd.Flags().GetBool("output-in-terminal")
variables, _ := cmd.Flags().GetString("variables")
@@ -35,7 +38,7 @@ func dryRunCmdRun(cmd *cobra.Command, args []string) error {
}
// Calculate the directory paths.
- sourcePath, _ := steps.CalculatePath(path, "")
+ sourcePath, _ := steps.CalculatePath(repositorySource, "")
outputPath, _ := steps.CalculatePath(output, "")
// Read the repository metadata file.
@@ -95,6 +98,13 @@ func dryRunCmdRun(cmd *cobra.Command, args []string) error {
return nil
}
+// ResetDryRunFlags resets the flags of the 'dry-run' command.
+func ResetDryRunFlags(dryRunCmd *cobra.Command) {
+ dryRunCmd.Flags().Set("output", appConfig.DefaultDryRunDirectoryName)
+ dryRunCmd.Flags().Set("output-in-terminal", "false")
+ dryRunCmd.Flags().Set("variables", appConfig.DefaultUserVariablesFileName)
+}
+
// CreateDryRunCommand creates the 'dry-run' command and its respective flags.
func CreateDryRunCommand() *cobra.Command {
// dryrunCmd represents the dryrun command.
@@ -109,7 +119,7 @@ The 'cloney dry-run' command is for debugging purposes.
With this command, you can check the output your template repository will generate with the given variables.
By default, 'cloney dry-run' searches for a file named '%s' in your current directory.
-You can specify a different file using the '--variables' flag or pass the variables inline as YAML.`, appConfig.DefaultUserVariablesFileName),
+You can specify a different file or pass the variables inline as YAML using the '--variables' flag.`, appConfig.DefaultUserVariablesFileName),
Example: strings.Join([]string{
" dry-run",
" dry-run ./path/to/my/template",
@@ -122,7 +132,6 @@ You can specify a different file using the '--variables' flag or pass the variab
}
// Define command-line flags for the 'dryrun' command.
- dryRunCmd.Flags().StringP("path", "p", "", "Path to your local template repository")
dryRunCmd.Flags().StringP("output", "o", appConfig.DefaultDryRunDirectoryName, "Path to output the filled template files")
dryRunCmd.Flags().BoolP("output-in-terminal", "i", false, "Output the filled template file contents in the terminal instead of creating the files")
dryRunCmd.Flags().StringP("variables", "v", appConfig.DefaultUserVariablesFileName, "Path to a template variables file or raw YAML")
diff --git a/cli/commands/info.go b/cli/commands/info.go
index ffcb1fc..243cdba 100644
--- a/cli/commands/info.go
+++ b/cli/commands/info.go
@@ -42,9 +42,6 @@ func infoCmdRun(cmd *cobra.Command, args []string) error {
}
// If a token is provided, authenticate with it.
- if token == "" {
- token = appConfig.GitToken
- }
steps.AuthenticateToRepository(repository, token)
// Get the metadata file content.
@@ -115,7 +112,7 @@ By default, it will get information from the current directory, assuming it is a
// Define command-line flags for the 'info' command.
infoCmd.Flags().StringP("branch", "b", "main", "Git branch, if referencing a git repository")
infoCmd.Flags().StringP("tag", "t", "", "Git tag, if referencing a git repository")
- infoCmd.Flags().StringP("token", "k", "", "Git token, if referencing a private git repository")
+ infoCmd.Flags().StringP("token", "k", "", "Git token, if referencing a private git repository (not recommended)")
return infoCmd
}
diff --git a/cli/commands/start.go b/cli/commands/start.go
index d5e0689..c60f4dd 100644
--- a/cli/commands/start.go
+++ b/cli/commands/start.go
@@ -169,7 +169,10 @@ func CreateStartCommand() *cobra.Command {
Long: `Start a new Cloney template repository.
The 'cloney start' command will create a directory with the necessary files to start a new cloney template repository.`,
- Example: " cloney start",
+ Example: strings.Join([]string{
+ " cloney start",
+ " cloney start -y",
+ }, "\n"),
PersistentPreRun: persistentPreRun,
RunE: startCmdRun,
}
diff --git a/cli/commands/steps/steps.go b/cli/commands/steps/steps.go
index b8f4d05..d52f79b 100644
--- a/cli/commands/steps/steps.go
+++ b/cli/commands/steps/steps.go
@@ -75,7 +75,11 @@ func CreateAndValidateRepository(repositoryURL, branch, tag string) (*git.GitRep
// AuthenticateToRepository authenticates to the repository if a token is provided.
func AuthenticateToRepository(repository *git.GitRepository, gitToken string) {
- // If a token is provided, authenticate with it.
+ // If the token is empty, try to get it from the environment variable.
+ if gitToken == "" {
+ gitToken = os.Getenv("CLONEY_GIT_TOKEN")
+ }
+ // Only if the token is not empty, authenticate to the repository.
if gitToken != "" {
repository.AuthenticateWithToken(gitToken)
}
diff --git a/cli/commands/validate.go b/cli/commands/validate.go
index cb8ba20..68b5f65 100644
--- a/cli/commands/validate.go
+++ b/cli/commands/validate.go
@@ -2,6 +2,7 @@ package commands
import (
"path/filepath"
+ "strings"
"github.com/ArthurSudbrackIbarra/cloney/cli/commands/steps"
@@ -11,13 +12,16 @@ import (
// validateCmd is the function that runs when the 'validate' command is called.
func validateCmdRun(cmd *cobra.Command, args []string) error {
// Get command-line arguments.
- path, _ := cmd.Flags().GetString("path")
+ var repositorySource string
+ if len(args) >= 1 {
+ repositorySource = args[0]
+ }
// Variable to store errors.
var err error
// Calculate the template directory path.
- sourcePath, err := steps.CalculatePath(path, "")
+ sourcePath, err := steps.CalculatePath(repositorySource, "")
if err != nil {
return err
}
@@ -41,11 +45,6 @@ func validateCmdRun(cmd *cobra.Command, args []string) error {
return nil
}
-// ResetValidateCommandFlags resets the flags of the 'validate' command.
-func ResetValidateCommandFlags(cmd *cobra.Command) {
- cmd.Flags().Set("path", "")
-}
-
// CreateValidateCommand creates the 'validate' command.
func CreateValidateCommand() *cobra.Command {
validateCmd := &cobra.Command{
@@ -56,12 +55,13 @@ func CreateValidateCommand() *cobra.Command {
The 'cloney validate' command validates if your Cloney template repository is valid.
It checks if the repository has a metadata file, and if it has the required fields in it.
`,
+ Example: strings.Join([]string{
+ " validate",
+ " validate ./path/to/my/template",
+ }, "\n"),
PersistentPreRun: persistentPreRun,
RunE: validateCmdRun,
}
- // Define command-line flags for the 'validate' command.
- validateCmd.Flags().StringP("path", "p", "", "Path to your local template repository")
-
return validateCmd
}
diff --git a/cli/commands/validate_test.go b/cli/commands/validate_test.go
new file mode 100644
index 0000000..51bc56d
--- /dev/null
+++ b/cli/commands/validate_test.go
@@ -0,0 +1,3 @@
+package commands
+
+// TODO: Add 'validate' command tests.
diff --git a/cli/commands/version.go b/cli/commands/version.go
index fecb969..804cac6 100644
--- a/cli/commands/version.go
+++ b/cli/commands/version.go
@@ -19,6 +19,7 @@ func CreateVersionCommand() *cobra.Command {
versionCmd := &cobra.Command{
Use: "version",
Short: "Get the current version of Cloney",
+ Long: "Get the current version of Cloney.",
PersistentPreRun: persistentPreRun,
Run: versionCmdRun,
}
diff --git a/cli/root.go b/cli/root.go
index d99cc62..13a9741 100644
--- a/cli/root.go
+++ b/cli/root.go
@@ -18,7 +18,7 @@ func rootCmdRun(cmd *cobra.Command, args []string) {
// rootCmd represents the base command when called without any subcommands.
var rootCmd = &cobra.Command{
Use: "cloney",
- Short: "Cloney is a tool to clone template git repositories.",
+ Short: "Cloney is a tool to clone and create template git repositories.",
Run: rootCmdRun,
SilenceUsage: true,
@@ -35,6 +35,7 @@ func Initialize() {
startCmd := commands.CreateStartCommand()
versionCmd := commands.CreateVersionCommand()
validateCmd := commands.CreateValidateCommand()
+ docsCmd := commands.CreateDocsCommand()
// Add subcommands.
rootCmd.AddCommand(cloneCmd)
@@ -43,6 +44,7 @@ func Initialize() {
rootCmd.AddCommand(startCmd)
rootCmd.AddCommand(versionCmd)
rootCmd.AddCommand(validateCmd)
+ rootCmd.AddCommand(docsCmd)
// Stylings.
cc.Init(&cc.Config{
diff --git a/config/config.go b/config/config.go
index f777605..f9f9627 100644
--- a/config/config.go
+++ b/config/config.go
@@ -1,9 +1,5 @@
package config
-import (
- "github.com/spf13/viper"
-)
-
// AppConfig represents the application configuration.
type AppConfig struct {
// AppVersion is the current version of the application.
@@ -42,15 +38,13 @@ type AppConfig struct {
// CloneyExampleRepositoryURL is the URL of the Cloney example repository used when creating a new template repository.
CloneyExampleRepositoryURL string
- // GitToken is the token used to authenticate when dealing with private git repositories.
- // This variable is configured using the CLONEY_GIT_TOKEN environment variable.
- GitToken string `mapstructure:"GIT_TOKEN"`
+ // CloneyDocumentationURL is the URL of the Cloney documentation.
+ CloneyDocumentationURL string
}
// globalConfig is the global application configuration.
var globalConfig = &AppConfig{
- // Default values.
- AppVersion: "0.1.0",
+ AppVersion: "0.2.0",
MetadataFileName: ".cloney.yaml",
MetadataManifestVersion: "v1",
@@ -67,43 +61,10 @@ var globalConfig = &AppConfig{
DefaultMetadataTemplateVersionValue: "0.0.0",
CloneyExampleRepositoryURL: "https://github.com/ArthurSudbrackIbarra/cloney-example.git",
-}
-
-// LoadConfig loads the global application configuration.
-func LoadConfig() error {
- // Enable reading environment variables with a prefix.
- viper.SetEnvPrefix("CLONEY")
- viper.AutomaticEnv()
-
- // Unmarshal the configuration into the globalConfig variable.
- err := viper.Unmarshal(globalConfig)
- if err != nil {
- return err
- }
- return nil
+ CloneyDocumentationURL: "https://arthursudbrackibarra.github.io/cloney-documentation",
}
// GetAppConfig returns a copy of the global application configuration.
-func GetAppConfig() *AppConfig {
- return &AppConfig{
- AppVersion: globalConfig.AppVersion,
-
- MetadataFileName: globalConfig.MetadataFileName,
- MetadataManifestVersion: globalConfig.MetadataManifestVersion,
- SupportedManifestVersions: []string{
- globalConfig.SupportedManifestVersions[0],
- },
-
- DefaultUserVariablesFileName: globalConfig.DefaultUserVariablesFileName,
- DefaultDryRunDirectoryName: globalConfig.DefaultDryRunDirectoryName,
- DefaultCloneyProjectName: globalConfig.DefaultCloneyProjectName,
-
- DefaultMetadataDescriptionValue: globalConfig.DefaultMetadataDescriptionValue,
- DefaultMetadataLicenseValue: globalConfig.DefaultMetadataLicenseValue,
- DefaultMetadataTemplateVersionValue: globalConfig.DefaultMetadataTemplateVersionValue,
-
- CloneyExampleRepositoryURL: globalConfig.CloneyExampleRepositoryURL,
-
- GitToken: globalConfig.GitToken,
- }
+func GetAppConfig() AppConfig {
+ return *globalConfig
}
diff --git a/go.mod b/go.mod
index 60c5f23..57590e9 100644
--- a/go.mod
+++ b/go.mod
@@ -10,7 +10,6 @@ require (
github.com/ivanpirog/coloredcobra v1.0.1
github.com/olekukonko/tablewriter v0.0.5
github.com/spf13/cobra v1.7.0
- github.com/spf13/viper v1.16.0
github.com/stretchr/testify v1.8.4
gopkg.in/yaml.v3 v3.0.1
)
@@ -19,43 +18,35 @@ require (
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver/v3 v3.2.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
- github.com/emirpasic/gods v1.18.1 // indirect
- github.com/fsnotify/fsnotify v1.6.0 // indirect
+ github.com/emirpasic/gods v1.12.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
github.com/go-git/go-billy/v5 v5.4.1 // indirect
github.com/go-playground/locales v0.14.1 // indirect
github.com/go-playground/universal-translator v0.18.1 // indirect
+ github.com/google/go-cmp v0.5.4 // indirect
github.com/google/uuid v1.1.2 // indirect
- github.com/hashicorp/hcl v1.0.0 // indirect
github.com/huandu/xstrings v1.3.3 // indirect
github.com/imdario/mergo v0.3.11 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
github.com/kevinburke/ssh_config v1.2.0 // indirect
github.com/leodido/go-urn v1.2.4 // indirect
- github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/mattn/go-runewidth v0.0.9 // indirect
github.com/mitchellh/copystructure v1.0.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
- github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/mitchellh/reflectwalk v1.0.0 // indirect
- github.com/pelletier/go-toml/v2 v2.0.8 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/sergi/go-diff v1.1.0 // indirect
github.com/shopspring/decimal v1.2.0 // indirect
- github.com/spf13/afero v1.9.5 // indirect
- github.com/spf13/cast v1.5.1 // indirect
- github.com/spf13/jwalterweatherman v1.1.0 // indirect
+ github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
- github.com/subosito/gotenv v1.4.2 // indirect
github.com/xanzy/ssh-agent v0.2.1 // indirect
golang.org/x/crypto v0.11.0 // indirect
golang.org/x/net v0.12.0 // indirect
golang.org/x/sys v0.10.0 // indirect
golang.org/x/text v0.11.0 // indirect
- gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
)
diff --git a/go.sum b/go.sum
index ef479b0..4065179 100644
--- a/go.sum
+++ b/go.sum
@@ -1,43 +1,3 @@
-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.44.3/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 v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
-cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
-cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
-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=
-cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
-dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
github.com/Masterminds/semver/v3 v3.2.0 h1:3MEsd0SM6jqZojhjLWWeBY+Kcjy9i6MQAeY7YgDP83g=
@@ -50,37 +10,18 @@ github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo
github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
-github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
-github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
-github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg=
github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
-github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
-github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
-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.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
-github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
-github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY=
-github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
-github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
-github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU=
github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA=
github.com/gliderlabs/ssh v0.2.2 h1:6zsha5zo/TWhRhwqCD3+EarCAgZ2yN28ipRnGPnwkI0=
@@ -95,9 +36,6 @@ github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12 h1:PbK
github.com/go-git/go-git-fixtures/v4 v4.0.2-0.20200613231340-f56387b50c12/go.mod h1:m+ICp2rF3jDhFgEZ/8yziagdT1C+ZpZcrJjappBCDSw=
github.com/go-git/go-git/v5 v5.2.0 h1:YPBLG/3UK1we1ohRkncLjaXWLW+HKp5QNM/jTli2JgI=
github.com/go-git/go-git/v5 v5.2.0/go.mod h1:kh02eMX+wdqqxgNMEyq8YgwlIOsDOa9homkUq1PoTMs=
-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-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s=
github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA=
@@ -106,72 +44,14 @@ github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJn
github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY=
github.com/go-playground/validator/v10 v10.15.3 h1:S+sSpunYjNPDuXkWbK+x+bA7iXiW296KG4dL3X7xUZo=
github.com/go-playground/validator/v10 v10.15.3/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-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/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
-github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
-github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
-github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
-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/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/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/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/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/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
-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-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
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/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
-github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/huandu/xstrings v1.3.3 h1:/Gcsuc1x8JVbJ9/rlye4xZnVAbEkGauT8lbebqcQws4=
github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
-github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA=
github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA=
@@ -183,25 +63,18 @@ github.com/ivanpirog/coloredcobra v1.0.1/go.mod h1:iho4nEKcnwZFiniGSdcgdvRgZNjxm
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A=
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo=
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
-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/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-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/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q=
github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4=
-github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=
-github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -216,217 +89,72 @@ github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMK
github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw=
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/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
-github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/reflectwalk v1.0.0 h1:9D+8oIskB4VJBN5SFlmc27fSlIBZaov1Wpk/IfikLNY=
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
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/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ=
-github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4=
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/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
-github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ=
github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o=
-github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
-github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
+github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng=
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
-github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48=
github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g=
github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I=
github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0=
-github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
-github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
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.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=
-github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
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.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
-github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
-github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=
-github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70=
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
-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.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-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.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4=
golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA=
golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
-golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
-golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
-golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
-golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
-golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/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.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
-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-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
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-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
-golang.org/x/net v0.0.0-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-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-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
golang.org/x/net v0.12.0 h1:cfawfvKITfUsFCeJIHJrbSxpeu/E81khclypR0GVT50=
golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA=
-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-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
-golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/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-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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-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-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/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-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-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=
@@ -436,169 +164,23 @@ golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuX
golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
golang.org/x/term v0.10.0 h1:3R7pNqamzBraeqj/Tj8qt1aQ2HpmlC+Cx/qL/7hn4/c=
golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o=
-golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.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.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=
golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
-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-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-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-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-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-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-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-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-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
-golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
-golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
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=
-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/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
-google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
-google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
-google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
-google.golang.org/appengine v1.6.7/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-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-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-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-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-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.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.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
-google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
-google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
-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=
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-20190902080502-41f04d3bba15/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-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
-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/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME=
gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -609,13 +191,3 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-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=
-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=
diff --git a/images/cloney-documentation.png b/images/cloney-documentation.png
index ef3b16e16c6253c7afc27d28af5d6b1368a7c4cf..41c586df0fb4dbba3ab0cced8c76cf3c178d7c24 100644
GIT binary patch
literal 187312
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